vibeMK-MCP
Provides tools for managing a Checkmk monitoring environment, including live host and service status, performance metrics, downtimes, problem acknowledgements, and configuration of folders, rules, time periods, host groups, and users.
Click on "Deploy 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., "@vibeMK-MCPSchedule a 1-hour downtime on all hosts in the 'Servers' folder"
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.
vibeMK-MCP π
CheckMK Monitoring via LLM - Professional MCP Server
A maintained continuation of chexma/vibeMK by Andre, whose last release was in August 2025. This fork keeps the project going: it carries the original work forward under the same GPL-3.0 licence, preserves its history and authorship, and adds fixes verified against the OpenAPI document a CheckMK site publishes for itself. Tool names are unchanged (
vibemk_*), so existing client configurations keep working, with the exception of the three tools listed under Verification. If the original author resumes, everything here is offered back.
π― Overview
vibeMK enables complete management of your CheckMK monitoring environment directly through LLM interfaces using natural language. This project is in the alpha stage and under development. I accept no liability for any damage resulting from the use of this software.
Related MCP server: Linuxfabrik MCP Server for Icinga
vibeMK - Current Features
Live Monitoring β
Host Status: Real-time host state (UP/DOWN/UNREACHABLE) with hard state detection
Service Status: Live service monitoring (OK/WARNING/CRITICAL/UNKNOWN)
Performance Metrics: Retrieve metrics data with automatic discovery
Current Problems: Auto-detect all active monitoring issues
Downtime Management β
Schedule Downtimes: Create host/service downtimes with flexible duration parsing ("2h", "1h30m")
List & Filter: View all downtimes or filter for active ones only
Problem Management β
Acknowledge Problems: Set acknowledgements for host/service issues (sticky/persistent options)
List Acknowledgements: View all current problem acknowledgements
Remove Acknowledgements: Delete by pattern or individual removal
Configuration Management β
Folders: Create/delete monitoring folder structures
Rules: Create rules for 2000+ CheckMK ruleset types with proper format handling
Time Periods: Create custom notification schedules (business hours, 24/7, etc.)
Host Groups: Organize hosts into logical groups
User & Security β
User Accounts: Create/manage user accounts with role assignment
Password Management: Set passwords with policy enforcement
Contact Groups: Manage notification groups
Host/Service Tags: Comprehensive tagging system
π Quick Start
1. git clone https://github.com/SirTificate/vibemk-mcp.git
2. Edit the configuration file of your LLM Client, e.g. Claude Desktop - claude_desktop_config.json (See examples)
3. Start your LLM Client
4. CheckMK automation user setup (Administrator permissions or a customized role if changes are to be made, read-only if only analyses are to be performed.)
5. voila - configure checkmk using natural languageComplete Installation Guide: See INSTALL.md for detailed step-by-step instructions.
More Examples: See examples/llm_configs/ and INSTALL.md
Visual Examples: See examples/Screenshots/ for example prompts and usage patterns
π‘ Practical Prompt Examples
# Add new server
"Create a new host 'web-server-05' in folder 'Servers' with IP 192.168.1.105 and discover all services"
# Schedule maintenance
"Schedule a 2-hour downtime for the service Check_MK on 'cephnode01' starting at 22:00 tomorrow for 'Debian Updates'"
# Downtimes
"show me all current scheduled downtimes."
# Metric analysis
"Compare the βresponse_timeβ metric of the βHTTPS Webserviceβ service of the two hosts www.google.de and www.heise.de for the last ten minutes."
# Ruleset analysis
"analyze and compare the rulesets "Filesystems (used space and growth)" and see, if there are duplicates or if rules can be combined."Advanced Usage: See examples/ExamplePrompts.md for complex scenarios and tips
π Checkmk version compatibility
CheckMK Version | Status | Notes |
2.4.x | β Verified | All 153 endpoint calls checked against the API document of a 2.4.0p36 Raw site β 151 match, the 2 commercial-only ones are absent as expected; read-only tools additionally exercised against it |
2.3.x | β οΈ Expected to work | Same REST API version (1.0), not re-verified since the fork |
2.2.x and older | π΄ Unsupported |
The REST API is served at version 1.0 up to and including CheckMK 2.4. CheckMK 2.5 introduces a
versioned v1 path that is compatible with 1.0; support for it is not implemented yet.
π How this is verified
A test suite that mocks the HTTP client cannot tell whether an endpoint exists β a call to a path CheckMK does not serve looks exactly like one that works. Seven calls in this codebase turned out to have nothing behind them, and no test had ever noticed.
Every endpoint call is now checked against the OpenAPI document the site publishes for itself:
{server_url}/check_mk/api/1.0/openapi-doc.yamlThat document carries the exact version and edition, so it cannot describe an endpoint a given site does not have. The converse does not hold: a Raw site's document cannot show what only the commercial editions serve, and an endpoint missing from it looks exactly like one that exists nowhere. Two calls go to such endpoints (see the edition section below); the script lists them separately instead of failing. The other 151 match a path and a verb that 2.4.0p36 Raw serves.
You can check this against your own site, which is the point β your version and edition are not necessarily mine:
python scripts/verify_endpoints.py # reads the document from the site in your .env
python scripts/verify_endpoints.py --spec downloaded.yamlIt exits non-zero when a call has no matching path and verb, so it works as a pre-push check. The one dependency is PyYAML.
vibemk_reschedule_check was removed rather than left to fail quietly: CheckMK's REST API offers
no equivalent. 0.5.0 removed vibemk_get_custom_graph and vibemk_search_metrics with it on the
same reasoning, which was wrong for those two β their endpoints exist in the commercial editions.
Both are back. 116 tools.
There is also a read-only smoke test against a live instance, behind LIVE_SMOKE_TEST=true and
deliberately kept out of CI:
LIVE_SMOKE_TEST=true python -m pytest tests/test_live_smoke.py -vCheckmk Edition Support
Every tool but two uses REST API endpoints that CheckMK registers for all editions, including
Raw (CRE). The exceptions are vibemk_get_custom_graph and vibemk_search_metrics: they call
metric/actions/get_custom_graph and metric/actions/filter, which only the commercial editions
serve. On a Raw site both answer 404, and both say so in their description and in their answer.
Comparing the API documents of a Raw and an Ultimate 2.5.0p14 site, which the upstream maintainer
did in chexma/vibeMK#6, finds 21 paths only the
commercial edition serves: the Agent Bakery, DCD, licensing, SAML, SLA, and the two metric
actions above. The Agent Bakery is not implemented here, and on a Raw site there is nothing to
implement: the agent domain offers only actions/download, with no baking endpoint at all.
A correction to the original README, which is not a claim about this server: it listed Business Intelligence and the Event Console as Enterprise-only. That is wrong β CheckMK registers both for every edition, Raw included. Neither is implemented here (see below); the point is only that nothing would stop an implementation on Raw.
Not implemented
The REST API is larger than this server. Of 131 endpoints a 2.4.0p36 Raw site publishes, 59 are used. The notable gaps, in case you were expecting them:
Business Intelligence β aggregations, packs and BI rules
Event Console β listing, acknowledging and changing event state
Site management β the
site_connectionendpointsAuxiliary tags, audit log, LDAP connections, broker connections, Quick setup
Bulk delete for hosts, and modifying an existing downtime rather than deleting and recreating
Labels are not exposed as their own feature either. CheckMK has no label endpoint β labels are host
attributes β so vibemk_update_host can set them, but no tool schema mentions them.
Security considerations
This lets a language model create and delete hosts, rules and users in your monitoring, and "activate changes" is a real button.
Start with a read-only automation user. Widen the role later, once you have seen what the model actually does with it. A custom role scoped to what you need beats an Administrator account.
Keep the log. Every tool call is recorded at INFO with its name β that log is the only record of what the model did. Arguments are deliberately not logged, since they carry host names, comment text and, for the password tools, secrets.
Check the CheckMK audit log after the first few sessions. It sees the changes from the other side.
Use at your own risk. No liability is accepted for actions performed by an AI.
To report a security issue, see SECURITY.md.
π License
This project is licensed under the GNU General Public License v3.0.
Happy Monitoring with CheckMK and LLMs! π
This server cannot be deployed
Maintenance
Related MCP Connectors
Deploy, monitor, and manage your OpenClaw AI assistants via natural language.
Provides capabilities that let LLM agents perform a range of infrastructure management tasks.
Connect AI assistants to Xitoring monitoring: servers, uptime, incidents, metrics, SSL, and alerts.
- sentinelOAuthio.rootstuff
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables AI assistants to interact with Uptime Agent monitoring system to check uptime status, manage incidents, create new monitors, and analyze downtime through natural conversation.71-
- AlicenseNot gradedqualityBmaintenanceEnables AI clients like Claude to triage, investigate, and operate Icinga installations through natural language, integrating with Icinga's REST APIs and providing deep awareness of monitoring plugins and historical performance data.5-
- AlicenseCqualityAmaintenanceEnables complete management of CheckMK monitoring environments through natural language, including live monitoring, downtime scheduling, problem management, and configuration.115109 PyPI18GPL 3.0
- AlicenseCqualityBmaintenanceEnables natural language interaction with Thruk monitoring systems, allowing users to query hosts/services, schedule downtimes, acknowledge problems, and more via MCP-compatible clients.652MIT