host-mcp-jenkins
Provides tools for interacting with Jenkins via REST API, enabling AI agents to manage jobs, builds, logs, SCM configurations, and test results on a Jenkins instance.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@host-mcp-jenkinsget the latest build status of 'my-app'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
host-mcp-jenkins
A local MCP (Model Context Protocol) server for Jenkins that replicates the Jenkins MCP Server Plugin by calling Jenkins REST API over HTTP.
No plugin installation required on your Jenkins instance.
Why?
The official Jenkins MCP Server Plugin must be installed on the Jenkins server. If you don't have admin rights to install plugins, host-mcp-jenkins gives you the same 17 MCP tools running locally, calling Jenkins REST API with your personal API token.
Related MCP server: jenkins-mcp
Compatibility
Jenkins Version | Status |
LTS 2.462.x+ | ✅ Fully supported |
LTS 2.426.x | ✅ Fully supported |
LTS 2.401.x | ✅ Fully supported |
LTS 2.361.x | ✅ Fully supported |
Weekly (latest) | ✅ Fully supported |
Minimum version: Jenkins 2.164+. All REST API endpoints used by this server have been available in Jenkins core since the earliest 2.x releases. The
treequery parameter (used for response field filtering) was introduced in Jenkins 1.464.
Plugin Dependencies
Most tools (11 out of 17) use only the Jenkins core REST API and require no plugins. Some tool categories depend on specific plugins:
Tools | Required Plugin | Min Plugin Version | Notes |
| 2.0+ | SCM data exposed via Git plugin actions | |
| 1.0+ | Bundled with Jenkins since 1.577 | |
| 1.33+ | Flaky test detection support required |
Note: The Git Plugin is installed on ~96% of Jenkins controllers. The JUnit Plugin is installed on ~97% and has been bundled with Jenkins by default since version 1.577. If these plugins are not present, the corresponding tools will return empty results or 404 errors.
API Endpoint Matrix
Every tool maps to one or more Jenkins REST API endpoints. All JSON endpoints support the tree parameter for field filtering.
Tool | Method | REST Endpoint | Dependency |
| GET |
| Core |
| GET |
| Core |
| GET |
| Core |
| POST |
| Core |
| POST |
| Core |
| GET |
| Core |
| GET |
| Core |
| GET |
| Core |
| GET |
| Core |
| GET |
| Core |
| GET |
| Core |
| GET |
| Git Plugin |
| GET |
| Git Plugin |
| GET |
| Core |
| GET |
| Git Plugin |
| GET |
| JUnit Plugin |
| GET |
| JUnit Plugin ≥ 1.33 |
Quick Start
npx @mister-good-deal/host-mcp-jenkins \
--jenkins-url https://jenkins.example.com \
--jenkins-user your-username \
--jenkins-token your-api-tokenHTTP Transport
To start the server with Streamable HTTP transport instead of stdio:
npx @mister-good-deal/host-mcp-jenkins \
--jenkins-url https://jenkins.example.com \
--jenkins-user your-username \
--jenkins-token your-api-token \
--transport http \
--port 3000This exposes:
Health check:
GET /health→{"status":"ok"}MCP endpoint:
/mcp(Streamable HTTP)Graceful shutdown on
SIGINT/SIGTERM
Configuration
All options support both CLI arguments and environment variables (CLI takes precedence):
CLI Argument | Environment Variable | Required | Default | Description |
|
| ✅ | — | Jenkins base URL |
|
| ✅ | — | Jenkins username |
|
| ✅ | — | Jenkins API token |
|
|
| Skip TLS certificate verification | |
|
|
|
| |
|
|
| HTTP request timeout (ms) | |
|
|
| Max retries for transient errors (429/5xx) | |
|
|
| Base delay in ms for exponential backoff | |
|
|
| Transport type ( | |
|
|
| HTTP server port (only with |
Getting a Jenkins API Token
Log in to Jenkins
Click your username (top-right) → Configure
Under API Token, click Add new Token
Name it and click Generate — copy the token value
MCP Client Configuration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"jenkins": {
"command": "npx",
"args": ["-y", "@mister-good-deal/host-mcp-jenkins"],
"env": {
"JENKINS_URL": "https://jenkins.example.com",
"JENKINS_USER": "your-username",
"JENKINS_API_TOKEN": "your-api-token"
}
}
}
}VS Code
Add to .vscode/mcp.json:
{
"servers": {
"jenkins": {
"command": "npx",
"args": ["-y", "@mister-good-deal/host-mcp-jenkins"],
"env": {
"JENKINS_URL": "https://jenkins.example.com",
"JENKINS_USER": "your-username",
"JENKINS_API_TOKEN": "your-api-token"
}
}
}
}Cursor
Add to your MCP server configuration:
{
"mcpServers": {
"jenkins": {
"command": "npx",
"args": ["-y", "@mister-good-deal/host-mcp-jenkins", "--jenkins-url", "https://jenkins.example.com", "--jenkins-user", "your-username", "--jenkins-token", "your-api-token"]
}
}
}Note for contributors: If you're running the MCP server from within this workspace (where
package.jsondeclares"packageManager": "pnpm@...") andnpxfails withhost-mcp-jenkins: not found, usepnpm dlxinstead. This happens because corepack interceptsnpxwhen run from a pnpm-managed project.
HTTP Transport (Remote)
When the server is running with --transport http, MCP clients can connect via HTTP URL instead of launching a subprocess:
Claude Desktop / VS Code / Cursor:
{
"mcpServers": {
"jenkins": {
"url": "http://localhost:3000/mcp"
}
}
}Docker Usage
HTTP transport enables AI agents running inside Docker containers to connect to the MCP server without needing an MCP gateway.
Running the MCP Server on the Host
Start the server with HTTP transport on the host machine:
npx @mister-good-deal/host-mcp-jenkins \
--jenkins-url https://jenkins.example.com \
--jenkins-user your-username \
--jenkins-token your-api-token \
--transport http \
--port 3000From inside a Docker container, connect to http://host.docker.internal:3000/mcp.
Docker Compose Example
services:
ai-agent:
image: your-ai-agent:latest
environment:
MCP_SERVER_URL: "http://host.docker.internal:3000/mcp"
extra_hosts:
- "host.docker.internal:host-gateway"Note: The
extra_hostsmapping is required on Linux. On macOS and Windows, Docker Desktop resolveshost.docker.internalautomatically.
Available Tools (17)
Full parity with the Jenkins MCP Server Plugin, plus extras:
Core (8)
Tool | Description |
| Get a Jenkins job by its full path |
| Get a paginated list of Jenkins jobs, sorted by name |
| Get a specific build or the last build of a Jenkins job |
| Trigger a build for a Jenkins job (supports parameters) |
| Update build display name and/or description |
| Get information about the currently authenticated user |
| Check the health and readiness status of a Jenkins instance |
| Get the queue item details by its ID |
Build Logs (3)
Tool | Description |
| Retrieve paginated log lines for a build |
| Incrementally retrieve build logs via Jenkins progressive text API |
| Search for log lines matching a pattern (string or regex) |
SCM (4)
Tool | Description |
| Retrieve SCM configurations of a Jenkins job |
| Retrieve SCM configurations of a Jenkins build |
| Retrieve change log sets of a Jenkins build |
| Find jobs that use a specified git SCM URL |
Test Results (2)
Tool | Description |
| Retrieve test results for a build (optionally only failures) |
| Retrieve flaky test failures for a build |
Comparison with Jenkins MCP Server Plugin
Feature | Jenkins Plugin | host-mcp-jenkins |
Installation | Requires Jenkins admin | None — runs locally |
Transport | SSE, Streamable HTTP, Stateless | stdio (default), Streamable HTTP |
Authentication | Jenkins built-in | API token over HTTP Basic |
Tools | 16 | 17 (full parity + progressive log) |
Response format |
| Same |
| Via internal API | Forwarded to REST API |
Development
# Install dependencies
pnpm install
# Build
pnpm run build
# Run in development mode
pnpm run dev -- --jenkins-url https://jenkins.example.com --jenkins-user admin --jenkins-token TOKEN
# Lint
pnpm run lint
# Unit tests
pnpm test
# Integration tests (requires Docker)
pnpm run test:integrationLicense
MIT
Available Tools
17 toolsfindJobsWithScmUrlARead-only
Get a paginated list of Jenkins jobs that use the specified git SCM URL
| Name | Required | Description | Default |
|---|---|---|---|
| scmUrl | Yes | Git SCM URL to search for | |
| branch | No | Branch name to filter by | |
| skip | No | Number of jobs to skip | |
| limit | No | Maximum number of jobs to return (max 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds the behavioral trait of pagination, which is beyond annotations. However, it does not disclose details like pagination ordering or consistency guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description is minimal. It informs pagination but does not specify return format (e.g., job names, URLs), pagination behavior, or error handling. For a list-returning tool with pagination, more detail would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add any additional meaning beyond the schema; it only reiterates the scmUrl parameter. No extra context for branch, skip, or limit is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get a paginated list'), the resource ('Jenkins jobs'), and the filter condition ('use the specified git SCM URL'). It effectively distinguishes this tool from siblings like 'getJobs' (all jobs) and 'getJobScm' (SCM info for a single job).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when filtering by SCM URL) but does not explicitly state when not to use or provide alternatives. There is no guidance on avoiding this tool for non-SCM-based job queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBuildARead-only
Get a specific build or the last build of a Jenkins job
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| buildNumber | No | Build number (omit for last build) | |
| tree | No | Jenkins tree parameter to filter response fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, so the description does not need to state it. However, the description adds no additional behavioral context such as rate limits, authentication, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, 15 words, front-loaded with the core purpose. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with 3 parameters and no output schema, the description is adequate but minimal. It lacks information about return format or behavior when build does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter already described. The tool description does not add additional meaning or examples beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'build of a Jenkins job', and distinguishes between specific build and last build. It differentiates from sibling tools like getBuildLog, getBuildScm, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a build by number or last build, but provides no explicit guidance on when to use this tool versus alternatives like getBuildLog or getBuildScm.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBuildChangeSetsBRead-only
Retrieves change log sets of a Jenkins build
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| buildNumber | No | Build number (omit for last build) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds no additional behavioral context (e.g., pagination, limits, or empty results). It does not disclose any traits beyond the basic retrieval action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, with no redundant words. It is as concise as possible for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description could be more explicit about return format (e.g., list of changes). However, for a straightforward read-only tool with well-documented parameters, it is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. Description adds no extra meaning to the parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Retrieves' and resource 'change log sets of a Jenkins build', distinguishing it from sibling tools like getBuildLog or getBuildScm. However, the term 'change log sets' is slightly vague and could be more precise like 'change sets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., getBuildScm, getBuildLog). The description only states the function, leaving the agent without context on selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBuildLogBRead-only
Retrieves some log lines with pagination for a specific build or the last build
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| buildNumber | No | Build number (omit for last build) | |
| skip | No | Number of lines to skip (negative = from end) | |
| limit | No | Number of lines to return (positive=from start, negative=from end, default 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description aligns with that. However, it adds no additional behavioral context such as rate limits, error handling, or what happens for invalid build numbers. With annotations present, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence that front-loads the key information. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should clarify the return format. It does not mention whether the result is an array of strings, includes total lines, or any truncation limits. Given the complexity (4 params) and lack of output documentation, the description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 4 parameters with detailed descriptions. The description only adds 'pagination' and 'last build' as context, which do not significantly enhance understanding beyond the schema. With 100% schema coverage, baseline 3 is justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves log lines with pagination for a specific or the last build. This distinguishes it from siblings like searchBuildLog or getProgressiveBuildLog, but could be more precise about pagination behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives like getProgressiveBuildLog for streaming or searchBuildLog for searching. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getBuildScmBRead-only
Retrieves SCM configurations of a Jenkins build
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| buildNumber | No | Build number (omit for last build) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description confirms read-only behavior ('Retrieves'), aligning with readOnlyHint annotation, but adds no further behavioral details such as authentication requirements, potential performance impact, or limitations on the returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no fluff, but could be more structured. It is concise and front-loaded, though slightly too minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does not explain what the returned SCM configurations contain or their format. For a retrieval tool, this is a significant gap, especially given the number of sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds no extra meaning beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves SCM configurations of a Jenkins build, with a specific verb and resource. It distinguishes from siblings like getJobScm (job-level) and getBuildChangeSets (changesets).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like getJobScm or getBuildChangeSets. The description implies it's for build-level SCM configs but does not clarify context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFlakyFailuresARead-only
Retrieves the flaky failures associated to a Jenkins build if any found
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| buildNumber | No | Build number (omit for last build) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds that results are conditional ('if any found'), which is useful, but lacks details on error handling or empty results behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, front-loaded with key information. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and moderate complexity, the description is minimal. It does not explain return format or what constitutes a flaky failure, leaving some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description does not add additional meaning beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves flaky failures for a Jenkins build, which is a specific verb+resource. It distinguishes from siblings like getTestResults or getBuild, as it focuses solely on flaky failures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For example, there is no mention that getTestResults might be more appropriate for non-flaky failures, or any context about when this tool should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getJobARead-only
Get a Jenkins job by its full path
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job (e.g., 'folder/myJob') | |
| tree | No | Jenkins tree parameter to filter response fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description does not need to re-state safety. It adds the context that the job is fetched by full path, which is helpful but not a behavioral trait. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the core function without redundancy. Every word earns its place; no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has low complexity (2 params, no output schema). The description explains the purpose and primary parameter but does not mention the return format or the tree parameter's filtering capability, which would aid completeness. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters have descriptions). The description only reiterates the jobFullName parameter's usage ('by its full path') and adds nothing new about the tree parameter. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('Jenkins job') with a distinct qualifier ('by its full path'), clearly distinguishing it from sibling tools like getJobs (which lists jobs) and getJobScm (which gets SCM info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, such as getJobs or findJobsWithScmUrl. No context on prerequisites or scenarios is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getJobsARead-only
Get a paginated list of Jenkins jobs, sorted by name
| Name | Required | Description | Default |
|---|---|---|---|
| parentFullName | No | Full name of the parent folder (omit for root) | |
| skip | No | Number of jobs to skip | |
| limit | No | Maximum number of jobs to return (max 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description is consistent with readOnlyHint annotation, but adds no additional behavioral context beyond what annotations already provide (e.g., no mention of pagination limits beyond schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words. Perfectly concise for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all necessary aspects (paginated, sorted by name, Jenkins jobs) for a straightforward listing tool with well-documented parameters and annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds no additional meaning beyond the schema's parameter descriptions. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets a paginated list of Jenkins jobs sorted by name, distinguishing it from sibling tools like 'getJob' (single job) and 'findJobsWithScmUrl' (search by SCM URL).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for listing multiple jobs, but does not explicitly state when to use this tool versus alternatives like 'getJob' for a single job or 'findJobsWithScmUrl' for SCM-based filtering.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getJobScmBRead-only
Retrieves SCM configurations of a Jenkins job
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not add behavioral context beyond the 'readOnlyHint' annotation; it fails to mention any potential constraints like job existence or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous words, efficiently conveying the core purpose. However, it lacks detail that might be expected, slightly reducing conciseness effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and read-only annotation, the description is mostly adequate but does not explain what 'SCM configurations' entails (e.g., repository URL, branch), leaving room for ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no extra information beyond the schema's parameter description 'Full name of the Jenkins job'. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Retrieves' and resource 'SCM configurations of a Jenkins job', clearly distinguishing it from sibling tools like 'getBuildScm' (which gets build-level SCM) and 'findJobsWithScmUrl' (which searches by SCM URL).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; for instance, it does not mention that 'getBuildScm' exists for build-level SCM or that 'findJobsWithScmUrl' could be used for searching by URL.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getProgressiveBuildLogARead-only
Retrieves build log output incrementally using Jenkins progressive text API. Pass the returned nextByteOffset as the start parameter in subsequent calls to get only new output. Ideal for tailing logs of running builds without re-fetching the entire log.
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| buildNumber | No | Build number (omit for last build) | |
| start | No | Byte offset to start from (use nextByteOffset from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds value by disclosing the progressive text API and offset mechanism, but does not mention any limitations or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first explains functionality, second explains usage pattern. No redundant words, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions 'returned nextByteOffset' implying the response contains it, but does not fully describe the return format. For a text retrieval tool, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds context by explaining that start should be set to nextByteOffset from a previous response, which is beyond schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieves build log output incrementally using Jenkins progressive text API,' specifying the verb, resource, and method. It distinguishes itself from sibling tools like getBuildLog by emphasizing incremental retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to 'Pass the returned nextByteOffset as the start parameter in subsequent calls' and labels itself 'Ideal for tailing logs of running builds without re-fetching the entire log,' providing clear when and how to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getQueueItemARead-only
Get the queue item details by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Queue item ID | |
| tree | No | Jenkins tree parameter to filter response fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds no further behavioral context (e.g., error handling, permissions, or rate limits), so it is consistent but not additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, directly states the purpose. Appropriate length for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, so the description should hint at return structure. It only says 'details', which is vague. For a simple getter, this may be adequate but lacks completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description only adds 'by its ID', which is implicit from the required id parameter. No additional semantics for the tree parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the queue item details by its ID', specifying the action (Get), resource (queue item details), and method (by ID). This distinguishes it from sibling tools like getBuild or getJob.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like getBuild or getJob. The description only states what it does, without context on prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getStatusARead-only
Checks the health and readiness status of a Jenkins instance
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds 'health and readiness status' but no further behavioral details such as response structure or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is trivial with no parameters or output schema. Description covers the core function. Lacks details on return format, but acceptable for a health check endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Baseline is 4 per rule for zero parameters; description need not add anything.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Checks' and resource 'health and readiness status of a Jenkins instance', clearly distinguishing it from sibling tools like getBuild or triggerBuild.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. While the purpose is self-evident for a health check, there is no mention of contexts like pre-flight checks or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getTestResultsBRead-only
Retrieves the test results associated to a Jenkins build
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| buildNumber | No | Build number (omit for last build) | |
| onlyFailingTests | No | If true, only return failing tests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and description does not contradict. However, description adds no extra behavioral context such as authorization requirements or response nature beyond what is obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single clear sentence with no wasted words. Could be slightly more concise ('for' instead of 'associated to'), but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fails to explain what 'test results' include (e.g., pass/fail status, test names, duration). Incomplete for an agent to understand return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add any parameter-level meaning beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves test results for a Jenkins build. It is specific and distinguishes from sibling tools like getBuild or getFlakyFailures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like getFlakyFailures or getBuildLog. The description lacks context on appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchBuildLogBRead-only
Search for log lines matching a pattern in a specific build or the last build
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| buildNumber | No | Build number (omit for last build) | |
| pattern | Yes | Search pattern (string or regex) | |
| useRegex | No | Treat pattern as regex | |
| ignoreCase | No | Case-insensitive search | |
| maxMatches | No | Maximum number of matches to return (max 1000) | |
| contextLines | No | Number of context lines before and after each match (max 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true already indicates a read operation, and the description aligns with that. It adds the behavioral detail of defaulting to the last build when buildNumber is omitted, but does not disclose other traits like search performance, rate limits, or what happens on no matches.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action. It is appropriately sized for the tool's straightforward purpose, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description is minimal. It covers the essential scope (specific build or last build) but does not mention what the tool returns (matched lines with context), leaving some completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter meaning beyond what the schema provides; it does not explain parameter interactions or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: searching for log lines matching a pattern. It mentions the context of 'a specific build or the last build', which clearly identifies the resource. However, it does not explicitly differentiate from sibling tools like getBuildLog, although the pattern matching aspect implies a distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over alternatives, nor are there any exclusions or prerequisites. The description only states what the tool does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triggerBuildC
Trigger a build for a Jenkins job
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| parameters | No | Build parameters as key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description simply states the action, and annotations indicate it is not read-only (readOnlyHint=false). However, beyond that, no behavioral traits are disclosed—e.g., whether the build is queued or started immediately, whether it requires specific permissions, or what happens if the job is disabled. With no other annotations, the description should fill the gap but does not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short—one sentence with 7 words. While concise, it omits critical details that could be included in the same length (e.g., note that it triggers a new build immediately). The structure is efficient but incomplete for ideal usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters with a nested object), absence of an output schema, and minimal annotations, the description should provide more context about return values, error cases, and typical use. Sibling tools like getBuild and updateBuild are richer; this tool's description lacks completeness to guide correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (jobFullName and parameters) with 100% coverage, so the baseline is 3. The description adds no additional information about parameter usage, constraints, or expected formats (e.g., the free-form parameters object could benefit from examples). Thus it meets but does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Trigger a build for a Jenkins job' clearly identifies the action ('trigger'), the resource ('build'), and the target ('Jenkins job'). It distinguishes from sibling tools like getBuild (which fetches details) and updateBuild (which updates settings). However, it lacks nuance about scope (e.g., triggers a new build or re-triggers?) which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as updateBuild or getBuild. There is no mention of prerequisites (e.g., job must exist, job must be enabled) or context about scheduling vs immediate trigger. The description offers no decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateBuildA
Update build display name and/or description
| Name | Required | Description | Default |
|---|---|---|---|
| jobFullName | Yes | Full name of the Jenkins job | |
| buildNumber | No | Build number (omit for last build) | |
| displayName | No | New display name for the build | |
| description | No | New description for the build |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations confirm write operation (readOnlyHint: false). Description adds no additional behavioral context beyond the schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 5 words, directly conveying the tool's action with no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with clear schema and annotations, the description is adequate. No output schema needed for such a straightforward operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 4 parameters with descriptions (100% coverage). Description merely summarizes two optional params without adding new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Update build display name and/or description' using specific verb and resource, distinguishing from read-only sibling tools like getBuild and getBuildLog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use information. While implied from context, guidance on alternatives (e.g., when to use triggerBuild) is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoAmIARead-only
Get information about the currently authenticated user
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Get information', which aligns with the readOnlyHint annotation. It adds the scope 'currently authenticated user' but does not disclose additional behavioral traits (e.g., return format, if it requires authentication).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loading the purpose, with no extraneous information. Every word contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and the description clearly states its function, the description is complete for an agent to understand and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100%. According to guidelines, a baseline of 4 applies when there are no parameters. The description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get information about the currently authenticated user' uses a clear verb ('Get') and specifies the resource ('currently authenticated user'), distinguishing it from sibling tools which focus on jobs and builds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. However, the tool is uniquely for user authentication info, so usage is implied but not explicitly differentiated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
v0.2.3- First observed
findJobsWithScmUrl - First observed
getBuild - First observed
getBuildChangeSets - First observed
getBuildLog - First observed
getBuildScm - First observed
getFlakyFailures - First observed
getJob - First observed
getJobs - First observed
getJobScm - First observed
getProgressiveBuildLog - First observed
getQueueItem - First observed
getStatus - First observed
getTestResults - First observed
searchBuildLog - First observed
triggerBuild - First observed
updateBuild - First observed
whoAmI
TDQS
Scored across 17 tools
Each tool targets a distinct aspect of Jenkins (jobs, builds, logs, SCM, queue, status, authentication). Even similar tools like getBuildLog and getProgressiveBuildLog serve clearly different use cases (full paginated vs incremental tailing).
Tool names consistently follow a verb_noun pattern with camelCase, using clear verbs like get, find, search, trigger, update, whoAmI. No mixing of styles or inconsistent naming conventions.
17 tools cover a broad but focused set of Jenkins operations. While slightly above the ideal range, each tool earns its place for a comprehensive CI/CD assistant. Could be trimmed slightly, but still well-scoped.
Covers job discovery, build details, logs, SCM, triggering, and updates. Notable gaps include listing builds for a job, aborting builds, and viewing build parameters, which agents may need but are absent.
Maintenance
Related MCP Connectors
MCP Server for JFrog, providing tools for development and artifact management.
The Buildkite MCP server exposes Buildkite product data (pipelines, builds, jobs, and test data) to AI tools, editors, and agents through the Model Context Protocol. It provides capabilities including pipeline creation and management, build monitoring with specialized tools like 'wait_for_build', efficient log querying using Apache Parquet conversion and caching, and OAuth-based authentication for both read-write and read-only access to Buildkite's REST API.
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
A MCP server built for developers enabling Git based project management with project and personal…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server for interacting with a Jenkins CI/CD server. Allows you to trigger jobs, check build statuses, and manage your Jenkins instance through MCP.2314Apache 2.0
- AlicenseNot gradedqualityAmaintenanceMCP server for Jenkins to inspect builds, control jobs, and manage pipeline configuration.7MIT
- AlicenseNot gradedqualityCmaintenanceA Jenkins MCP server for multi-instance build management, log inspection, failure diagnostics, and optional vector search.30GPL 3.0
- AlicenseAqualityCmaintenanceMCP server that connects AI agents to Jenkins, supporting stdio and HTTP transports with tools for jobs, builds, logs, and queue management.975MIT