Crow MCP Toolserver
使用说明(Markdown 格式)
-
项目简介
- Crow MCP Toolserver 是 Crow 项目中的后端服务,用于向基于模型的客户端提供资源访问、外部工具执行以及提示模板渲染等能力。它实现 MCP 协议的核心能力,允许客户端通过 JSON-RPC 调用读取资源、调用工具以及获取并渲染 Prompts。
-
主要功能点
- 资源与数据访问:提供对本地文件/资源的读取、写入以及编辑等能力(如 read、write、edit 等工具)。
- 工具注册与执行:注册多种工具(如 terminal、read、write、edit、web_search、web_fetch 等),支持客户端通过 MCP 调用执行外部功能。
- 提示模板渲染与渲染结果:提供促成 LLM 对话的系统/提示模板,以及将 ACP 内容块转换为 OpenAI 兼容格式的能力。
- MCP 协议与服务器端会话管理:实现对 MCP 请求的接收、解析、分发以及响应,具备会话管理和能力声明。
- 多传输协议支持:设计目标包含 stdo、SSE、WebSocket 等传输方式的支持,以适配不同客户端需求。
-
安装与运行步骤
- 安装依赖与准备环境(如 Python 环境、所需依赖库等)。
- 启动方式示例(基于仓库中的实现思路,实际可能使用 uv/daphne 等执行环境):
- 通过命令行启动 crow-mcp 服务
- 例如:uv --project <仓库根目录>/crow-mcp run crow-mcp
- 或使用本地脚本/包管理工具进行启动
- 通过命令行启动 crow-mcp 服务
- 启动后,服务器将暴露 MCP 接口,等待 MCP 客户端连接。
-
服务器配置(MCP 客户端无需配置,以下为服务器端信息,便于理解与对接)
- 配置示例(JSON 形式,字段含义说明在后面注释): { "mcpServers": { "crow-mcp": { "transport": "stdio", "command": "uv", "args": ["--project", "<仓库根目录>/crow-mcp", "run", "crow-mcp"], "cwd": "<仓库根目录>/crow-mcp" } // 如果需要更多服务器,可以再追加条目,格式同上 } }
- 字段说明
- mcpServers: MCP 服务器集合
- crow-mcp: 服务器名称
- transport: 传输协议类型,当前实现中包含 stdio(标准输入输出)等
- command: 启动服务器的命令
- args: 启动参数数组,包含项目路径及启动子命令
- cwd: 服务器工作目录
- 注:以上配置用于 MCP 客户端在运行时连接 Crow 的内置工具服务器。MCP 客户端需要的仅是连接信息,服务端需要具备可运行性并实现工具、资源、Prompts 的暴露和执行。
-
基本使用方法
- 启动 Crow MCP Toolserver,并确保 Crow 主体(Agent/客户端)能够连接到 MCP 服务。
- 客户端通过 MCP 协议向该服务器发起请求,读取资源、执行工具、获取并渲染 Prompt。服务器返回 JSON-RPC 响应或通知,处理会话、能力声明和工具调用流程。
- 常用工作流包括:创建会话、读取/写入文件、执行命令、执行网络请求、读取网页内容、以及通过工具实现代码编辑等。
-
运行与验证要点
- 确保 crow-mcp 服务器能正确启动并暴露 MCP 接口。
- 使用 MCP 客户端测试工具(如示例脚本中的 http/stdio/Socket 方式)验证以上工具的可用性。
- 验证多工具调用的并发执行、工具输出的正确渲染,以及在 ReAct/提示渲染中的兼容性。
-
其他注意
- 本实现包含 Terminal、Read、Write、Edit、Web Fetch、Web Search 等工具的后端实现,作为 MCP Toolserver 的核心能力。
- 项目内也包含了用于视频/图像等扩展能力的模块(如 vision 相关工具),供扩展时使用。