关于 gocd
gocd-mcp 将 GoCD 的 REST API 提供给 MCP 客户端,用于检查和操作流水线。Go 和 TypeScript 两种实现都提供紧凑且可筛选的输出,以减少仪表板数据占用的模型上下文。
主要功能
- 01查看流水线和服务器状态
- 02检查流水线运行、阶段及历史记录
- 03列出 Agent、材料和环境
- 04比较运行记录并获取制品
- 05触发、暂停或恢复流水线
- 06压缩并筛选大型响应
适用场景
- 01检查 GoCD 仪表板中的流水线健康状况
- 02调查失败的阶段或作业
- 03比较不同流水线运行中的提交
- 04在控制模型上下文用量的同时操作流水线
MCP 相关
将 GoCD REST API 功能作为 MCP 工具提供,包括读取操作和流水线控制。设置 GOCD_READONLY=1 可隐藏三个写入工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
19收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | number | 否 | |
| detail | boolean | 否 | |
| filter | string | 否 | |
| status | string | 否 |
详细介绍
gocd-mcp
适用于 GoCD 的 MCP 服务。它将 GoCD 的 REST API 封装为 MCP 工具,使任何 MCP 客户端(Claude Code、Claude Desktop、Cursor)都能读取流水线 状态并驱动流水线。这里提供两种实现,在协议层面行为完全一致:根据你的安装方式选择即可。
go/— Go 实现。提供单个静态二进制文件或 Docker 镜像。冷启动快,内存占用低。ts/— TypeScript 实现。在 Node 上运行且无需依赖,因此npx无需构建步骤。
两者都返回精简上下文的输出:默认汇总仪表板,行采用面向列的格式,响应为精简 JSON。完整的 GoCD 仪表板涵盖许多流水线时有数 MB;这些工具会将其精简到模型所需的内容。
工具
读取工具(安全):
| 工具 | 功能 |
|---|---|
gocd_dashboard | 仪表板健康状况。不带参数时返回摘要;使用 filter/status/detail 深入查看 |
gocd_pipeline_status | 单个流水线是否已暂停、锁定或可调度 |
gocd_pipeline_instance | 一次运行:包含各个作业结果的阶段,以及触发信息 |
gocd_pipeline_history | 单个流水线的近期运行记录。可选 limit |
gocd_stage_instance | 一次阶段运行,包含各个作业状态和 Agent |
gocd_stage_history | 单个阶段的近期运行记录 |
gocd_compare | 两次运行之间的变更:每个材料的提交记录 |
gocd_list_artifacts | 作业的制品文件,格式为 [path, url] |
gocd_get_artifact | 单个制品文件,限制尾部内容(cap_kb)以精简上下文 |
gocd_list_agents | 构建 Agent 及其状态。可选 filter、limit |
gocd_get_agent | 根据 uuid 查询单个 Agent |
gocd_materials | 已配置的材料。可选 filter |
gocd_environments | 环境及其流水线/变量数量 |
gocd_pipeline_groups | 流水线组。可筛选以列出某个组的流水线 |
gocd_server_health | 按级别统计的服务健康消息 |
gocd_version | GoCD 服务版本 |
写入工具(执行操作):
| 工具 | 功能 |
|---|---|
gocd_trigger_pipeline | 调度一次流水线运行 |
gocd_pause_pipeline | 暂停流水线 |
gocd_unpause_pipeline | 恢复流水线 |
设置 GOCD_READONLY=1 可隐藏三个写入工具。大型列表(dashboard、pipeline_groups、materials、environments)会汇总或支持筛选,因此不会将数 MB 的原始响应正文倾倒到模型的上下文中。
配置
需要设置两个环境变量:
GOCD_BASE_URL=https://gocd.example.com
GOCD_ACCESS_TOKEN=<personal access token>
GOCD_BASE_URL 是不带末尾 /go 的主机地址。工具会自行附加
/go/api/...。在 GoCD 的个人资料下创建令牌,路径为 Personal
Access Tokens。
安装
npx(Node >= 18),推荐
无需安装,无需构建。这是运行服务最简单的方式:
claude mcp add gocd -e GOCD_BASE_URL=... -e GOCD_ACCESS_TOKEN=... -- npx -y gocd-mcp
已发布到 npm,包名为 gocd-mcp,并发布到
MCP Registry,名称为 io.github.Sahilll15/gocd,因此支持注册表的客户端可以按名称找到它。
Go 二进制文件
从 Releases 下载预构建的二进制文件,或自行构建:
cd go && go build -o gocd-mcp .
注册它:
claude mcp add gocd -e GOCD_BASE_URL=... -e GOCD_ACCESS_TOKEN=... -- /path/to/gocd-mcp
Docker
claude mcp add gocd -e GOCD_BASE_URL=... -e GOCD_ACCESS_TOKEN=... \
-- docker run -i --rm -e GOCD_BASE_URL -e GOCD_ACCESS_TOKEN ghcr.io/sahilll15/gocd-mcp
开发期间可直接运行 TypeScript 源码(Node >= 22.6,使用 type-stripping):
cd ts && node --experimental-strip-types src/server.ts
如何选择
两者在功能上完全一致。在本地基准测试中,Go 构建的启动速度约快 4 倍(冷启动约 21ms,而 GoCD 网络往返占主导,因此每次请求的延迟不相上下。对于按会话启动的服务,推荐使用 Go
二进制文件或 Docker 镜像;如果想要零安装方式且已安装 Node,则推荐使用 npx。
目录结构
gocd-mcp/
├── go/ Go implementation (main.go, internal/gocd)
├── ts/ TypeScript implementation (src/server.ts source; publishes as compiled dist/server.js)
├── Dockerfile builds the Go binary into a distroless image
├── .goreleaser.yaml + .github/workflows/release.yml prebuilt binaries + ghcr image on tag
└── server.json MCP Registry manifest
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。