MCP 문서 관리

메뉴

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);

연결된 구성 요소