Skip to main content
Glama
xhuaustc

Jenkins MCP Tool

by xhuaustc

Jenkins MCP Tool

Docker MCP Python

🚀 Introduction

Jenkins MCP is an multi-Jenkins server management and automation tool developed based on the FastMCP framework, designed for DevOps processes. It supports intelligent scenario mapping, multi-server management, complete CI/CD lifecycle operations, and dynamic job creation.

Related MCP server: Jenkins MCP Server

✨ Core Features

🏢 Multi-Server Management

  • Dynamic Configuration: Supports configuration and dynamic addition/removal of multiple Jenkins servers

  • Environment Isolation: Supports management of multiple environments such as development, testing, and production

  • Secure Authentication: Supports token and environment variable-based authentication

🎯 Intelligent Scenario Mapping

  • Pre-configured Scenarios: Built-in common DevOps scenarios (user permission sync, app deployment, image sync)

  • Smart Recommendation: Automatically selects server and job path based on scenario

  • Personalized Guidance: Each scenario provides customized operation guidance

⚙️ Full CI/CD Support

  • Job Search: Supports fuzzy and exact search across multi-level directories

  • Parameterized Build: Automatically detects and validates required parameters

  • Real-time Monitoring: Build status query and log retrieval

  • Build Control: Supports build trigger, stop, and management

  • Job Creation: Create/update Jenkins jobs from Jenkinsfile with automatic directory management

🔧 Developer Friendly

  • MCP Standard: Complies with Model Context Protocol specification

  • Dockerized: Containerized deployment for easy integration

  • Multiple Operation Modes: Supports stdio, SSE, and HTTP transport modes

⚙️ Configuration Guide

📁 Config File Structure

Create a config.yaml file to configure Jenkins servers and application scenarios:

# Jenkins server configuration
servers:
  - name: maglev-sre           # Server alias
    uri: https://jenkins.server
    user: xhuaustc@gmail.com
    tokenEnv: JENKINS_TOKEN  # Recommended: get token from environment variable

# Pre-configured application scenarios
scenarios:
  "Sync User Permissions":
    description: "User permission sync scenario"
    server: "shlab"
    job_path: "maglev/tool/permission-replicate/"
    prompt_template: "Execute user permission sync task. Job path: {job_path}. Please confirm which users' permissions to sync?"

  "Deploy Application":
    description: "Application deployment scenario, supports diff/sync/build operations"
    server: "maglev-sre"
    job_path: "release/deploy/"
    prompt_template: "Execute application deployment task. Job path: {job_path}. Please confirm the app name, version, and environment to deploy?"

  "Sync Image to mldc":
    description: "Sync container image to mldc environment"
    server: "shlab"
    job_path: "mldc-prod/sync-container-image-to-docker-af"
    prompt_template: "Execute image sync task. Please provide the image address to sync?"

🔐 Security Configuration

Recommended: Use environment variables to manage sensitive information

export PROD_BLSM_JENKINS_TOKEN="your-production-token"
export SHLAB_JENKINS_TOKEN="your-shlab-token"

Configuration Priority:

  1. Environment variable (variable name specified by tokenEnv)

  2. Direct configuration (token field)

  3. Interactive input (if neither is configured)

🚀 Quick Start

1. Build Image

cd mcps/jenkins
docker build -t jenkins-mcp .

2. Prepare Configuration

Create a config.yaml file (refer to the configuration guide above)

3. Run Container

# Use config file from current directory
docker run -i --rm \
  -v ./config.yaml:/app/config.yaml \
  -e PROD_BLSM_JENKINS_TOKEN="${PROD_BLSM_JENKINS_TOKEN}" \
  -e SHLAB_JENKINS_TOKEN="${SHLAB_JENKINS_TOKEN}" \
  jenkins-mcp

# Or specify custom config path
docker run -i --rm \
  -v /path/to/your/config.yaml:/app/config.yaml \
  -e JENKINS_TOKEN="${JENKINS_TOKEN}" \
  jenkins-mcp

🎨 MCP Client Integration

