开发与工程 rest-apimcpdocument-extractionaxumrustpdf-extractioncachingasync-processing

Xberg API 服务器与 MCP 协议集成

为 AI 代理提供文档提取的 REST API 和 MCP 服务器,无缝集成到 Claude 等代理中。

FollowSkills 评估 · FSRS-2.0
不推荐
52/ 100 五分制 2.6 / 5
1 2 3 4 5 6
1信任安全13 / 25 · 2.6/5

证据显示有安全文档(SECURITY.md)列出了针对恶意文档输入的具体缓解措施(解压炸弹、路径遍历等),且默认配置为保守(如最大压缩率、超时),这表明了安全意识和基本的数据流透明度。但技能文档本身未描述权限要求或用户确认机制,且 CorsLayer 默认是 permissive 的(依赖环境变量收紧)。发布者未经验证,无法确认版本归属。因此信任分被限制在中等,因为权限和确认细节缺失导致降分。

2可靠稳定9 / 20 · 2.3/5

技能文档详细描述了 REST 和 MCP 架构,包括错误处理(如 ApiError 映射到 HTTP 状态码)和超时设置,这有助于可靠性。然而,静态审查无法运行任何关键路径,且没有内嵌的测试套件专门覆盖该技能本身,只有 e2e 测试文件(batch 和 code)未直接关联到技能定义。因此,可靠性被限制在中等偏低,因为关键路径未被本静态审查实际验证。

3适用触发10 / 15 · 3.3/5

技能文档清晰地定义了目标用例(REST API 和 MCP 集成),提供了详尽的端点、参数和配置信息,这些有助于精确触发。但它没有明确声明非适用边界或环境限制(例如,对资源密集型文档的适用性)。作为 FollowSkills 服务的中国用户,核心功能依赖于本地部署,不依赖被屏蔽的外部服务,这是积极因素。然而,缺乏边界证据将分数限制在中等偏低。

4规范维护10 / 15 · 3.3/5

技能文档结构良好,提供了位置、配置和示例,并且仓库有 MIT 许可证和明确的责任归属(作者在 Cargo.toml 中列出)。但技能文档未包含版本历史或变更日志,也未明确说明维护责任和更新路径,尽管存在安全文档。这些缺失降低了规范分,但整体可读性和基本治理尚可。

5有效结果6 / 15 · 2.0/5

技能文档描述了完整的 API 和 MCP 功能,但没有任何实际输出或可验证的演示来证明其效果。静态审查无法验证价值主张,且没有第三方执行证据支持代表性输出。因此,有效性被限制在低水平,因为无法确认结果是否正确或直接可用。

6证据核验4 / 10 · 2.0/5

仓库包含 CI 工作流(benchmarks.yaml、ci-docker.yaml),但它们是针对整个项目的,未专门验证此技能文档的内容。e2e 测试文件存在,但与本技能的直接关联不大,且来源是自动生成的(alef),不构成独立核实。因此,可验证性被限制在低水平,因为关键声明缺乏可复现的、独立的证据。

证据充分度: 评估于 2026年8月7日 审查版本 fbdb9f18ca7c
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • CORS 默认为 permissive,若在生产环境未设置 CORS_ALLOWED_ORIGINS,可能导致跨站请求伪造风险;部署时务必配置受限来源。
  • 技能文档未明确权限需求和用户确认机制;若将 API 集成到敏感环境,请确保遵循最小权限原则并增加确认步骤。
  • 静态审查无法验证技能的实际执行结果;建议在真实环境中测试关键路径(如 /extract 端点)后再采用。
  • 发布者身份未经验证,且技能文档未提供版本历史和变更日志;依赖此技能时应注意维护责任和更新路径的明确性。
查看完整评分方法 →

这个 Skill 能做什么,适合哪些场景?

