mcpField
G
gocd

gocd

本地服务
github.com/Sahilll15云与基础设施19 周前更新

关于 gocd

gocd-mcp 将 GoCD 的 REST API 提供给 MCP 客户端,用于检查和操作流水线。Go 和 TypeScript 两种实现都提供紧凑且可筛选的输出,以减少仪表板数据占用的模型上下文。

主要功能

  1. 01查看流水线和服务器状态
  2. 02检查流水线运行、阶段及历史记录
  3. 03列出 Agent、材料和环境
  4. 04比较运行记录并获取制品
  5. 05触发、暂停或恢复流水线
  6. 06压缩并筛选大型响应

适用场景

  1. 01检查 GoCD 仪表板中的流水线健康状况
  2. 02调查失败的阶段或作业
  3. 03比较不同流水线运行中的提交
  4. 04在控制模型上下文用量的同时操作流水线

MCP 相关

将 GoCD REST API 功能作为 MCP 工具提供,包括读取操作和流水线控制。设置 GOCD_READONLY=1 可隐藏三个写入工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sahilll15-gocd": {
"command": "npx",
"args": [
"-y",
"gocd-mcp"
],
"env": {
"GOCD_BASE_URL": "<GOCD_BASE_URL>",
"GOCD_ACCESS_TOKEN": "<GOCD_ACCESS_TOKEN>"
}
}
}
}
启动命令npx -y gocd-mcp
需要配置的环境变量
GOCD_BASE_URLGoCD base host, e.g. https://gocd.example.com (no trailing /go)
GOCD_ACCESS_TOKEN密钥GoCD personal access token

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgocd-mcp0.1.2

工具

19

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitnumber否
detailboolean否
filterstring否
statusstring否

详细介绍

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_versionGoCD 服务版本

写入工具(执行操作):

工具功能
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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。