Cursor Integration

  1. Set Environment Variables:

    export JENKINS_TOKEN="your-jenkins-token"
  2. Create Config File: Create jenkins-config.yaml in the project root:

    servers:
      - name: your-jenkins
        uri: https://your-jenkins.company.com
        user: your-username
        tokenEnv: JENKINS_TOKEN
    scenarios:
      "Deploy Application":
        description: "Application deployment scenario"
        server: "your-jenkins"
        job_path: "deploy/"
  3. Configure Cursor MCP Settings: Add to Cursor's MCP config:

    {
      "mcpServers": {
        "jenkins": {
          "command": "docker",
          "args": [
            "run", "--rm", "-i",
            "-v", "/path/to/your/jenkins-config.yaml:/app/config.yaml",
            "-e", "JENKINS_TOKEN=${JENKINS_TOKEN}",
            "docker.io/mpan083/jenkins-mcp"
          ],
          "env": {
            "JENKINS_TOKEN": "your-jenkins-token"
          }
        }
      }
    }
  4. Usage Example: In Cursor, ask:

    "Get the list of available Jenkins scenarios"
    "Trigger a build for Deploy Application"
    "Check the status of the latest build"
    "Create a new test job from Jenkinsfile"

Method 2: Local Installation

  1. Install Dependencies:

    cd mcps/jenkins
    pip install -e .
  2. Configure Cursor MCP Settings:

    {
      "mcpServers": {
       "command": "docker",
       "args": [
         "run",
         "-i",
         "--rm",
         "-v",
         "~/.jenkinscliconfig:/app/config.yaml",
         "docker.io/mpan083/jenkins-mcp"
       ]
     }
      }
    }

🔧 Command Line Arguments

Jenkins MCP supports the following command line arguments:

# Basic usage
jenkins [options]

# Available options:
  --transport {stdio,sse,http}  # Transport mode (default: stdio)
  --host HOST                   # Bind host (default: 0.0.0.0)
  --port PORT                   # Bind port (default: 8000)
  --config, -c CONFIG           # Config file path
  --scenarios, -s SCENARIOS     # Scenario file path

# Usage examples:
jenkins --config my-config.yaml --scenarios my-scenarios.yaml
jenkins --transport sse --port 8080 --scenarios custom-scenarios.yaml

🔧 Traditional Startup

# Local development
python -m jenkins --transport stdio

# Use custom config and scenarios
python -m jenkins --config config.yaml --scenarios scenarios.yaml

# Web service
uvicorn jenkins.server:server --reload --host 0.0.0.0 --port 8000

📋 Available Tools (11)

🔧 Server Management

Tool

Description

Params

get_server_names()

Get the list of all available Jenkins servers

None

validate_jenkins_config()

Validate the integrity of Jenkins config

None

Tool

Description

Params

get_scenario_list()

Get all available scenarios

None

search_jobs_by_scenario(scenario)

Search Jenkins jobs by scenario

scenario: scenario name

🔍 Job Search and Management

Tool

Description

Params

search_jobs(server_name, keyword)

Search Jenkins jobs on a server

server_name: server namekeyword: search term

get_job_parameters(server_name, job_full_name)

Get job parameter definitions

server_name: server namejob_full_name: job name

⚙️ Build Management

Tool

Description

Params

trigger_build(server_name, job_full_name, params)

Trigger Jenkins build

server_name: server namejob_full_name: job nameparams: build params (optional)

get_build_status(server_name, job_full_name, build_number)

Get build status

server_name: server namejob_full_name: job namebuild_number: build number

stop_build(server_name, job_full_name, build_number)

Stop Jenkins build

server_name: server namejob_full_name: job namebuild_number: build number

get_build_log(server_name, job_full_name, build_number)

Get build log

server_name: server namejob_full_name: job namebuild_number: build number

🚀 Job Creation and Management

Tool

Description

Params

create_or_update_job_from_jenkinsfile(server_name, job_name, jenkinsfile_content, description, folder_path)

Create or update Jenkins job from Jenkinsfile

server_name: server namejob_name: job namejenkinsfile_content: Jenkinsfile contentdescription: job description (optional)folder_path: folder path (optional)

graph TD
    A[get_scenario_list] --> B[User selects scenario]
    B --> C[search_jobs_by_scenario]
    C --> D[get_job_parameters]
    D --> E[trigger_build]
    E --> F[get_build_status]
graph TD
    A[get_server_names] --> B[search_jobs]
    B --> C[get_job_parameters] 
    C --> D[trigger_build]
    D --> E[get_build_status]

Job Creation Workflow

graph TD
    A[Prepare Jenkinsfile] --> B[create_or_update_job_from_jenkinsfile]
    B --> C[Job created/updated in MCPS/username folder]
    C --> D[trigger_build]
    D --> E[get_build_status]

💡 Usage Examples

Scenario-based Deployment Example

# 1. Get available scenarios
"Get the list of available Jenkins scenarios"

