Model Context Protocol server for Jenkins CI/CD integration
The Jenkins MCP server has 15 tools with explicitly defined schemas and descriptions in src/tools/definitions.ts. However, the definitions exhibit significant gaps that limit production readiness. Tool names follow verb_noun conventions (good), but descriptions are inconsistent in depth. Most critically: (1) Parameter descriptions are sparse or absent, many parameters lack guidance on valid values, formats, or constraints; (2) Output schemas are not documented, callers cannot predict the structure of responses; (3) No error recovery guidance is provided, tools do not tell LLMs what to do when calls fail; (4) Enums are underutilized, free-form string parameters like 'classPattern', 'fullNamePattern', and 'colorPattern' invite hallucinated regex values instead of bounded options. For example, 'query_items' accepts three regex parameters with no description of the syntax, valid patterns, or examples. The tool would benefit from constraining searches to predefined filters or providing explicit format guidance. Tools like 'build_item' accept optional 'parameters' as a free-form object with no schema or documentation of what keys are valid. Overall, the server demonstrates basic competency but lacks the depth expected of production-grade tools.
Trigger a build for a Jenkins item
Cancel a specific item in the build queue
Get all items (jobs and folders) from Jenkins server
Get all Jenkins nodes (agents)
Get all items in the Jenkins build queue
Get details of a specific build
Get the console output (logs) of a specific build
Output schemas undocumented. Tools return results but callers cannot predict field names, types, or structure. This forces LLMs to make assumptions about response shapes, risking errors in downstream tool chaining.
Parameter descriptions missing or insufficient. 'query_items' accepts three regex parameters (classPattern, fullNamePattern, colorPattern) with no explanation of valid regex syntax, examples, or constraints. 'build_item' accepts 'parameters' object with no documentation of valid keys.
No error recovery guidance. Tools do not tell LLMs what to do on failure. A 'user not found' or 'build already running' error should suggest next steps, but error responses are not documented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Get details of a specific Jenkins item by its full name
Get the XML configuration of a specific Jenkins item
Get details of a specific Jenkins node
Get the XML configuration of a specific Jenkins node
Get details of a specific queue item
Get all currently running builds in Jenkins
Query Jenkins items with pattern filters
Stop a running build
Free-form string parameters without constraints. 'query_items' regex parameters and 'build_item' parameters object lack enum/pattern constraints, inviting LLM hallucination of invalid values.
Pagination not documented. 'get_all_items' and 'get_all_nodes' may return large result sets, but no limit, offset, or page parameters are visible. Without pagination, large results may exceed context windows.
Destructive operations lack confirmation/dry-run support. 'cancel_queue_item' and 'stop_build' are reversible but non-idempotent state changes. No confirmation step is documented.