jenkins-mcp
Provides tools for managing Jenkins jobs, builds, nodes, and queues through the Jenkins API, enabling querying, triggering, and controlling Jenkins CI/CD pipelines.
Click on "Install 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., "@jenkins-mcplist all Jenkins jobs"
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.
jenkins-mcp
A Model Context Protocol (MCP) server that provides AI assistants with full access to Jenkins CI/CD systems. Built with TypeScript and Node.js, it enables Claude, Cursor, and other MCP-compatible clients to query, manage, and control Jenkins jobs, builds, nodes, and queues through natural language.
Table of Contents
Related MCP server: Jenkins MCP Server
Features
23 MCP Tools — Full Jenkins automation: jobs, builds, nodes, and queues
3 Transport Modes —
stdio,sse, andstreamable-httpfor different deployment scenariosRead-Only Mode — Restrict to safe, read-only operations for controlled environments
Per-Request Auth — HTTP header-based Jenkins auth for multi-user/multi-tenant setups
SSL Configuration — Toggle SSL certificate verification for self-signed certs
Session Singleton — Reuse Jenkins client connections within a session for efficiency
CSRF Protection — Automatic crumb/token handling for Jenkins security
Folder Support — Full support for nested Jenkins folders and multi-branch pipelines
TypeScript Strict Mode — Fully typed codebase with strict compiler checks
Usage
MCP Client
Add the following to your MCP client configuration file:
{
"mcpServers": {
"jenkins": {
"command": "npx",
"args": [
"jenkins-mcp",
"--jenkins-url",
"https://jenkins.example.com",
"--jenkins-username",
"your-username",
"--jenkins-password",
"your-api-token"
]
}
}
}Claude Code
claude mcp add jenkins -- npx jenkins-mcp \
--jenkins-url https://jenkins.example.com \
--jenkins-username your-username \
--jenkins-password your-api-tokenCursor
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"jenkins": {
"command": "npx",
"args": [
"jenkins-mcp",
"--jenkins-url",
"https://jenkins.example.com",
"--jenkins-username",
"your-username",
"--jenkins-password",
"your-api-token"
]
}
}
}Read-Only Mode
For safety in production environments, use --read-only to disable all write operations:
{
"mcpServers": {
"jenkins": {
"command": "npx",
"args": [
"jenkins-mcp",
"--read-only",
"--jenkins-url",
"https://jenkins.example.com",
"--jenkins-username",
"your-username",
"--jenkins-password",
"your-api-token"
]
}
}
}Configuration
Jenkins-MCP can be configured through CLI arguments, environment variables, or HTTP headers (for HTTP transports).
CLI Options
jenkins-mcp [options]Option | Description | Default |
| Jenkins server URL | — |
| Jenkins username | — |
| Jenkins password or API token | — |
| API request timeout in seconds |
|
| Verify SSL certificates |
|
| Reuse Jenkins client within session |
|
| Only register read-only tools |
|
| Register the unsafe raw full-console-output tool |
|
| Transport mode: |
|
| Host for HTTP transports |
|
| Port for HTTP transports |
|
Environment Variables
Jenkins-MCP reads configuration from process environment variables. It does not auto-load .env files by itself.
If you use a local .env file, load it before starting the server (for example: set -a; source .env; set +a), then run jenkins-mcp.
Example .env values:
# Jenkins server URL
jenkins_url=https://jenkins.example.com/
# Jenkins basic auth
jenkins_username=your-username
jenkins_password=your-api-token
# Optional runtime settings
jenkins_timeout=5
jenkins_verify_ssl=true
jenkins_session_singleton=trueHTTP Headers (HTTP Transports Only)
When using sse or streamable-http transport, Jenkins credentials can be provided per-request via HTTP headers. This enables multi-user scenarios where different requests authenticate against different Jenkins instances.
Header | Description |
| Jenkins server URL |
| Jenkins username |
| Jenkins password or API token |
Each provided header overrides the corresponding environment variable for that request. Missing header values fall back to environment configuration.
Available Tools
Job / Item Tools
Tool | Description | Parameters | Read-Only |
| Get all jobs and folders from Jenkins | — | Yes |
| Get a specific job or folder by full name |
| Yes |
| Get job configuration XML |
| Yes |
| Update job configuration XML |
| No |
| Search items with regex filters |
| Yes |
| Trigger a job build |
| No |
Build Tools
Tool | Description | Parameters | Read-Only |
| Get build details |
| Yes |
| Get the recent tail of build console output |
| Yes |
| Read incremental console output by offset |
| Yes |
| Search console output incrementally with excerpts |
| Yes |
| Get focused failure excerpts and test hints via incremental scan |
| Yes |
| Get raw full console log output |
| Yes |
| Get test results report |
| Yes |
| Extract build scripts (for replay) |
| Yes |
| Get all currently running builds | — | Yes |
| Stop a running build |
| No |
For large logs, prefer get_build_console_tail -> search_build_console -> get_build_console_chunk.
get_build_console_output is disabled by default and only registered when --allow-full-console-output is set.
Large-log helper tools enforce server-side byte ceilings even if the caller asks for more, and search-style tools scan logs incrementally instead of fetching consoleText.
Recommended Troubleshooting Flow
For a failed build, prefer this sequence:
get_buildto confirmresult,building, and the target build number.get_build_failure_excerptto get focused failure snippets plus failing test hints.search_build_consolewith anchors such asCaused by:,ERROR,FAILED, or a failing test name.get_build_console_chunkto continue reading from a returnednextStartoffset when the first excerpt is not enough.get_build_console_outputonly when raw full log export is explicitly needed.
For a running build, prefer this sequence:
get_buildto confirm the build is still running.get_build_console_tailto inspect the latest output window.search_build_consolefor known error anchors in the recent window.get_build_console_chunkwith the lastnextStartvalue to keep polling without rereading old output.
Node Tools
Tool | Description | Parameters | Read-Only |
| Get all compute nodes | — | Yes |
| Get a specific node with executor info |
| Yes |
| Get node configuration XML |
| Yes |
| Update node configuration XML |
| No |
Queue Tools
Tool | Description | Parameters | Read-Only |
| Get all items waiting in the queue | — | Yes |
| Get a specific queue item by ID |
| Yes |
| Cancel a queued item |
| No |
Tools marked Read-Only: No are only available when
--read-onlyis not set.
Transport Modes
stdio (Default)
Standard input/output transport for direct MCP client integration. This is the recommended mode for Claude Desktop, Cursor, and other desktop MCP clients.
jenkins-mcp --transport stdio \
--jenkins-url https://jenkins.example.com \
--jenkins-username user --jenkins-password tokenSSE (Server-Sent Events)
HTTP-based transport using Server-Sent Events. Suitable for web-based clients or remote access scenarios.
jenkins-mcp --transport sse \
--host 127.0.0.1 --port 9887 \
--jenkins-url https://jenkins.example.com \
--jenkins-username user --jenkins-password tokenSSE endpoint:
GET /sse— establishes an SSE connection and returns a sessionMessage endpoint:
POST /message?sessionId=<id>— sends messages to the session
Streamable HTTP
Session-based HTTP MCP transport over /mcp. Sessions are initialized via MCP initialize, then correlated with mcp-session-id in follow-up requests.
jenkins-mcp --transport streamable-http \
--host 127.0.0.1 --port 9887 \
--jenkins-url https://jenkins.example.com \
--jenkins-username user --jenkins-password tokenMCP endpoint:
POST /mcp— handles all MCP protocol messages
Architecture
┌─────────────────────────────────────────────────┐
│ MCP Client │
│ (Claude, Cursor, etc.) │
└──────────────────┬──────────────────────────────┘
│ MCP Protocol
┌──────────────────▼──────────────────────────────┐
│ Transport Layer │
│ stdio │ SSE │ Streamable HTTP │
├──────────────────┬──────────────────────────────┤
│ MCP Server (mcp.ts) │
│ Tool registration & error handling │
├──────────────────┬──────────────────────────────┤
│ Tool Handlers │
│ item.ts │ build.ts │ node.ts │ queue.ts │
├──────────────────┬──────────────────────────────┤
│ Jenkins REST Client │
│ HTTP requests, auth, CSRF, timeout │
├──────────────────┬──────────────────────────────┤
│ Jenkins Server │
│ (REST API endpoint) │
└─────────────────────────────────────────────────┘Key design patterns:
Dependency Injection —
ToolRuntimeinterface enables testable tool handlersSession Management — HTTP transports map sessions to isolated runtime contexts
Per-Request Auth — HTTP headers override environment config for multi-tenant use
Automatic CSRF — Crumb tokens are fetched and cached transparently
Development
Scripts
Command | Description |
| Start in watch mode (auto-reload on changes) |
| Build production bundle with tsup |
| Run tests with Vitest |
| Run tests in watch mode |
| Run tests with coverage report |
| Run all checks: format, lint, typecheck, test, build |
| Run ESLint |
| Format code with Prettier |
| Interactive conventional commit with Commitizen |
| Create a changeset for release |
License
Available Tools
22 toolsbuild_itemC
Build an item in Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| build_type | Yes | ||
| params | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, and the description says 'Build', implying a write operation – consistent but no additional behavioral details. Lacks info on outcomes, side effects, async nature, or permissions needed.
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 extraneous text. Efficient but at the cost of omitting needed 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?
Despite having 3 parameters (one with enum, one nested object) and no output schema, the description offers no insight into return values, parameter effects, or expected behavior. Incomplete for an agent to use effectively.
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 0%, yet the description provides no explanation for any of the three parameters (fullname, build_type, params). The agent cannot infer how to properly set build_type or pass parameters.
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 'Build an item in Jenkins' clearly states the verb 'Build' and the resource 'item', distinguishing it from get/query/config siblings. However, 'item' is somewhat vague; specifying 'job/pipeline' would improve clarity.
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 get_item or set_item_config. The description does not mention prerequisites, recommended use cases, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_queue_itemA
Cancel a specific item in Jenkins queue by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not a read-only operation (readOnlyHint=false). The description confirms 'Cancel' as a destructive action but does not disclose side effects, idempotency, or authentication requirements. It adds minimal behavioral context beyond the annotation.
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, direct sentence with no extraneous words. It is front-loaded and efficiently conveys the core purpose.
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 tool with one parameter and no output schema, the description covers the basic purpose. However, it does not mention return values, irreversibility, or effect on the Jenkins queue state relative to sibling tools, leaving some contextual gaps.
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 0%, placing burden on description. 'by id' vaguely references the single parameter but does not explain what id represents (e.g., queue item identifier) or provide semantic meaning beyond the schema's type/integer constraints.
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 'Cancel' and the resource 'a specific item in Jenkins queue by id'. It is concise and directly describes the tool's function, distinguishing it from sibling tools that perform reads or other operations.
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 provides no explicit guidance on when to use this tool versus alternatives like stop_build or get_queue_item. It implicitly suggests use when a queue item needs cancellation, but lacks exclusions or context about prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_itemsBRead-only
Get all items from Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only restates the read-only nature implied by annotations. It does not disclose any additional behavioral traits such as response format, pagination, or potential size limits, which would be valuable.
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 concise (five words) and front-loaded. Every word earns its place, and no unnecessary text exists.
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 simplicity of the tool (no params, read-only), the description is minimal but lacks details about what constitutes an 'item' in Jenkins and the expected response format. It is adequate but not 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?
With no parameters, the schema coverage is 100%, and the description adds little. Per rubric, 0 parameters yields a baseline of 4, which is appropriate here.
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') and the resource ('all items from Jenkins'). It distinguishes from siblings like 'get_item' (singular) and 'query_items' (filtered), though it doesn't explicitly contrast them.
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. For example, it doesn't mention that 'query_items' should be used for filtered results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_nodesBRead-only
Get all nodes from Jenkins.
| 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; the description adds no additional behavioral context (e.g., pagination, rate limits, or output details).
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 with no waste. Front-loaded with key verb 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?
While the tool is simple, the description could provide more context about what 'nodes' means (e.g., Jenkins agents/slaves) to aid an agent unfamiliar with the domain. Sibling tools exist, so additional clarity is warranted.
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 (100% schema coverage), so the baseline of 4 is appropriate. The description does not add parameter-specific information but is not required.
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 the resource 'all nodes', distinguishing it from sibling 'get_node' which retrieves a single node. However, it does not explicitly differentiate from other list tools or clarify scope.
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 like 'get_node'. The description lacks context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_queue_itemsARead-only
Get all items in Jenkins queue.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation already declares readOnlyHint=true, but the description adds no additional behavioral context (e.g., side effects, authentication requirements, rate limits). It merely restates the function without extra insight.
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, direct sentence with no unnecessary words. It is appropriately concise and 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?
For a simple parameterless read-only tool with annotations, the description is minimally complete. However, it lacks detail on return format, behavior when queue is empty, or potential volume of items.
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, and schema coverage is 100%. The baseline is 4 for zero parameters, and the description adds no parameter information since none are needed.
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 'Get all items in Jenkins queue' with a clear verb and resource. It implicitly distinguishes from sibling 'get_queue_item' (singular) by its name, making purpose unambiguous.
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 'get_queue_item' for a single item. The description does not provide context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buildCRead-only
Get specific build info from Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description's 'Get' verb aligns. However, the description adds no further behavioral context, such as what 'build info' includes 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, which is concise, but it sacrifices crucial information. It could be restructured to include more details without adding length.
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 presence of many sibling tools and no output schema, the description is insufficient. It lacks details on what constitutes 'build info' and how it differs from other get_* 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 0%, and the description does not explain the parameters ('fullname' and 'number'), leaving the agent without guidance on how to populate them correctly.
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 specific build info from Jenkins, using a specific verb and resource. However, it does not differentiate from siblings like 'get_build_console_chunk' or 'get_build_test_report', which are more specific.
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 'get_build_console_chunk' or 'get_build_test_report'. There is no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_build_console_chunkBRead-only
Read incremental console output from a specific byte offset.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| start | Yes | ||
| number | No | ||
| max_bytes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'incremental' and 'from a specific byte offset' beyond the readOnlyHint annotation, but does not elaborate on behavior such as what happens when the offset is beyond the output length or how number/max_bytes affect the response. The annotation already marks it as read-only, so the added context is modest.
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 one sentence, front-loaded with the key action. It is concise, but could include more detail without significant bloat. Every word earns its place.
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 four parameters and no output schema, the description is too sparse. It does not explain return values, behavior of optional parameters, or constraints like what 'incremental' means in practice. Sibling tools are not differentiated.
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?
With 0% schema description coverage, the description must compensate but only implicitly hints at 'start' via 'byte offset.' It does not explain 'fullname,' 'number,' or 'max_bytes,' leaving the agent with minimal understanding of how to invoke the tool correctly.
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 'Read incremental console output from a specific byte offset,' specifying the action (read), resource (incremental console output), and the unique aspect (byte offset). It distinguishes from siblings like get_build_console_tail (which likely provides tail) and search_build_console (which searches for patterns).
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 like get_build_console_tail or search_build_console. The description lacks any when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_build_console_tailCRead-only
Get the tail of a specific build console output.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| number | No | ||
| max_bytes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the tool is a safe read operation. The description adds that it returns the 'tail' of the console output, implying it returns only the end portion, but does not explain the behavior of the max_bytes parameter or how the output is truncated.
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 redundant words, but it is too brief to be fully informative. It earns its place but lacks detail.
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 three parameters, no output schema, and multiple sibling tools, the description is incomplete. It does not clarify parameter semantics, output format, or how this tool differs from similar ones like get_build_console_chunk.
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 0%, and the description does not explain any of the three parameters (fullname, number, max_bytes). No meaning is added beyond the schema's type constraints.
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 'Get the tail of a specific build console output,' which is a specific verb and resource. It distinguishes from siblings like get_build_console_chunk (gets a chunk) and search_build_console (searches), so the purpose is clear, though slightly vague on what 'tail' entails.
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 such as get_build_console_chunk or search_build_console. No context on prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_build_failure_excerptBRead-only
Get focused failure excerpts and failing tests via incremental log scanning.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| number | No | ||
| max_bytes | No | ||
| max_excerpts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. The description adds 'incremental log scanning' which suggests behavior but does not detail side effects, performance, or prerequisites. For a read-only tool, this adds modest value beyond 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 that is direct and free of fluff. Every word adds value; no redundancy. Ideal length for a utility 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?
With 4 parameters, no output schema, and no parameter descriptions, the description is incomplete. It fails to explain what fields are returned, how parameters interact, or the nature of the output. An agent cannot reliably use this tool based solely on the description.
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 0%, yet the description provides no explanation for any of the 4 parameters (fullname, number, max_bytes, max_excerpts). The agent must infer meaning from names alone, which is insufficient for correct invocation.
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) and resource (focused failure excerpts and failing tests) with a method (incremental log scanning). It distinguishes from siblings like get_build_console_chunk and get_build_test_report, though 'failure excerpts' could be more precise.
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 guidance. The description implies use for fetching failure details from logs, but does not differentiate from siblings like search_build_console or get_build_console_tail. An agent would lack context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_build_scriptsCRead-only
Get scripts used in a specific build.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only (readOnlyHint: true), which is consistent with the description. However, the description adds no behavioral details beyond that (e.g., does it return file paths? contents?). With annotations present, the description provides minimal added value.
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 that front-loads the purpose. No wasted words, but it might be slightly too terse.
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 minimal input schema, the description is insufficient. It doesn't indicate the return format (e.g., list of script names, objects) or any limitations. The tool appears simple but lacks necessary 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 description coverage is 0%, so the description must explain parameters. It only says 'Get scripts used in a specific build' without clarifying what 'fullname' or 'number' represent. The parameter names are somewhat self-explanatory but the description fails to add meaningful semantics.
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 'scripts used in a specific build', distinguishing it from sibling tools like get_build or get_build_console_chunk. However, it could be more specific about what scripts are (e.g., shell commands?).
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., get_build, get_build_console_chunk). The description simply states the function without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_build_test_reportCRead-only
Get test report of a specific build.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'readOnlyHint: true' already indicates a safe read operation, so the description aligns with it. However, the description adds no additional behavioral details, such as what happens if the build has no test report or if the build does not exist.
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 very short, consisting of a single sentence with no wasted words. It is front-loaded but could be criticized for being too minimal, though it does not contain redundancies.
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 lack of an output schema, the description should clarify what the test report contains or its structure. It does not, nor does it explain the meaning of the input parameters, making the tool's usage unclear.
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 0%, meaning the input schema provides no descriptions for parameters. The description also fails to explain what 'fullname' or 'number' represent, leaving the agent to guess their meaning and proper usage.
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 a test report for a specific build, using the verb 'Get' and specifying the resource. However, it does not differentiate this tool from sibling tools like 'get_build' or 'get_build_scripts', which may have overlapping purposes.
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. The description lacks context about prerequisites, such as whether the build must exist or how the test report is generated, and does not mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_itemBRead-only
Get specific item from Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only. Description adds minimal context: returns a specific item. No mention of error behavior or authentication, but acceptable given annotation coverage.
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 wasted words. Could be more informative while remaining concise.
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?
Simple tool with one parameter and no output schema, but description omits key details like return format, error handling, and exact meaning of 'item'. Incomplete for effective use.
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?
0% schema description coverage. Description does not explain the 'fullname' parameter (e.g., format, examples, or what it represents). Fails to compensate for lack of schema descriptions.
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?
Clear verb ('Get') and resource ('specific item from Jenkins'). Distinguishes from siblings like 'get_all_items' and 'query_items' by specifying 'specific'.
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 siblings (e.g., get_all_items, query_items). Only implied usage is retrieving a single item by identifier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_item_configCRead-only
Get specific item config from Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'readOnlyHint: true' already indicates a safe read operation. The description adds no additional behavioral context (e.g., what happens if the item does not exist, or whether full configuration is returned). Minimal value beyond the annotation.
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, which is concise. However, it is too brief and omits critical details, sacrificing completeness for brevity.
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 one undocumented parameter, no output schema, and no explanation of the config format, the description is insufficient for reliable tool selection and usage. The agent may fail due to missing parameter semantics.
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 single required parameter 'fullname' has 0% schema description coverage and is not explained in the tool description. The agent has no information about its format (e.g., full path, job name) or expected syntax, making invocation error-prone.
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', the resource 'item config', and the source 'Jenkins'. It is specific enough to distinguish from siblings like 'get_item' (which likely returns item details) and 'get_all_items' (list all).
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. The description does not mention prerequisites or conditions, leaving the agent to infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nodeBRead-only
Get a specific node from Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, so the agent already knows this is a safe read operation. The description adds no extra behavioral context beyond what annotations provide (e.g., no mention of error handling or response format). Since the annotation covers the key behavioral trait, the description is adequate but does not add value.
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 wasted words. It is front-loaded with the core action. However, it could be slightly expanded to include parameter context without sacrificing conciseness.
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 simplicity (one parameter, no output schema), the description is very minimal. It does not explain the return value, possible errors (e.g., node not found), or any prerequisites. The agent is left guessing about the output, which is incomplete for a tool with no output schema.
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 0%, and the description fails to explain the 'name' parameter. The description says 'Get a specific node from Jenkins' but does not clarify that the parameter is the node name or identifier. The agent gets no added meaning from the description beyond the bare 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 'Get a specific node from Jenkins' clearly states the action (Get) and resource (a specific node from Jenkins). It distinguishes from siblings like get_all_nodes (which retrieves all nodes) and get_node_config (which gets configuration). The parameter 'name' implies retrieval by identifier, making the purpose unambiguous.
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 like get_all_nodes or get_node_config. With many sibling tools, the agent receives no direction on choosing this tool over others, such as when a single node is needed by name versus listing all nodes or retrieving configuration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_configCRead-only
Get node config from Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'readOnlyHint: true' already indicates safe read-only behavior, so the description's disclosure of 'Get node config' is consistent but adds no behavioral depth beyond the annotation. No mention of response size, permissions, 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 concise sentence. No wasted words, though it could be expanded slightly without losing efficiency.
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 tool with one parameter, the description is minimal. Lacks explanation of return format or content (e.g., configuration as XML/text). Better suited for ambiguous use cases where more detail would help.
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?
With 0% schema description coverage, the description must explain parameters but fails to do so. The single required parameter 'name' is not explained beyond the schema; the description should specify it's the Jenkins node name.
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 node config' from 'Jenkins', matching the tool name. It is distinct from siblings like 'get_node' (likely returns node info) and 'set_node_config' (write operation), but could further specify what 'config' entails.
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 doesn't mention using 'get_node' for node status or 'set_node_config' for modifications, leaving the agent to infer without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_queue_itemARead-only
Get a specific item in Jenkins queue by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so the description's 'Get' is consistent. No additional behavioral details (e.g., error handling, return format) are provided, which is adequate given 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?
The description is a single sentence of 9 words, perfectly concise and to the point.
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 read-only tool with one parameter and no output schema, the description is minimally sufficient. It could mention what is returned (e.g., queue item details) but is not egregiously 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 parameter 'id' has no description in the schema. The description adds that it is used to identify the queue item, but does not elaborate on format or constraints beyond what the schema type 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 action ('Get'), the resource ('a specific item in Jenkins queue'), and the method ('by id'). This distinguishes it from sibling tools like get_all_queue_items or cancel_queue_item.
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 use when you have a specific queue item id, but does not explicitly mention when not to use it or suggest alternatives. However, the narrow scope makes it clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_running_buildsARead-only
Get all running builds from Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the readOnlyHint annotation and doesn't contradict it. However, it adds no behavioral detail beyond the annotation (e.g., whether it returns a list, or performance implications). Annotations already cover the read-only nature, so the description adds minimal value here.
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 sentence with no wasted words. It is front-loaded and easy to parse.
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 zero-parameter tool, the description is sufficient to convey its purpose. However, without an output schema, a brief note on return format (e.g., list of build IDs) 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?
The tool has no parameters, and the schema coverage is 100%. The description doesn't need to add parameter info, so a baseline of 4 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 verb 'Get', the resource 'all running builds', and the source 'from Jenkins'. However, it does not explicitly differentiate from sibling tools like 'get_build' or 'stop_build', which slightly reduces specificity.
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., 'get_build' for a specific build). The description lacks context for an agent to decide between siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_itemsDRead-only
Query items from Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
| class_pattern | No | ||
| fullname_pattern | No | ||
| color_pattern | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=true, so the tool is read-only. However, the description adds no further behavioral details, such as whether it returns a list, how patterns are matched, or any limitations.
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?
Although the description is short (one sentence), it is underspecified rather than concise. It lacks structure and fails to provide meaningful information beyond the tool's name.
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 3 optional parameters, no output schema, and many sibling tools, the description is grossly incomplete. It does not clarify what items are queried, how patterns work, or when this tool is appropriate.
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 schema has zero description coverage for its three parameters (class_pattern, fullname_pattern, color_pattern). The description does not compensate by explaining their meaning, format (e.g., glob, regex), or examples. This leaves agents without essential usage information.
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 'Query items from Jenkins' is vague; it does not specify what 'items' refers to (jobs, views, etc.) and does not distinguish itself from siblings like get_all_items or get_item. The schema parameters hint at filtering by patterns, but the description lacks specifics.
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 get_all_items or get_item. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_build_consoleCRead-only
Search build console output incrementally and return matching excerpts.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| query | Yes | ||
| number | No | ||
| max_bytes | No | ||
| context_lines | No | ||
| max_matches | No | ||
| case_sensitive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint: true, so safety is implied. Description adds 'incrementally' but does not elaborate on pagination, effect on system, or auth requirements. Minimal value beyond 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 is concise but at the expense of missing crucial details. Could be expanded to include parameter hints or behavior without being overly long.
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 with no schema descriptions and no output schema, the description is severely incomplete. It does not explain return format, pagination, or parameter constraints, making it nearly unusable without prior knowledge.
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 0%, yet description provides no explanations for any of the 7 parameters (e.g., fullname, query, max_bytes). Agents would have to infer or guess parameter meanings, severely hindering correct invocation.
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 'Search' and resource 'build console output' with 'matching excerpts'. It distinguishes from siblings like 'get_build_console_chunk' and 'get_build_failure_excerpt' by indicating it searches, but 'incrementally' is somewhat vague.
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?
Implied usage for searching text in console output. No explicit when-to-use or when-not-to-use compared to alternatives like fetching full chunks or tailing. Context signals from sibling names provide some differentiation but description lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_item_configC
Set specific item config in Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| config_xml | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, confirming this is a write operation. The description adds 'Set', which aligns. However, it doesn't disclose additional behavioral traits like idempotency, error handling for missing items, or side effects beyond the annotation.
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 short sentence, but it omits necessary details. Conciseness is good, but at the expense of clarity and completeness.
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 absence of output schema, no parameter descriptions, and only two params, the description should explain what 'set config' entails (e.g., replaces configuration, requires XML). It does not, leaving informational gaps.
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 has 0% description coverage and the description provides no explanation of the two parameters (fullname, config_xml). The agent must infer their meanings from names alone; e.g., config_xml might be XML, but format, required structure, or relationship to fullname is unstated.
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 'Set specific item config in Jenkins', which clearly indicates the verb (Set) and resource (item config). It implicitly distinguishes from siblings like 'get_item_config' (get vs set), but lacks explicit differentiation or scope details like 'replaces entire XML config'.
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 (e.g., get_item_config for reading, build_item for building). No prerequisites, caveats, or when-not-to-use advice provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_node_configC
Set specific node config in Jenkins.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| config_xml | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false), and the description confirms mutation with 'set'. However, no details about side effects, required permissions, error outcomes, or config replacement behavior are disclosed.
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 concise at 6 words, which is appropriate for a simple tool but lacks necessary detail. It is front-loaded but too sparse.
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 and minimal annotations, the description should cover effect, return values, and error handling. It fails to do so, leaving gaps for a 2-parameter write 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 description coverage is 0%, so the description must explain parameters. It only names 'name' and 'config_xml' without clarifying their types, formats, or constraints (e.g., what XML schema is expected).
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 ('set') and the resource ('node config in Jenkins'), distinguishing it from sibling tools like get_node_config and set_item_config. However, it lacks specificity about the config scope (e.g., global vs. per-node).
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., set_item_config). No prerequisites or context provided, leaving the agent with no decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stop_buildC
Stop a specific build.
| Name | Required | Description | Default |
|---|---|---|---|
| fullname | Yes | ||
| number | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, consistent with a mutation. However, the description does not disclose side effects, reversibility, or what happens to the build state beyond 'stop'.
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?
Extremely short (3 words) but under-specified; conciseness is not valuable when it omits critical 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?
No output schema and no behavioral details; the description fails to cover return values, error handling, or the overall effect of the tool.
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 0%, and the description provides no explanation for parameters 'fullname' and 'number', leaving their meaning and format unclear.
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 (Stop) and the resource (a specific build), which is distinct from sibling tools like get_build or cancel_queue_item.
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, nor any prerequisites or conditions for stopping a build.
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.
22 tool updates
v0.2.1- First observed
build_item - First observed
cancel_queue_item - First observed
get_all_items - First observed
get_all_nodes - First observed
get_all_queue_items - First observed
get_build - First observed
get_build_console_chunk - First observed
get_build_console_tail - First observed
get_build_failure_excerpt - First observed
get_build_scripts - First observed
get_build_test_report - First observed
get_item - First observed
get_item_config - First observed
get_node - First observed
get_node_config - First observed
get_queue_item - First observed
get_running_builds - First observed
query_items - First observed
search_build_console - First observed
set_item_config - First observed
set_node_config - First observed
stop_build
TDQS
Scored across 22 tools
Each tool targets a distinct aspect of Jenkins (builds, queue, nodes, items, configs, console output). There is no overlap; even similar operations like get_build_console_chunk and get_build_console_tail are well-differentiated.
All tools use consistent snake_case verb_noun naming (e.g., get_build, cancel_queue_item, set_item_config). No mixing of styles or abbreviations.
22 tools is slightly high for a single server, but Jenkins is a complex system with many operations. The count is justified and not excessive, though it could be trimmed by combining some getters.
The tool set covers many operations (build, queue, nodes, configs, console, test reports) but lacks item creation/deletion and node creation/deletion. There are notable gaps in managing the lifecycle of items and nodes.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Agentic CI operations for build inspection, failure diagnosis, and runner troubleshooting.
81- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Plan Salesforce deploys, open pull requests and trigger pipelines from your AI client.
Connect AI agents to CloudBees Unify: feature flags, CI/CD, release orchestration, and security
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Jenkins CI/CD systems through natural language, providing build management, job monitoring, log analysis, and debugging capabilities.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Jenkins CI/CD systems for build management, job monitoring, console log analysis, and debugging through natural language commands.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Jenkins to manage jobs, trigger builds with parameters, and monitor build queues. It provides comprehensive access to build histories, console logs, and organizational folder structures via the Jenkins REST API.851MIT
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to access Jenkins job data, trigger builds, and manage Jenkins tasks through a standardized interface.5-