# 2. Select scenario and search jobs
"Search jobs for the 'Sync Image to mldc' scenario"

# 3. Trigger build
"Trigger image sync task, image address is docker.io/user/app:latest"

Direct Operation Example

# 1. View available servers
"Show all available Jenkins servers"

# 2. Search jobs
"Search for jobs containing 'deploy' on the shlab server"

# 3. Get parameters and trigger
"Get parameter definitions for job 'release/deploy/app'"
"Trigger build with parameters: {'APP_NAME': 'myapp', 'VERSION': '1.0.0'}"

Job Creation Example

# 1. Create a new test job
"Create a new Jenkins job named 'my-test-job' on shlab server with this Jenkinsfile:
pipeline {
    agent any
    stages {
        stage('Test') {
            steps {
                echo 'Hello World'
            }
        }
    }
}"

# 2. Update existing job
"Update the 'my-test-job' with a new Jenkinsfile that includes deployment steps"

🔍 Enhanced Job Information

When searching or getting job information, the following details are returned:

  • Basic Info: Job name, full name, URL, description

  • Status: Buildable status, color indicator, parameterization status

  • Build History: Last build number, last build URL

  • Parameters: Complete parameter definitions with types and default values

🏗️ Job Creation Features

Automatic Directory Management

  • User Organization: All created jobs are organized under MCPS/{username}/ directory

  • Username Extraction: Automatically extracts username from Jenkins server configuration (handles email formats)

  • Folder Creation: Automatically creates necessary folder structure

  • Nested Folders: Supports creating jobs in nested folder paths

Job Creation Process

  1. Folder Structure: Jobs are created in MCPS/{username}/{optional_folder_path}/

  2. Conflict Handling: Automatically detects existing jobs and updates configuration

  3. Pipeline Jobs: Creates pipeline jobs with sandbox security enabled

  4. Error Recovery: Robust error handling for folder creation and job updates

🎯 Pre-configured Scenarios

Jenkins MCP comes with 3 common DevOps scenarios:

Scenario

Description

Server

Job Path

Sync User Permissions

User permission sync scenario

shlab

maglev/tool/permission-replicate/

Deploy Application

Application deployment, supports diff/sync/build

maglev-sre

release/deploy/

Sync Image to mldc

Sync container image to mldc environment

shlab

mldc-prod/sync-container-image-to-docker-af

🎨 Custom Scenario Configuration

📁 Scenario File Support

Jenkins MCP supports multiple ways to configure custom scenarios:

  1. Standalone Scenario File (Recommended):

    # Create custom scenario file
    cp scenarios.example.yaml scenarios.yaml
    
    # Specify scenario file at startup
    jenkins --scenarios scenarios.yaml
  2. Environment Variable:

    export JENKINS_MCP_SCENARIOS_FILE="/path/to/my-scenarios.yaml"
    jenkins
  3. Configure in config.yaml:

    scenarios:
      "Custom Deployment":
        description: "Custom application deployment scenario"
        server: "your-jenkins"
        job_path: "custom/deploy/"
        prompt_template: "Execute custom deployment task. Please confirm deployment parameters?"

🔄 Scenario Merge Rules

  • Default Scenarios: Load built-in scenarios from scenarios.default.yaml

  • User Scenarios: Load from custom scenario file

  • Merge Strategy: User scenarios take precedence, same-name scenarios override defaults

📝 Scenario File Example

Create a scenarios.yaml file:

scenarios:
  "Database Backup":
    description: "Execute database backup task"
    server: "production"
    job_path: "backup/database/"
    prompt_template: "Execute database backup task. Please select the database and backup type?"

  "Performance Test":
    description: "Run application performance test"
    server: "test"
    job_path: "test/performance/"
    prompt_template: "Execute performance test. Please select test scenario and load parameters?"

  # Override default scenario
  "Deploy Application":
    description: "My custom deployment process"
    server: "my-jenkins"
    job_path: "custom/deploy/"
    prompt_template: "Execute custom deployment. Please confirm deployment configuration?"

🧪 Testing

Unit Tests

cd mcps/jenkins
pytest tests/ -v

Docker Test

# Build and test
docker build -t jenkins-mcp-test .
docker run --rm jenkins-mcp-test jenkins --help

MCP Inspector Testing

# Test with MCP Inspector
npx @modelcontextprotocol/inspector docker run --rm -i -v ./config.yaml:/app/config.yaml jenkins-mcp

🔧 Development

Local Development Environment

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

