Jenkins Mcp Go

devops-infra MCP Server

Jenkins MCP server in Go — expose Jenkins jobs, builds, and console logs to LLMs.

VerifiedInstall Ready
devops-infradevops-infra
5 views4 stars0 forksMIT

Why This Matters

Discovered via github-topic:model-context-protocol and last synced 2mo ago.

VerifiedInstall Ready
Source
github-topic:model-context-protocol
Stars
4
Last synced
2mo ago
Install
Instructions detected

Install

1. Install the package

go install github.com/2001adarsh/jenkins-mcp-go@latest
45
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (45)

get_console_log

Tail the build's `/consoleText`. Defaults to last 500 lines; pass `tail_lines: -1` for the full log.

get_failure_summary

Parse Ginkgo's `Summarizing N Failure` block and surface the first `[ERROR]` tagged with each spec name.

JENKINS_URL

yes

Option

Runtime

get_stage_log

Fetch a single pipeline stage's log via `/execution/node/<id>/wfapi/log`.

stop_build

Abort a running build. **Mutating**.

JENKINS_MCP_DEBUG

no

list_nodes

List Jenkins agents/nodes with status, executor counts, labels, and monitor summaries.

JENKINS_USER

yes

None

None — agent has to parse raw JSON

cancel_queue_item

Drop a pending queue item by id. **Mutating**; suppressed when `JENKINS_MCP_READONLY` is set.

JENKINS_MCP_CACHE_MAX

no

get_test_report

Structured JUnit results from `/testReport/api/json`, with failed cases and head+tail of stack traces.

Variable

Required

JENKINS_MCP_READONLY

no

search_console_log

RE2 regex search over the console log with line-number-aware context windows.

get_node

Per-node detail: status, per-executor idle state, labels, full monitor data.

JENKINS_API_TOKEN

yes

Shell

Manual

get_build_info

Pretty-printed build summary: result, duration, parameters, change set.

list_queue

List pending Jenkins queue items with the block reason for each.

JENKINS_MCP_CACHE_DIR

no

get_pipeline_stages

List Declarative/Scripted Pipeline stages via `/wfapi/describe` with status and duration.

trigger_build

Queue a build, optionally with parameters; can block until the build is assigned a number. **Mutating**.

JENKINS_MCP_TIMEOUT

no

get_pipeline_script

Return the Jenkinsfile a specific build actually ran. Tries the Replay plugin first (build-pinned), falls back to `config.xml` (job-level — provenance surfaced). Returns SCM coords as a hint for Pipeline-from-SCM jobs.

Tool

Purpose

get_flaky_candidates

Rank flaky tests across the latest N completed builds of one job by counting pass↔fail flips. Returns a sorted table of test name, flip count, pass/fail tallies, and last-seen build.

list_jobs

Enumerate jobs and folders under a path (or root). Optional recursion and case-insensitive RE2 name filter; capped at 500 entries.

changes_since_last_green

Union the commits across every completed build since the job's last green. Walks `previousCompletedBuild`, dedupes by `commitId`, supports `path_filter` and `max_commits`. Surfaces 'all green' and wide-window footers.

list_pr_builds

List all builds for a PR on a `WorkflowMultiBranchProject`. Probes the common PR branch naming conventions in parallel (`PR-N`, `pull/N/head`, `change-N`, `pr/N`) and renders the build history for the first match.

health_check

Validate the server's setup: Jenkins reachability and version, authenticated user, CSRF crumb issuer, Pipeline/JUnit plugin presence, online/offline node counts, clock skew, and the effective config the process is running with.

get_build_environment

Three sections for a build: Cause (trigger reason verbatim), Parameters (masked secrets surfaced as `(masked)`), and Injected Env Vars via EnvInject. Optional RE2 `name_filter` narrows the env-var section. Degrades on EnvInject 404.

get_test_history

Per-build trend of a single test across the last N completed builds — the follow-up to `get_flaky_candidates` once a suspect is known. Timeline (build #, result, status, duration, error head) plus a summary of counts and flips.

whoami_can

Probe a job for the configured token's effective Read / Build / Cancel / Configure permissions via read-only `GET` requests. Useful up-front to avoid a 403 on a trigger or cancel. Stays read-only even when `JENKINS_MCP_READONLY=false`.

last_green_build

Report the most recent successful build of a job. Returns number, finish time (UTC), and URL — the start point for bisect-from-green.

find_recent_failures

Survey failed builds across the jobs under `folder_path` within a lookback window. Per-job probe of the last 5 builds; filters by `since` (24h default; supports `Nd`) and `result_filter` (FAILURE/UNSTABLE/ABORTED/ANY_NON_SUCCESS).

list_branches

Enumerate the branches of a `WorkflowMultiBranchProject` with per-branch last-build number, result, duration, and timestamp. Optional `name_filter` (RE2) and `healthy_only`.

compare_builds

Diff two builds of the same job across result, duration, parameters, SCM commits, pipeline stages, and JUnit tests. The agent answers "what changed between A and B?" in one call.

get_ginkgo_failure_summary

Parse Ginkgo's `Summarizing N Failure` block and surface the first `[ERROR]` tagged with each spec name.

get_console_log_path

Force-cache the full log for a completed build and return its on-disk path so the agent can `Read`/`Grep`/`Bash` it natively.

tail_running_build

Capped, offset-tracked tail of an in-flight build's console via Jenkins' `progressiveText`. Echo `Next since_byte` back to paginate. Never writes to the on-disk cache.

get_scm_context

Per-commit history for one build: commit id, author, timestamp, message subject, and each commit's touched paths with `A`/`M`/`D` edit codes. Pipeline change sets are flattened with per-set headers. Optional RE2 `path_filter`.

find_test_by_name

Locate which job runs a test whose full name contains a substring. Walks `list_jobs(recursive)` under `folder_path`, fans out per-job probes against `lastCompletedBuild/testReport` with a 5s per-job timeout, renders a sorted table of hits.

get_plugin_versions

List installed Jenkins plugins with versions, pinned flag, and pending-update flag. Optional `name_filter` (RE2) and `include_inactive`. 403 degrades to a clear hint.