SGAI MCP 服务端
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器端,核心通过 Go 语言实现,提供若干 MCP Tool,用于读取技能、获取代码片段、更新工作流状态、发送和读取消息,以及简单的任务/提示管理能力。服务器通过 MCP 的 StdIO 传输与客户端通信,适合与 LLM 客户端在同一进程或同一容器中直接对接。
-
主要功能点
- 提供以下 MCP Tool(对于 LLM 客户端均通过 JSON-RPC 调用):
- find_skills: 按名称查询技能片段,支持精确匹配和模糊搜索,返回匹配结果文本。
- find_snippets: 按语言和查询搜索代码片段,返回文本内容或索引列表。
- update_workflow_state: 更新工作流状态、任务和进度,并可附加描述性进展。
- send_message: 给工作流中的其他代理发送消息。
- check_inbox: 检查当前代理的未读消息。
- check_outbox: 检查当前代理已发送的消息。
- peek_message_bus: 针对协调人(coordinator)提供的系统级消息概览(仅协调者可用)。
- project_todowrite / project_todoread: 读取与写入工程级待办事项(面向协同代理)。
- ask_user_question / ask_user_work_gate: 以多选题形式向人类提供输入接口,支持后续对话。
- 传输与流程
- MCP 服务器采用 StdIO 传输,适合在同一进程/容器中与客户端对接;也具备可扩展性以接入其他传输层(如网络、SSE 等)。
- 内部实现包含对 sgai 工作流状态的读取、写入与持久化,允许 LLM 通过工具实现对工作流的查询与驱动。
- 提供以下 MCP Tool(对于 LLM 客户端均通过 JSON-RPC 调用):
-
安装与运行步骤
- 环境准备
- 需要 Go 语言环境(建议 1.20+)。
- 构建与运行
- 构建:在仓库根目录执行 go build ./cmd/sgai 或使用 go install。
- 运行 MCP 服务(示例命令,具体路径按实际环境调整):
- 通过环境变量指定工作目录,例如:SGAI_MCP_WORKING_DIRECTORY=/path/to/your/project
- 通过环境变量指定是否交互式:SGAI_MCP_INTERACTIVE=yes(默认)
- 执行 sgai mcp(仓库内实现的入口)以启动 MCP 服务端,服务器将使用 StdIO 与客户端通信。
- 客户端配置简述(MCP 客户端无需代码实现即可理解的关键信息)
- server: 名称为 sgai,命令为 ["sgai", "mcp"],工作目录由 SGAI_MCP_WORKING_DIRECTORY 指定。
- 启动参数与环境变量注释说明见下方“服务器配置示例注释”(非代码块呈现,以便直观理解)。
- 重要提示
- MCP 客户端无需依赖仓库中的前端/后端 UI;它只需要通过 MCP 的工具接口对接 sgai 的功能。
- 如果你希望在测试中使用,请确保 sgai.mcp 的环境变量配置与实际工作目录结构匹配。
- 环境准备
-
服务器配置(MCP 客户端需要的连接信息说明,JSON 格式文本呈现,不直接作为代码块展示) { "server": { "name": "sgai", "command": ["sgai", "mcp"], "args": [], "description": "SGAI MCP 服务端,用于向 LLM 提供资源、工具和提示模板的能力集合" }, "environment": { "SGAI_MCP_WORKING_DIRECTORY": "<你的工作目录路径,例如 /home/user/project>", "SGAI_MCP_INTERACTIVE": "yes" }, "notes": "该配置用于 MCP 客户端连接 SGAI 的 MCP 服务器。命令为 sgai mcp,工作目录指定 sgai 项目根目录。环境变量用于控制工作目录与交互模式。客户端本身不需要包含服务器实现逻辑。" }
-
基本使用方法
- 启动阶段
- 准备工作目录,并确保 GOAL/相关元数据就绪(服务器端通过实现的工具,与 GOAL.md/元数据交互)。
- 启动 MCP 服务端(sgai mcp),确保工作目录正确挂载。
- 运行阶段
- LLM 客户端通过 MCP 调用工具,如 find_skills、update_workflow_state、check_inbox 等,获取文本或结构化结果,并据此推动工作流。
- 常见工作流
- 通过 find_skills/find_snippets 获取可用能力与代码片段,交由 LLM 决定具体应用。
- 通过 update_workflow_state 更新任务、进度与状态。
- 通过 check_inbox/check_outbox 与其他代理进行协作与沟通。
- 注意
- MCP 客户端的正确配置是确保与服务器对接的关键,务必确保工作目录一致并正确设置交互模式。
- 启动阶段