# Run code checks
ruff check src/
mypy src/

# Format code
ruff format src/

Contribution Guide

  1. Fork this repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

📚 Documentation

🆘 Troubleshooting

Common Issues

Q: Failed to connect to Jenkins server?
A: Check network, URL, and authentication info. Use validate_jenkins_config() to validate config.

Q: Build parameter validation failed?
A: Use get_job_parameters() to check required parameters and ensure all are provided.

Q: Docker container failed to start?
A: Check config file mount path and environment variable settings.

Q: Job creation failed with 500 error?
A: Check Jenkins permissions and CSRF settings. The tool automatically handles CSRF tokens.

Q: Cannot create job in specified folder?
A: Ensure you have permission to create folders and jobs. Jobs are automatically organized under MCPS/{username}/.

Log Debugging

# Enable detailed logs
export JENKINS_MCP_LOG_LEVEL=DEBUG
jenkins --transport stdio

Performance Optimization

  • Multi-level Directory Support: Efficiently handles nested Jenkins folders

  • Intelligent Parameter Detection: Reduces API calls through smart caching

  • CSRF Token Management: Automatic token handling for secure Jenkins instances

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Support

If you have questions or suggestions:

  1. Check known issues in Issues

  2. Create a new Issue to report problems

  3. Contact the development team for support


Jenkins MCP - Make Jenkins automation easier 🚀

Available Tools

11 tools
create_or_update_job_from_jenkinsfileA

Create or update a Jenkins job based on a Jenkinsfile.

Args:
    server_name: Jenkins server name
    job_name: Name for the job (create if not exists, update if exists)
    jenkinsfile_content: Content of the Jenkinsfile (pipeline script)
    description: Optional job description
    ctx: MCP context (for logging)

Returns:
    Dict containing job creation/update result with status and job_url

Raises:
    JenkinsError: Job creation/update failed
ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes
job_nameYes
jenkinsfile_contentYes
descriptionNo

TDQS

A3.9/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 of behavioral disclosure. It describes the core action (create/update job) and mentions error handling ('Raises: JenkinsError'), but lacks details on permissions, side effects, rate limits, or what happens to existing job configurations. It adds some context but is incomplete for a mutation 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 well-structured with clear sections (Args, Returns, Raises) and front-loaded purpose. It is appropriately sized, but the inclusion of 'ctx' in Args, which is typically implicit in MCP, adds minor verbosity without significant value. Most sentences earn their place efficiently.

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 complexity of a mutation tool with no annotations and no output schema, the description is moderately complete. It covers parameters and basic behavior but lacks details on return values beyond a generic 'Dict', error specifics, or operational constraints. It meets minimum viability but has clear gaps for full agent understanding.

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?

The description provides detailed semantics for all parameters beyond the input schema, which has 0% description coverage. It explains what each parameter represents (e.g., 'Jenkins server name', 'Content of the Jenkinsfile'), clarifies optionality for 'description', and notes the purpose of 'ctx'. This fully compensates for the schema's lack of 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 specific action ('Create or update a Jenkins job') and the resource ('based on a Jenkinsfile'), distinguishing it from sibling tools like get_build_log or trigger_build which perform different operations. It precisely defines the verb and target without ambiguity.

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 through the phrase 'create if not exists, update if exists', suggesting when to use it, but does not explicitly state when to choose this tool over alternatives like search_jobs or validate_jenkins_config. No exclusions or prerequisites are mentioned, leaving some guidance gaps.

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

get_build_logC

Get Jenkins build log.

Args:
    server_name: Jenkins server name
    job_full_name: Full job name
    build_number: Build number

Returns:
    Build log text
ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes
job_full_nameYes
build_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 for behavioral disclosure. While 'Get' implies a read operation, the description doesn't mention authentication requirements, rate limits, error conditions, or whether this retrieves full or partial logs. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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 efficiently structured with a clear purpose statement followed by parameter and return sections. Every sentence serves a purpose, though the parameter descriptions could be more informative. The front-loaded purpose statement makes the tool's function immediately apparent.

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 3 parameters with 0% schema coverage and no annotations, the description is minimally adequate but incomplete. The presence of an output schema means return values are documented elsewhere, reducing the burden. However, for a tool that likely requires specific Jenkins knowledge and has behavioral implications, more context about authentication, error handling, and parameter formats would be beneficial.

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 description lists all three parameters with brief labels, but schema description coverage is 0%, so parameters lack documentation in both schema and description. The description adds minimal semantic value by naming the parameters but doesn't explain what constitutes a valid 'server_name', 'job_full_name' format, or 'build_number' range, leaving them essentially undocumented.

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' and resource 'Jenkins build log', making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_build_status' or 'get_job_parameters' that also retrieve build-related information, so it doesn't reach the highest clarity level.

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. With sibling tools like 'get_build_status' and 'get_job_parameters' available, there's no indication whether this tool should be used for log retrieval specifically versus other build information, nor any prerequisites or exclusions mentioned.

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

