Skip to main content
Glama

jankins

Token-optimized Jenkins MCP server with smart log handling and failure triage

PyPI version Python versions License CI codecov Security: bandit Code style: ruff SLSA 3 OpenSSF Best Practices

jankins provides MCP-compliant access to Jenkins with features designed for AI coding assistants:

  • 🎯 Token-aware formatting: Summary/full/diff output modes minimize context usage

  • 📊 Smart log truncation: Progressive retrieval with byte offsets, regex filtering, and ANSI cleanup

  • 🔍 Failure triage: Automated root cause analysis with hypotheses and next steps

  • Efficient by default: Returns compact summaries unless full detail is requested

  • 🛡️ Better error handling: Structured errors with remediation hints and correlation IDs

  • 📝 Built-in prompts: Pre-built workflows for common CI/CD tasks

Quick Start

Installation

pip install -e .

Basic Usage

# Set environment variables
export JENKINS_URL=https://jenkins.example.com
export JENKINS_USER=myuser
export JENKINS_API_TOKEN=11234567890abcdef1234567890abcdef

# Start the server
jankins

# Or use CLI flags
jankins --jenkins-url https://jenkins.example.com \
        --jenkins-user myuser \
        --jenkins-token $TOKEN \
        --bind 0.0.0.0:8080

Generate Jenkins API Token

  1. Log in to Jenkins

  2. Click your username (top right) → Configure

  3. Scroll to "API Token" section

  4. Click "Add new Token"

  5. Give it a name and click "Generate"

  6. Copy the token (you won't see it again!)

Related MCP server: Jenkins AI Optimizer

Configuration

Configuration via environment variables or CLI flags. CLI flags take precedence.

CLI Flag

Env Variable

Default

Description

--jenkins-url

JENKINS_URL

required

Jenkins server URL

--jenkins-user

JENKINS_USER

required

Jenkins username

--jenkins-token

JENKINS_API_TOKEN

required

Jenkins API token

--transport

MCP_TRANSPORT

stdio

MCP transport (stdio, http, or sse)

--bind

MCP_BIND

127.0.0.1:8080

Server bind address (http/sse only)

--origin-enforce

ORIGIN_ENFORCE

false

Enforce Origin header validation

--origin-expected

ORIGIN_EXPECTED

null

Expected Origin value

--log-level

LOG_LEVEL

INFO

Log level (DEBUG/INFO/WARNING/ERROR)

--log-json

LOG_JSON

false

Use JSON structured logging

--debug-http

DEBUG_HTTP

false

Log Jenkins HTTP requests

--log-max-lines

LOG_MAX_LINES_DEFAULT

2000

Default max log lines

--log-max-bytes

LOG_MAX_BYTES_DEFAULT

262144

Default max log bytes (256KB)

--timeout

JENKINS_TIMEOUT

30

Jenkins request timeout (seconds)

MCP Tools

jankins provides 25+ MCP tools organized by category:

Jobs

  • list_jobs: List jobs with prefix filtering and pagination

  • get_job: Get detailed job information

  • trigger_build: Trigger a new build with parameters

  • enable_job / disable_job: Enable or disable a job

Builds

  • get_build: Get build information (supports number or "last")

  • get_build_changes: Get SCM changes/commits for a build

  • get_build_artifacts: List build artifacts

Logs

  • get_build_log: Get logs with smart truncation and filtering

    • Supports: filter_regex, redact, start byte offset, max_bytes

    • Returns summary by default with error counts and failing stages

  • search_log: Search logs for pattern with context window

SCM & Pipeline

  • get_job_scm: Get job SCM configuration

  • get_build_scm: Get SCM info (commit, branch) for a build

Health & System

  • whoami: Get current user info and permissions

  • get_status: Jenkins version and queue depth

  • summarize_queue: Compact build queue summary

Advanced Analysis

  • triage_failure: Analyze failed builds with:

    • Root cause hypotheses

    • Top error messages

    • Failing stages

    • Suspect commits

    • Recommended next steps

  • compare_runs: Compare two builds for:

    • Duration differences

    • Result changes

    • Stage-level diffs (with Blue Ocean)

  • get_pipeline_graph: Get pipeline visualization with stages, parallel execution, and timing (Blue Ocean)

  • analyze_build_log: Analyze logs with build tool-specific parsers (Maven, Gradle, NPM) for detailed error analysis and recommendations

  • retry_flaky_build: Retry flaky builds with configurable attempts and delays

Test Results

  • get_test_report: Get test results summary (JUnit, pytest, etc.)

  • get_failed_tests: List failed tests with error details and stack traces

  • compare_test_results: Compare test results between builds for regression detection

  • detect_flaky_tests: Identify flaky tests across multiple builds

Logs (Enhanced)

  • tail_log_live: Poll-based live log tailing with progressive byte offsets

Output Formats

All tools support format parameter:

  • summary (default): Compact, token-efficient view

  • full: Complete data with all fields

  • diff: Differences only (for comparisons)

  • ids: IDs and URLs only

Example:

{
  "name": "list_jobs",
  "arguments": {
    "format": "summary",
    "page_size": 20
  }
}

Built-in Prompts

jankins includes pre-built prompts for common workflows:

  • investigate_failure: Full failure investigation workflow

  • tail_errors: Show only warnings and errors from a build

  • compare_builds: Compare two builds to find differences

  • check_job_health: Check overall job health and stability

  • trigger_with_params: Trigger parameterized build with guidance

  • search_logs: Search logs for specific patterns

Client Examples

Add to your MCP settings:

{
  "mcpServers": {
    "jankins": {
      "command": "jankins",
      "env": {
        "JENKINS_URL": "https://jenkins.example.com",
        "JENKINS_USER": "myuser",
        "JENKINS_API_TOKEN": "your-token-here"
      }
    }
  }
}

The default stdio transport communicates via stdin/stdout, which is the standard for MCP clients like Claude Desktop.

HTTP Mode (for HTTP-based MCP clients)

If your client requires HTTP transport:

{
  "mcp": {
    "servers": {
      "jankins": {
        "url": "http://localhost:8080/mcp",
        "headers": {
          "Content-Type": "application/json"
        }
      }
    }
  }
}

Direct HTTP Request

Start in HTTP mode:

jankins --transport http

Then make requests:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "get_build",
      "arguments": {
        "name": "my-job",
        "number": "last",
        "format": "summary"
      }
    }
  }'

