mcp-server-anydoc
The mcp-server-anydoc enables coding agents to convert office documents (PDF, Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV) into GitHub-Flavored Markdown directly on the local machine, with no API key or cloud upload required.
convert_document: Convert a file by path, with an optional
output_pathto save large Markdown results.convert_base64: Convert document content provided as a Base64 string, useful when no filesystem path is available.
list_formats: Show all supported document formats.
All conversions run locally, ensuring privacy, and target text-based content; the server does not perform OCR on image-only or scanned PDFs. It is designed for agent workflows (e.g., Claude Code, Cursor) that need to read office files from a project’s filesystem.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-anydocConvert the file ./docs/spec.docx to Markdown"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
What is mcp-server-anydoc?
mcp-server-anydoc is a local Model Context Protocol server that turns office documents on disk into GitHub-Flavored Markdown using anydoc. No API key. Conversion runs on your machine. Built for coding agents (Claude Code, Cursor, VS Code Copilot) that need to read .docx, .pptx, .xlsx, and PDFs inside a project - not for replacing “drop one PDF into chat.”
Related MCP server: Markitdown MCP Server
Why not just attach a PDF in chat?
Attaching a file in Claude chat is fine for a one-off human question. It fails for agent workflows:
Situation | Chat attach | This MCP |
One PDF you paste into Claude.ai | Usually enough | Overkill |
| Agent | Converts on demand |
“Convert every file under | Manual hell | Tool loop + |
Large deck / long report | Attach limits and context spam | Write |
Avoid uploading to a third-party parse API | N/A | Local anydoc, no Firecrawl key |
Privacy note: conversion is local. The Markdown still enters the model context when the agent uses it. The win vs cloud parse APIs is “no third-party upload / no API key,” not “Claude never sees the text.”
When should I use it?
Use mcp-server-anydoc when:
A coding agent needs the contents of an office file already on disk
You want batch convert → Markdown files in the repo
You want structured tools (
convert_document) instead of fragile shell promptsYou do not want a hosted document-parse API key
Skip it when you only need to ask Claude about one attached PDF in the chat UI.
One-click install
Cursor
Opens Cursor and prompts to add the server (runs via npx from this GitHub repo).
VS Code (Copilot MCP)
Claude Code
claude mcp add anydoc -- npx -y mcp-server-anydocOptional skill (teaches when to convert):
npx skills add ofershap/mcp-server-anydocPlugin (MCP + skill together):
/plugin marketplace add ofershap/mcp-server-anydoc
/plugin install anydoc@ofershap-anydocAsk your agent to install it
Paste this into Claude Code or Cursor:
Add the local MCP server mcp-server-anydoc so you can convert PDF/Word/Excel/PowerPoint files on disk to Markdown.
Run:
claude mcp add anydoc -- npx -y mcp-server-anydoc
Or write this to MCP config:
{
"mcpServers": {
"anydoc": {
"command": "npx",
"args": ["-y", "mcp-server-anydoc"]
}
}
}
Then convert ./path/to/file.docx with the convert_document tool and summarize it.
Repo: https://github.com/ofershap/mcp-server-anydocManual JSON (any MCP client)
{
"mcpServers": {
"anydoc": {
"command": "npx",
"args": ["-y", "mcp-server-anydoc"]
}
}
}Agent Plugins
This repo ships as an Agent Plugins 1.0.0 package: root plugin.json, mcp.json, and skills/local-doc-to-markdown/ teach agents when to convert office files on disk.
Claude Code .claude-plugin/ manifests remain for marketplace installs. Agent Plugins is the cross-client layout (MCP + skills in one tree).
Cursor (local plugin): clone the repo, then copy or symlink it to ~/.cursor/plugins/local/mcp-server-anydoc and reload the window. One-click MCP buttons below still work if you only want the server without the skill bundle.
Spec and tooling: agent-plugins.org.
Tools
Tool | What it does |
| Path on disk → Markdown (optional |
| Base64 bytes → Markdown when you have no path |
| Supported extensions |
Supported inputs include .pdf, .doc/.docx, .ppt/.pptx, .xls/.xlsx, OpenDocument, RTF, EPUB, CSV.
Not OCR. Scanned image-only PDFs fail. Text-based documents are the target.
Example prompts
“Convert
./docs/msa.docxand list the termination clauses.”“Turn every
.pptxunder./decks/into.mdbeside the original.”“
convert_documentonbudget.xlsxwithoutput_path./budget.md, then summarize sheet risks.”
How it compares
Chat attach | Firecrawl | MarkItDown MCP | mcp-server-anydoc | |
Best for | One-off human Q&A | Hosted parse + OCR options | Broad local convert (Python) | Agent + office files on disk |
API key | No | Usually yes | No | No |
Runs locally | N/A | Often uploads | Yes | Yes |
Claude Code skill | N/A | Separate / CLI | Limited | Ships in-repo |
Install | Drag file |
|
| One-click / |
Engine: anydoc (Rust, MIT) via @firecrawl/anydoc.
FAQ
Do I need this if I can attach a PDF in chat?
For a one-off question about one PDF in the chat UI, attaching is enough. Use this MCP when a coding agent must read .docx, .pptx, .xlsx, or PDFs from the repo, batch-convert folders, or write Markdown to disk without manual uploads.
Agent Plugins vs MCP-only install?
MCP-only (one-click Cursor/VS Code or mcp.json) gives you convert_document and friends. The Agent Plugins package adds plugin.json plus the local-doc-to-markdown skill so agents know when to convert instead of guessing. Same npx server either way.
Is OCR supported?
No. Scanned or image-only PDFs fail. anydoc targets text-based office documents and PDFs. Use an OCR pipeline elsewhere, then convert the result if needed.
Where does my document go? (privacy)
Conversion runs locally via anydoc. Nothing is sent to a document-parse SaaS and no API key is required. Converted Markdown still enters the model context when the agent reads it, same as any tool output.
Which clients work?
Any MCP client over stdio: Cursor, VS Code Copilot MCP, Claude Code, Claude Desktop, Windsurf, and others. Claude Code can also use the marketplace plugin; Cursor can load the repo from ~/.cursor/plugins/local/mcp-server-anydoc.
Tech stack
Runtime | Node 20+ |
Language | TypeScript (strict) |
Engine | anydoc ( |
Protocol | MCP stdio |
Tests | Vitest |
Development
git clone https://github.com/ofershap/mcp-server-anydoc.git
cd mcp-server-anydoc
npm install
npm test
npm run buildContributing
See CONTRIBUTING.md. Run claude plugin validate . before changing plugin manifests.
Author
If this helped, star the repo or open an issue.
License
Powered by anydoc (MIT) from Firecrawl.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA Model Context Protocol server that converts various file formats (PDF, PowerPoint, Word, Excel, Images, etc.) to Markdown to make them accessible to LLMs.1MIT
- Flicense-qualityDmaintenanceConverts documents (PDF, DOCX, images, etc.) to Markdown using Microsoft's Markitdown library, with no local setup required. Integrates with AI agents via MCP for seamless document conversion.1
- Alicense-qualityDmaintenanceA Model Context Protocol server that converts documents (PDF, DOCX, HTML, etc.) to Markdown, enabling AI agents to ingest and understand document content.MIT
- FlicenseAqualityCmaintenanceConverts files (PDF, DOCX, PPTX, XLSX, images via OCR) and URLs to Markdown, enabling AI clients to read them via a single MCP tool.1
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Use your own Word templates to convert Markdown → DOCX/PDF/HTML from any MCP-compatible AI.
Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ofershap/mcp-server-anydoc'
If you have feedback or need assistance with the MCP directory API, please join our Discord server