mcp-pdf2md
by FutureUnreal
Verified
# MCP-PDF2MD 服务
基于MCP协议的高性能PDF转Markdown服务,由MinerU API提供支持,支持批量处理本地文件和URL链接,提供结构化输出。
## 主要特性
- 格式转换:将PDF文件转换为结构化Markdown格式。
- 多源支持:处理本地PDF文件和URL链接。
- 智能处理:自动选择最佳处理方法。
- 批量处理:支持多文件批量转换,高效处理大量PDF文件。
- MCP集成:与Claude Desktop等LLM客户端无缝集成。
- 结构保留:保留原始文档的结构,包括标题、段落、列表等。
- 智能排版:输出人类可读顺序的文本,适用于单栏、多栏和复杂布局。
- 公式转换:自动识别并将文档中的公式转换为LaTeX格式。
- 表格提取:自动识别并将文档中的表格转换为结构化格式。
- 清理优化:移除页眉、页脚、脚注、页码等,确保语义连贯性。
## 系统要求
- 软件:Python 3.10+
## 快速开始
1. 克隆仓库并进入目录:
```bash
git clone https://github.com/FutureUnreal/mcp-pdf2md.git
cd mcp-pdf2md
```
2. 创建虚拟环境并安装依赖:
**Linux/macOS**:
```bash
uv venv
source .venv/bin/activate
uv pip install -e .
```
**Windows**:
```bash
uv venv
.venv\Scripts\activate
uv pip install -e .
```
3. 配置环境变量:
在项目根目录创建`.env`文件,并设置以下环境变量:
```
MINERU_API_BASE=https://mineru.net/api/v4/extract/task
MINERU_BATCH_API=https://mineru.net/api/v4/extract/task/batch
MINERU_BATCH_RESULTS_API=https://mineru.net/api/v4/extract-results/batch
MINERU_API_KEY=your_api_key_here
```
4. 启动服务:
```bash
uv run pdf2md
```
## Claude Desktop 配置
在Claude Desktop中添加以下配置:
**Windows**:
```json
{
"mcpServers": {
"pdf2md": {
"command": "uv",
"args": [
"--directory",
"C:\\path\\to\\mcp-pdf2md",
"run",
"pdf2md",
"--output-dir",
"C:\\path\\to\\output"
],
"env": {
"MINERU_API_KEY": "your_api_key_here"
}
}
}
}
```
**Linux/macOS**:
```json
{
"mcpServers": {
"pdf2md": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-pdf2md",
"run",
"pdf2md",
"--output-dir",
"/path/to/output"
],
"env": {
"MINERU_API_KEY": "your_api_key_here"
}
}
}
}
```
**关于API密钥配置的说明:**
您可以通过两种方式设置API密钥:
1. 在项目目录中的`.env`文件中(推荐用于开发环境)
2. 在Claude Desktop配置中,如上所示(推荐用于日常使用)
如果您在两个地方都设置了API密钥,Claude Desktop配置中的密钥将优先生效。
## MCP工具
服务器提供以下MCP工具:
- **convert_pdf_url**:将PDF URL转换为Markdown
- **convert_pdf_file**:将本地PDF文件转换为Markdown
## 获取MinerU API密钥
本项目依赖MinerU API进行PDF内容提取。获取API密钥的步骤如下:
1. 访问[MinerU官网](https://mineru.net/)并注册账户
2. 登录后,需要在[此链接](https://mineru.net/apiManage/docs?openApplyModal=true)向MinerU团队申请API测试资格
3. 申请获批后,您才能访问[API管理](https://mineru.net/apiManage/token)页面
4. 按照提供的说明生成您的API密钥
5. 复制生成的API密钥
6. 将这个完整的字符串作为`MINERU_API_KEY`的值
请注意,目前MinerU API的访问权限还处于测试阶段,需要获得MinerU团队的批准。审批过程可能需要一些时间,请提前规划。
## 效果展示
### 输入PDF

### 输出Markdown

## 许可证
MIT许可证 - 详见LICENSE文件。
## 致谢
本项目基于[MinerU](https://github.com/opendatalab/MinerU/tree/master)的API。