{"id":24161552,"url":"https://github.com/zcaceres/markdownify-mcp","last_synced_at":"2026-08-27T15:45:08.276Z","repository":{"id":268781463,"uuid":"905450127","full_name":"zcaceres/markdownify-mcp","owner":"zcaceres","description":"A Model Context Protocol server for converting almost anything to Markdown","archived":false,"fork":false,"pushed_at":"2026-08-11T05:23:40.000Z","size":2737,"stargazers_count":2980,"open_issues_count":24,"forks_count":252,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-08-24T11:59:37.465Z","etag":null,"topics":["ai","anthropic","anthropic-ai","anthropic-claude","markdown","mcp","model-context-protocol","ocr","tools"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zcaceres.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-18T21:14:52.000Z","updated_at":"2026-08-24T11:50:32.000Z","dependencies_parsed_at":"2024-12-18T22:30:18.795Z","dependency_job_id":"044d0478-517c-4779-a659-cf771722260e","html_url":"https://github.com/zcaceres/markdownify-mcp","commit_stats":null,"previous_names":["zcaceres/mcp-ocr","zcaceres/mcp-markdownify-server","zcaceres/markdownify-mcp"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/zcaceres/markdownify-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fmarkdownify-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fmarkdownify-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fmarkdownify-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fmarkdownify-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zcaceres","download_url":"https://codeload.github.com/zcaceres/markdownify-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fmarkdownify-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36930965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-26T02:00:06.703Z","response_time":94,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","anthropic","anthropic-ai","anthropic-claude","markdown","mcp","model-context-protocol","ocr","tools"],"created_at":"2025-01-12T17:17:19.129Z","updated_at":"2026-08-27T15:45:08.269Z","avatar_url":"https://github.com/zcaceres.png","language":"TypeScript","funding_links":[],"categories":["Productivity","File Management MCP Servers","TypeScript","A01_文本生成_文本对话","Uncategorized","📚 Projects (1974 total)","MCP 服务器精选列表","Content Creation","HarmonyOS","サーバー実装","Table of Contents","Legend","Search \u0026 Data Extraction","カテゴリ","Containerised MCP Servers","📦 Other","MCP Ecosystem","MCP Servers","Other (4)","Data Science Tools","MCP Servers \u0026 Protocol","服务器实现","🧮 Data Science Tools (13 servers)","Server Implementations","🔌 MCP ინტეგრაციები","🤖 AI, ML \u0026 Deep Learning","Servers"],"sub_categories":["Documents","大语言对话模型及数据","Uncategorized","MCP Servers","📊 数据分析、处理与可视化","Windows Manager","🛠️ \u003ca name=\"other-tools-and-integrations\"\u003e\u003c/a\u003eその他のツールと統合","Other Tools and Integrations","🧮 Data Science Tools","How to Submit","📝 \u003ca name=\"content--media\"\u003e\u003c/a\u003eコンテンツ・メディア","AI \u0026 Machine Learning","Servers","Media \u0026 Creativity","媒体与娱乐","🧮 \u003ca name=\"data-science-tools\"\u003e\u003c/a\u003eData Science Tools","Specification-Driven Agent Development","File Systems \u0026 Storage"],"readme":"# Markdownify MCP Server\n\n![markdownify mcp logo](logo.jpg)\n\nMarkdownify is a Model Context Protocol (MCP) server that converts various file types and web content to Markdown format. It provides a set of tools to transform PDFs, images, audio files, web pages, and more into easily readable and shareable Markdown text.\n\n\u003ca href=\"https://glama.ai/mcp/servers/bn5q4b0ett\"\u003e\u003cimg width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/bn5q4b0ett/badge\" alt=\"Markdownify Server MCP server\" /\u003e\u003c/a\u003e\n\n## Features\n\n- Convert multiple file types to Markdown:\n  - PDF\n  - Images\n  - Audio (with transcription)\n  - DOCX\n  - XLSX\n  - PPTX\n- Convert web content to Markdown:\n  - YouTube video transcripts\n  - Bing search results\n  - General web pages\n- Retrieve existing Markdown files\n\n## Getting Started\n\n1. Clone this repository\n2. Install dependencies:\n   ```\n   bun install\n   ```\n\n   The `preinstall` step creates a Python virtual environment at `.venv` and installs `markitdown[all]`.\n\n3. Build the project:\n   ```\n   bun run build\n   ```\n4. Start the server:\n   ```\n   bun start\n   ```\n\n## Development\n\n- Use `bun run dev` to start the TypeScript compiler in watch mode\n- Modify `src/server.ts` to customize server behavior\n- Add or modify tools in `src/tools.ts`\n\n## Usage with Desktop App\n\nTo integrate this server with a desktop app, add the following to your app's server configuration:\n\n```js\n{\n  \"mcpServers\": {\n    \"markdownify\": {\n      \"command\": \"node\",\n      \"args\": [\n        \"{ABSOLUTE PATH TO FILE HERE}/dist/index.js\"\n      ]\n    }\n  }\n}\n```\n\n### Environment variables\n\nAll paths default to sensible values; override only when the defaults don't fit your install layout.\n\n| Variable | Default | Purpose |\n|---|---|---|\n| `MARKITDOWN_PATH` | `\u003cproject\u003e/.venv/bin/markitdown`, then `markitdown` on `PATH` | Absolute path to the `markitdown` executable. Set this when you've installed markitdown system-wide (e.g. `pipx install \"markitdown[pdf]\"`) instead of using the bundled venv. |\n| `REPOMIX_PATH` | `\u003cproject\u003e/node_modules/.bin/repomix`, then `repomix` on `PATH` | Absolute path to the `repomix` executable used by `git-repo-to-markdown`. |\n| `MD_ALLOWED_PATHS` | unset (unrestricted) | Path-delimiter-separated list (`:` on POSIX, `;` on Windows) of directories the server is allowed to read. When set, all file-input tools (`pdf-to-markdown`, `get-markdown-file`, etc.) reject paths outside these directories. |\n| `MD_SHARE_DIR` | unset | Deprecated alias for `MD_ALLOWED_PATHS` (single directory). Still honored for backward compatibility. |\n\n## Usage with Docker\n\nBuild and run:\n```sh\ndocker build -t markdownify-mcp .\ndocker run --rm -i \\\n  -v \"$HOME/Documents:/data:ro\" \\\n  -e MD_ALLOWED_PATHS=/data \\\n  markdownify-mcp\n```\n\nNotes for the Docker MCP catalog (`mcp/markdownify`):\n- Mount any host directories you want the server to read into the container, then pass the **container** paths to the tools (e.g. `/data/foo.pdf`, not `/Users/you/Documents/foo.pdf`).\n- Set `MD_ALLOWED_PATHS` to the colon-separated list of mounted directories so the server enforces a read boundary that matches the bind mount.\n- The published Docker image installs `markitdown[pdf]` only — audio transcription and image OCR (`audio-to-markdown`, `image-to-markdown`) require the `[all]` extras and will fail in the slim image. Use the local install (`bun install`) for the full feature set.\n\n## Available Tools\n\n- `youtube-to-markdown`: Convert YouTube videos to Markdown\n- `pdf-to-markdown`: Convert PDF files to Markdown\n- `bing-search-to-markdown`: Convert Bing search results to Markdown\n- `webpage-to-markdown`: Convert web pages to Markdown\n- `image-to-markdown`: Convert images to Markdown with metadata\n- `audio-to-markdown`: Convert audio files to Markdown with transcription\n- `docx-to-markdown`: Convert DOCX files to Markdown\n- `xlsx-to-markdown`: Convert XLSX files to Markdown\n- `pptx-to-markdown`: Convert PPTX files to Markdown\n- `get-markdown-file`: Retrieve an existing Markdown file. File extension must end with: *.md, *.markdown.\n\n  OPTIONAL: set `MD_ALLOWED_PATHS` to restrict every file-input tool to a list of directories, e.g. `MD_ALLOWED_PATHS=/data/in:/data/out bun start`.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzcaceres%2Fmarkdownify-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzcaceres%2Fmarkdownify-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzcaceres%2Fmarkdownify-mcp/lists"}