Markdown2doc
Markdown2doc
Markdown2doc MCP 서버는 Pandoc을 사용하여 다양한 파일 형식 간의 변환 기능을 제공합니다. 이 서버를 통해 LLM은 Markdown 문서를 Word, PDF, HTML, EPUB 등의 다양한 형식으로 변환하거나, 반대로 다양한 문서 형식을 Markdown으로 변환할 수 있습니다. 문서 형식 간의 원활한 변환으로 콘텐츠 제작, 출판, 공유 워크플로우를 크게 개선할 수 있습니다.
특징
- 다양한 형식 지원: Markdown, HTML, Word, PDF, EPUB, LaTeX 등 다양한 형식 간 변환
- 스타일 보존: 문서의 스타일, 서식, 구조 보존
- 메타데이터 처리: 문서 메타데이터 추출 및 적용
- 템플릿 사용: 사용자 정의 템플릿을 활용한 변환
- 목차 생성: 자동 목차 생성 및 관리
- 참고문헌 처리: 인용 및 참고문헌 형식 관리
- 사용자 정의 필터: 다양한 변환 필터 적용
- 배치 처리: 여러 문서의 일괄 변환
API
도구
기본 변환 도구
- convert_document: 문서 형식 변환
- 입력: 소스 파일 경로, 대상 형식, 옵션
-
출력: 변환된 파일 경로 및 상태
-
markdown_to_doc: Markdown을 다른 형식으로 변환
- 입력: Markdown 파일 경로, 대상 형식(docx, pdf, html 등), 옵션
-
출력: 변환된 파일 경로
-
doc_to_markdown: 다른 형식을 Markdown으로 변환
- 입력: 문서 파일 경로, 옵션
- 출력: 변환된 Markdown 파일 경로
고급 변환 도구
- convert_with_template: 템플릿을 사용한 변환
- 입력: 소스 파일, 템플릿 파일, 대상 형식, 옵션
-
출력: 변환된 파일 경로
-
convert_with_style: 스타일 시트를 적용한 변환
- 입력: 소스 파일, 스타일 파일, 대상 형식, 옵션
-
출력: 스타일이 적용된 변환 파일 경로
-
convert_with_bibliography: 참고문헌을 포함한 변환
- 입력: 소스 파일, 참고문헌 파일, 인용 스타일, 대상 형식
- 출력: 참고문헌이 포함된 변환 파일 경로
배치 처리 도구
- batch_convert: 여러 문서 일괄 변환
- 입력: 소스 파일 목록, 대상 형식, 공통 옵션
-
출력: 변환된 파일 경로 목록 및 상태
-
recursive_convert: 디렉토리 내 모든 문서 변환
- 입력: 소스 디렉토리, 파일 패턴, 대상 형식, 옵션
- 출력: 변환된 파일 목록 및 통계
유틸리티 도구
- extract_metadata: 문서에서 메타데이터 추출
- 입력: 문서 파일 경로
-
출력: 추출된 메타데이터 객체
-
modify_metadata: 문서 메타데이터 수정
- 입력: 문서 파일 경로, 메타데이터 객체
-
출력: 수정된 문서 파일 경로
-
list_supported_formats: 지원되는 형식 목록 조회
- 입력: 입력 또는 출력 형식 필터(선택적)
- 출력: 지원되는 형식 목록 및 설명
사용 방법
설치
# npm을 통한 설치
npm install -g markdown2doc-mcp
# 또는 GitHub 저장소에서 직접 설치
git clone https://github.com/author/markdown2doc-mcp
cd markdown2doc-mcp
npm install
필요 조건
- Pandoc이 시스템에 설치되어 있어야 합니다.
- PDF 변환을 위해 LaTeX 엔진(예: TeXLive, MiKTeX)이 설치되어 있어야 합니다.
- Node.js 14 이상이 설치되어 있어야 합니다.
구성
Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정할 수 있습니다:
{
"mcpServers": {
"markdown2doc": {
"command": "npx",
"args": ["-y", "markdown2doc-mcp"],
"env": {
"PANDOC_PATH": "/usr/local/bin/pandoc",
"OUTPUT_DIRECTORY": "/path/to/output"
}
}
}
}
사용 예시
// Markdown을 Word 문서로 변환
const docxFile = await markdown_to_doc({
source: "/path/to/document.md",
format: "docx",
options: {
toc: true,
tocDepth: 3,
numberSections: true
}
});
console.log(`Word 문서로 변환 완료: ${docxFile.path}`);
// Markdown을 PDF로 변환 (스타일 적용)
const pdfFile = await convert_with_style({
source: "/path/to/document.md",
style: "/path/to/custom-style.css",
format: "pdf",
options: {
paperSize: "a4",
margin: "1in"
}
});
console.log(`PDF로 변환 완료: ${pdfFile.path}`);
// Word 문서를 Markdown으로 변환
const markdownFile = await doc_to_markdown({
source: "/path/to/document.docx",
options: {
extractImages: true,
imageDir: "images"
}
});
console.log(`Markdown으로 변환 완료: ${markdownFile.path}`);
// 여러 문서 일괄 변환
const batchResults = await batch_convert({
sources: [
"/path/to/document1.md",
"/path/to/document2.md",
"/path/to/document3.md"
],
format: "html",
options: {
standalone: true,
template: "/path/to/html-template.html"
}
});
console.log(`${batchResults.length}개의 문서가 변환되었습니다.`);
연결된 구성 요소
- Markdownify - 다양한 형식을 Markdown으로 변환하는 기능 확장
- Pandoc - Pandoc을 직접 사용한 더 다양한 문서 변환 옵션
- Office-Word-MCP-Server - Markdown과 Word 문서 간의 고급 변환 및 통합
- Office-PowerPoint-MCP-Server - Markdown 콘텐츠를 프레젠테이션으로 변환