Example Workflows

Investigate a Failing Build

Use the "investigate_failure" prompt with job "backend-api"

This will:

  1. Get build status

  2. Retrieve error summary from logs

  3. Perform failure triage

  4. Show suspect commits

  5. Provide recommended next steps

Compare Two Builds

{
  "name": "compare_runs",
  "arguments": {
    "name": "backend-api",
    "base": "100",
    "head": "101"
  }
}

Search Logs for Error Pattern

{
  "name": "search_log",
  "arguments": {
    "name": "backend-api",
    "pattern": "OutOfMemoryError",
    "window_lines": 10
  }
}

Get Only Errors from Last Build

{
  "name": "get_build_log",
  "arguments": {
    "name": "backend-api",
    "number": "last",
    "filter_regex": "ERROR|FATAL",
    "redact": true,
    "format": "summary"
  }
}

Error Handling

jankins provides structured errors with:

  • Error code: JSON-RPC compliant error codes

  • Correlation ID: Track requests across logs

  • Hint: Human-readable remediation hint

  • Next actions: Specific steps to resolve the issue

  • Docs URL: Link to troubleshooting guide

Error taxonomy:

  • InvalidParams (-32602): Invalid tool parameters

  • Unauthorized (-32001): Authentication failed

  • Forbidden (-32002): Insufficient permissions

  • NotFound (-32003): Resource not found

  • Timeout (-32007): Request timed out

  • UpstreamError (-32006): Jenkins server error

Token Optimization

jankins minimizes token usage through:

  1. Default summaries: Summary format by default, full on request

  2. Field limiting: Only essential fields in summary mode

  3. Smart truncation: Progressive log retrieval with byte limits

  4. Token estimation: Responses include estimated token count

  5. Structured data: Compact tables and lists over verbose text

  6. Metadata separation: Performance data in _meta section

Example response structure:

{
  "build_number": 42,
  "result": "FAILURE",
  "duration": "2m 15s",
  "_meta": {
    "correlation_id": "abc-123",
    "took_ms": 250,
    "format": "summary",
    "token_estimate": 180
  }
}

Security

  • Explicit configuration: Uses env vars or CLI flags (ignores .env files in working directory)

  • Basic auth: Uses Jenkins API tokens (never passwords)

  • Optional Origin validation: Enforce allowed origins

  • No secret logging: Credentials are redacted in logs

  • Secret masking: Jenkins secret masks are preserved/redacted

