Markdownify
Markdownify
Markdownify MCP 서버는 다양한 형식의 콘텐츠를 Markdown으로 변환하는 기능을 제공합니다. PPTX, HTML, PDF, YouTube 트랜스크립트 등 거의 모든 종류의 구조화된 콘텐츠를 깔끔한 Markdown 형식으로 변환할 수 있습니다. 이를 통해 LLM은 다양한 소스의 콘텐츠를 일관된 형식으로 처리하고, 추가 작업이나 분석을 위한 기반으로 활용할 수 있습니다.
특징
- 다양한 입력 형식 지원: PPTX, HTML, PDF, DOC, DOCX, YouTube 트랜스크립트 등 변환
- 구조 보존: 원본 문서의 제목, 목차, 단락 등 구조 유지
- 미디어 처리: 이미지, 표, 다이어그램 등의 미디어 요소 추출 및 참조
- 메타데이터 추출: 저자, 날짜, 키워드 등 문서 메타데이터 추출
- 웹 콘텐츠 변환: 웹페이지, 블로그 포스트 등의 핵심 콘텐츠 추출 및 변환
- 코드 블록 처리: 코드 블록의 구문 강조 및 언어 식별 유지
- 스타일 정보 보존: 볼드, 이탤릭, 인용 등 주요 서식 정보 보존
- 일괄 처리: 여러 문서의 동시 변환 및 통합
API
도구
기본 변환 도구
- convert_to_markdown: 다양한 형식을 Markdown으로 변환
- 입력: 소스 파일 경로 또는 URL, 옵션
-
출력: 변환된 Markdown 텍스트 및 메타데이터
-
html_to_markdown: HTML을 Markdown으로 변환
- 입력: HTML 문자열 또는 URL, 옵션
-
출력: 변환된 Markdown 텍스트
-
pdf_to_markdown: PDF를 Markdown으로 변환
- 입력: PDF 파일 경로, 페이지 범위(선택적), 옵션
- 출력: 변환된 Markdown 텍스트
특수 형식 변환 도구
- pptx_to_markdown: PowerPoint 프레젠테이션을 Markdown으로 변환
- 입력: PPTX 파일 경로, 옵션
-
출력: 변환된 Markdown 텍스트, 슬라이드 구분 유지
-
docx_to_markdown: Word 문서를 Markdown으로 변환
- 입력: DOCX 파일 경로, 옵션
-
출력: 변환된 Markdown 텍스트
-
youtube_transcript_to_markdown: YouTube 트랜스크립트를 Markdown으로 변환
- 입력: YouTube 비디오 ID 또는 URL, 언어(선택적)
- 출력: 변환된 시간 코드가 포함된 Markdown 텍스트
웹 콘텐츠 도구
- url_to_markdown: 웹페이지를 Markdown으로 변환
- 입력: 웹페이지 URL, 추출 옵션
-
출력: 정제된 Markdown 콘텐츠
-
extract_article: 웹페이지에서 주요 기사 콘텐츠만 추출하여 Markdown으로 변환
- 입력: 웹페이지 URL, 옵션
- 출력: 추출된 기사 콘텐츠의 Markdown 텍스트
배치 처리 도구
- batch_convert: 여러 문서 일괄 변환
- 입력: 소스 파일 목록, 공통 옵션
-
출력: 변환된 Markdown 파일 목록
-
directory_convert: 디렉토리 내 모든 지원 파일 변환
- 입력: 소스 디렉토리, 파일 패턴, 옵션
- 출력: 변환된 Markdown 파일 목록
사용 방법
설치
# npm을 통한 설치
npm install -g markdownify-mcp
# 또는 GitHub 저장소에서 직접 설치
git clone https://github.com/author/markdownify-mcp
cd markdownify-mcp
npm install
필요 조건
- Node.js 14 이상이 설치되어 있어야 합니다.
- PDF 처리를 위한 pdf.js 또는 유사 라이브러리
- 문서 형식 처리를 위한 추가 종속성(mammoth.js, pptx-to-md 등)
구성
Claude Desktop에서 이 서버를 사용하려면 다음과 같이 설정할 수 있습니다:
{
"mcpServers": {
"markdownify": {
"command": "npx",
"args": ["-y", "markdownify-mcp"],
"env": {
"OUTPUT_DIRECTORY": "/path/to/output",
"YOUTUBE_API_KEY": "YOUR_API_KEY" // YouTube 트랜스크립트 기능에 필요
}
}
}
}
사용 예시
// HTML 웹페이지를 Markdown으로 변환
const markdown = await url_to_markdown({
url: "https://example.com/article",
options: {
removeAds: true,
includeImages: true,
maxImageWidth: 800
}
});
console.log("변환된 Markdown:", markdown.text);
// PDF 파일을 Markdown으로 변환
const pdfMarkdown = await pdf_to_markdown({
path: "/path/to/document.pdf",
pages: "1-5", // 선택적 페이지 범위
options: {
extractImages: true,
imageDir: "images"
}
});
console.log(`PDF가 Markdown으로 변환되었습니다. ${pdfMarkdown.wordCount}단어`);
// PowerPoint 프레젠테이션을 Markdown으로 변환
const pptxMarkdown = await pptx_to_markdown({
path: "/path/to/presentation.pptx",
options: {
includeSpeakerNotes: true,
slideDelimiter: "---" // 슬라이드 구분 구분자
}
});
console.log(`${pptxMarkdown.slideCount}개의 슬라이드가 변환되었습니다.`);
// YouTube 트랜스크립트를 Markdown으로 변환
const transcript = await youtube_transcript_to_markdown({
videoId: "dQw4w9WgXcQ",
language: "ko" // 선택적 언어 코드
});
console.log("YouTube 트랜스크립트:", transcript.text);
연결된 구성 요소
- Markdown2doc - Markdown으로 변환된 콘텐츠를 다시 다양한 문서 형식으로 변환
- YouTube - YouTube 비디오 트랜스크립트 추출 및 처리
- Pandoc - 고급 문서 변환 기능 확장
- Office-PowerPoint-MCP-Server - PowerPoint 파일 처리 연계
- Office-Word-MCP-Server - Word 문서 처리 연계