Markdownify: 다양한 파일 형식 및 웹 콘텐츠를 마크다운으로 변환하는 MCP 서버
요약
Markdownify는 Model Context Protocol (MCP) 서버로, PDF, 이미지, 오디오, 웹 페이지 등 다양한 형식의 콘텐츠를 표준화된 마크다운(Markdown) 텍스트로 변환하는 통합 솔루션입니다. 이 도구는 YouTube 영상 전사, DOCX/XLSX/PPTX 파일 변환, Bing 검색 결과 및 일반 웹 페이지 처리 등 광범위한 기능을 제공합니다. 사용자는 로컬 환경에서 `bun install`과 `bun run build`를 통해 서버를 설정하고 실행할 수 있으며, Docker 컨테이너 사용 시에는 마운트된 볼륨 경로와 접근 권한을 명시적으로 관리해야 합니다.
핵심 포인트
- 다양한 입력 형식 지원: PDF, 이미지, 오디오(전사 포함), DOCX/XLSX/PPTX 등 광범위한 파일 및 웹 콘텐츠를 처리합니다.
- MCP 서버 아키텍처 기반: Model Context Protocol (MCP) 표준을 준수하여 다양한 애플리케이션과의 통합이 용이합니다.
- 통합된 변환 도구 세트: YouTube, Bing 검색 결과, 일반 웹 페이지 등 특정 출처의 데이터를 마크다운으로 변환하는 전용 도구를 제공합니다.
- 설정 및 배포 유연성: 로컬 개발 환경(bun)과 Docker 컨테이너를 모두 지원하며, 경로 제한(`MD_ALLOWED_PATHS`)을 통해 보안성을 높일 수 있습니다.
Markdownify
Markdownify 는 Model Context Protocol (MCP) 서버로, 다양한 파일 형식과 웹 콘텐츠를 마크다운 형식으로 변환합니다. PDF, 이미지, 오디오 파일, 웹 페이지 등 다양한 콘텐츠를 쉽게 읽기 쉽고 공유할 수 있는 마크다운 텍스트로 변환하는 도구들을 제공합니다.
기능
파일 형식 변환
- 이미지
- 오디오 (전사 포함)
- DOCX
- XLSX
- PPTX
웹 콘텐츠 변환
- YouTube 영상 전사
- Bing 검색 결과
- 일반 웹 페이지
기존 마크다운 파일 가져오기
설치 및 실행
저장소 복제
의존성 설치
bun install
preinstall 단계는 .venv 에 Python 가상 환경을 생성하고 markitdown[all] 을 설치합니다.
프로젝트 빌드
bun run build
서버 시작
bun start
TypeScript 컴파일러를 감시 모드로 시작하려면 bun run dev 를 사용하세요. src/server.ts 를 수정하여 서버 동작을 커스터마이징할 수 있습니다.
src/tools.ts 에서 도구를 추가하거나 수정할 수 있습니다.
데스크톱 앱과 통합하기
앱의 서버 구성에 다음을 추가하세요:
{
"mcpServers": {
"markdownify": {
...
모든 경로는 합리적인 기본값으로 설정됩니다. 설치 레이아웃에 기본값이 맞지 않을 때만 오버라이드하세요.
| 변수 | 기본값 | 목적 |
|---|---|---|
MARKITDOWN_PATH | <project>/.venv/bin/markitdown, then markitdown on PATH | markitdown 실행 파일의 절대 경로. 시스템 전체에 markitdown 을 설치한 경우 (예: pipx install "markitdown[pdf]") 버그드 venv 대신 이 경로를 설정하세요. |
REPOMIX_PATH | <project>/node_modules/.bin/repomix, then repomix on PATH | git-repo-to-markdown 에서 사용하는 repomix 실행 파일의 절대 경로. |
MD_ALLOWED_PATHS | unset (unrestricted) | 서버가 읽을 수 있는 디렉터리 목록 (POSIX: :, Windows: ;). 설정 시, 모든 파일 입력 도구 (pdf-to-markdown, get-markdown-file 등) 는 이 디렉터리 외의 경로는 거부합니다. |
MD_SHARE_DIR | unset | MD_ALLOWED_PATHS 의Deprecated alias(단일 디렉터리). 후방 호환성을 위해 여전히 존중됩니다. |
Docker 빌드 및 실행
docker build -t markdownify-mcp .
docker run --rm -i \
-v "$HOME/Documents:/data:ro" \
...
Docker MCP 카탈로그에 대한 주석 (mcp/markdownify)
- 서버가 읽을 수 있는 호스트 디렉터리들을 컨테이너에 마운트한 후, 컨테이너 경로를 도구로 전달하세요 (예:
/data/foo.pdf,/Users/you/Documents/foo.pdf아님). MD_ALLOWED_PATHS를 마운트된 디렉터리의 콜론 구분 목록으로 설정하여 서버가 바인드 마운트에 맞는 읽기 경계를 강제하세요.- 게시된 Docker 이미지는
markitdown[pdf]만 설치합니다. 오디오 전사와 이미지 OCR (audio-to-markdown,image-to-markdown) 은[all]extras 를 필요로 하며, 슬림 이미지에서는 실패할 것입니다. 전체 기능 세트는 로컬 설치 (bun install) 를 사용하세요.
도구 목록
- youtube-to-markdown: YouTube 영상을 마크다운으로 변환
- pdf-to-markdown: PDF 파일을 마크다운으로 변환
- bing-search-to-markdown: Bing 검색 결과를 마크다운으로 변환
- webpage-to-markdown: 웹 페이지를 마크다운으로 변환
- image-to-markdown: 메타데이터와 함께 이미지를 마크다운으로 변환
- audio-to-markdown: 전사와 함께 오디오 파일을 마크다운으로 변환
- docx-to-markdown: DOCX 파일을 마크다운으로 변환
- xlsx-to-markdown: XLSX 파일을 마크다운으로 변환
- pptx-to-markdown: PPTX 파일을 마크다운으로 변환
- get-markdown-file: 기존 마크다운 파일 가져오기. 파일 확장자는 다음을 끝내야 합니다: *.md, *.markdown.
OPTIONAL: set
MD_ALLOWED_PATHS
모든 파일 입력 도구를 디렉터리 목록으로 제한하기 위해, 예를 들어 MD_ALLOWED_PATHS=/data/in:/data/out bun start 와 같이 설정합니다.
기여를 환영합니다! Pull Request 를 제출해 주세요.
이 프로젝트는 MIT 라이선스를 따릅니다. 자세한 내용은 LICENSE 파일을 참조하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기