Note: jankins ignores any .env files in your working directory and only reads the specific environment variables it needs (JENKINS_*, MCP_*, etc.). This prevents conflicts with project .env files.

Generate API tokens:

Jenkins → User → Configure → API Token → Add new Token

Health Checks

  • GET /_health: Basic health check

  • GET /_ready: Readiness check (verifies Jenkins connectivity)

  • GET /_metrics: Placeholder for Prometheus metrics

Development

Run from Source

# Install with dev dependencies
pip install -e ".[dev]"

# Run server
python -m jankins --jenkins-url $URL --jenkins-user $USER --jenkins-token $TOKEN

# With debug logging
python -m jankins --log-level DEBUG --debug-http

Testing

pytest tests/

Docker

See docker-compose.yml for local Jenkins + jankins setup.

docker-compose up

This starts:

  • Jenkins LTS on port 8081

  • jankins MCP server on port 8080

Feature Comparison

Feature

jankins

Official Plugin

Community Servers

MCP Protocol

✅ 2025-06-18

⚠️ Varies

Token optimization

Progressive logs

⚠️ Limited

Failure triage

Build comparison

Structured errors

⚠️ Basic

Built-in prompts

Format modes

Origin validation

⚠️ Varies

Troubleshooting

"Unauthorized" Error

  • Verify JENKINS_USER and JENKINS_API_TOKEN are correct

  • Regenerate API token from Jenkins user settings

  • Check Jenkins server is accessible

"Timeout" Error

  • Increase --timeout value

  • Check Jenkins server responsiveness

  • Verify network connectivity

"Tool not found" Error

  • Ensure server started successfully

  • Check MCP client configuration

  • Verify tool name spelling

Large Logs Timing Out

  • Use max_bytes parameter to limit retrieval

  • Use filter_regex to reduce log size

  • Use format=summary for overview first

License

MIT

Contributing

Contributions welcome! Please:

  1. Add tests for new features

  2. Follow existing code style

  3. Update documentation

  4. Add type hints

Acknowledgments

Built on:

Available Tools

25 tools
analyze_build_logB

Analyze build logs with build tool-specific parsers (Maven, Gradle, NPM) for detailed error analysis

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
build_toolNoBuild tool (maven, gradle, npm) or auto-detect
max_bytesNoMaximum log bytes to analyze
formatNoOutput formatsummary

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It mentions using parsers but does not disclose whether the tool is read-only, requires authentication, or has any side effects. The behavior beyond parsing is opaque.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, efficient and front-loaded. No unnecessary words, every part contributes to the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 moderately complete. It conveys the main action but does not explain what the output looks like or how to interpret results, which is important for an analysis tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already described. The description adds context that the build_tool parameter uses specific parsers, which adds slight value but does not significantly enhance schema understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes build logs using build tool-specific parsers (Maven, Gradle, NPM) for detailed error analysis. It distinguishes from siblings like get_build_log (retrieval only) and search_log (search), making the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., get_build_log, search_log). The description implies it's for detailed error analysis, but lacks 'when to use' or 'when not to use' instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_runsA

Compare two builds to identify differences in duration, stages, and results

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
baseYesBase build number
headYesHead build number to compare
formatNoOutput formatdiff

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It mentions what is compared (duration, stages, results) but does not disclose whether the operation is read-only, what happens on missing builds, or any 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded with the main action. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description does not explain the return format or what 'results' specifically means. It adequately covers the basic purpose but lacks details needed for full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the comparison aspects (duration, stages, results), which goes beyond the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool compares two builds to identify differences in duration, stages, and results. It uses a specific verb and resource, and distinguishes itself from sibling tools like compare_test_results which focuses on tests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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 like compare_test_results or analyze_build_log. Usage is implied but not elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_test_resultsB

Compare test results between two builds to identify new failures and regressions

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
baseYesBase build number
headYesHead build number to compare
formatNoOutput formatdiff

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose whether the tool is read-only, requires permissions, or has side effects. The description only hints at a comparison operation, leaving behavioral traits unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the purpose without wasted words. It is efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description is too minimal. It does not explain the return format, how to interpret results, or how it differs from similar tools like 'compare_runs'. More context is needed for an agent to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all 4 parameters with descriptions, achieving 100% coverage. The description adds no additional meaning beyond what the schema already provides. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('compare') and resources ('test results between two builds'), and clearly states the outcome ('identify new failures and regressions'). It distinguishes from siblings like 'compare_runs' by focusing on test results and regressions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for comparing test results but provides no explicit guidance on when to use this tool versus alternatives such as 'compare_runs' or 'get_test_report'. No when-not-to-use or context exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

