Query and configure CheckMK monitoring: hosts, services, rules, downtimes, metrics
Runs on your machine from its package; the steps are below.
At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx vibemk
MCP client config
{
"mcpServers": {
"vibemk": {
"command": "uvx",
"args": [
"vibemk"
]
}
}
}CheckMK Monitoring via LLM - Professional MCP Server
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.
1. pipx install vibemk (or: uv tool install vibemk, or pip install vibemk into a virtual environment)
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 language
Complete Installation Guide: See INSTALL.md for detailed step-by-step instructions.
Upgrading from 0.3.x or older: git pull is not enough, see Upgrading.
More Examples: See examples/llm_configs/ and INSTALL.md
Visual Examples: See examples/Screenshots/ for example prompts and usage patterns
Locally (default). The LLM client starts vibeMK itself over stdio. Nothing to host, nothing to secure -- the client already owns the process.
Centrally. One instance can serve many clients over Streamable HTTP, so they need neither Python nor vibeMK installed:
export VIBEMK_HTTP_TOKEN="$(python -c 'import secrets; print(secrets.token_urlsafe(32))')"
vibemk --transport http --port 8765
Clients connect to http://<host>:8765/mcp and send Authorization: Bearer <token>.
The token is mandatory, and vibeMK binds to localhost unless told otherwise:
the CheckMK account lives on the server, so whoever reaches the port inherits
it. See INSTALL.md for what that means before you expose it.
# 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 | Features |
|---|---|---|
| 2.5.x | ✅ Full | All features available, tested against 2.5.0p14 (Raw and Ultimate) |
| 2.4.x | ✅ Full | All features available |
| 2.3.x | ✅ Full | All features available |
| 2.2.x and older | 🔴 Unsupported |
Edition availability follows the operationId of each endpoint in the Checkmk
OpenAPI document: cmk.gui.cee.* is Enterprise-only, everything else is served
by every edition including Raw.
--read-only
or VIBEMK_READ_ONLY=1. Only the tools that read are offered, and a call to
any other is refused before it reaches CheckMKThis project is licensed under the GNU General Public License v3.0.
Happy Monitoring with CheckMK and LLMs! 🎉