get_build_statusC

Get the Jenkins build status for the specified build_number.

Args:
    server_name: Jenkins server name
    job_full_name: Full job name
    build_number: Build number

Returns:
    Build status info
ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes
job_full_nameYes
build_numberYes

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 of behavioral disclosure. It states the tool retrieves status but doesn't describe what 'Build status info' includes (e.g., success/failure, duration, timestamps), potential errors (e.g., invalid build number), authentication needs, rate limits, or whether it's a read-only operation. This leaves significant gaps for a tool with no 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.

Conciseness4/5

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

The description is appropriately sized and front-loaded, with the core purpose stated first. The Args and Returns sections add structure, but the 'Returns' line is vague ('Build status info') and could be more informative. Overall, it's efficient with minimal waste, though slight improvements in clarity could enhance it further.

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 the tool's complexity (3 parameters, no annotations, no output schema), the description is incomplete. It lacks details on return values (beyond 'Build status info'), error handling, authentication, and how it differs from siblings. For a status retrieval tool in a Jenkins context, this leaves the agent with insufficient information to use it effectively without trial and error.

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 description lists all three parameters (server_name, job_full_name, build_number) in the Args section, adding meaning beyond the input schema, which has 0% description coverage. However, it only names them without explaining semantics (e.g., format of job_full_name, range for build_number). This partially compensates for the schema gap but doesn't fully clarify parameter usage, aligning with the baseline for moderate coverage improvement.

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: 'Get the Jenkins build status for the specified build_number.' It specifies the verb ('Get'), resource ('Jenkins build status'), and scope ('for the specified build_number'). However, it doesn't explicitly differentiate from sibling tools like 'get_build_log' or 'get_job_parameters', which prevents a perfect score.

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

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. It doesn't mention sibling tools like 'get_build_log' (for logs) or 'trigger_build' (for initiating builds), nor does it specify prerequisites or contexts for usage. The only implied usage is retrieving status, but no explicit alternatives or exclusions are stated.

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

get_job_parametersB

Get the parameter definitions of a Jenkins job.

Args:
    server_name: Jenkins server name
    job_full_name: Full job name

Returns:
    List of parameter definitions, including parameter name, type, default value, and options (if choice parameter)
ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes
job_full_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a read operation ('Get'), but doesn't mention authentication requirements, rate limits, error conditions, or whether it's idempotent. For a tool accessing Jenkins parameters, this leaves significant gaps in understanding its 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 perfectly structured: a clear purpose statement followed by organized Args and Returns sections. Every sentence adds value with zero redundancy, making it easy to parse and understand quickly.

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 moderate complexity (2 parameters, read-only operation), the description covers the essential purpose, parameters, and return format. The presence of an output schema means the description doesn't need to detail return values, but it still lacks behavioral context (auth, errors) that would make it 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?

The description explicitly lists both parameters (server_name and job_full_name) and explains their purpose, adding meaningful context beyond the schema (which has 0% description coverage). However, it doesn't provide format examples or constraints (e.g., job naming conventions), keeping it at baseline level.

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' and the resource 'parameter definitions of a Jenkins job', making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its siblings (like get_build_status or get_scenario_list), which would require a 5.

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. It doesn't mention prerequisites (e.g., needing an existing job), exclusions, or how it differs from sibling tools like search_jobs, leaving the agent to infer usage context.

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

get_scenario_listA

Get all available application scenarios - the preferred entry point for deployment tasks.

Important: For any deployment-related task, this function should be called first instead of directly using search_jobs.
This function returns a pre-configured scenario list, each containing the correct server and job path configuration.

Returns:
    List of scenarios, each containing:
        - index: Scenario index (string)
        - name: Scenario name
        - description: Scenario description
        - server: Jenkins server name
        - job_path: Job path

