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 等上下文信息。