Docketeer MCP 服务端实现

使用说明内容(Markdown格式)

  • 项目简介

    • Docketeer 的 MCP 服务器实现提供一个标准化后端,能够通过 MCP 协议向 MCP 客户端暴露和执行已有的工具注册表中的工具,并对调用进行审计记录。它与插件化的工具体系紧密集成,确保客户端可以查询工具、调用工具并获取结果文本。
  • 主要功能点

    • 暴露工具清单:实现 MCP 的 tools/list 行为,返回当前注册的工具及其描述、输入结构等信息。
    • 调用工具:实现 MCP 的 tools/call 行为,根据请求的工具名称和参数执行工具,并返回文本结果。
    • 审计日志:对每次工具调用写入审计日志,便于追踪使用情况和安全审计。
    • 集成点:通过 ToolRegistry 将服务端功能与本地插件化工具体系对接,支持对外暴露多插件的工具集合。
    • 传输与协议:遵循 MCP 的 JSON-RPC 风格,客户端可以通过标准的 MCP 客户端实现与服务端通信;服务器端实现了低层级的请求分发与响应封装。
    • 兼容性提示:设计上考虑与现有的 Docketeer 组件(如 Brain、Workspace、Audit、Vault 等)协同工作。
  • 安装步骤

    • 克隆仓库并进入项目目录。
    • 安装依赖:需要 Python 3.x 环境,以及 MCP 客户端/服务端相关依赖(mcp 库及 Docketeer 相关包)。
    • 将 Docketeer MCP 服务端代码集成到可运行的 Python 环境中,确保 import 路径可解析。
    • 启动前确保具备必要的工具插件(ToolRegistry)和工具上下文(ToolContext)可用,以便 MCP 客户端能请求工具。
  • 服务器配置(MCP 客户端需要的最小配置示例) 说明:以下配置用于 MCP 客户端连接到本 MCP 服务器实例;具体参数需根据实际部署路径调整。该客户端配置用于说明用途,不是代码实现。

    { "server_name": "docketeer-mcp", "command": "python3", "args": ["-m", "docketeer.brain.mcp_server"], "transports": ["stdio", "sse", "websocket"] // 说明:可选传输方式包括标准输入/输出、Server-Sent Events、WebSocket 等;实际部署时可选其一或多种。 }

    说明:

    • server_name:服务器的逻辑名称,用于区分不同 MCP 服务实例。
    • command 与 args:MCP 服务端的启动命令及参数,在客户端端需要调用该命令以建立与 MCP 服务器的连接。
    • transports:可能使用的传输协议集合,具体实现中以实际部署为准。
  • 基本使用方法

    • 启动服务器:按照服务器配置中的命令和参数在目标环境中启动 MCP 服务端进程。
    • 客户端连接:MCP 客户端连接到服务器后,可以通过标准 JSON-RPC 请求向服务器请求工具列表、调用指定工具等。
    • 请求/响应流程:客户端发送如 "tools/list" 以获取工具列表,发送 "tools/call" 以执行工具,服务器返回工具执行结果文本。所有调用都会被记录到 audit 日志中。
    • 安全性与审计:服务器端记录每次调用的参数、结果及是否错误,便于后续审计与追踪。
  • 使用注意

    • MCP 客户端需要与服务器约定的协议格式(JSON-RPC)和方法名(如 tools/list、tools/call)进行交互。
    • 服务器端为工具执行提供上下文(ToolContext),确保在执行工具时具有正确的工作区、Vault、Search 等上下文信息。

服务器信息