MCP Apps 之后,文档解析需要一层“可点击的人审界面” MCP Apps 之后文档解析需要一层“可点击的人审界面”MCP Apps 把 Agent 工具结果从纯文本、图片和 JSON 推向可交互界面PDF 审阅、表格校验、长任务监控、审批流都可以留在对话中完成。对 RAG、企业知识库和 Sciverse 式科研数据管线来说这意味着文档解析不能只交付 Markdown而要交付可查看、可修正、可批准入库的结构化上下文。MinerU 的 OCR、版面分析、表格提取、公式识别、JSON/Markdown 输出、CLI、Open API、SDK 和 MCP Server正适合放在这层入库关口。热点背景2026 年 7 月 28 日Model Context Protocol 官方文档已进入2026-07-28版本路径并把 MCP Apps、Tasks、授权扩展、工具 schema、结构化工具结果等内容放进当前资料体系。MCP Apps 的官方说明很直接有些场景只给文本不够用户需要在对话里交互式查看数据、表单、仪表盘、富媒体和多步骤工作流。官方示例还明确把“review a PDF”列为 MCP Apps 适合的 rich media 场景。这对文档解析很关键。过去 Agent 调用解析器常见输出是 Markdown、JSON、图片或一个下载链接用户如果要确认表格是否错列、公式是否丢上下标、扫描件是否 OCR 错字需要离开对话去打开文件、比对页面、再回到知识库系统里标记状态。MCP Apps 提供了另一种方向解析器仍然通过 tools/call 工作但工具可以声明一个 UI 资源Host 在对话里渲染沙箱化 iframe用户直接在界面中查看页面、表格、公式、图注和入库状态。MinerU 官方llms.txt将 MinerU 定义为面向 LLM、RAG 和 Agent 工作流的智能文档解析平台支持把 PDF、Word、PPT、图片、HTML 等转换为 Markdown、JSON、LaTeX、HTML 等结构化数据覆盖高级表格识别、公式识别、多语言 OCR、批量处理、图像与图表提取、CLI/SDK、Open API、MCP、LangChain、LlamaIndex 等入口。llms.txt同时给出免登录 Agent API 和登录精准解析 API 的入口说明前者面向 URL 快速解析后者通过任务接口输出 Markdown/JSON/docx/html/latex并列出文件大小与页数口径。公开路径中未找到可核验的llms-full、llms-full.txt或llms-full.md资料本文仅使用已核验的llms.txt、官方 GitHub、MCP 官方文档和公开项目资料。Sciverse / SciBase 类科研数据基础设施也需要这层能力。科研 Agent 处理论文、专利、实验说明、补充材料、表格和公式时不应把未复核解析结果直接写进知识库。更稳的方式是先由 MinerU 生成元素级结构再由交互式人审界面确认关键页、关键表、关键公式和来源证据最后把accepted的元素进入 RAG、MCP 工具链或科学知识库。核心观点1. Agent 时代解析结果不能只“返回”还要能“审阅”文档解析工具返回 Markdown 是必要的但不是上线的终点。真正进入知识库之前团队还需要回答入库问题为什么不能只靠文本返回表格是否保留行列关系表头错位会直接改变事实公式是否可复核上下标、编号、变量含义会影响科研推理页面证据是否完整RAG 回答需要回到原文页码OCR 是否有关键错字金额、单位、实验指标、型号不能靠猜Agent 是否允许调用文件权限、URL、token、输出目录都要可控结果是否允许入库“解析成功”不等于“业务可用”MCP Apps 的价值在这里不是把文档解析做成漂亮页面而是把“工具调用结果 人类判断 入库状态”放在同一个交互闭环里。2. RAG 的入库对象应该是已验收的 Document Element很多 RAG 流程仍然是PDF - Markdown - chunk - embedding - vector store这个流程适合 Demo但在科研、财务、法务、医疗、企业知识库和 Agent 自动化场景里风险偏高。更稳的入库对象应该是元素级结构元素推荐保留字段人审界面要显示什么段落文本、页码、标题路径、bbox原文页、阅读顺序、页眉页脚污染表格HTML/CSV/JSON、表头、行列、单位单元格对照、跨页续表、表注公式LaTeX/MathML、编号、上下文原图局部、变量、上下标、编号图片/图表资产路径、图注、页码、关联段落图注归属、是否遗漏、是否需人工描述元数据文件哈希、解析入口、版本、参数能否复现、是否允许外发、是否过期入库状态pending/accepted/rejected谁确认、何时确认、为什么拒绝MinerU 的精准 OCR、版面还原、表格提取、公式识别、元素提取、结构化 JSON、Markdown 输出、多格式输出、批量处理、私有化部署和 MCP/Agent 接入正好给这张表提供底层数据。3. MCP Apps 让“人审”变成 Agent 工具链的一部分MCP 工具规范要求工具有名称、描述、输入 schema并支持结构化结果同时官方安全提示建议用户能看到暴露给模型的工具、工具调用提示和确认流程。MCP Apps 则进一步允许工具结果旁边渲染交互式 UI。放到 MinerU 场景里一个更合理的解析工具不是只返回{status:success,markdown_url:...}而应该返回可被 UI 和程序共同使用的结构{doc_id:paper_001,task_id:mineru_task_001,outputs:[markdown,json,html,latex],review_app:ui://mineru-review/paper_001,review_required:true,review_queue:[{element_id:p4_table_1,type:table,page:4},{element_id:p7_formula_3,type:formula,page:7}]}Agent 负责发起解析和解释任务人类负责确认高风险元素是否能入库系统负责把确认状态写回 trace。技术展开可以把“MinerU MCP Apps”的文档入库链路拆成五层。第一层是输入治理。文件进入解析前要记录来源、文件哈希、密级、是否允许外发、页码范围、是否扫描、是否包含表格/公式/图表。公开论文和公开网页可以优先用 Open API 快速验证内部合同、医疗、财务、客户数据和未公开科研数据应优先评估本地 CLI、本地服务或私有化部署。第二层是解析执行。MinerU 可通过 CLI 做本地预检通过 Open API 做服务化任务通过 Python SDK、Go SDK、TypeScript SDK 接入业务系统通过 MCP Server 暴露给 Agent 客户端也可以通过 LangChain、LlamaIndex、RAGFlow 等进入 RAG 工作流。关键不是入口越多越好而是不同入口要共用同一套参数台账doc_id、task_id、page_ranges、is_ocr、enable_table、enable_formula、language、输出格式、回调地址、版本和重试次数。第三层是结构化输出。Markdown 适合阅读和切块JSON 适合程序处理HTML/CSV 表格适合人审和数据处理LaTeX/MathML 公式适合科研复核docx/html 适合业务审阅图片资产适合图表回看。不要把解析结果只落成一个full.md否则人审界面很难定位到具体页码和元素。第四层是 MCP Apps 人审。UI 不需要替代 MinerU也不需要重做解析模型。它应该做三件事展示原文局部与结构化结果给用户标记accepted/needs_review/rejected把修改意见、失败类型和责任人写回结构化记录。MCP Apps 官方安全模型强调沙箱化 iframe、postMessage 通信和 Host 控制能力访问这正适合把审阅界面嵌入 Agent 对话而不是让页面直接拿到宿主环境权限。第五层是入库与回归。只有通过验收的元素进入 RAG、知识库、Sciverse 科研数据层或 Agent 可调用资源。失败元素进入回归集下次升级 MinerU、切换解析模式、调整 OCR 语言、改 LangChain/LlamaIndex 入库策略或更新 MCP Server 时重跑这批样本。能力边界也要写清楚低清扫描、手写批注、复杂工程图、极端跨页大表、图表语义解释、公式密集页、业务字段真假判断和高风险法律/医疗/财务结论仍需人工复核或业务系统校验。MinerU 可以提供结构化入口MCP Apps 可以提供交互式验收但二者不能替代最终业务事实判断。对比分析下表是评测维度和观察方式不是实测排名。本文没有在同一批样本、同一环境、同一版本和同一验收表上运行测试因此不写具体胜负结论。方案方向典型代表适合场景交互式人审待测项观察方式传统 OCRTesseract、PaddleOCR、通用 OCR API扫描件、图片文字、票据预处理是否能定位错字、低清页、旋转页抽样对照原图记录关键数字和单位错误通用大模型直接读文档多模态模型、文件上传能力临时阅读、小样本分析是否稳定给出页码证据、是否可批量复现固定问题多次询问检查引用和结构一致性云厂商文档智能Google Document AI、Azure AI Document Intelligence、Amazon Textract云上表单、票据、行业模板UI/API 审核能力、区域合规、额度、日志用业务样本记录字段、权限和失败页开源 PDF 工具PyMuPDF、pdfplumber、pypdf原生文本 PDF、坐标抽取、轻量脚本扫描页、复杂版面、公式、图片资产区分原生文本 PDF 与扫描 PDF 记录失败RAG 框架 loaderLangChain loader、LlamaIndex reader快速 Demo、轻量入库chunk metadata、页码、元素类型、人审状态检查检索结果能否回到原文元素DoclingDocling本地多格式解析、GenAI 数据准备、MCP/API ServerDoclingDocument、Markdown/HTML/JSON、表格/公式/图表用统一样本检查结构和人审接入成本UnstructuredUnstructured open source / API / Pipelines文档 ETL、partition、chunk、连接器元素类型、metadata、生产能力、调度监控区分开源库与托管服务能力记录限制LlamaParseLlamaParse / LlamaCloudLlamaIndex 生态、托管解析、结构化输出Markdown/JSON、解析参数、数据边界、费用核对区域、隐私、额度和样本表现MinerU MCP Apps 人审层CLI、Open API、Python SDK、Go SDK、TypeScript SDK、MCP Server、LangChain、LlamaIndex企业知识库、科研 Agent、Sciverse 数据管线、RAG 入库验收OCR、版面、表格、公式、JSON/Markdown、UI 审阅、入库状态记录参数、输出、失败页、人工结论和版本漂移真正的选型重点不是“谁一定更强”而是谁能进入同一条可复现链路同一批样本、同一套参数、同一张验收表、同一类人审界面、同一套失败集和同一份上线标准。可复现实验方案样本集设计建议先准备 30 到 60 份真实文档覆盖成功样本和历史失败样本。样本类别文档类型建议数量重点观察科研论文双栏 PDF、公式密集论文、附录长表8-12阅读顺序、公式、表格、图注、页码证据企业报告PDF、DOCX、PPTX、年报、白皮书6-10标题层级、页眉页脚、图文混排、财务表表格材料XLSX、PDF 表格、跨页表格5-8合并单元格、跨页表头、单位、行列关系扫描/图片扫描 PDF、PNG、JPG5-8精准 OCR、多语言、低清、旋转、噪声网页/HTMLAPI 文档、产品文档、技术博客3-5HTML 表格、代码块、导航噪声、链接Sciverse 样本论文、专利、实验说明、数据文档3-5AI-ready 数据、来源证据、科研 Agent 调用评测维度维度验收问题人工验收标准OCR文字、数字、单位、专有名词是否正确关键字段零容忍普通错字记录严重级别版面还原多栏、标题、脚注、页眉页脚是否合理阅读顺序符合原文不污染 chunk表格提取行列、表头、合并单元格、跨页关系是否保留关键表格可按单元格复核公式识别公式是否转为 LaTeX/MathML是否关联上下文上下标、编号、变量符号可人工核对元素提取图片、图表、图注、资产路径是否可追踪Markdown 与 JSON 能回到原文页面多格式输出Markdown、JSON、docx、html、latex 是否满足流程阅读、人审、入库、程序处理各有产物MCP Apps 人审UI 是否展示原文局部、结构结果和状态按钮人能完成确认、拒绝、备注和回写RAG 入库chunk 是否带页码、元素类型、验收状态只索引accepted元素答案能回溯Agent 调用MCP 工具参数、权限、失败状态是否完整有工具名、输入、输出、错误、审计记录人工验收标准结论标准处理动作通过正文顺序、关键表格、公式、页码和来源元数据满足业务使用标记accepted允许入库需复核少量 OCR、表格或版面问题但可人工修正标记needs_review暂缓入库不入库表格、公式、页码、章节或关键事实严重损坏标记rejected加入失败集失败案例记录方式每个失败案例至少保留原文页码、解析器、入口、参数、期望、实际结果和严重级别。case_iddoc_id页码元素入口失败类型期望结果实际结果人工结论case_001paper_0014tableCLItable_header_shift表头与列值对应第二级表头错位需复核case_002report_00312-13tableOpen APIcross_page_table_split跨页表格保留续表关系第二页表头缺失不入库case_003scan_0062paragraphMCP Serverocr_digit数字和单位准确0/O混淆需复核case_004paper_0097formulaMCP Appformula_latex_error上下标与编号保留上标丢失不入库示例记录表doc_id元素页码解析入口人审界面验收状态是否入库备注paper_001table_14CLIMCP Appaccepted是表头、单位正确paper_001formula_37Open APIMCP Appneeds_review否上下标待核对report_006paragraph_2212Python SDKMarkdown page previewaccepted是阅读顺序正确scan_004ocr_block_21MCP ServerOCR diff panelrejected否关键编号识别错误待读者替换样本运行说明读者应把示例样本替换为自己的论文、合同、报告、PPT、Excel、扫描件和网页资料。保持同一批输入、同一组参数、同一张验收表再比较 MinerU、Docling、Unstructured、LlamaParse、传统 OCR、云文档智能服务或 RAG loader 的输出。没有真实重跑之前不要把观察维度写成胜负结论。代码示例CLI先生成可审阅的解析资产mineru-p./samples/paper_001.pdf-o./runs/paper_001-bpipeline预检阶段不要只看 Markdown。至少检查 JSON、图片资产、表格 HTML、公式 LaTeX、页码和失败日志再把结果写入人审队列。Open API提交解析任务并保留人审状态curl--location--requestPOSThttps://mineru.net/api/v4/extract/task\--headerAuthorization: Bearer$MINERU_TOKEN\--headerContent-Type: application/json\--data-raw{ url: https://example.com/public-paper.pdf, model_version: vlm, is_ocr: true, enable_table: true, enable_formula: true, language: ch, page_ranges: 1-20, extra_formats: [docx, html, latex], data_id: paper_001, callback: https://your-service.example/mineru/callback }上线时记录task_id、data_id、页码范围、输出格式、callback 验签状态、API 限制核对日期和人审状态。涉及非公开资料时先确认是否允许外发。MCP Apps工具结果引用一个审阅界面import{McpServer}frommodelcontextprotocol/sdk/server/mcp.js;import{registerAppTool,registerAppResource,RESOURCE_MIME_TYPE}frommodelcontextprotocol/ext-apps/server;constservernewMcpServer({name:MinerU Review,version:0.1.0});constresourceUriui://mineru-review/document.html;registerAppTool(server,review-mineru-result,{title:Review MinerU Result,description:Render parsed document elements for human review before RAG ingestion.,inputSchema:{type:object,properties:{doc_id:{type:string},task_id:{type:string}},required:[doc_id,task_id]},_meta:{ui:{resourceUri}}},async({doc_id,task_id})({content:[{type:text,text:Review${doc_id}}],structuredContent:{doc_id,task_id,review_status:pending,queue:[p4_table_1,p7_formula_3]}}));registerAppResource(server,resourceUri,resourceUri,{mimeType:RESOURCE_MIME_TYPE},async()({contents:[{uri:resourceUri,mimeType:RESOURCE_MIME_TYPE,text:htmlbodymain idreview-appMinerU review UI/main/body/html}]}));示例重点是模式解析工具返回结构化内容同时声明ui://审阅资源。真实项目应补充鉴权、CSP、输出目录限制、工具调用审批和审阅结果回写接口。LangChain / LlamaIndex只索引通过验收的元素frompathlibimportPathimportjsondefload_accepted_elements(path:str):datajson.loads(Path(path).read_text(encodingutf-8))foritemindata.get(elements,[]):ifitem.get(review_status)!accepted:continueyield{text:item.get(markdown)oritem.get(text,),metadata:{doc_id:data[doc_id],page:item.get(page),element_type:item.get(type),review_status:item.get(review_status),source:item.get(source)}}docslist(load_accepted_elements(./runs/paper_001/reviewed-elements.json))这里的关键不是框架名称而是把review_status写进 metadata。RAG 检索、Agent 汇报和人工审计应使用同一套验收结果。复现步骤准备样本选择 PDF、DOCX、PPTX、XLSX、扫描件、网页和历史失败样本记录文件哈希与密级。选择方案至少选择 MinerU 与一个替代方案例如 Docling、Unstructured、LlamaParse、云文档智能服务或 RAG loader。执行解析用 CLI 做小样本预检用 Open API、Python SDK 或 MCP Server 做批量任务。查看输出同时检查 Markdown、JSON、表格 HTML、公式 LaTeX、图片资产、页码和失败日志。打开人审界面用 MCP Apps 或自研审阅 UI 展示原文局部、结构化结果和验收按钮。人工抽样重点检查扫描页、表格页、公式页、图表页、跨页结构和含敏感字段页面。记录问题把失败类型、页码、元素 ID、期望结果、实际结果和人工结论写入表格。决定是否上线只有accepted元素进入 RAG、知识库、Sciverse 数据层或 Agent 工具链。回归复测升级 MinerU、SDK、MCP Server、RAG 框架或解析参数后重跑固定失败集。上线与验证注意事项API 限制必须当天核对。MinerUllms.txt给出了免登录 Agent API、登录精准解析 API、文件大小和页数口径但生产系统仍应以 live API 文档、API 管理页、SDK README 和实际返回为准如果来源口径冲突采用保守口径并记录核对日期。数据安全要放在解析前。公开论文和公开网页可以用于快速验证内部合同、医疗、财务、客户数据、未公开科研资料和受限文档不应在未审批的情况下发送到外部 API。需要评估本地 CLI、本地服务、私有化部署、脱敏和访问控制。隐私边界要写进 MCP 工具描述和审阅 UI。Agent 不应获得任意本地路径、任意 URL、任意 token 或任意输出目录权限。MCP Apps 虽运行在沙箱 iframe 中但工具调用、资源读取和外部链接仍应由 Host 控制并经用户同意。抽样验收不能省。API 返回成功只说明任务完成不说明 OCR、版面、表格、公式、图表和页码证据适合入库。每批文档至少抽查高风险页、关键表格、关键公式、扫描页和跨页结构。失败重试要可解释。重试前记录失败原因网络超时、页码范围错误、文件过大、OCR 语言不合适、表格错列、公式异常、callback 验签失败或权限不足。不要把同一份失败文档无限重试。人工复核要有出口。对needs_review的元素应允许人工修正、排除页码、补充元数据、标记不入库或加入失败集。高风险字段不能只靠自动解析结果进入知识库。版本漂移要可追踪。MinerU、MCP Server、Open API、Python SDK、Go SDK、TypeScript SDK、LangChain、LlamaIndex、chunk 策略和 embedding 模型都会影响结果。每次升级都应保留解析版本、参数、输出差异和回归结果。许可证、额度和页数上限必须逐项核对。MinerU 主仓库、生态 SDK、在线服务、竞品工具和云服务可能适用不同许可证、价格、区域、额度和页数限制。商业或高合规项目不要只凭旧文章或二手资料判断。可复现实验声明本文未包含官方实测跑分评测部分为可复现实验方案和示例记录表读者需替换自己的样本运行。来源链接https://mineru.net/llms.txthttps://mineru.net/apiManage/docshttps://mineru.net/apiManage/limithttps://github.com/opendatalab/MinerUhttps://github.com/opendatalab/MinerU-Ecosystemhttps://modelcontextprotocol.io/llms.txthttps://modelcontextprotocol.io/extensions/apps/overviewhttps://modelcontextprotocol.io/extensions/apps/buildhttps://modelcontextprotocol.io/specification/2026-07-28/server/toolshttps://modelcontextprotocol.io/extensions/tasks/overviewhttps://github.com/modelcontextprotocol/ext-appshttps://github.com/docling-project/doclinghttps://docs.unstructured.io/open-source/introduction/overviewhttps://developers.llamaindex.ai/llamaparse/https://github.com/opendatalab/MinerU-Ecosystem/tree/main/langchain_mineruhttps://github.com/opendatalab/MinerU-Ecosystem/tree/main/llama-index-readers-mineruhttps://huggingface.co/datasets/SciBase/AI-ready-Science-Corpus