detect_flaky_testsB

Identify flaky tests (inconsistent pass/fail) across recent builds

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
build_countNoNumber of recent builds to analyze
formatNoOutput formatsummary

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states the function but does not mention whether the tool is read-only, requires specific permissions, or what side effects (if any) occur. It lacks depth for a safety-critical assessment.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It conveys the core purpose efficiently, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the schema covering parameters, the description does not indicate what the tool returns (e.g., a list of flaky tests with metrics), nor does it address context like build history dependency or output format variations. This leaves the agent with incomplete expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 meaning beyond the schema; it merely repeats the concept of analyzing builds. No additional semantics or parameter-specific guidance are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'identify' and resource 'flaky tests' with the qualifier 'across recent builds', clearly differentiating from sibling tools like get_failed_tests or compare_runs that serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to find flaky tests) but does not explicitly state when not to use it or mention alternatives among the 22 sibling tools. No exclusions or context are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disable_jobB

Disable a Jenkins job to prevent builds

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavioral traits. It states the outcome (prevent builds) but omits effects on running builds, reversibility, required permissions, or side effects of disabling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. However, it could be more informative without losing conciseness (e.g., mentioning it's safe or reversible).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 basic purpose. But it lacks usage context, return value indication, and any caveats, making it minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (single 'name' parameter with description). The description adds no additional meaning beyond the schema; baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Disable'), the resource ('a Jenkins job'), and the purpose ('to prevent builds'). It directly distinguishes from the sibling tool 'enable_job'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to disable a job) but provides no explicit guidance, alternatives, or conditions. Sibling tools like 'enable_job' suggest the opposite, but no 'when-not-to-use' info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enable_jobB

Enable a Jenkins job to allow builds

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must bear the full burden. It discloses the action but fails to mention side effects, prerequisites (e.g., job must exist), or state change details (e.g., from disabled to enabled).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence. It is appropriately concise for a simple tool, though it could add more context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (one parameter, no output schema), the description is minimally adequate. However, it misses context like prerequisites or what happens if the job is already enabled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters, and the description adds no extra meaning beyond the schema description. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Enable' and the resource 'a Jenkins job', with the purpose 'to allow builds'. It is distinct from sibling tools like 'disable_job'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to enable a job) but lacks explicit guidance on when not to use or alternatives. The sibling tool 'disable_job' provides implicit contrast.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_buildC

Get information about a specific build or the last build

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
formatNoOutput formatsummary

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It only says 'Get information' without specifying what information (e.g., status, parameters) or disclosing side effects like read-only behavior. The format parameter suggests output options but is not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff. Every word is functional. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and no output schema, the description is too minimal. It should at least hint at typical fields returned (e.g., build status, duration). The current description leaves the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond the schema (e.g., no explanation of what 'ids' vs 'summary' entails). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get information' and the resource 'specific build or the last build'. It is straightforward but does not differentiate from sibling tools like get_build_artifacts or get_build_log.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. Despite many siblings (e.g., get_build_artifacts, get_build_log), the description provides no 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_build_artifactsC

Get artifacts produced by a build

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
formatNoOutput formatsummary

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description must carry full burden. It only says 'get artifacts' without disclosing what 'get' means (list? download?), any required permissions, or behavior for incomplete builds. The parameter 'format' hints at output format but is not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is one short phrase, which is concise but lacks structure. It does not front-load key information beyond the bare purpose. A slightly expanded description could improve clarity without adding verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters and no output schema, the description is too minimal. It does not explain what the returned artifacts look like, any limitations (e.g., only from successful builds), or how to interpret the 'format' parameter. The tool's behavior is underspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for all 3 parameters. The description adds no extra semantics beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Get' and resource 'artifacts produced by a build'. It distinguishes from sibling tools like 'get_build' which fetches build metadata, or 'get_build_log' which fetches logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The sibling tool list includes many get_* tools, but the description does not help the agent differentiate. It is implied that one uses this for artifacts, but no when-not or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_build_changesB

