Forge-MCP Server 集成套件

使用说明

  • 项目简介

    • Forge 是一个以 MCP(Model Context Protocol)为核心设计的后端框架与工具集,旨在把各类资源、工具与提示模板以 MCP 服务的形式暴露给 LLM 客户端。仓库中包含了多种 Engine(如 go-build、generic-builder、parallel-test-runner、testenv 等)的 MCP 服务器实现,以及相应的测试、文档与工具注册逻辑。
    • MCP 服务器通过 JSON-RPC 2.0 在标准输入输出(及其他传输通道,如 SSE、WebSocket 等)进行请求-响应通信,具备工具注册、资源管理、测试执行、依赖检测等能力。
  • 主要功能点

    • 资源托管与访问:以 Artifact/资源形式暴露构建产物、测试结果、镜像等内容,支持版本化和元数据。
    • 工具注册与执行:将“Tools”注册到 MCP 服务器端,LLM 可以调用外部功能(如构建、测试、环境管理、依赖检测等)。
    • Prompts/模板渲染:提供并渲染 Prompt 模板,支持对话式交互的上下文模板化。
    • JSON-RPC 2.0 over stdio:统一的请求/响应消息协议,便于 LLM 客户端进行集成。
    • 会话与能力声明:服务器端维护会话、能力(如可用的资源、工具、引擎等)并支持跨引擎协作。
    • 多传输协议支持:包括但不限于标准输入输出、SSE、WebSocket 形式的传输。
  • 安装步骤(简要)

    • 安装 Forge 构建工具并安装目标引擎的二进制:如 go 安装指令所示,使用 go install 安装 forge 的子命令。
    • 编译对应引擎的 MCP 服务器实现(仓库中各 engine 目录提供了 MCP 服务器入口点,通常以 --mcp 启动方式暴露 API)。
    • 启动 MCP 服务器:将引擎的 MCP 服务器二进制作为独立进程启动,并通过标准输入/输出进行 JSON-RPC 通信。具体命令因引擎而异,通常在引擎文档中给出示例。
    • 对于客户端使用,需提供服务器信息(下面的“服务器配置”段给出示例 JSON),以便客户端能够建立连接并发出资源读取、工具调用、Prompt 获取等请求。
  • 服务器配置(MCP 客户端需要的最小字段,示例为可理解的 JSON 配置)

    • 服务器名称:引擎在仓库中定义的名称,例如 go-build、generic-builder、parallel-test-runner、testenv 等。
    • 启动命令(command):运行该引擎 MCP 服务器的二进制路径。
    • 启动参数(args):启动时需要的参数列表(如定义使用 MCP 的模式、工作目录、配置文件位置等,具体由引擎实现决定)。
    • 备注:MCP 客户端不需要引擎内部实现的源码,仅需知道服务器名称、如何启动和如何通过 JSON-RPC 进行请求。

    示例(供理解,非代码块描述,实际请使用客户端所需的 JSON 配置字段即可):

    • serverName: go-build
    • command: "/path/to/go-build-mcp-server-binary"
    • args: [] 注释:将 go-build 引擎的 MCP 服务器二进制放在指定路径,启动后监听 JSON-RPC 请求。
  • 基本使用方法

    • 启动 MCP 服务器后,MCP 客户端通过 JSON-RPC 调用相应的工具(如构建、读取资源、执行测试、获取 Prompt)。
    • 客户端可通过单一入口或组合调用实现并行化工作流(如并行测试、并行构建),并通过聚合结果生成最终报告。
    • 参考仓库中的各 Engine(如 go-build、generic-builder、parallel-test-runner、testenv 等)实现的 Run/Wrap/SetupMCPServer 等接口,在服务器端注入对应的 Spec 解析、验证与工具执行逻辑。
  • 常见注意点

    • MCP 服务器通常以 MCP-server 的实现为基础,需确保引擎提供的 RunFunc/BuildFunc/TestRunnerFunc 等符合 MCP 的约定。
    • 服务器端需要实现断言和错误处理,确保在工具执行失败时向客户端返回清晰的错误信息。
    • 由于不同引擎对自定义 Spec 的解析与验证方式不同,通常会有自动生成的 FromMap/ToMap/ValidateMap 等辅助代码,确保在 MCP 请求中正确解析 spec。
  • 兼容性与扩展

    • Forge 的设计支持扩展新的 Engine(引擎)和子系统(如 testenv、lcr、dep-detector 等),并通过 enginedocs 自动生成文档工具。
    • 客户端与服务器之间通过标准化的 JSON-RPC 调用进行通信,便于将来接入更多前端/LLM 客户端。

服务器信息