PDF to Markdown MCP Server
使用 DeepSeek-OCR 将 PDF 文件转换为 Markdown 格式的 MCP (Model Context Protocol) 服务。
功能特性
- pdf_to_markdown: 将 PDF 转换为 Markdown(图片只保留链接,不解析内容)
- augment_markdown_images: 对 Markdown 中的图片链接添加 OCR 解析内容
- pdf_to_markdown_full: 一站式完成 PDF 转 Markdown 并增强图片解析
安装
1. 创建虚拟环境
cd mcp-server-pdf_to_markdown
uv venv
source .venv/bin/activate # Linux/Mac
# 或 .venv\Scripts\activate # Windows
2. 安装依赖
uv add mcp openai openai-agents pydantic python-dotenv
uv add torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0 --find-links https://download.pytorch.org/whl/cu118
uv add vllm==0.8.5
uv add PyMuPDF img2pdf einops easydict addict Pillow numpy tqdm
uv add flash-attn==2.7.3 --no-build-isolation
3. 安装项目
uv pip install -e .
使用方法
命令行运行
# 使用默认配置
mcp-server-pdf-to-markdown
# 指定 GPU
mcp-server-pdf-to-markdown --gpu_id 0
# 指定模型路径
mcp-server-pdf-to-markdown --model_path /path/to/DeepSeek-OCR
MCP Inspector 测试
npx -y @modelcontextprotocol/inspector uv run mcp-server-pdf-to-markdown
在 Cherry Studio 中添加
名称: mcp-server-pdf-to-markdown
命令: uvx
参数:
mcp-server-pdf-to-markdown
MCP 工具说明
1. pdf_to_markdown
将 PDF 文件转换为 Markdown 格式。
参数:
pdf_path(str): PDF 文件的完整路径output_dir(str): 输出目录的完整路径gpu_id(str, 可选): 使用的 GPU ID,默认 "0"
返回:
success: 是否成功markdown_path: 生成的 Markdown 文件路径images_dir: 图片保存目录page_count: 处理的页数
2. augment_markdown_images
为 Markdown 文件中的图片链接添加 OCR 解析内容。
参数:
markdown_path(str): 输入的 Markdown 文件路径output_path(str, 可选): 输出文件路径image_root(str, 可选): 图片根目录cache_json(str, 可选): 缓存文件路径gpu_id(str, 可选): 使用的 GPU ID
返回:
success: 是否成功output_path: 输出文件路径images_processed: 处理的图片数量
3. pdf_to_markdown_full
一站式将 PDF 转换为 Markdown 并解析图片内容。
参数:
pdf_path(str): PDF 文件的完整路径output_dir(str): 输出目录的完整路径augment_images(bool, 可选): 是否解析图片内容,默认 Truecache_json(str, 可选): 图片解析缓存文件路径gpu_id(str, 可选): 使用的 GPU ID
返回:
success: 是否成功markdown_path: 基础 Markdown 文件路径augmented_path: 增强后的 Markdown 文件路径images_dir: 图片保存目录page_count: 处理的页数images_processed: 解析的图片数量
模型要求
本服务需要 DeepSeek-OCR 模型,默认路径为:
/home/ad/tianhaoyang/vllm_model/deepseek-ai/DeepSeek-OCR
可以通过 --model_path 参数指定自定义路径。
示例输出
转换后的 Markdown 文件结构:
# 文档标题
正文内容...

*图片标题*
<details><summary>图片解析</summary>
- 图片内容要点1
- 图片内容要点2
- 图片内容要点3
</details>
<--- Page 1 --->
下一页内容...
许可证
MIT License
Metadata
Release files for mcp-server-pdf-to-markdown 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_server_pdf_to_markdown-0.2.0.tar.gz | 34.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_server_pdf_to_markdown-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 75.0 kB
Release files / mcp_server_pdf_to_markdown-0.2.0.tar.gz
| Download URL | mcp_server_pdf_to_markdown-0.2.0.tar.gz |
|---|---|
| Size | 34.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fe5edd6fe30b839720fb95d9f751cd7110e6b86eb79e867d03a5714c6d3b173c
|
|
BLAKE2b-256 checksum How to use checksums |
b5ae2412231290509880057658fda91c916e412dfe56a36edc115c010681da74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|
Release files / mcp_server_pdf_to_markdown-0.2.0-py3-none-any.whl
| Download URL | mcp_server_pdf_to_markdown-0.2.0-py3-none-any.whl |
|---|---|
| Size | 40.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d7701a85c465e4cf80910047f94ac78c9e106c4a2463bc9a712524672754df2f
|
|
BLAKE2b-256 checksum How to use checksums |
412b9e1d73ee3f9272d8ed3db6dafa9f6e2fc66ea45d92335fa36d785a2642e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.0
|