Get SCM changes (commits) for a build

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
formatNoOutput formatsummary

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only states the action. It does not disclose behavior for edge cases (e.g., build not found), authentication requirements, or rate limits. Minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no superfluous words. Information is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite low parameter count and no output schema, the description lacks context about return format, pagination, or error handling. It feels incomplete for a tool that retrieves a list of commits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning; it does not explain the distinction between 'summary' and 'full' formats. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it retrieves SCM changes (commits) for a build, specifying the resource and scope. It distinguishes from siblings like get_build_scm (which may focus on SCM configuration) and get_build (general build info).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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_build_scm. The description does not provide context for selection or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_build_logA

Get build log with smart truncation and filtering. Returns summary by default, full text on request.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
startNoStarting byte offset
max_bytesNoMaximum bytes to retrieve
filter_regexNoRegex pattern to filter log lines
redactNoRemove ANSI codes and secret masks
formatNoOutput formatsummary

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The tool has no annotations, placing full burden on the description. It mentions two output modes (summary/full) and smart truncation but lacks details on side effects, required permissions, or what constitutes 'smart' behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no wasted words, efficiently conveying the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the number of parameters and lack of output schema, the description adequately covers the tool's behavior (summary vs full, filtering). However, it could hint at the output format (e.g., raw text).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already provides parameter details. The description adds no extra meaning beyond mentioning format defaults, which are also in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a build log with smart truncation and filtering, distinguishing it from sibling tools like search_log or analyze_build_log.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 like search_log or tail_log_live. The description only implies usage through the tool's name and basic functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_build_scmA

Get SCM information (git commit, branch, etc.) for a build

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states the tool 'gets' information, lacking details on failure modes, permissions, or behavior for missing builds.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that communicates the core functionality without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, no output schema), the description is adequately complete for a lookup operation, though it could mention the default value for 'number'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully described in the input schema (100% coverage), so the baseline is 3. The description does not add additional meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves SCM information for a build, specifying content like git commit and branch. It distinguishes itself from siblings like 'get_build' and 'get_job_scm' by targeting build-level SCM.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieving SCM data for a specific build, but it does not explicitly state when to use this versus alternatives like 'get_job_scm' or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_failed_testsC

Get list of failed tests from a build with error details

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
limitNoMaximum number of failed tests to return
formatNoOutput formatsummary

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states 'get list of failed tests with error details' but does not disclose whether this is a read-only operation, any potential side effects, or other behavioral traits like rate limits or data freshness. The read-only nature is implied but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that is to the point and front-loaded. It wastes no words, though it could be slightly more structured with the inclusion of parameter defaults or output format hints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is insufficiently complete. It does not explain the difference between 'summary' and 'full' formats, how errors are ordered or truncated, or behavior on empty results. The tool deals with lists, so pagination or limit details would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 adds the phrase 'with error details', which hints at the output but does not add significant semantics beyond what the schema already provides for parameters. Each parameter is well-described in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a list of failed tests with error details from a build. It uses a specific verb and resource, and indirectly distinguishes from sibling tools like get_test_report or compare_test_results by focusing on failed tests and error details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. There is no mention of prerequisites, context, or scenarios where other tools would be more appropriate. The description is purely declarative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_jobB

Get detailed information about a specific Jenkins job

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name (e.g., 'folder/subfolder/job')
formatNoOutput formatsummary

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning side effects, permissions, or performance implications. For a read operation, this is minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no unnecessary words. It is front-loaded and efficient, earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two simple parameters and no output schema, the description is largely complete for a basic retrieval tool. However, it could mention that the output includes job configuration or status details, but the current text is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and parameter descriptions in the schema are detailed (including examples and enums). The description adds no extra meaning beyond the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 ('detailed information about a specific Jenkins job'), clearly indicating the tool's functionality. It distinguishes from sibling tools like get_build or get_status by specifying it targets job-level information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. Given many sibling tools (e.g., get_status, get_build), the description does not explain context or exclusions, leaving the agent without usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_job_scmB

