MCP Document Reader — Claude Code MCP server: read PDF, DOCX, Excel
Gives your agent a way to open PDF, DOCX, Excel and TXT files from disk. Handy when the answer sits inside someone else's report or spreadsheet.
claude mcp add mcp-documents-reader -- uvx mcp-documents-readerWhat MCP Document Reader does
One tool, read_document, takes a filename — absolute or relative — and returns the text. The extension decides which reader runs: python-docx handles DOCX, pypdf handles PDF, openpyxl handles Excel, and TXT is read as plain text. Your agent does not have to care about the format.
Behind the tool sit four readers under a shared DocumentReaderFactory. You can call the same code from your own Python project: check is_supported, then read. The server runs through uvx, so uv has to be on the machine before you register it, and Python 3.10+ is the floor.
Access follows the file system: the server reads whatever its own process can reach. A scanned PDF is a dead end, because pypdf pulls the text layer and nothing else. You would need another tool for OCR, and that is a limit of the library rather than a config switch.
What it helps with
- pull the key terms out of a PDF contract
- find specific cells in a spreadsheet you did not write
- get the text from a DOCX without copy-paste
- cross-check numbers in a table against a written report
- load a local TXT file into the agent's context
Example prompts for the agent
- Read
report.pdfand summarise the main findings - Open
budget.xlsxand show which rows run over plan - Extract the termination clauses from
contract.docx
How to install MCP Document Reader
Platform CLI
claude mcp add mcp-documents-reader -- uvx mcp-documents-readeruvx runs the command named after the package; if the README names another one, use uvx --from mcp-documents-reader <command>
Platform CLI
codex mcp add mcp-document-reader -- uvx mcp-documents-readeruvx runs the command named after the package; if the README names another one, use uvx --from mcp-documents-reader <command>
Config file
{
"mcpServers": {
"mcp-document-reader": {
"command": "uvx",
"args": [
"mcp-documents-reader"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from mcp-documents-reader <command>
Config file
{
"servers": {
"mcp-document-reader": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-documents-reader"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from mcp-documents-reader <command>
Platform CLI
gemini mcp add mcp-document-reader uvx mcp-documents-readeruvx runs the command named after the package; if the README names another one, use uvx --from mcp-documents-reader <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about MCP Document Reader
How do I install MCP Document Reader in Claude Code?
Run claude mcp add mcp-documents-reader -- uvx mcp-documents-reader. The server shows up in your MCP list, and the read_document tool becomes available to the agent.
What does MCP Document Reader do?
It exposes a read_document tool that takes a file path and returns the text. PDF, DOCX, XLSX/XLS and TXT are supported.
Which files will it fail on?
PDFs with no text layer, such as scans or photos of pages. Text extraction for PDF goes through pypdf, which does not do image recognition.