Jenkins MCP Tool
Supports containerized deployment for easy integration, allowing the MCP to be run as a Docker container with configuration and token management via environment variables and mounted volumes.
Provides tools for managing multiple Jenkins servers, supporting job search, parameterized build management, real-time build monitoring, and job creation from Jenkinsfiles. Enables automation of common DevOps scenarios like user permission sync, application deployment, and container image sync.
Uses Python 3.11+ as its runtime environment, providing a foundation for the server's implementation and supporting both local development and containerized deployment options.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jenkins MCP Tooldeploy the backend service version 2.5.1 to production"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Jenkins MCP Tool
🚀 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:
Environment variable (variable name specified by
tokenEnv)Direct configuration (
tokenfield)Interactive input (if neither is configured)
🚀 Quick Start
🐳 Docker Method (Recommended)
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
Set Environment Variables:
export JENKINS_TOKEN="your-jenkins-token"Create Config File: Create
jenkins-config.yamlin 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/"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" } } } }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
Install Dependencies:
cd mcps/jenkins pip install -e .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 the list of all available Jenkins servers | None |
| Validate the integrity of Jenkins config | None |
🎯 Intelligent Scenarios (Recommended Workflow)
Tool | Description | Params |
| Get all available scenarios | None |
| Search Jenkins jobs by scenario |
|
🔍 Job Search and Management
Tool | Description | Params |
| Search Jenkins jobs on a server |
|
| Get job parameter definitions |
|
⚙️ Build Management
Tool | Description | Params |
| Trigger Jenkins build |
|
| Get build status |
|
| Stop Jenkins build |
|
| Get build log |
|
🚀 Job Creation and Management
Tool | Description | Params |
| Create or update Jenkins job from Jenkinsfile |
|
🚀 Recommended Workflow
Scenario-based Deployment (Recommended)
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]General Job Search
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}/directoryUsername 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
Folder Structure: Jobs are created in
MCPS/{username}/{optional_folder_path}/Conflict Handling: Automatically detects existing jobs and updates configuration
Pipeline Jobs: Creates pipeline jobs with sandbox security enabled
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 |
|
Deploy Application | Application deployment, supports diff/sync/build | maglev-sre |
|
Sync Image to mldc | Sync container image to mldc environment | shlab |
|
🎨 Custom Scenario Configuration
📁 Scenario File Support
Jenkins MCP supports multiple ways to configure custom scenarios:
Standalone Scenario File (Recommended):
# Create custom scenario file cp scenarios.example.yaml scenarios.yaml # Specify scenario file at startup jenkins --scenarios scenarios.yamlEnvironment Variable:
export JENKINS_MCP_SCENARIOS_FILE="/path/to/my-scenarios.yaml" jenkinsConfigure 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.yamlUser 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/ -vDocker Test
# Build and test
docker build -t jenkins-mcp-test .
docker run --rm jenkins-mcp-test jenkins --helpMCP 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
Fork this repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
📚 Documentation
Tool Documentation - Complete tool list and usage
FastMCP Documentation - MCP framework docs
Model Context Protocol - MCP protocol standard
🆘 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 stdioPerformance 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:
Check known issues in Issues
Create a new Issue to report problems
Contact the development team for support
Jenkins MCP - Make Jenkins automation easier 🚀
Available Tools
11 toolscreate_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
| Name | Required | Description | Default |
|---|---|---|---|
| server_name | Yes | ||
| job_name | Yes | ||
| jenkinsfile_content | Yes | ||
| description | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| server_name | Yes | ||
| job_full_name | Yes | ||
| build_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| server_name | Yes | ||
| job_full_name | Yes | ||
| build_number | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| server_name | Yes | ||
| job_full_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| server_name | Yes | ||
| keyword | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| scenario | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| server_name | Yes | ||
| job_full_name | Yes | ||
| build_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| status | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| server_name | Yes | ||
| job_full_name | Yes | ||
| params | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| message | Yes | |
| queue_id | Yes | |
| build_url | Yes | |
| queue_url | Yes | |
| build_number | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Multi-CI security scanner with a live threat-intel feed of compromised CI components
The Jam MCP server provides AI tools with instant bug context without manual prompting, enabling a streamlined workflow from bug identification to ticket creation and pull request generation without switching between tools.
Connect AI agents to CloudBees Unify: feature flags, CI/CD, release orchestration, and security
The AI orchestration agent for modern software teams.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn 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
- AlicenseNot gradedqualityNot gradedmaintenanceA 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.
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Jenkins CI/CD systems through natural language, providing build management, job monitoring, log analysis, and debugging capabilities.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Jenkins CI/CD systems for build management, job monitoring, console log analysis, and debugging through natural language commands.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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