Get SCM configuration for a job

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
formatNoOutput formatsummary

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states the basic purpose without disclosing behavioral traits like read-only nature, error handling, authentication needs, or rate limits. The description does not add value beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no fluff. It front-loads the purpose and wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool with no output schema, the description is minimally adequate but lacks behavioral context or usage notes. It meets the baseline but does not exceed expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already documents both parameters. The description adds no additional meaning beyond what is in the schema (e.g., format enum values, required name). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get SCM configuration for a job' which clearly identifies the verb (get), resource (SCM configuration), and scope (for a job). It distinguishes from siblings like get_build_scm by specifying 'job', but does not explicitly differentiate from other job-level tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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_scm or get_job. There is no mention of prerequisites, context, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_pipeline_graphA

Get pipeline execution graph with stages, parallel branches, and timing (requires Blue Ocean plugin)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
formatNoOutput formatsummary

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the plugin requirement but does not detail auth needs, side effects, or output structure. For a read-only graph retrieval, this is acceptable but leaves gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, directly communicates the tool's purpose and a key prerequisite without extraneous words. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should compensate. It names the graph components but does not specify the return format (e.g., JSON, diagram) or pagination. Adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters. The description adds context but no extra semantics beyond the schema. Baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a pipeline execution graph with specific components (stages, parallel branches, timing) and notes a dependency (Blue Ocean plugin). It differentiates from sibling tools like get_build or get_job which focus on different aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions a prerequisite (Blue Ocean plugin) but does not provide explicit guidance on when to use this tool versus alternatives like get_build or analyze_build_log. Usage context is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statusA

Get Jenkins server status and queue depth

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but offers minimal behavioral detail. It does not explain what 'status' includes (e.g., online/offline, uptime, executor count) or the return format. The operation is likely read-only, but this is not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the tool's purpose efficiently with no unnecessary words or details. It is perfectly concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and no annotations, the description is minimal but works for a simple health check tool. However, it could be improved by specifying the nature of the status output (e.g., JSON object with fields like 'online', 'queueDepth') to prepare the agent for parsing the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100%. Per guidelines, baseline is 4. The description adds nothing about parameters since none exist, but it also does not mislead. It is adequate given zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 'Jenkins server status and queue depth', which is distinct from sibling tools that focus on specific builds, jobs, or logs. It is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 instance, it does not suggest using get_job for job-specific info or warn against redundant calls. The description implicitly indicates it is for overall health, but lacks explicit context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_test_reportB

Get test results summary from a build (JUnit, pytest, etc.)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
detailedNoInclude detailed test suites
formatNoOutput formatsummary

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only says 'Get test results summary' without details on safety, side effects, or return structure. The agent lacks information about permissions or performance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that includes examples (JUnit, pytest). It front-loads the core action and resource, with minimal wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 4 parameters with good schema descriptions and no output schema, the description fails to explain the output format or the difference between 'summary' and 'full' options. Given the rich sibling context, more guidance on when to use this tool is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; each parameter has a description in the schema. The tool description adds no additional meaning or examples beyond the schema, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 summaries from builds and mentions common frameworks (JUnit, pytest). This distinct purpose is well-identified among siblings like get_failed_tests and compare_test_results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as get_failed_tests or compare_test_results. The description does not mention context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_jobsA

List Jenkins jobs with optional prefix filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixNoJob name prefix filter
pageNoPage number (1-indexed)
page_sizeNoItems per page
formatNoOutput formatsummary

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. The word 'List' implies a read-only operation and no destructive behavior, but it does not disclose pagination behavior, rate limits, or any potential side effects. It is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence of 8 words with no filler. Every word is necessary and contributes to clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and moderate complexity (4 parameters with defaults and enum), the description is adequate but lacks details on return format and pagination behavior. Schema coverage helps, but the description does not fully compensate for missing output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 adds no additional meaning beyond what is already in the schema (prefix filtering, pagination), which is already documented. No value added beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb (List), resource (Jenkins jobs), and key features (optional prefix filtering and pagination). It effectively distinguishes from sibling tools which focus on builds, tests, and individual job operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing jobs with optional filters but provides no explicit guidance on when not to use it or how it compares to alternatives like get_job. The context of sibling tools suggests differentiation, but it is not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retry_flaky_buildB

Retry a flaky build multiple times until it succeeds or max retries reached

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
max_retriesNoMaximum retry attempts
delay_secondsNoDelay between retries in seconds
parametersNoBuild parameters
formatNoOutput formatsummary

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must fully disclose behavior. It mentions retry loop but lacks details on prerequisites (e.g., requires a previous build), side effects (triggers multiple builds), or what 'flaky build' means concretely.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence with no waste, but could benefit from additional context about behavior or parameter usage while remaining efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters, nested objects, no output schema, and no annotations, the description covers core functionality but omits details on parameter interaction, return format specifics, and how it differs from similar sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with descriptions for all 5 parameters. The description adds no extra meaning beyond the schema, earning the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retries a flaky build until success or max retries, using specific verbs and distinguishing it from sibling tools like 'trigger_build' and 'detect_flaky_tests'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (for flaky builds) but no explicit when-to-use or when-not-to-use guidance, nor mention of alternatives like 'trigger_build'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_logB

Search build log for pattern and return matching lines with context

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
patternYesRegex pattern to search for
window_linesNoLines of context before/after match
max_bytesNoMaximum bytes to search

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry transparency burden. It implies a read operation but does not detail behavior like error handling, auth needs, or performance implications. Adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, focused sentence that immediately conveys the core action and result. No fluff or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters and no output schema or annotations, the description is too minimal. It does not explain the return structure, what 'context' means, or limitations like max_bytes. Sibling tools suggest more tailored alternatives exist.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no extra parameter insights beyond what's in the schema, such as format of regex or meaning of 'context'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search', the resource 'build log', and the result 'matching lines with context'. It distinguishes from siblings like get_build_log (full log) and tail_log_live (tail).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 get_build_log or tail_log_live. The description does not mention prerequisites, limitations, or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

summarize_queueC

Get compact summary of Jenkins build queue

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry full transparency weight. It only says 'compact summary' without explaining what the summary includes, whether it's read-only (likely), or any other behavioral traits. This leaves the agent uncertain about side effects and return content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the key action and resource. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite being a simple tool with no parameters, the description lacks crucial context. There is no output schema, and the description does not describe the return format (e.g., JSON, text) or the depth of the summary. An agent may not know what to expect as output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters and is fully covered (100%), so the baseline is 3. The description adds no parameter information, but none is needed. Score is at baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get compact summary') and the resource ('Jenkins build queue'), effectively communicating the tool's purpose. It distinguishes itself from sibling tools like 'get_status' which may provide broader status information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. For example, it doesn't mention that it's read-only or that it's suitable for quick overviews.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tail_log_liveA

Get log chunk for live tailing (poll repeatedly with next_byte for streaming effect)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
build_numberYesBuild number
start_byteNoStarting byte offset
max_bytesNoMaximum bytes per chunk

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It discloses the polling behavior for streaming, which is important. However, it lacks details on rate limits, authentication, or what happens on incomplete polls, and there is a minor inconsistency between 'next_byte' (mentioned) and the actual parameter 'start_byte'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 13 words, front-loaded with the purpose, and contains no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 4 parameters and no output schema, the description does not explain the return format or how 'next_byte' is provided in responses. For a streaming/polling tool, this leaves a significant gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is already documented. The description adds context about repeated polling with 'next_byte' which relates to start_byte and max_bytes, but does not provide new semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 ('log chunk') and clearly states the purpose is for live tailing by polling repeatedly. It distinguishes itself from siblings like get_build_log (full log) and search_log (search) via the streaming implication.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions the polling pattern with multiple calls and the 'next_byte' concept, giving clear usage context. However, it does not provide explicit when-not-to-use guidance or alternative tools, though the streaming hint differentiates it from one-shot log fetches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

triage_failureC

Analyze a failed build and provide root cause hypotheses and next steps

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
numberNoBuild number or 'last'last
max_bytesNoMaximum log bytes to analyze
formatNoOutput formatsummary

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the tool provides 'root cause hypotheses and next steps', but does not disclose how the analysis is performed, what data it uses, any limitations, or whether it has side effects. This is insufficient behavioral disclosure for a diagnostic tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that covers the main action and output. It is front-loaded with the primary purpose. However, it could be slightly more structured if it included bullet points or separate lines for usage and behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 annotations, the description is too minimal. It does not explain the output format, how to interpret the hypotheses, or any prerequisites (e.g., build must have failed). This leaves significant gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 additional semantics beyond what the schema already provides. The parameter names and schema descriptions are clear, but the tool description is not leveraged to add context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Analyze a failed build and provide root cause hypotheses and next steps'. It specifies the resource (failed build) and the action (analyze and provide hypotheses). This distinguishes it somewhat from siblings like analyze_build_log and get_failed_tests, but could be more specific about the type of analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. Given the presence of sibling tools like analyze_build_log, compare_runs, and detect_flaky_tests, the lack of usage context forces the agent to infer independently.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

