Forge MCP 服务器(Forge Orchestrator MCP 服务)
使用说明(Markdown 格式):
- 项目简介
- 本仓库实现了基于 MCP 的服务器端组件,作为 Forge Orchestrator 的后端,向 AI 客户端提供统一的上下文服务、工具执行能力和 Prompt 渲染能力,采用 JSON-RPC 2.0、逐行输出的通信协议,支持通过标准输入输出(stdio)进行通信。
- 主要功能点
- MCP 协议核心处理:接收 initialize、tools/list、tools/call 等请求,返回相应的 JSON-RPC 响应或通知。
- 工具与能力暴露:通过-tools 模块实现对工具的注册、列举和调用,支持将工具映射到后端的执行逻辑。
- 服务端状态与会话管理:维护项目根、状态、计划、知识库等状态信息,支持会话管理和能力声明。
- 与 Forge 其他模块的集成:与任务、计划、知识、治理等子系统协同,提供完整的 MCP 服务能力。
- 传输与扩展:当前实现基于 stdio 传输,后续可扩展到 SSE/WebSocket 等传输方案。
- 安装与运行
- 需要 Rust 工具链环境,编译生成可执行文件。
- 启动 MCP 服务器的命令(示例,实际路径请按环境配置):在项目根目录执行以下命令来启动 MCP 服务端(与客户端保持对接的 JSON-RPC 流):
- forge --project /path/to/project mcp
- 该命令会在 forge 的子命令 mcp 下启动 MCP 服务器,服务器通过 stdio 与 MCP 客户端通信。
- 服务器配置(MCP 客户端的连接配置)
说明:MCP 客户端需要配置服务器启动信息,以便能够启动并与 MCP 服务器建立连接。以下 JSON 配置示例描述了服务器名称、启动命令及参数,客户端读取后无需修改代码即可使用。
{
"server_name": "forge-mcp",
"command": "forge",
"args": ["--project", "<path-to-project>", "mcp"]
}
说明:
- server_name:来自 MCP 服务端在 initialize 返回中的 server_info.name,通常为 forge-mcp。
- command:启动 MCP 服务的可执行程序名,此处对应 Forge CLI 的二进制名 “forge”。
- args:启动 MCP 服务的参数,此处需携带项目路径与子命令 mcp,形如 ["--project", "<path-to-project>", "mcp"],以便服务端正确绑定到该项目并启用 stdio 通信。
- 注:以上配置仅用于 MCP 客户端在初始化阶段了解如何启动服务器;实际使用中客户端不需要改动服务端实现,只需按照示例提供正确的 server_name、command、args 即可。
- 基本使用方法
- 启动服务器:使用客户端配置指示的启动命令,Forge CLI 会以子进程形式启动 MCP 服务并通过标准输入输出进行通信。
- 探测与调用:MCP 客户端通过 JSON-RPC 发送请求,如 initialize、tools/list、tools/call 等,服务器按 MCP 协议返回 JSON-RPC 响应或日志通知。
- 交互模式:服务器端实现支持多种传输模式的扩展,当前实现优先使用 stdio 传输,后续可拓展到 SSE、WebSocket 等。
- 版本与能力:initialize 返回协议版本、能力声明以及服务器信息;tools/list 返回可用工具清单,tools/call 执行具体工具。