{"_id":"mcp-markdownify-server","_rev":"5-da803341769493b4b610d86dc77b1ee4","name":"mcp-markdownify-server","dist-tags":{"latest":"1.1.0"},"versions":{"0.0.1":{"name":"mcp-markdownify-server","version":"0.0.1","author":{"url":"@zachcaceres | zach.dev","name":"@zcaceres"},"license":"MIT","_id":"mcp-markdownify-server@0.0.1","maintainers":[{"name":"zereight","email":"definedable@gmail.com"}],"homepage":"https://github.com/zcaceres/mcp-markdownify-server","bugs":{"url":"https://github.com/zcaceres/mcp-markdownify-server/issues"},"bin":{"mcp-markdownify-server":"dist/index.js"},"dist":{"shasum":"a6bf0abbc2fb597a7252f1cf880cba1ba71e7807","tarball":"https://registry.npmjs.org/mcp-markdownify-server/-/mcp-markdownify-server-0.0.1.tgz","fileCount":8,"integrity":"sha512-mVBbaJj+EOLL0rPi/KubN3843+hVPcm0fKqMdA3arTU7zbE/qHonRuEFKmqVQwkIR6gPO5n5JwsgUYAOZtpB5A==","signatures":[{"sig":"MEUCIQC6e2qEYnla7OEA04bkN3ewtlbU0C2sZMUsBpt+C5a0pAIgMhdm7r3Hyy69Wk3XTIQUpLrRy0lvT561fUVXCd5TbBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16502},"type":"module","gitHead":"949f12e633320548c565c6ec892d33695b158d64","scripts":{"dev":"tsc --watch","test":"bun test","build":"tsc && shx chmod +x dist/*.js","start":"node dist/index.js","prepare":"npm run build","preinstall":"./setup.sh","test:watch":"bun test --watch"},"_npmUser":{"name":"zereight","email":"definedable@gmail.com"},"_npmVersion":"10.8.1","description":"MCP Markdownify Server - Model Context Protocol Server for Converting Almost Anything to Markdown","directories":{},"_nodeVersion":"22.3.0","dependencies":{"zod":"^3.24.1","@modelcontextprotocol/sdk":"1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"bun":"^1.1.41","sdk":"link:@types/modelcontextprotocol/sdk","shx":"^0.3.4","ts-jest":"^29.2.5","typescript":"^5.6.2","@types/node":"^22.9.3"},"_npmOperationalInternal":{"tmp":"tmp/mcp-markdownify-server_0.0.1_1739998614802_0.6745969016325146","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"mcp-markdownify-server","version":"1.0.0","author":{"url":"@zachcaceres | zach.dev","name":"@zcaceres"},"license":"MIT","_id":"mcp-markdownify-server@1.0.0","maintainers":[{"name":"zachcaceres","email":"npm@zach.dev"},{"name":"zereight","email":"definedable@gmail.com"}],"homepage":"https://github.com/zcaceres/markdownify-mcp","bugs":{"url":"https://github.com/zcaceres/markdownify-mcp/issues"},"bin":{"mcp-markdownify-server":"dist/index.js"},"dist":{"shasum":"c52c1e0deef621f7a9f561e835e5b5fe348d65fc","tarball":"https://registry.npmjs.org/mcp-markdownify-server/-/mcp-markdownify-server-1.0.0.tgz","fileCount":12,"integrity":"sha512-wKjS1Qzwnt0fihl8A9FGLkHmpsPrMK+7+60yWaJFPLiE+lQwBFW0tW/KXsSFSNLjk06XZ+ACkCOZKQcGxJvM4g==","signatures":[{"sig":"MEUCIQCAQ2lT2I5P4kGeSprL3ZRMkUhocRlnPOxh2Rx3M0X7cwIgClsNlj9CuFCg03JGJhNNqpyyjLNriEqB3+G2CeYFW1Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25341},"type":"module","gitHead":"5d37dc6b5baad875c37976cbf384edb119bc2f55","scripts":{"dev":"tsc --watch","test":"bun test","build":"tsc && chmod +x dist/*.js","start":"bun dist/index.js","preinstall":"node preinstall.js","test:watch":"bun test --watch","prepublishOnly":"bun run build"},"_npmUser":{"name":"zachcaceres","email":"npm@zach.dev"},"_npmVersion":"10.9.4","description":"MCP Markdownify Server - Model Context Protocol Server for Converting Almost Anything to Markdown","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","repomix":"^1.12.0","private-ip":"^3.0.2","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^25.3.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp-markdownify-server_1.0.0_1773079059903_0.5188496345363356","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"mcp-markdownify-server","version":"1.0.4","author":{"url":"@zachcaceres | zach.dev","name":"@zcaceres"},"license":"MIT","_id":"mcp-markdownify-server@1.0.4","maintainers":[{"name":"zachcaceres","email":"npm@zach.dev"},{"name":"zereight","email":"definedable@gmail.com"}],"homepage":"https://github.com/zcaceres/markdownify-mcp","bugs":{"url":"https://github.com/zcaceres/markdownify-mcp/issues"},"bin":{"mcp-markdownify-server":"dist/index.js"},"dist":{"shasum":"895b5c8ea8bc31d1df3bbb977c175d19516e0672","tarball":"https://registry.npmjs.org/mcp-markdownify-server/-/mcp-markdownify-server-1.0.4.tgz","fileCount":11,"integrity":"sha512-vwJR2acACTIBZixUq4MF3I/05zvbVEKmXAmlDh5J38qmgKjve7yJJiVLoPg6JLpobbeUiIhOgoX7qvsnzJZF0w==","signatures":[{"sig":"MEUCIQCt2WeoCHPV7IKPQxBFSNrsx4SnOkftv6WEbkd6MC7hlwIgbUkcTyDulVPVdhUwv+8lO0MFgH6KyLSxIzNNOMXZR0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23861},"type":"module","gitHead":"f8958408d06d0c538aba214204a5fe58516fa04c","scripts":{"dev":"tsc --watch","test":"bun test","build":"tsc && chmod +x dist/*.js","start":"bun dist/index.js","preinstall":"node preinstall.js","test:watch":"bun test --watch","prepublishOnly":"bun run build"},"_npmUser":{"name":"zachcaceres","email":"npm@zach.dev"},"_npmVersion":"10.9.4","description":"MCP Markdownify Server - Model Context Protocol Server for Converting Almost Anything to Markdown","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.3.6","repomix":"^1.12.0","private-ip":"^3.0.2","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^6.0.2","@types/node":"^25.3.5"},"_npmOperationalInternal":{"tmp":"tmp/mcp-markdownify-server_1.0.4_1776461644944_0.5407993834766265","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"mcp-markdownify-server","version":"1.1.0","description":"MCP Markdownify Server - Model Context Protocol Server for Converting Almost Anything to Markdown","license":"MIT","author":{"name":"@zcaceres","url":"@zachcaceres | zach.dev"},"homepage":"https://github.com/zcaceres/markdownify-mcp","bugs":{"url":"https://github.com/zcaceres/markdownify-mcp/issues"},"type":"module","bin":{"mcp-markdownify-server":"dist/index.js"},"scripts":{"build":"tsc && chmod +x dist/*.js","dev":"tsc --watch","preinstall":"node preinstall.js","prepublishOnly":"bun run build","start":"bun dist/index.js","test":"bun test","test:watch":"bun test --watch"},"dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","private-ip":"^3.0.2","repomix":"^1.12.0","zod":"^4.3.6"},"devDependencies":{"@types/node":"^25.3.5","typescript":"^6.0.2"},"_id":"mcp-markdownify-server@1.1.0","gitHead":"024f97cea9a94cd842c445eea4503c442c79bd71","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-gdpD87RrDAnG3P0aKf9z7TLopptzHJTBr8tZ/dS9JklPJLH7KSq6wk7YmIwE9nzC3ZVJURcg+uSpHrLuc4KFJQ==","shasum":"82973170c6988e991880a319357c6e6b33a25242","tarball":"https://registry.npmjs.org/mcp-markdownify-server/-/mcp-markdownify-server-1.1.0.tgz","fileCount":11,"unpackedSize":27350,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCjp0c6oWFAAeeHk0xLnWXMF32cKzQUaP9s3Njj0u6IlQIgdMlFRlwJWE+e2ouzz1U735PdTf+Hjbh5d6PQCzcYVI8="}]},"_npmUser":{"name":"zachcaceres","email":"npm@zach.dev"},"directories":{},"maintainers":[{"name":"zachcaceres","email":"npm@zach.dev"},{"name":"zereight","email":"definedable@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-markdownify-server_1.1.0_1777669654344_0.4756069612978353"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-19T20:56:54.801Z","modified":"2026-05-01T21:07:34.596Z","0.0.1":"2025-02-19T20:56:54.965Z","1.0.0":"2026-03-09T17:57:40.055Z","1.0.4":"2026-04-17T21:34:05.071Z","1.1.0":"2026-05-01T21:07:34.491Z"},"bugs":{"url":"https://github.com/zcaceres/markdownify-mcp/issues"},"author":{"name":"@zcaceres","url":"@zachcaceres | zach.dev"},"license":"MIT","homepage":"https://github.com/zcaceres/markdownify-mcp","description":"MCP Markdownify Server - Model Context Protocol Server for Converting Almost Anything to Markdown","maintainers":[{"name":"zachcaceres","email":"npm@zach.dev"},{"name":"zereight","email":"definedable@gmail.com"}],"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<a href=\"https://glama.ai/mcp/servers/bn5q4b0ett\"><img width=\"380\" height=\"200\" src=\"https://glama.ai/mcp/servers/bn5q4b0ett/badge\" alt=\"Markdownify Server MCP server\" /></a>\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` | `<project>/.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` | `<project>/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","readmeFilename":"README.md"}