|
|
hace 5 meses | |
|---|---|---|
| .. | ||
| src | hace 5 meses | |
| .env.example | hace 5 meses | |
| .gitignore | hace 5 meses | |
| DOCKER_README.md | hace 5 meses | |
| Dockerfile | hace 5 meses | |
| README.md | hace 5 meses | |
| docker-compose.yml | hace 5 meses | |
| pyproject.toml | hace 5 meses | |
这个项目提供了一个 MinerU MCP 服务器 (mineru-mcp),它基于 FastMCP 框架构建。其主要功能是作为 MinerU API 的接口,用于将文档转换为 Markdown格式。
该服务器通过 MCP 协议公开了以下主要工具:
parse_documents:统一接口,支持处理本地文件和URL,自动根据配置选择最合适的处理方式,并自动读取转换后的内容get_ocr_languages:获取OCR支持的语言列表这使得其他应用程序或 MCP 客户端能够轻松地集成 MinerU 的 文档 到 Markdown 转换功能。
在开始安装之前,请确保您的系统满足以下基本要求:
如果你的包已发布到 PyPI 或其他 Python 包索引,可以直接使用 pip 安装:
pip install mineru-mcp==1.0.0
目前版本:1.0.0
这种方式适用于不需要修改源代码的普通用户。
如果你需要修改源代码或进行开发,可以从源码安装。
克隆仓库并进入项目目录:
git clone <repository-url> # 替换为你的仓库 URL
cd mineru-mcp
推荐使用 uv 或 pip 配合虚拟环境进行安装:
使用 uv (推荐):
# 安装 uv (如果尚未安装)
# pip install uv
# 创建并激活虚拟环境
uv venv
# Linux/macOS
source .venv/bin/activate
# Windows
# .venv\\Scripts\\activate
# 安装依赖和项目
uv pip install -e .
使用 pip:
# 创建并激活虚拟环境
python -m venv .venv
# Linux/macOS
source .venv/bin/activate
# Windows
# .venv\\Scripts\\activate
# 安装依赖和项目
pip install -e .
本项目支持通过环境变量进行配置。你可以选择直接设置系统环境变量,或者在项目根目录创建 .env 文件(参考 .env.example 模板)。
| 环境变量 | 说明 | 默认值 |
|---|---|---|
MINERU_API_BASE |
MinerU 远程 API 的基础 URL | https://mineru.net |
MINERU_API_KEY |
MinerU API 密钥,需要从官网申请 | - |
OUTPUT_DIR |
转换后文件的保存路径 | ./downloads |
USE_LOCAL_API |
是否使用本地 API 进行解析 | false |
LOCAL_MINERU_API_BASE |
本地 API 的基础 URL(当 USE_LOCAL_API=true 时有效) |
http://localhost:8080 |
本项目支持两种 API 模式:
USE_LOCAL_API=true 时生效。要获取 MINERU_API_KEY,请访问 MinerU 官网 注册账号并申请 API 密钥。
本项目通过 MCP 协议提供以下工具:
USE_LOCAL_API 配置自动选择合适的处理方式,并自动读取转换后的文件内容| 参数 | 类型 | 说明 | 默认值 | 适用模式 |
|---|---|---|---|---|
file_sources |
字符串 | 文件路径或URL,多个可用逗号或换行符分隔 (支持pdf、ppt、pptx、doc、docx以及图片格式jpg、jpeg、png) | - | 全部 |
enable_ocr |
布尔值 | 是否启用 OCR 功能 | false |
全部 |
language |
字符串 | 文档语言,默认"ch"中文,可选"en"英文等 | ch |
全部 |
page_ranges |
字符串 (可选) | 指定页码范围,格式为逗号分隔的字符串。例如:"2,4-6":表示选取第2页、第4页至第6页;"2--2":表示从第2页一直选取到倒数第二页。(远程API) | None |
远程API |
注意:
- 当
USE_LOCAL_API=true时,如果提供了URL,这些URL会被过滤掉,只处理本地文件路径- 当
USE_LOCAL_API=false时,会同时处理URL和本地文件路径
无需参数
你可以在任何支持 MCP 协议的客户端中使用 MinerU MCP 服务器。
将 MinerU MCP 服务器配置为 Claude 的工具,即可在 Claude 中直接使用文档转 Markdown 功能。配置工具时详情请参考 MCP 工具配置文档。根据不同的安装和使用场景,你可以选择以下两种配置方式:
如果你是从源码安装并运行 MinerU MCP,可以使用以下配置。这种方式适合你需要修改源码或者进行开发调试的场景:
{
"mcpServers": {
"mineru-mcp": {
"command": "uv",
"args": ["--directory", "/Users/adrianwang/Documents/minerU-mcp", "run", "-m", "mineru.cli"],
"env": {
"MINERU_API_BASE": "https://mineru.net",
"MINERU_API_KEY": "ey...",
"OUTPUT_DIR": "./downloads",
"USE_LOCAL_API": "true",
"LOCAL_MINERU_API_BASE": "http://localhost:8080"
}
}
}
}
这种配置的特点:
uv 命令--directory 参数指定源码所在目录-m mineru.cli 运行模块如果你是通过 pip 或 uv 安装了 mineru-mcp 包,可以使用以下更简洁的配置。这种方式适合生产环境或日常使用:
{
"mcpServers": {
"mineru-mcp": {
"command": "uvx",
"args": ["mineru-mcp"],
"env": {
"MINERU_API_BASE": "https://mineru.net",
"MINERU_API_KEY": "ey...",
"OUTPUT_DIR": "./downloads",
"USE_LOCAL_API": "true",
"LOCAL_MINERU_API_BASE": "http://localhost:8080"
}
}
}
}
这种配置的特点:
uvx 命令直接运行已安装的包from fastmcp import FastMCP
# 初始化 FastMCP 客户端
client = FastMCP(server_url="http://localhost:8001")
# 使用 parse_documents 工具处理单个文档
result = await client.tool_call(
tool_name="parse_documents",
params={"file_sources": "/path/to/document.pdf"}
)
# 混合处理URLs和本地文件
result = await client.tool_call(
tool_name="parse_documents",
params={"file_sources": "/path/to/file.pdf, https://example.com/document.pdf"}
)
# 启用OCR
result = await client.tool_call(
tool_name="parse_documents",
params={"file_sources": "/path/to/file.pdf", "enable_ocr": True}
)
你可以通过设置环境变量并直接运行命令的方式启动 MinerU MCP 服务器,这种方式特别适合快速测试和开发环境。
首先,确保设置了必要的环境变量。你可以通过创建 .env 文件(参考 .env.example)或直接在命令行中设置:
# Linux/macOS
export MINERU_API_BASE="https://mineru.net"
export MINERU_API_KEY="your-api-key"
export OUTPUT_DIR="./downloads"
export USE_LOCAL_API="true" # 可选,如果需要本地解析
export LOCAL_MINERU_API_BASE="http://localhost:8080" # 可选,如果启用本地 API
# Windows
set MINERU_API_BASE=https://mineru.net
set MINERU_API_KEY=your-api-key
set OUTPUT_DIR=./downloads
set USE_LOCAL_API=true
set LOCAL_MINERU_API_BASE=http://localhost:8080
使用以下命令启动 MinerU MCP 服务器,支持多种传输模式:
SSE 传输模式:
uv run mineru-mcp --transport sse
Streamable HTTP 传输模式:
uv run mineru-mcp --transport streamable-http
或者,如果你使用全局安装:
mineru-mcp --transport sse
# 或
mineru-mcp --transport streamable-http
服务默认在 http://localhost:8001 启动,使用的传输协议取决于你指定的 --transport 参数。
注意:不同传输模式使用不同的路由路径:
- SSE 模式:
/sse(例如:http://localhost:8001/sse)- Streamable HTTP 模式:
/mcp(例如:http://localhost:8001/mcp)
本项目支持使用 Docker 进行部署,使你能在任何支持 Docker 的环境中快速启动 MinerU MCP 服务器。
.env.example 文件为 .env,并根据你的需求修改环境变量运行以下命令启动服务:
docker-compose up -d
服务默认会在 http://localhost:8001 启动。
如果需要手动构建 Docker 镜像,可以使用以下命令:
docker build -t mineru-mcp:latest .
然后启动容器:
docker run -p 8001:8001 --env-file .env mineru-mcp:latest
更多 Docker 相关信息,请参考 DOCKER_README.md 文件。
问题:无法连接 MinerU API 或返回 401 错误。
解决方案:检查你的 API 密钥是否正确设置。在 .env 文件中确保 MINERU_API_KEY 环境变量包含有效的密钥。
问题:如何正确地停止 MinerU MCP 服务?
解决方案:服务运行时,可以通过按 Ctrl+C 来优雅地退出。系统会自动处理正在进行的操作,并确保所有资源得到正确释放。如果一次 Ctrl+C 没有响应,可以再次按下 Ctrl+C 强制退出。
问题:使用 parse_documents 工具处理本地文件时报找不到文件错误。
解决方案:请确保使用绝对路径,或者相对于服务器运行目录的正确相对路径。
问题:调用 parse_documents 工具时出现 Error calling tool 'parse_documents': MCP error -32001: Request timed out 错误。
解决方案:这个问题常见于处理大型文档或网络不稳定的情况。在某些 MCP 客户端(如 Cursor)中,超时后可能导致无法再次调用 MCP 服务,需要重启客户端。最新版本的 Cursor 中可能会显示正在调用 MCP,但实际上没有真正调用成功。建议: