PMOVES-BoTZ Docling-MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • PMOVES-BoTZ 的 Docling-MCP Server 是一个完整的 MCP 服务器实现,负责提供可被 LLM 客户端调用的“资源/工具/提示模板”等服务,通过 JSON-RPC 2.0 在多种传输协议上进行通信,支持 HTTP(带 SSE 的实时流式传输)、STDIO 等场景,具备会话管理、能力声明与健康监测等能力。
  • 主要功能点

    • MCP 核心:实现 MCP 的 List Tools、Call Tool、Initialize、Health 等核心 JSON-RPC 流程,允许客户端查询可用工具并执行工具。
    • 资源与工具管理:提供工具注册、健康检查、配置获取等能力,支持将 Docling、E2B、VL Sentinel 等服务以工具形式暴露给 LLM 客户端。
    • 多传输协议:附带 STDIO/HTTP/SSE 传输实现,满足不同部署场景(容器内、服务间通信、浏览器客户端等)。
    • 健康与会话:实现健康端点、会话管理和对服务的生命周期监控。
    • 自定义 SSE 处理:在某些实现中提供自定义 SSE 处理,以兼容不同 MCP SDK 的传输差异。
  • 安装与运行(简要要点)

    • 依赖安装:确保 Python 环境就绪,并按 MCP 相关依赖安装,例如 mcp、docling、aiohttp、sse 等相关包(具体包版本以实现代码为准)。
    • 启动方式(示例之一):
      • 启动 HTTP/SSE MCP 服务器
        • 传输模式:http
        • 主机与端口:0.0.0.0,3020(示例端口,请按实际配置调整)
        • 启动命令(不要粘贴为代码块,直接作为文本读取即可):python3 docling_mcp_server.from_container.py --transport http --host 0.0.0.0 --port 3020
      • 也可使用 STDIO 传输模式,适用于容器内部或本地脚本驱动的场景。
    • 客户端连接注意事项:
      • MCP 客户端需要向服务器发起 JSON-RPC 2.0 请求,方法名通常包含 initialize、tools/list、tools/call、health 等,服务器会响应相应的 JSON-RPC 响应。
      • 服务器会在 health、tools、prompt/模板等方面暴露能力声明,供 LLM 客户端协同使用。
  • 服务器配置(示例,供 MCP 客户端读取连接信息的注释性描述) 该配置用于 MCP 客户端在启动阶段了解如何连接到 MCP 服务器。配置信息为 JSON,包含服务器名称、启动命令及参数等。请按下述示例进行解析与传递(注:以下为描述性文本,实际客户端不需要额外代码块)。 { "server": { "name": "docling-mcp", "command": "python3", "args": ["docling_mcp_server.from_container.py", "--transport", "http", "--host", "0.0.0.0", "--port", "3020"] } } 说明:

    • name 字段对应 MCP 服务器的名称,与实现代码中的 server.name 匹配。
    • command 与 args 组成启动服务器的命令行,用于 MCP 客户端在需要时自动化启动服务器进程。
    • 客户端在建立连接前无需关心具体实现细节,但需要知道服务器的名称和启动参数以便在容器化环境中自动化部署。
  • 基本使用方法

    • 启动后,客户端向 /health 进行健康检查,确认服务器可用。
    • 通过 /mcp 进行 MCP 请求,包含:
      • initialize(初始化并建立会话能力)
      • tools/list(获取可用工具)
      • tools/call(执行指定工具,例如 convert_document、process_documents_batch 等)
    • 客户端应按照 MCP 协议处理 JSON-RPC 请求与响应,支持多种传输:HTTP(SSE)、STDIO、WebSocket 等,提升集成灵活性。
    • 如需查看实现细节,可参考文档中的架构与实现指南,了解各服务如何以工具形式暴露、以及健康检查与日志告警的实现方式。
  • 注意事项

    • 在生产环境中,MCP 服务需要正确暴露健康端点、工具及初始化能力,确保 LLM 客户端能够稳定地发现并调用工具。
    • 安全性方面,请结合实际网络拓扑配置 CORS、认证、访问控制等策略,避免未授权的访问。

服务器信息