Skip to content

docs: add Jenkins MCP integration documentation - #1881

Merged
arikalon1 merged 1 commit into
HolmesGPT:masterfrom
henrik-koren:docs/jenkins-mcp-integration
Apr 6, 2026
Merged

arikalon1 merged 1 commit into
HolmesGPT:masterfrom
henrik-koren:docs/jenkins-mcp-integration

Conversation

@henrik-koren

@henrik-koren henrik-koren commented Apr 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Adds a dedicated documentation page for the Jenkins MCP Server integration, allowing Holmes to investigate CI/CD build failures, monitor pipeline status, and analyze Jenkins jobs.

Changes

docs/data-sources/builtin-toolsets/jenkins-mcp.md (new)

  • Full setup guide for the Jenkins MCP Server Plugin
  • Prerequisites: installing the plugin, creating an API token, encoding Basic auth credentials
  • Configuration examples for Holmes CLI (~/.holmes/config.yaml), Helm, and Kubernetes Secret
  • Common use-case example prompts
  • Troubleshooting section (authentication errors, connectivity, log access)

docs/data-sources/builtin-toolsets/index.md

  • Added Jenkins MCP card to the toolsets grid

docs/data-sources/builtin-toolsets/.nav.yml

  • Registered jenkins-mcp.md in the MkDocs awesome-nav navigation

Test plan

  • Markdown renders correctly (no broken links or malformed tabs)
  • Nav entry appears in the correct position in the docs sidebar
  • Configuration snippets tested against a real Jenkins + MCP Server Plugin deployment (Dell internal)

Generated with Devin

Summary by CodeRabbit

  • Documentation

    • Added Jenkins (MCP) CI/CD integration docs: setup steps, API token & credential examples, CLI/Helm deployment guidance, required endpoint details, connectivity test and common query prompts, troubleshooting, and updated navigation and README entries.
  • Tests

    • Added tests covering Jenkins MCP configuration parsing and basic error handling.

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This pull request is from a fork — automated review is disabled. A repository maintainer can comment @claude review to run a one-time review.

@linux-foundation-easycla

linux-foundation-easycla Bot commented Apr 5, 2026 •

Copy link
Copy Markdown

CLA Signed

The committers listed above are authorized under a signed CLA.

  • ✅ login: henrik-koren / name: Henrik Koren (a445728)

@coderabbitai

coderabbitai Bot commented Apr 5, 2026 •

Copy link
Copy Markdown
Contributor

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds Jenkins (MCP) documentation, navigation and README entries, and unit tests validating RemoteMCPToolset configuration and prerequisites parsing for Jenkins MCP.

Changes

Cohort / File(s) Summary
Navigation & index
docs/data-sources/builtin-toolsets/.nav.yml, docs/data-sources/builtin-toolsets/index.md
Added a Jenkins (MCP) nav entry and a CI/CD card linking to the Jenkins MCP doc.
Documentation pages
docs/data-sources/builtin-toolsets/jenkins-mcp.md, docs/why-holmesgpt.md, README.md
Added a new Jenkins MCP guide (prereqs, auth examples, Holmes/Helm/Robusta config snippets, endpoints, prompts, troubleshooting) and referenced Jenkins in product docs and README data-sources table.
Tests
tests/test_mcp_toolset.py
Added tests for RemoteMCPToolset parsing/prerequisites: positive case (streamable-http, Authorization header, verify_ssl=False) and negative case (missing URL yields ok=False and an error).

Sequence Diagram(s)

(omitted — changes are documentation and small tests; no new multi-component control flow requiring visualization)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • aantn
  • arikalon1
  • RoiGlinik
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 75.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: adding Jenkins MCP integration documentation. It directly matches the changeset's main objective.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@netlify

netlify Bot commented Apr 5, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for holmes-docs ready!

Name Link
🔨 Latest commit a445728
🔍 Latest deploy log https://app.netlify.com/projects/holmes-docs/deploys/69d36db36f7bde0008d85afd
😎 Deploy Preview https://deploy-preview-1881--holmes-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
docs/data-sources/builtin-toolsets/jenkins-mcp.md (1)

229-254: Flatten troubleshooting into a single consolidated block.

Please replace the multiple ### troubleshooting subsections with one compact section (single code block with comments/checks). Current structure is header-heavy for this doc style.