Workflow:
1. Call this function to get the scenario list
2. Let the user select a scenario
3. Use search_jobs_by_scenario(scenario) to get the specific job
4. Use trigger_build() to execute deployment
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/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 of behavioral disclosure. It effectively describes what the tool returns (a list of scenarios with specific fields) and its role in the deployment workflow. However, it doesn't mention potential limitations like rate limits, authentication requirements, or error conditions, which would be helpful for a tool with no annotations.

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 well-structured and front-loaded with the core purpose. Every sentence adds value: the first states the purpose and usage rule, the second explains the return value, and the workflow section provides actionable guidance. There's no redundant or wasted information.

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

Completeness5/5

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

Given the tool has 0 parameters, an output schema exists, and no annotations are provided, the description is complete. It explains what the tool does, when to use it, what it returns, and how it fits into a broader workflow. The output schema likely covers the return structure, so the description doesn't need to duplicate that detail.

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 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't discuss parameters, focusing instead on the tool's purpose and output. No additional parameter semantics are needed or 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 explicitly states the tool's purpose: 'Get all available application scenarios' and identifies it as 'the preferred entry point for deployment tasks.' It clearly distinguishes this from sibling tools like 'search_jobs' by explaining this should be called first instead of directly using search_jobs. The verb 'get' and resource 'scenario list' are 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 Guidelines5/5

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

The description provides explicit guidance on when to use this tool versus alternatives: 'For any deployment-related task, this function should be called first instead of directly using search_jobs.' It also outlines a complete workflow with specific sibling tools (search_jobs_by_scenario and trigger_build), giving clear context and exclusions.

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

get_server_namesA

Get the list of all available Jenkins server names.

Returns:
    List of server names
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns a list of server names, which is basic output information, but fails to describe critical behaviors such as whether this requires authentication, how the list is formatted (e.g., sorted, paginated), or any rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding its operational traits.

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 front-loaded with the core purpose in the first sentence, followed by a brief return statement. It avoids unnecessary elaboration, though the 'Returns:' section could be integrated more seamlessly. Overall, it is efficient with minimal waste, earning a high score for conciseness.

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's simplicity (0 parameters, 100% schema coverage, and an output schema exists), the description is adequate but not fully complete. It covers the basic purpose and return value, but lacks behavioral context (e.g., authentication needs, list characteristics) that would be helpful despite the output schema. For a read-only tool with no annotations, more disclosure would enhance completeness.

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 zero parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately omits parameter details, aligning with the schema's completeness. A baseline of 4 is applied since no parameters exist, and the description does not need to compensate for any gaps.

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 specific action ('Get the list') and resource ('all available Jenkins server names'), distinguishing it from sibling tools that focus on jobs, builds, parameters, or scenarios. It provides a precise verb+resource combination that leaves no ambiguity about its function.

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 when server names are needed, but offers no explicit guidance on when to use this tool versus alternatives (e.g., for server discovery vs. job-related operations). It lacks any mention of prerequisites, exclusions, or comparative context with sibling tools, leaving usage decisions to inference.

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

search_jobsA

Search Jenkins jobs on the specified server.

Note: For deployment tasks, it is recommended to use get_scenario_list() and search_jobs_by_scenario().

Args:
    server_name: Jenkins server name
    keyword: Search keyword

Returns:
    List of matching jobs
ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes
keywordYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It states this is a search operation but doesn't disclose behavioral traits like authentication requirements, rate limits, pagination behavior, or what 'matching jobs' means in practice. The description is adequate but lacks rich behavioral context.

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 well-structured with clear sections (purpose, note, args, returns) and uses only essential sentences. The note about deployment tasks earns its place by providing valuable guidance. Slightly longer than minimal but appropriately so.

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 an output schema (so return values are documented elsewhere), 2 parameters with 0% schema coverage, and no annotations, the description provides good coverage: clear purpose, parameter explanations, usage guidance, and return type indication. It could benefit from more behavioral context but is reasonably complete.

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?

With 0% schema description coverage, the description compensates by explaining both parameters: server_name specifies which Jenkins server, and keyword is the search term. This adds meaningful context beyond the bare schema, though it doesn't provide format examples or constraints.

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 searches Jenkins jobs on a specified server, providing a specific verb (search) and resource (Jenkins jobs). It distinguishes from some siblings like get_build_log or trigger_build, but doesn't explicitly differentiate from search_jobs_by_scenario beyond the note about deployment tasks.

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 provides explicit guidance with a note recommending alternative tools (get_scenario_list and search_jobs_by_scenario) for deployment tasks. This gives clear context for when to consider alternatives, though it doesn't specify when NOT to use this tool or compare it to all siblings.

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

search_jobs_by_scenarioB

Get the specified Jenkins job directly by scenario.

Args:
    scenario: Scenario name or index

Returns:
    List of job info matching the scenario
ParametersJSON Schema
NameRequiredDescriptionDefault
scenarioYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 of behavioral disclosure. It mentions that it returns a 'List of job info matching the scenario,' which gives some output context, but lacks details on permissions, rate limits, error handling, or whether it's a read-only operation. For a tool with no annotations, this is insufficient.

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 appropriately sized and front-loaded, with the main purpose stated first, followed by brief sections for Args and Returns. It avoids unnecessary details, but the structure could be slightly more polished (e.g., using bullet points). Overall, it's efficient with minimal waste.

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's moderate complexity, no annotations, and an output schema present, the description is partially complete. It covers the basic purpose and parameter semantics but lacks behavioral context and detailed usage guidelines. The output schema likely handles return values, so the description doesn't need to explain those, but it should address other gaps.

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 description adds meaning by explaining that 'scenario' is a 'Scenario name or index,' which clarifies beyond the schema's generic 'string' type. However, with 0% schema description coverage and only one parameter, it compensates somewhat but doesn't provide examples, format details, or constraints, leaving room for improvement.

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: 'Get the specified Jenkins job directly by scenario.' It specifies the verb ('Get') and resource ('Jenkins job'), and distinguishes it from the sibling 'search_jobs' by focusing on scenario-based retrieval. However, it doesn't fully differentiate from 'get_scenario_list' which might list scenarios rather than jobs.

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 by specifying 'by scenario,' suggesting it should be used when you have a scenario name or index. It doesn't explicitly state when to use this tool versus alternatives like 'search_jobs' or 'get_scenario_list,' nor does it provide exclusions or prerequisites, leaving some ambiguity.

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

stop_buildB

Stop Jenkins build.

Intelligently handles permission errors and will automatically check build status to confirm if it has already been terminated.

Args:
    server_name: Jenkins server name
    job_full_name: Full job name
    build_number: Build number
    ctx: MCP context (for logging)

Returns:
    Stop result
ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes
job_full_nameYes
build_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYes
statusYes

TDQS

B3.2/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. It adds valuable behavioral context about 'intelligently handling permission errors' and 'automatically checking build status to confirm termination,' which goes beyond just stating the action. However, it doesn't mention important aspects like whether this is a destructive operation, what happens to queued builds, or error handling specifics.

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 well-structured with clear sections (purpose, behavioral notes, args, returns) and uses only essential sentences. The front-loaded purpose statement is effective, though the 'Args' and 'Returns' sections could be slightly more detailed without sacrificing conciseness.

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 3 parameters with 0% schema coverage and no annotations, the description provides basic parameter semantics and some behavioral context. However, for a mutation tool that stops builds, it lacks details on permissions, side effects, error scenarios, and the output schema's content ('Stop result' is vague). The presence of an output schema helps but doesn't fully compensate.

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 schema description coverage is 0%, so the description must compensate. It lists all 3 parameters with brief explanations, which adds meaning beyond the bare schema. However, the explanations are minimal ('Jenkins server name,' 'Full job name,' 'Build number') and don't provide format examples, constraints, or relationship 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 with a specific verb ('Stop') and resource ('Jenkins build'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_build_status' or 'trigger_build' beyond the obvious action difference.

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. There's no mention of prerequisites, when not to use it, or how it relates to sibling tools like 'get_build_status' (which might be needed before stopping) or 'trigger_build' (which starts builds).

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

trigger_buildA

Trigger Jenkins job build.

Automatically determines parameter requirements and waits to obtain build_number.

Args:
    server_name: Jenkins server name
    job_full_name: Full job name
    params: Optional parameter dict
    ctx: MCP context (for logging)

Returns:
    Dict containing build_number or queue_id

Raises:
    JenkinsParameterError: Missing required parameters
    JenkinsError: Trigger failed
ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes
job_full_nameYes
paramsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
messageYes
queue_idYes
build_urlYes
queue_urlYes
build_numberYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does well by disclosing key behaviors: it automatically determines parameter requirements, waits to obtain a build number, and raises specific errors (JenkinsParameterError, JenkinsError). This covers operational traits beyond basic functionality, though it could add more on permissions or rate limits.

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

Conciseness5/5

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

The description is well-structured and front-loaded with the core purpose, followed by organized sections for Args, Returns, and Raises. Every sentence adds value, such as explaining automatic parameter handling and error conditions, with no wasted words or redundancy.

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

