最近 Claude Code 因为一个 .map 文件把 51 万行源码送上了公网,这件事在技术圈引发了广泛讨论。
撇开安全问题不谈,泄露的源码里有一块内容我研究了很久——Claude Code 的 MCP 工具调用机制。
本文结合这个热点,手把手带你搭建一套 Claude + MinerU MCP 的全自动文档解析 Agent,适合有 RAG 开发需求的工程师
为什么 Source Map 会泄露源码?
Source Map 是 JavaScript/TypeScript 构建工具生成的调试辅助文件,格式为 .js.map。
它的作用是:将压缩混淆后的生产代码,映射回原始的源代码行列信息。
关键字段:sourcesContent —— 直接内嵌原始源文件内容
{
"version": 3,
"sources": ["src/index.ts", "src/agent.ts", ...],
"sourcesContent": ["// 完整 TypeScript 源码...", ...]
}
一旦 .map 文件被带入 npm 包并发布,任何人都可以通过它还原完整源码。
防范方式:
# .npmignore 中添加
*.map
dist/*.map
# 或 tsconfig.json 中
{
"compilerOptions": {
"sourceMap": false, // 生产构建关闭
"inlineSourceMap": false
}
}
二、MCP 协议:AI 工具调用的标准化基础
从泄露源码可以看到,Claude Code 大量使用 MCP 协议接入外部工具。
MCP(Model Context Protocol) 是 Anthropic 推出的开放协议,核心设计:
- 大模型作为 MCP Client,通过标准化接口调用工具
- 工具服务以 MCP Server 形式暴露能力
- 通信方式:stdio / SSE / HTTP
这种设计让 AI 客户端(Claude Desktop、Cursor、Cherry Studio 等)可以无缝接入任意 MCP Server,实现能力扩展。
三、MinerU MCP Server 实战接入
MinerU 是 OpenDataLab 出品的开源文档解析工具,支持 PDF、Word、PPT、图片等多种格式的高精度解析,官方提供了标准 MCP Server 实现。
3.1 安装 mineru-mcp
pip install mineru-mcp
# 或使用 uvx(推荐)
uvx mineru-mcp
3.2 获取 API Key
前往 mineru.net 注册,在控制台获取 API Key。
3.3 配置 Claude Desktop
编辑 claude_desktop_config.json:
{
"mcpServers": {
"mineru": {
"command": "uvx",
"args": ["mineru-mcp"],
"env": {
"MINERU_API_KEY": "your_api_key_here"
}
}
}
}
配置文件路径:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
3.4 验证效果
重启 Claude Desktop,在对话框中发送:
帮我解析这份 PDF 文件,提取所有表格内容,输出为 Markdown 格式
Claude 会自动调用 MinerU MCP Server,完成:
-
✅ 版面分析
-
✅ 表格识别与结构化
-
✅ 公式 LaTeX 提取
-
✅ OCR 文字识别
-
在 RAG 管道中集成
-
# 结合 LangChain 使用 MinerU 解析结果 from langchain_community.document_loaders import MinerULoader loader = MinerULoader( file_path="./research_paper.pdf", api_key="your_api_key" ) documents = loader.load() # 后续接入向量数据库、检索链...Claude Code 的源码泄露是个教训,但也让我们看清了 MCP 生态的巨大价值——标准化的工具协议,才是 AI Agent 落地的真正基础设施。