Triggering a build is easy anywhere; reading the console log back into the conversation is what turns a failed build into something the assistant can actually diagnose. Configuration access rounds it out — the config XML can be read and written, so a broken job can be inspected and fixed rather than only restarted. The credential is a Jenkins API token, which is the right thing to scope narrowly before handing it to an agent.
A Spring AI MCP server over the Jenkins REST API, covering the job operations people actually perform — creating and renaming jobs, running builds, and reading back what happened.
- Job management: create, delete, rename, and enable or disable a job — `createJob`, `deleteJob`, `renameJob`, `enableJob`, `disableJob`
- Builds: trigger one, trigger one with parameters, and stop a running build — `buildJob`, `buildJobWithParams`, `killJob`
- Build inspection: job detail, information about a specific build, the console output, and the last build number and timestamp — `getJobInfo`, `getBuildInfo`, `getBuildLog`, `getLastBuildNumber`, `getLastBuildTimestamp`
- Configuration handling: read a job's configuration XML and update it — `getJobConfig`, `updateJobConfig`
A Jenkins server with the Remote Access API enabled, and three environment variables: `JENKINS_API_SERVER_URI`, `JENKINS_API_USERNAME` and `JENKINS_API_TOKEN`. JDK 17 or newer and Maven 3.6 or newer; `mvn package` produces the jar under `/target`, and the client entry runs `java` with `-jar` and the full path.
