文档解析服务

Mineru MCP Server 是一个集成了 Mineru API 的文档解析服务器,支持单文件解析、批量文件解析、任务状态监控、多格式支持、OCR 文本识别、公式识别、表格识别和多语言支持等功能。

  • by demomagic
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 demomagic/mineru-mcp-server

使用说明

Mineru MCP服务器

模型上下文协议(MCP)文档解析服务器,与Mineru API集成,提供强大的文档解析功能。

特性

  • 单文件解析:通过URL创建文档解析任务
  • 批处理文件解析:支持多文件批量上传和解析
  • 任务状态监控:实时查询解析进度和结果
  • 多格式支持:支持PDF、DOC、DOCX、PPT、PPTX、PNG、JPG、JPEG等格式
  • OCR功能:可选OCR文本识别
  • 公式识别:支持数学公式识别
  • 表识别:支持表结构识别
  • 多语言支持:支持中文、英文和其他语言

安装

npm install

配置

在使用之前,您需要配置Mineru API密钥:

const config = {
  mineruApiKey: "your-mineru-api-bearer-token", // Mineru API Bearer token
  mineruBaseUrl: "https://mineru.net/api/v4" // Mineru API base URL
};

可用工具

1.create_parsing_task

为单个文件创建文档解析任务

参数:

  • url (必填):文件URL

  • is_ocr (可选):启用OCR,默认为false

  • enable_formula (可选):启用公式识别,默认为true

  • enable_table (可选):启用表格识别,默认为true

  • language (可选):文档语言,默认“ch”

  • page_ranges (可选):页面范围,例如“1-10、15-20”

  • model_version (可选):型号版本,“v1”或“v2”

  • extra_formats (可选):其他导出格式,[“docx”、“html”、“latex”]

2.获取任务状态

查询解析任务状态

参数:

  • task_id (必填):任务ID

3.create_batch_parsing_task

创建批处理文件上传解析任务(用于本地文件上传)

参数:

  • files (必填):文件数组,每个文件包含名称、is_ocr、page_ranges和其他属性
  • enable_formula (可选):启用公式识别
  • enable_table (可选):启用表格识别
  • language (可选):文档语言
  • model_version (可选):型号版本
  • extra_formats (可选):其他导出格式

4.create_batch_url_parsing_task

创建批处理URL解析任务(用于远程文件URL)

参数:

  • files (必填):文件数组,每个文件包含url、is_ocr、page_ranges和其他属性
  • enable_formula (可选):启用公式识别
  • enable_table (可选):启用表格识别
  • language (可选):文档语言
  • model_version (可选):型号版本
  • extra_formats (可选):其他导出格式

5.get_batch_task_results

查询批量解析任务结果(支持URL批量解析和本地上传批量解析)

参数:

  • batch_id (必填):批处理任务ID(来自create_Batch_url_parsing_task或create_Batch_parsing_task)

使用示例

单文件解析

// Create parsing task
const taskResult = await create_parsing_task({
  url: "https://example.com/document.pdf",
  is_ocr: true,
  enable_formula: true,
  language: "en"
});

// Query task status
const status = await get_task_status({
  task_id: taskResult.task_id
});

批处理文件上传解析

// Create batch upload task
const batchResult = await create_batch_parsing_task({
  files: [
    { name: "document1.pdf", is_ocr: true },
    { name: "document2.docx" }
  ],
  enable_formula: true,
  language: "ch"
});

// Query batch task results (applicable to both batch parsing methods)
const batchStatus = await get_batch_task_results({
  batch_id: batchResult.batch_id
});

批处理URL解析

// Create batch URL parsing task
const batchUrlResult = await create_batch_url_parsing_task({
  files: [
    { url: "https://example.com/doc1.pdf", is_ocr: true },
    { url: "https://example.com/doc2.docx" }
  ],
  enable_formula: true,
  language: "en"
});

// Query batch task results (applicable to both batch parsing methods)
const batchUrlStatus = await get_batch_task_results({
  batch_id: batchUrlResult.batch_id
});

发展

npm run dev

重要提示

  1. 单个文件大小不能超过200MB,页数不能超过600页
  2. 每个帐户每天有2000页最高优先级的解析配额
  3. 由于网络限制,GitHub和AWS等外部URL可能会超时
  4. 批量上传文件链接的有效期为24小时
  5. 上传文件时无需设置Content-Type标头

常见错误代码

错误代码 描述 解决方案
A0202 令牌错误 检查令牌是否正确,或用新令牌替换
A0211 令牌已过期 替换为新令牌
-500 参数错误 确保参数类型和内容类型正确
-10001 服务异常 请稍后重试
-10002 请求参数错误 检查请求参数格式
-60001 生成上传URL失败 请稍后重试
-60002 无法获取匹配的文件格式 文件类型检测失败,请确保请求的文件名和链接具有正确的扩展名,并且文件是pdf、doc、docx、ppt、pptx、png、jp(e)g之一
-60003 文件读取失败 检查文件是否损坏并重新上传
-60004 空文件 请上传有效文件
-60005 文件大小超出限制 检查文件大小,最大支持200MB
-60006 文件页数超过限制 请拆分文件并重试
-60007 型号服务暂时不可用 请稍后重试或联系技术支持
-60008 文件读取超时 检查URL是否可访问
-60009 任务提交队列已满 请稍后重试
-60010 解析失败 请稍后重试
-60011 无法获取有效文件 请确保文件已上传
-60012 未找到任务 请确保Task_id有效且未被删除
-60013 无权访问此任务 只能访问您自己提交的任务
-60014 删除正在运行的任务 正在运行的作业不支持删除
-60015 文件转换失败 可以手动转换为PDF并上传
-60016 文件转换失败 文件转换为指定格式失败,可以尝试其他格式导出或重试

许可证

国际协调委员会