# gocd

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/Sahilll15/gocd-mcp  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/gocd

## Description
MCP server for GoCD: dashboard, pipelines, artifacts, agents. Context-lean output.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "gocd": {
    "command": "npx",
    "args": ["-y","gocd"]
  }
}
```

## Documentation & README

# gocd-mcp

An MCP server for [GoCD](https://www.gocd.org/). It exposes GoCD's REST API as MCP
tools so any MCP client (Claude Code, Claude Desktop, Cursor) can read pipeline
state and drive pipelines. Two implementations live here and behave identically on
the wire: pick whichever fits how you want to install it.

- `go/` — Go implementation. Ships as a single static binary or a Docker image. Fast cold start, low memory.
- `ts/` — TypeScript implementation. Runs on Node with no dependencies, so `npx` needs no build step.

Both return the same context-lean output: the dashboard is summarized by default,
rows are column-oriented, and responses are compact JSON. A full GoCD dashboard is
several MB across many pipelines; these tools trim it to what the model needs.

## Tools

Read tools (safe):

| Tool | What it does |
|------|--------------|
| `gocd_dashboard` | Dashboard health. No args = summary; `filter`/`status`/`detail` drill down |
| `gocd_pipeline_status` | Paused / locked / schedulable for one pipeline |
| `gocd_pipeline_instance` | One run: stages with per-job result, plus trigger |
| `gocd_pipeline_history` | Recent runs for one pipeline. Optional `limit` |
| `gocd_stage_instance` | One stage run with per-job state and agent |
| `gocd_stage_history` | Recent runs of one stage |
| `gocd_compare` | What changed between two runs: commits per material |
| `gocd_list_artifacts` | A job's artifact files as `[path, url]` |
| `gocd_get_artifact` | One artifact file, tail-capped (`cap_kb`) to stay context-lean |
| `gocd_list_agents` | Build agents and state. Optional `filter`, `limit` |
| `gocd_get_agent` | One agent by uuid |
| `gocd_materials` | Configured materials. Optional `filter` |
| `gocd_environments` | Environments and their pipeline/var counts |
| `gocd_pipeline_groups` | Pipeline groups. Filter to list a group's pipelines |
| `gocd_server_health` | Server health messages, counted by level |
| `gocd_version` | GoCD server version |

Write tools (operate):

| Tool | What it does |
|------|--------------|
| `gocd_trigger_pipeline` | Schedule a pipeline run |
| `gocd_pause_pipeline` | Pause a pipeline |
| `gocd_unpause_pipeline` | Resume a pipeline |

Set `GOCD_READONLY=1` to hide the three write tools. Large listings
(`dashboard`, `pipeline_groups`, `materials`, `environments`) are summarized or
filterable so they never dump the raw multi-MB body into the model's context.

## Configuration

Two environment variables, both required:

```
GOCD_BASE_URL=https://gocd.example.com
GOCD_ACCESS_TOKEN=<personal access token>
```

`GOCD_BASE_URL` is the bare host, without a trailing `/go`. The tools append
`/go/api/...` themselves. Create the token in GoCD under your profile, Personal
Access Tokens.

## Install

### npx (Node >= 18), recommended

Zero install, nothing to build. This is the simplest way to run the server:

```bash
claude mcp add gocd -e GOCD_BASE_URL=... -e GOCD_ACCESS_TOKEN=... -- npx -y gocd-mcp
```

Published on npm as [`gocd-mcp`](https://www.npmjs.com/package/gocd-mcp) and on the
MCP Registry as `io.github.Sahilll15/gocd`, so registry-aware clients can find it by name.

### Go binary

Download a prebuilt binary from Releases, or build it:

```bash
cd go && go build -o gocd-mcp .
```

Register it:

```bash
claude mcp add gocd -e GOCD_BASE_URL=... -e GOCD_ACCESS_TOKEN=... -- /path/to/gocd-mcp
```

### Docker

```bash
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
```

To run the TypeScript source directly during development (Node >= 22.6, uses
type-stripping):

```bash
cd ts && node --experimental-strip-types src/server.ts
```

## Which one

They are functionally identical. In a local benchmark the Go build started about
4x faster (~21ms vs ~80ms cold start) and used about 6x less memory; per-request
latency was a tie because the GoCD network round-trip dominates. Prefer the Go
binary or Docker image for a spawned-per-session server; prefer `npx` when you want
the zero-install path and already have Node.

## Layout

```
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
```