As per coding guidelines: "Consolidate troubleshooting commands in documentation using a single code block with comments instead of separate headers for each scenario" and "Avoid excessive headers in documentation".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/data-sources/builtin-toolsets/jenkins-mcp.md` around lines 229 - 254,
Replace the three separate troubleshooting subsections ("Authentication Errors",
"Connection Issues", "Plugin Not Found") under the "Troubleshooting" heading
with a single consolidated block that combines all checks and remediation steps
into one compact code-block-style list; include checks for API token validity
and base64 credentials (username:token), permission verification for the Jenkins
user, accessibility of the Jenkins URL from the Holmes pod/container, an SSL
verification note (mention verify_ssl: false for self-signed certs), and MCP
Server plugin presence/restart steps (and check /mcp-server/mcp endpoint and
Jenkins logs) as commented bullets inside that single block so the doc follows
the guideline to avoid multiple headers.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/data-sources/builtin-toolsets/jenkins-mcp.md`:
- Line 3: The doc repeats enumerated capabilities for the Jenkins MCP
integration (intro paragraph, the llm_instructions section, and the "Available
Tools" matrix) which violates the toolset doc policy; remove those
capability/operation listings from the intro, the llm_instructions block, and
the "Available Tools" matrix while keeping a short high-level integration
description and any necessary usage/setup notes. Specifically, edit
docs/data-sources/builtin-toolsets/jenkins-mcp.md to delete the detailed feature
lists in the intro, the llm_instructions section, and the "Available Tools"
table, leaving only concise integration purpose/usage text and removing
stale-prone operation enumerations so the file conforms to the repository
guideline.
- Line 1: The Jenkins (MCP) integration registration is incomplete: add an entry
for "Jenkins (MCP)" into the repository README.md integration list, add the
Jenkins logo asset into images/integration_logos/ with the same naming
convention as other integrations, add integration test coverage (follow the
patterns used by other built-in toolsets tests) to include Jenkins MCP, and
update or create an appropriate walkthrough doc (replace or reference
docs/walkthrough/why-holmesgpt.md with an existing walkthrough file) to mention
Jenkins MCP; use docs/data-sources/builtin-toolsets/jenkins-mcp.md and
docs/data-sources/builtin-toolsets/index.md as the canonical integration content
to reference when adding README, logo, tests, and walkthrough mentions.

---

Nitpick comments:
In `@docs/data-sources/builtin-toolsets/jenkins-mcp.md`:
- Around line 229-254: Replace the three separate troubleshooting subsections
("Authentication Errors", "Connection Issues", "Plugin Not Found") under the
"Troubleshooting" heading with a single consolidated block that combines all
checks and remediation steps into one compact code-block-style list; include
checks for API token validity and base64 credentials (username:token),
permission verification for the Jenkins user, accessibility of the Jenkins URL
from the Holmes pod/container, an SSL verification note (mention verify_ssl:
false for self-signed certs), and MCP Server plugin presence/restart steps (and
check /mcp-server/mcp endpoint and Jenkins logs) as commented bullets inside
that single block so the doc follows the guideline to avoid multiple headers.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c3ec6115-2833-4758-a7de-65dbe0ba65b5

📥 Commits

Reviewing files that changed from the base of the PR and between 4630636 and cc65ea725c88cb1c6145ea1f2cd3db90dffa5a50.

📒 Files selected for processing (3)
  • docs/data-sources/builtin-toolsets/.nav.yml
  • docs/data-sources/builtin-toolsets/index.md
  • docs/data-sources/builtin-toolsets/jenkins-mcp.md

Comment thread docs/data-sources/builtin-toolsets/jenkins-mcp.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/data-sources/builtin-toolsets/jenkins-mcp.md (1)

208-233: Replace subsection headers with bold text in Troubleshooting.

The Troubleshooting section uses three ### headers for minor subsections. As per coding guidelines, use bold text for minor sections instead of markdown headers to reduce verbosity.

📝 Proposed refactor using bold text
 ## Troubleshooting
 
-### Authentication Errors
+**Authentication Errors**
 
 If you receive 401 or 403 errors:
 
 1. Verify your API token is valid and not expired
 2. Ensure the credentials are properly base64 encoded (username:token format)
 3. Check that the Jenkins user has appropriate permissions
 
-### Connection Issues
+**Connection Issues**
 
 If Holmes cannot connect to Jenkins:
 
 1. Verify the Jenkins URL is accessible from the Holmes pod/container
 2. Check if SSL certificate verification is causing issues (`verify_ssl: false` for self-signed certs)
 3. Ensure the MCP Server plugin is installed and enabled in Jenkins
 
-### Plugin Not Found
+**Plugin Not Found**
 
 If the `/mcp-server/mcp` endpoint returns 404:
 
 1. Verify the MCP Server plugin is installed in Jenkins
 2. Restart Jenkins after plugin installation
 3. Check Jenkins system logs for plugin errors

As per coding guidelines: "Avoid excessive headers in documentation - use bold text for minor sections, combine content into single code blocks with comments instead of separate headers".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/data-sources/builtin-toolsets/jenkins-mcp.md` around lines 208 - 233, In
the Troubleshooting section, replace the three markdown subsection headers "###
Authentication Errors", "### Connection Issues", and "### Plugin Not Found" with
bold inline headings (e.g., **Authentication Errors**, **Connection Issues**,
**Plugin Not Found**) and merge their bullet lists under those bold lines so the
content remains the same but uses bold text instead of additional `###` headers;
ensure the main "Troubleshooting" heading stays as-is and preserve existing
bullets and instructions verbatim.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/data-sources/builtin-toolsets/jenkins-mcp.md`:
- Line 1: Add Jenkins (MCP) to the integrations table in README.md by inserting
a new row that follows the existing table format and includes an icon reference
to the logo (use the same relative path and HTML/Markdown pattern as other
entries), and add the logo asset file named jenkins-icon.png (or the same image
format used by other logos) into images/integration_logos/ so the icon path
resolves; locate the existing registration in
docs/data-sources/builtin-toolsets/index.md to copy the exact display name
"Jenkins (MCP)" and ensure the README table entry string and image filename
match that registration.

---

Nitpick comments:
In `@docs/data-sources/builtin-toolsets/jenkins-mcp.md`:
- Around line 208-233: In the Troubleshooting section, replace the three
markdown subsection headers "### Authentication Errors", "### Connection
Issues", and "### Plugin Not Found" with bold inline headings (e.g.,
**Authentication Errors**, **Connection Issues**, **Plugin Not Found**) and
merge their bullet lists under those bold lines so the content remains the same
but uses bold text instead of additional `###` headers; ensure the main
"Troubleshooting" heading stays as-is and preserve existing bullets and
instructions verbatim.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1c7be9fd-592d-4709-98a5-42b00933d0ff

📥 Commits

Reviewing files that changed from the base of the PR and between cc65ea725c88cb1c6145ea1f2cd3db90dffa5a50 and 5df294b0b4b64b09ee49be97e4b1279d085ffe78.

📒 Files selected for processing (1)
  • docs/data-sources/builtin-toolsets/jenkins-mcp.md

Comment thread docs/data-sources/builtin-toolsets/jenkins-mcp.md

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@tests/test_mcp_toolset.py`:
- Around line 2314-2339: The failing tests call prerequisites_callable which
internally calls asyncio.run(self._get_server_tools()), so mock
_get_server_tools before calling prerequisites_callable in the three tests
(test_jenkins_config_url_and_mode_parsed,
test_jenkins_config_auth_header_preserved,
test_jenkins_config_ssl_verification_disabled); use monkeypatch.setattr on the
toolset instance to replace _get_server_tools with an async function that
returns an empty ListToolsResult (or equivalent tools list) to avoid real
network calls, or factor that mock into a reusable fixture/helper that applies
the same monkeypatch to the toolset and invoke it at the start of each test.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 02f4132e-2901-4638-87ba-934d0fed3600

📥 Commits

Reviewing files that changed from the base of the PR and between 5df294b0b4b64b09ee49be97e4b1279d085ffe78 and b8ccc89d24d8e01d68f3afdb85e69a434dd28f8d.

⛔ Files ignored due to path filters (2)
  • images/integration_logos/jenkins-icon.png is excluded by !**/*.png
  • images/integration_logos/jenkins-icon.svg is excluded by !**/*.svg
📒 Files selected for processing (3)
  • README.md
  • docs/why-holmesgpt.md
  • tests/test_mcp_toolset.py
✅ Files skipped from review due to trivial changes (2)
  • docs/why-holmesgpt.md
  • README.md

Comment thread tests/test_mcp_toolset.py Outdated
@henrik-koren
henrik-koren force-pushed the docs/jenkins-mcp-integration branch from fd6f1b2 to b93f34e Compare April 5, 2026 15:46

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
docs/data-sources/builtin-toolsets/jenkins-mcp.md (1)

208-233: Consider using bold text instead of headers in Troubleshooting.

The three troubleshooting subsections currently use ### headers. Per the documentation guidelines about avoiding excessive headers and using bold text for minor sections, consider this structure:

 ## Troubleshooting
 
-### Authentication Errors
+**Authentication Errors**
 
 If you receive 401 or 403 errors:
 
 1. Verify your API token is valid and not expired
 2. Ensure the credentials are properly base64 encoded (username:token format)
 3. Check that the Jenkins user has appropriate permissions
 
-### Connection Issues
+**Connection Issues**
 
 If Holmes cannot connect to Jenkins:
 
 1. Verify the Jenkins URL is accessible from the Holmes pod/container
 2. Check if SSL certificate verification is causing issues (`verify_ssl: false` for self-signed certs)
 3. Ensure the MCP Server plugin is installed and enabled in Jenkins
 
-### Plugin Not Found
+**Plugin Not Found**
 
 If the `/mcp-server/mcp` endpoint returns 404:

This maintains readability while reducing header nesting. As per coding guidelines: "Avoid excessive headers in documentation - use bold text for minor sections".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/data-sources/builtin-toolsets/jenkins-mcp.md` around lines 208 - 233,
Replace the three subsection Markdown headers "### Authentication Errors", "###
Connection Issues", and "### Plugin Not Found" under the "Troubleshooting"
section with bold text (e.g. **Authentication Errors**, **Connection Issues**,
**Plugin Not Found**) to reduce header nesting; keep the numbered guidance items
intact and adjust spacing so each bolded subsection is followed by its list (no
extra header markers) to comply with the "Avoid excessive headers" guideline.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/data-sources/builtin-toolsets/jenkins-mcp.md`:
- Around line 208-233: Replace the three subsection Markdown headers "###
Authentication Errors", "### Connection Issues", and "### Plugin Not Found"
under the "Troubleshooting" section with bold text (e.g. **Authentication
Errors**, **Connection Issues**, **Plugin Not Found**) to reduce header nesting;
keep the numbered guidance items intact and adjust spacing so each bolded
subsection is followed by its list (no extra header markers) to comply with the
"Avoid excessive headers" guideline.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8613d6e8-cb2e-4448-9bf6-5598403c8c2d

📥 Commits

Reviewing files that changed from the base of the PR and between fd6f1b2887041ad92fe197eb60f55e6e5b5a5609 and b93f34eef61cd83188d9b929fc922145ca8685ef.

⛔ Files ignored due to path filters (2)
  • images/integration_logos/jenkins-icon.png is excluded by !**/*.png
  • images/integration_logos/jenkins-icon.svg is excluded by !**/*.svg
📒 Files selected for processing (6)
  • README.md
  • docs/data-sources/builtin-toolsets/.nav.yml
  • docs/data-sources/builtin-toolsets/index.md
  • docs/data-sources/builtin-toolsets/jenkins-mcp.md
  • docs/why-holmesgpt.md
  • tests/test_mcp_toolset.py
✅ Files skipped from review due to trivial changes (4)
  • docs/data-sources/builtin-toolsets/.nav.yml
  • docs/data-sources/builtin-toolsets/index.md
  • docs/why-holmesgpt.md
  • README.md

@henrik-koren
henrik-koren force-pushed the docs/jenkins-mcp-integration branch from b93f34e to 3621fed Compare April 5, 2026 16:05

@arikalon1 arikalon1 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR @henrik-koren

Jenkins will be useful for many users!

@arikalon1
arikalon1 enabled auto-merge (squash) April 5, 2026 21:55
auto-merge was automatically disabled April 6, 2026 08:10

Head branch was pushed to by a user without write access

@henrik-koren
henrik-koren force-pushed the docs/jenkins-mcp-integration branch from 3621fed to c4758a9 Compare April 6, 2026 08:10
Add documentation and tests for the Jenkins MCP server integration:
- New docs page with installation, configuration, and usage examples
- Registration entries in toolsets index and why-holmesgpt pages
- Config validation tests for the Jenkins MCP toolset
- Unit tests with mocked _get_server_tools to eliminate network calls
- Troubleshooting subsections use bold text instead of ### headers

Generated with [Devin](https://cli.devin.ai/docs)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: Henrik Koren <koren.henrik@gmail.com>
@henrik-koren
henrik-koren force-pushed the docs/jenkins-mcp-integration branch from c4758a9 to a445728 Compare April 6, 2026 08:24
@arikalon1
arikalon1 merged commit a0cb8df into HolmesGPT:master Apr 6, 2026
18 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants