MCP Server Plugin for Jenkins
A plugin that turns Jenkins into an MCP server so an agent can inspect jobs and build logs, trigger builds and read test results.
- 119 ★ on the repository
- Last commit
Extended access
Why this level
- The agent can start and cancel builds, create pipelines and replay a build with a modified script.
- Access follows the rights of the API token owner.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/mcp-server-plugin-for-jenkinsDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The agent can start and cancel builds, create pipelines and replay a build with a modified script.
- Access follows the rights of the API token owner.
This is third-party code. Review the repository files before installing.
What it does
MCP Server Plugin embeds the server side of the Model Context Protocol in Jenkins. Once installed, the plugin sets up endpoints itself: streamable HTTP `/mcp-server/mcp`, SSE `/mcp-server/sse` and sessionless `/mcp-server/stateless`. Clients such as Claude Code, Cursor, Cline and Windsurf connect with a Jenkins API token in a Basic header. Built-in tools come in groups. For jobs: `getJobs`, `triggerBuild`, `cancelBuild`, `createPipeline`. For builds: `getBuildLog`, `searchBuildLog`, `rebuildBuild`, `replayBuild`, `getTestResults`, `getFlakyFailures`. For repositories: `getJobScm`, `getBuildChangeSets`. For diagnostics: `getStatus`, `getSystemLog`. Custom tools are added through the `McpServerExtension` interface and the `@Tool` annotation.
Who it is for. Jenkins administrators and CI engineers who triage failed builds and start jobs through an agent instead of the web UI.
Good fit when
- A build failed and the agent must find the cause in the log by pattern or regular expression.
- You need to know which tests were flaky in the latest build.
- A parameterised job is started from chat with `BRANCH` and other values.
- The team has custom CI logic that is added as an extra tool through a plugin.
Not a fit when
- Jenkins is reachable by browsers and anonymous users and token checks cannot be enforced.
- The agent must not trigger builds or change pipelines.
- The job needs file parameters, which are not supported through MCP.
Example request
Find the first error in the last build log of `my-job`, show the failing tests and suggest what to fix.MCP
- Transport
- http, sse
- Authentication
- API key
Limitations
The plugin is installed in Jenkins itself and the README has no install command: once installed through the Update Center it works without configuration. The agent gets the same rights as the token owner, and `triggerBuild`, `createPipeline` and `replayBuild` change server state. The `allowUnauthenticatedMcp=true` property weakens CSRF protection and suits local development only. SSE behind a proxy needs timeout tuning. File upload through parameters is not supported.
How to disable. Remove the client MCP entry, revoke the API token in the Jenkins profile and disable or uninstall the plugin. Individual transports are switched off with `disableMcpSse`, `disableMcpStreamable` and `disableMcpStateless`.
FAQ
Which address does the client use?
For streamable HTTP `<jenkins-url>/mcp-server/mcp`. For SSE `<jenkins-url>/mcp-server/sse`, and for sessionless mode `<jenkins-url>/mcp-server/stateless`.
How does authentication work?
Create an API token in the Jenkins profile and pass the user:token pair base64-encoded in the `Authorization` header using the Basic scheme.
Which transport should I choose?
The README recommends streamable HTTP for ordinary requests. SSE keeps a long connection open and is sensitive to proxy timeouts.
How do I restrict a tool by permission?
Set `permissions` in `@Tool`. The caller must hold at least one listed permission, otherwise the tool is hidden from `tools/list` and rejected when called.
What if SSE drops behind a proxy?
Choose streamable HTTP or raise the proxy timeouts. For SSE the server sends keep-alive every 30 seconds, and the `keepAliveInterval` property sets the interval.
Discussion
No questions or reviews yet.
Related
MCP serversJira, Confluence, Bitbucket and Jenkins MCP
Sberworks MCP
A local stdio MCP server for self-hosted Jira, Confluence, Bitbucket Server and Jenkins, with mTLS support and write tools disabled by default
A self-hosted gateway that merges several MCP servers into one endpoint with auth and tool selection
Buildkite MCP Server
buildkite-mcp-server
Official Buildkite MCP server: pipelines, builds, jobs, logs and test results for the agent
SSH MCP Server (classfang): remote commands over SSH
SSH MCP Server (classfang)
An SSH MCP server: the agent runs commands, reads and writes files over SFTP, transfers files and starts long jobs while credentials stay with you
A Bitbucket Cloud MCP server with six generic tools that reach any repository or pull request REST API path
A Node.js manager for MCP servers: it starts local servers, connects remote ones and gives a client one address, with a REST API for control
README in short
The plugin validates the `Origin` header against the Jenkins root URL, keeps SSE alive, reclaims idle sessions and exposes health and metrics endpoints.