Local stdio client
Per-user pilot path. Cursor spawns jenkins-mcp serve. Credentials from keyring. RO default. Optional mutations with preview/confirm. This is the supported first production path.
Clear package boundaries: Jenkins HTTP never imports MCP, tools never own raw transport, contracts and error taxonomies are shared.
cmd/jenkins-mcpProcess entry — stdio default, optional HTTP, admin, gateway, doctor CLIsinternal/jenkinsJenkins client, resilience, pagination, route matrix — no MCP importsinternal/toolsMCP tool registration, budgets, diagnose/compare/survey surfacesinternal/auth · policy · redactIdentity, deny-only RBAC, signed overlays, secret scrubbinginternal/store · archive · logmirrorLocal cache, L1/L2 packs, progressive log materializationinternal/admin · web/adminBFF + embedded React SPA for operatorsdeploy/local · deploy/gatewayDisposable Docker lab and gateway scaffoldPer-user pilot path. Cursor spawns jenkins-mcp serve. Credentials from keyring. RO default. Optional mutations with preview/confirm. This is the supported first production path.
Team-hosted HTTP path with identity and vault scaffolding. Qualification and multi-tenant mutation isolation remain residual — use for lab / roadmap, not as a silent upgrade claim.
ADR 0003 — stock Jenkins is never treated as an OAuth authorization server. External IdP + resource-server path only.
ADR 0004 — global read-only default; overlays deny, they do not invent privilege.
ADR 0006 — protocol pin via modelcontextprotocol/go-sdk; contracts stay budgeted (ADR 0010).
ADR 0012 — Ed25519 envelopes for fleet distribution with last-good fallbacks.
ADR 0014 — reactive admin UI build embedded for single-binary operator flows.
Soft 64 KiB targets, hard max ceilings, opaque list pagination — agents cannot request unbounded dumps.
Full ADR index: docs/adr/README.md