Query and configure CheckMK monitoring: hosts, services, rules, downtimes, metrics
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! 🎉
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx vibemkMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-chexma-vibemk": {
"command": "uvx",
"args": [
"vibemk"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencevibemkpypivibeMK works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.