Document Reading and Converter Tool
Enables the conversion of PDF and DOCX files into Markdown and the conversion of Markdown documents back into PDF and DOCX formats.
Click on "Deploy 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., "@Document Reading and Converter ToolConvert project_proposal.pdf to markdown so I can read it"
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.
Document Reading and Converter Tool
The goal is to have a tool that can read and edit files, using Cursor or Claude Desktop.
The filesystem MCP already allows reading, writing and editing documents, but is limited in that it cannot:
Read pdfs or docx files
Reads the full document, which can cause context overflow
To address these issues, we create:
A fresh
doc-reading-mcpmcp service allowing for document conversions between pdf, docx and markdown.
Features
PDF to Markdown conversion using marker-pdf
DOCX to Markdown conversion using pandoc
Markdown to DOCX conversion using pandoc
Markdown to PDF conversion using pandoc
Related MCP server: mcp-document-converter
Prerequisites
Python 3.10 or higher
[pandoc] (https://pandoc.org/installing.html) installed on your system
[uv] (https://docs.astral.sh/uv/) for Python package management
Installation
uv add doc-reading-mcpOr install directly from the source:
uv add git+https://github.com/mffrydman/doc-reading-mcp.gitUsage
Run as a standalone server
uv run mcp install -m doc_reading_mcpOr run directly:
uv run -m doc_reading_mcpUse with MCP Inspector
npx @modelcontextprotocol/inspector uvx run -m doc_reading_mcpConfigure in Claude Desktop, Cursor or Windsurf
Add this to your MCP Configuration:
{
"mcpServers": {
"doc-reading-mcp": {
"command": "uvx",
"args": [
"doc-reading-mcp",
]
}
}
}Run in Cursor/Windsurf/Claude using the following configuration:
"doc-reading-mcp": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/mffrydman/doc-reading-mcp",
"run",
"-m",
"doc_reading_mcp"
]
}Replace
/absolute/path/to/with the actual path on your system.
Available Tools
1 toolconvert_documentA
Convert a document between different formats
Args: input_path (str): Absolute path to the input document output_format (OutputFormat): Target format to convert to. One of: "pdf", "docx" or "md"
Returns: str: A message indicating success or failure of the conversion
Notes: This tool is especially useful as a conversion step to make PDF and DOCX files readable in plain text format by converting them to Markdown. This enables easier processing, analysis and interaction with the content of these document formats.
For conversions to PDF or DOCX, the file is saved in the same directory as the input file,
with the same filename but with the extension changed to match the ouput format.
For conversions to Markdown, the markdown file and any images extracted are placed in a folder
that has the same name as the original file (without extension). The markdown file itself
will have the same name as the original file but with the .md extension.
For example:
- Converting /path/to/document.pdf to docx will save as /path/to/document.docx
- Converting /path/to/document.pdf to md will create a folder /path/to/document/
containing document.md and any extracted images
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| output_format | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the output format and folder creation for markdown conversions, which is helpful. However, it does not explicitly mention whether existing output files are overwritten or if the source file is modified, leaving minor side-effect ambiguity. Since no annotations are provided, these details are solely the description's responsibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear breakdown of the arguments, returns, and notes. The use of bullet examples enhances readability without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, annotations, and sibling tools, the description provides sufficient context for an agent: it covers what the tool does, its inputs, and the expected output behavior. No critical information seems missing for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are well explained: input_path is specified as an absolute path, and output_format is defined with the allowed enum values and their distinct effects. The description adds practical details like the folder structure for md output, enriching the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: converting a document between formats (pdf, docx, md). It includes concrete examples showing input and output, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Although no sibling tools are provided, the description implicitly guides when to use the tool (when conversion is needed) and explains the specific behavior for each output format. The examples effectively demonstrate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
convert_document
TDQS
Scored across 1 tool
Only one tool exists, so there is no risk of confusing it with other tools.
The single tool uses a clear verb_noun convention ('convert_document').
The server name implies both reading and conversion, but only one conversion tool is provided, making the surface too thin.
No reading or retrieval tool is exposed despite the server's stated purpose, leaving a significant gap for document-reading workflows.
Maintenance
Related MCP Connectors
Convert PDF, DOCX, HTML, and URLs to clean, LLM-ready markdown with tables preserved
Convert documents and web pages to clean Markdown: PDF, DOCX, XLSX, EPUB, scanned files, any URL.
- mcpOAuthcom.mdtidy
Clean, repair, and convert AI-generated Markdown to HTML/PDF/DOCX/PNG; save and share documents.
High-fidelity PDF to structured Markdown conversion and document field extraction.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables document conversion between various formats (Markdown, DOCX, HTML, PDF, etc.) using Pandoc, allowing AI agents to request conversions via natural language.7-
- AlicenseAqualityCmaintenanceConverts documents between multiple formats (Markdown, HTML, DOCX, PDF, Text) enabling AI agents to easily transform documents.312MIT
- AlicenseAqualityCmaintenanceConverts documents between Markdown, PDF, DOCX, and HTML locally with AI-friendly Markdown output and secure file access.69 npmMIT
- AlicenseAqualityBmaintenanceAutomatically converts PDF, DOCX, XLSX, and CSV files to clean markdown when read by Claude Code, reducing token usage by up to 98%.17 npmMIT