Completeness5/5

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

Given the tool's complexity (triggering builds with parameter handling), no annotations, and an output schema present (so return values are documented), the description is complete enough. It covers purpose, parameters, behaviors, errors, and output, providing sufficient context for effective use without needing to repeat structured data.

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 description coverage is 0%, so the description must compensate. It lists all parameters (server_name, job_full_name, params, ctx) and explains their roles (e.g., 'Optional parameter dict', 'MCP context for logging'), adding meaningful context beyond the bare schema. However, it doesn't detail format or examples for params, leaving some gaps.

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 ('Trigger Jenkins job build'), the resource ('Jenkins job'), and distinguishes it from siblings like 'stop_build' or 'get_build_status' by focusing on initiating a build. It specifies the tool automatically determines parameter requirements and waits for a build number, making the purpose specific and differentiated.

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 usage for triggering builds and mentions automatic parameter handling, but does not explicitly state when to use this tool versus alternatives like 'create_or_update_job_from_jenkinsfile' or 'stop_build'. It provides clear context for build initiation but lacks explicit exclusions or comparisons to sibling tools.

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

validate_jenkins_configB

Validate the integrity of Jenkins configuration.

Returns:
    Validation result, including error list and status
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 of behavioral disclosure. It mentions the return value ('Validation result, including error list and status'), which adds some context about output. However, it lacks details on permissions needed, whether it's read-only or has side effects, error handling, or rate limits—critical for a validation tool in a Jenkins context.

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 concise and front-loaded, stating the purpose in the first sentence and the return value in the second. There's no wasted text, but it could be slightly more structured (e.g., separating purpose and returns more clearly). Overall, it's efficient and to the point.

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's complexity (validation operation with no parameters) and lack of annotations and output schema, the description is minimally complete. It covers the purpose and return value, but for a Jenkins configuration tool, it could benefit from more context (e.g., what 'integrity' entails, example use cases). Without an output schema, the return description is helpful but basic.

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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details beyond the schema, but since there are no parameters, this is acceptable. It implies validation occurs on the overall Jenkins configuration without specifying inputs, which aligns with the empty 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's purpose: 'Validate the integrity of Jenkins configuration.' It specifies the verb ('validate') and resource ('Jenkins configuration'), making the action clear. However, it doesn't explicitly differentiate from sibling tools like 'get_server_names' or 'search_jobs', which serve different purposes but are related to Jenkins operations.

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. It doesn't mention prerequisites (e.g., after configuration changes), exclusions, or how it relates to sibling tools such as 'trigger_build' or 'create_or_update_job_from_jenkinsfile'. Without this context, users must infer usage from the purpose alone.

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

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have distinct purposes, but some potential overlap exists. For example, search_jobs and search_jobs_by_scenario both search for jobs, though the latter is scenario-specific. Additionally, get_build_log and get_build_status both retrieve build information, but their distinct focuses (log vs. status) help differentiate them. Overall, the tools are well-separated with clear boundaries.

Naming Consistency4/5

The naming follows a consistent snake_case pattern with clear verb_noun structures, such as get_build_log and trigger_build. However, there are minor deviations like create_or_update_job_from_jenkinsfile, which is more verbose and includes a preposition, and validate_jenkins_config, which uses a noun_verb_noun pattern. These inconsistencies are minor and do not significantly hinder readability.

Tool Count5/5

With 11 tools, the count is well-suited for a Jenkins MCP server. It covers essential operations like job management (create/update, search), build control (trigger, stop, get status/log), and configuration (validate, get parameters). The tools are focused and each serves a clear purpose without being overly broad or sparse.

Completeness4/5

The toolset provides strong coverage for core Jenkins workflows, including job creation, building, monitoring, and searching. However, there are minor gaps, such as the lack of tools for deleting jobs or managing Jenkins plugins/users. The inclusion of scenario-based deployment tools adds a layer of abstraction that enhances usability but doesn't fill all potential gaps in the Jenkins API surface.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An integration tool that allows interaction with Jenkins CI/CD servers through a Model Context Protocol interface, enabling users to view server info, manage jobs, inspect builds, and trigger builds with parameters.
    1
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A Model Context Protocol (MCP) server that enables AI tools like chatbots to interact with and control Jenkins, allowing users to trigger jobs, check build statuses, and perform other Jenkins operations through natural language.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Jenkins CI/CD systems through natural language, providing build management, job monitoring, log analysis, and debugging capabilities.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xhuaustc/jenkins-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server