此技能在 Rust 中实现了 Xberg 文档提取引擎的双 REST API + MCP 服务器。它构建了一个带中间件的 Axum + Tokio 服务器,提供用于文件上传、URL 提取、批处理、缓存和格式列表的 REST 端点,以及用于工具调用、资源和提示的 MCP 端点。MCP 集成使 Claude 等 AI 代理能够直接调用提取函数,包括提取、批量提取和获取能力。该技能涵盖了服务器设置、路由、缓存策略、错误处理和与 Claude Desktop 的集成,并配有为 RAG 工作流设计的提示。

构建一个 Axum + Tokio 服务器,提供 REST API(端点如 POST /extract、POST /extract-url、GET /formats、GET /health、POST /batch、GET /cache/stats、DELETE /cache)和 MCP 端点(如 POST /mcp/tools、POST /mcp/tools/call)。应用中间件:正文大小限制(默认 100MB)、CORS、跟踪日志。实现基于 SHA256 文件内容的 LRU 缓存(默认 1000 条)。注册 MCP 工具:提取、批量提取、获取能力;资源:格式、功能、API 参考;提示:为 RAG 提取、批量文档处理。支持 HTTP 和 stdio 传输。提供环境配置(如 XBERG_PORT、XBERG_ENABLE_OCR)及错误处理,将 ApiError 映射到 HTTP 状态码。

  1. 开发者希望部署自托管的文档提取 API 服务,以支持多格式(PDF、Office、图像)。
  2. AI 代理(如 Claude)需要通过 MCP 协议直接从代理界面提取文档文本和元数据。
  3. 需要带缓存和批处理的异步处理高吞吐量文档提取工作负载的团队。
  4. 希望将提取功能集成到现有后端(如 Rust 服务)的过程,通过 REST 端点实现。
  5. 希望使用 MCP 提示标准化 RAG 提取工作流(如研究论文、合同)的用户。

这个 Skill 有哪些优点和局限?

优点
  • 提供 REST API 和 MCP 协议,支持广泛的客户端。
  • 基于 SHA256 的 LRU 缓存,避免重复提取,提高性能。
  • 详细的错误处理,并附有可操作的重建消息。
  • 灵活的配置,支持大小限制、功能切换和 CORS。
  • 支持异步和批处理,适合高吞吐量工作负载。
局限
  • 文档未明确说明从仓库构建的具体步骤。
  • 缺少对 Windows 或非 Linux 平台的实际测试证据。
  • MCP 工具数量有限(仅三个已实现的工具)。
  • 缓存大小受内存限制,可能不适合超大型文件库。
  • 环境中没有提到认证/授权机制,仅支持基本的 CORS 配置。

如何安装这个 Skill?

从 GitHub 仓库克隆或获取 xberg-io/xberg 仓库。在 Rust 环境中构建项目(需要 Rust 工具链)。该技能是集合的一部分;有关完整安装说明,请参阅仓库 README。未提供此技能独立的安装步骤。

如何使用这个 Skill?

在 crates/xberg-cli 中使用 CLI 启动服务器:xberg serve --host 0.0.0.0 --port 8000。或者,通过 CLI 启动 MCP 服务器:xberg mcp --transport stdio。对于 Claude Desktop,在配置中添加入口,例如:{"mcpServers": {"xberg": {"command": "xberg-mcp", "env": {"XBERG_API_BASE": "http://localhost:8000", "XBERG_MCP_TRANSPORT": "stdio"}}}。然后 AI 代理可以调用 MCP 工具,如提取。配置环境变量,如 XBERG_ENABLE_OCR 或 XBERG_CACHE_SIZE。

常见问题

这个技能是否需要单独的模型或 GPU?
不需要,核心提取不要求 GPU;OCR 等功能可选,可使用 Tesseract 或 ONNX 运行时。
如何配置 CORS 以在生产中限制访问?
设置 CORS_ALLOWED_ORIGINS 环境变量以逗号分隔,限制允许的源。
如果发生错误,例如缺少 OCR 依赖,会发生什么?
API 返回 HTTP 503,并附有重建消息,建议安装缺失组件。
此技能是否支持流式大文件?
是的,关键规则建议流式传输多 GB 文件,而不是在内存中缓冲。

同仓库的其他 Skills

均来自 xberg-io/xberg

相关 Skills