trigger_buildC

Trigger a new build for a Jenkins job with optional parameters

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull job name
parametersNoBuild parameters as key-value pairs

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lacks behavioral details that annotations would typically provide. It does not disclose whether the build is triggered synchronously or asynchronously, what happens on failure, authentication requirements, or rate limits. For a mutation tool, this is insufficient transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that captures the core functionality without extraneous words. Every word earns its place, and the structure is front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should provide more context about what the tool returns (e.g., build ID, status), error behavior, or side effects. The current description omits these essential details, making it 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (name and parameters) are fully described in the input schema with 100% coverage. The description adds minimal value beyond the schema, merely noting that parameters are optional. The semantics are clear from the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (trigger), the resource (a new build), and the context (Jenkins job with optional parameters). It distinguishes the primary function from sibling tools that analyze, retrieve, or retry builds, though it does not explicitly differentiate itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 retry_flaky_build or get_build. There are no conditions, prerequisites, or exclusions mentioned, leaving the agent without context for appropriate invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whoamiA

Get current authenticated user information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description should carry the full burden of behavioral disclosure. It states the tool gets user info but does not mention that it requires authentication, that it is read-only with no side effects, or any other behavioral traits. While the simple action implies safety, more explicit disclosure would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the core purpose. Every word earns its place, with no unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description is largely complete. It could optionally mention that the return value is the user object, but that is not essential. The description is adequate for an agent to understand the tool's functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description cannot add value beyond what the schema provides (which is empty). Schema coverage is 100% trivially. The description appropriately says nothing about parameters because there is nothing to describe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 ('current authenticated user information'). It distinctly sets this tool apart from all sibling tools, which deal with builds, jobs, tests, and logs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieving the current user's identity, and given the sibling tools are all about CI/CD pipeline operations, there is no ambiguous alternative. However, no explicit 'when to use' or 'when not to use' guidance is provided, but the context 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 25 tool updatesv1.2.4
    • First observedanalyze_build_log
    • First observedcompare_runs
    • First observedcompare_test_results
    • First observeddetect_flaky_tests
    • First observeddisable_job
    • First observedenable_job
    • First observedget_build
    • First observedget_build_artifacts
    • First observedget_build_changes
    • First observedget_build_log
    • First observedget_build_scm
    • First observedget_failed_tests
    • First observedget_job
    • First observedget_job_scm
    • First observedget_pipeline_graph
    • First observedget_status
    • First observedget_test_report
    • First observedlist_jobs
    • First observedretry_flaky_build
    • First observedsearch_log
    • First observedsummarize_queue
    • First observedtail_log_live
    • First observedtriage_failure
    • First observedtrigger_build
    • First observedwhoami

TDQS

A3.5/5.0

Scored across 25 tools

Disambiguation4/5

Most tools have distinct purposes (job management, build inspection, test analysis, pipeline, queue, user info). Some overlap exists between log-related tools (analyze_build_log vs search_log vs tail_log_live) but descriptions clarify their unique functions. SCM tools (get_build_scm vs get_build_changes) are also clearly separated.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., analyze_build_log, compare_runs, disable_job). No mixed conventions or inconsistent naming styles are observed.

Tool Count4/5

25 tools is slightly above the ideal range (3-15) but is reasonable for a comprehensive Jenkins integration covering jobs, builds, tests, pipelines, queue, and user info. The count is earned given the breadth of functionality.

Completeness4/5

The tool set covers major CI/CD workflows: job management (list, get, enable/disable, trigger), build inspection (logs, artifacts, SCM, comparisons), test analysis, pipeline visualization, queue, and user info. Missing: job creation/deletion, build cancellation, and configuration editing, but core troubleshooting and monitoring are well-represented.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A Model Context Protocol server that enables AI assistants to interact with Jenkins CI/CD servers, providing tools to check build statuses, trigger builds, and retrieve build logs.
    3
    15
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enterprise-grade MCP server for Jenkins CI/CD integration that enables AI assistants to diagnose build failures, analyze pipelines, and search logs through natural conversation.
    6
    GPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Read-only MCP server for Jenkins CI, enabling AI agents to securely query job/build status, logs, artifacts, and generate verification reports for loop workflows.
    17
    ISC