vibeMK
Provides complete management of CheckMK monitoring environment via LLM, including host status, service monitoring, downtime management, problem acknowledgement, configuration management, and user/security management.
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 show me all current problems"
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 π
CheckMK Monitoring via LLM - Professional MCP Server
π― 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: thruk-mcp
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. 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 languageComplete 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
π Running it
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 8765Clients 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.
π‘ 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 | 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 |
Checkmk Edition Support
Raw Edition: Fully supported, including the BI and Event Console endpoints
Enterprise Edition: Adds the Agent Bakery and custom graphs
Cloud Edition: All Enterprise features
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.
Security considerations
To let a model look without touching, start vibeMK read-only:
--read-onlyorVIBEMK_READ_ONLY=1. Only the tools that read are offered, and a call to any other is refused before it reaches CheckMKBe aware of the potential security risks when you unleash AI on your checkmk
Use at your own risk
I accept no responsibility for actions performed by an AI
π License
This project is licensed under the GNU General Public License v3.0.
Happy Monitoring with CheckMK and LLMs! π
Available Tools
111 toolsvibemk_acknowledge_problemC
β Acknowledge problem - Acknowledge host or service problem
Inputs: comment (required), host_name (required), acknowledge_type (required), service_description.
vibemk_activate_changesC
π Activate changes - Deploy pending configuration changes
Inputs: sites, force_foreign_changes.
vibemk_add_commentB
π¬ Add comment - Add comment to host or service
Inputs: comment (required), host_name (required), comment_type (required), persistent, +1 more.
vibemk_add_user_to_groupC
π₯ Add user to contact group - Assign user to contact group
Inputs: username (required), group_name (required).
vibemk_bulk_create_hostsB
β Bulk create hosts - Create multiple hosts in a single operation
Inputs: entries (required), bake_agent.
vibemk_bulk_create_service_groupsB
π§ Bulk create service groups - Create multiple service groups at once
Inputs: entries (required).
vibemk_bulk_delete_service_groupsA
ποΈ Bulk delete service groups - Delete multiple service groups at once
Inputs: entries (required).
vibemk_bulk_update_hostsC
π Bulk update hosts - Update multiple hosts at once
Inputs: entries (required).
vibemk_bulk_update_service_groupsC
π Bulk update service groups - Update multiple service groups at once
Inputs: entries (required).
vibemk_check_host_downtime_statusB
π Check host downtime status - Distinguish between host-level and service-level downtimes
Inputs: host_name (required).
vibemk_compare_host_statesB
π Compare host states - Compare current vs desired host configuration
Inputs: host_name (required), desired_attributes (required).
vibemk_create_cluster_hostB
π’ Create cluster host - Create a cluster host with multiple nodes
Inputs: nodes (required), host_name (required), folder, attributes.
vibemk_create_contact_groupB
β Create contact group - Add new contact group
Inputs: name (required), alias (required), members.
vibemk_create_folderB
β Create folder - Add new folder to the structure
Inputs: title (required), folder (required), parent.
vibemk_create_hostC
β Create host(s) - Add one or multiple hosts to monitoring (automatically uses bulk API for multiple hosts)
Inputs: hosts, folder, host_name, attributes, +1 more.
vibemk_create_host_contactgroup_ruleB
π Create host contact group rule - Assign contact groups to hosts based on conditions
Inputs: contact_groups (required), folder, comment, host_conditions.
vibemk_create_host_groupA
β Create host group - Add new host group
Inputs: name (required), alias (required).
vibemk_create_host_hostgroup_ruleA
π Create host group rule - Assign hosts to host groups based on conditions
Inputs: host_groups (required), folder, comment, host_conditions.
vibemk_create_host_tagB
π·οΈ Create host tag - Add new host tag group
Inputs: tags (required), title (required), tag_id (required), help, +1 more.
vibemk_create_passwordC
π Create password - Store new password securely
Inputs: ident (required), password (required), owner, title, +3 more.
vibemk_create_ruleC
β Create rule - Add new monitoring rule
Inputs: rule_config (required), ruleset_name (required), folder, comment, +2 more.
vibemk_create_service_groupC
π§ Create service group - Create a new service group for organizing services
Inputs: name (required), alias (required).
vibemk_create_timeperiodB
β° Create time period - Add new time period
Inputs: name (required), active_time_ranges (required), alias, exclude, +1 more.
vibemk_create_userB
π€ Create user - Add new CheckMK user
Inputs: fullname (required), username (required), email, roles, +2 more.
vibemk_create_user_roleA
β Create user role - Clone an existing role to create a new custom role
Inputs: new_role_id (required), base_role_id (required), new_alias.
vibemk_debug_api_endpointsB
π Debug API endpoints - Analyze available CheckMK API endpoints and their structure
Inputs: no named parameters.
vibemk_debug_checkmk_connectionB
π CheckMK connection diagnostics - Test server connectivity and API access
Inputs: no named parameters.
vibemk_debug_permissionsB
π Debug permissions - Check automation user permissions for API access
Inputs: no named parameters.
vibemk_debug_url_detectionB
π Debug URL detection - Show all tested URL patterns and results
Inputs: no named parameters.
vibemk_delete_contact_groupB
ποΈ Delete contact group - Remove contact group
Inputs: name (required).
vibemk_delete_downtimeA
ποΈ Delete downtime - Cancel a scheduled or active downtime by ID
Inputs: downtime_id (required).
vibemk_delete_folderB
ποΈ Delete folder - Remove folder (with options for recursive deletion)
Inputs: folder (required), delete_mode.
vibemk_delete_hostB
ποΈ Delete host - Remove host from monitoring
Inputs: host_name (required).
vibemk_delete_host_groupC
ποΈ Delete host group - Remove host group
Inputs: name (required).
vibemk_delete_host_tagB
ποΈ Delete host tag - Remove host tag group
Inputs: tag_id (required), repair.
vibemk_delete_passwordC
ποΈ Delete password - Remove stored password
Inputs: ident (required).
vibemk_delete_ruleA
ποΈ Delete rule - Remove monitoring rule
Inputs: rule_id (required).
vibemk_delete_service_groupB
ποΈ Delete service group - Remove a service group from CheckMK
Inputs: name (required).
vibemk_delete_timeperiodC
ποΈ Delete time period - Remove time period
Inputs: name (required).
vibemk_delete_userA
ποΈ Delete user - Remove CheckMK user
Inputs: username (required).
vibemk_delete_user_roleA
ποΈ Delete user role - Remove a custom user role (built-in roles cannot be deleted)
Inputs: role_id (required).
vibemk_discover_servicesD
π Discover services - Start enhanced service discovery for hosts
Inputs: mode, hosts, bulk_size, host_name, +2 more.
vibemk_find_host_grouping_rulesetsB
π Find host grouping rulesets - Discover available rulesets for host group and contact group assignment
Inputs: no named parameters.
vibemk_get_active_downtimesA
π΄ Get active downtimes - Show only currently active downtimes that are suppressing alerts
Inputs: host_name.
vibemk_get_bulk_discovery_statusA
π Get bulk discovery status - Show progress of a bulk discovery job
Inputs: job_id (required).
vibemk_get_checkmk_hostsB
π₯οΈ List hosts - Show all monitored hosts with optional folder filtering
Inputs: folder, effective_attributes.
vibemk_get_checkmk_servicesB
π§ List services - Show services with optional host filtering
Inputs: host_name.
vibemk_get_checkmk_versionA
π Get CheckMK version - Show version information and system details
Inputs: no named parameters.
vibemk_get_commentsC
π¬ List comments - Show host/service comments
Inputs: host_name, service_description.
vibemk_get_contact_groupsA
π₯ List contact groups - Show contact groups
Inputs: no named parameters.
vibemk_get_current_problemsC
π¨ Get current problems - Show all hosts and services with problems
Inputs: host_name.
vibemk_get_custom_graphC
π Get custom graph - Retrieve predefined custom graph data
Inputs: custom_graph_id (required), reduce, time_range.
vibemk_get_discovery_background_jobC
π Get discovery background job - Show last discovery job status on a host
Inputs: host_name (required).
vibemk_get_discovery_statusC
π Get discovery status - Show current service discovery results for a host
Inputs: host_name (required).
vibemk_get_downtimesB
β° List downtimes - Show scheduled downtimes
Inputs: host_name.
vibemk_get_example_rule_structuresA
π Get example rule structures - Show example JSON structures for host grouping rules
Inputs: no named parameters.
vibemk_get_folder_hostsA
π₯οΈ Get folder hosts - List all hosts in a specific folder
Inputs: folder (required).
vibemk_get_foldersB
π List folders - Show folder structure with optional parent filtering
Inputs: parent.
vibemk_get_host_configC
βοΈ Get host configuration - Show host configuration with attributes
Inputs: host_name (required).
vibemk_get_host_detailsC
π Host details - Get comprehensive host information
Inputs: host_name (required).
vibemk_get_host_effective_attributesA
π Get effective host attributes - Show host attributes including inherited values
Inputs: host_name (required).
vibemk_get_host_groupsB
π List host groups - Show all host groups
Inputs: no named parameters.
vibemk_get_host_metricsB
π Get host metrics - Extract performance data from CheckMK RRD databases
Inputs: host_name (required), reduce, time_range, metric_name.
vibemk_get_host_statusC
π Get host status - Show current monitoring status of a specific host
Inputs: host_name (required).
vibemk_get_host_tagsA
π·οΈ List host tags - Show available host tag groups
Inputs: no named parameters.
vibemk_get_notification_rulesB
π’ List notification rules - Show notification configuration
Inputs: no named parameters.
vibemk_get_passwordsA
π List passwords - Show stored passwords
Inputs: no named parameters.
vibemk_get_pending_changesB
π Get pending changes - Show uncommitted configuration changes
Inputs: no named parameters.
vibemk_get_rulesetB
π Get ruleset - Show specific ruleset configuration
Inputs: ruleset_name (required).
vibemk_get_rulesetsC
π List rulesets - Show available rulesets
Inputs: search.
vibemk_get_service_groupC
π Get service group details - Show detailed information about a specific service group
Inputs: name (required).
vibemk_get_service_groupsA
π§ List service groups - Show all service groups
Inputs: no named parameters.
vibemk_get_service_metricsC
π Get service metrics - Extract service performance data from CheckMK metrics API
Inputs: host_name (required), service_description (required), site, reduce, +2 more.
vibemk_get_service_statusC
π Get service status - Show current status of a service
Inputs: host_name (required), service_description (required).
vibemk_get_timeperiodsA
β° List time periods - Show all configured time periods
Inputs: no named parameters.
vibemk_get_usersA
π₯ List users - Show all CheckMK users
Inputs: no named parameters.
vibemk_list_available_metricsC
π List available metrics - Show all available metrics for host or service
Inputs: host_name (required), service_description.
vibemk_list_downtimesB
π List downtimes - Show all scheduled downtimes with filtering options
Inputs: host_name, active_only, service_description.
vibemk_list_rulesetsC
π List all rulesets - Show all available rulesets with basic information
Inputs: limit, show_deprecated.
vibemk_list_service_groupsB
π List service groups - Show all configured service groups
Inputs: no named parameters.
vibemk_list_user_rolesA
π₯ List user roles - Show all available user roles (built-in and custom)
Inputs: show_builtin.
vibemk_move_folderC
π Move folder - Move folder to different parent
Inputs: folder (required), destination (required).
vibemk_move_hostA
π Move host - Move host to different folder
Inputs: host_name (required), target_folder (required).
vibemk_move_ruleC
π Move rule - Change rule position in ruleset
Inputs: rule_id (required), position, target_rule_id.
vibemk_remove_user_from_groupC
π₯ Remove user from contact group - Remove user from contact group
Inputs: username (required), group_name (required).
vibemk_reschedule_checkB
π Reschedule check - Force immediate check execution
Inputs: host_name (required), check_type (required), service_description.
vibemk_schedule_downtimeC
β° Schedule downtime - Schedule maintenance downtime
Inputs: comment (required), end_time (required), start_time (required), downtime_type (required), +2 more.
vibemk_schedule_host_downtimeA
π§ Schedule host downtime - Schedule maintenance downtime for a host to suppress alerts
Inputs: host_name (required), recur, comment, duration, +2 more.
vibemk_schedule_service_downtimeB
π§ Schedule service downtime - Schedule maintenance downtime for specific services
Inputs: host_name (required), service_descriptions (required), recur, comment, +3 more.
vibemk_search_metricsC
π Search metrics - Filter and search performance data across hosts/services
Inputs: host_filter (required), reduce, time_range, site_filter, +1 more.
vibemk_search_rulesetsC
π Search rulesets - Find rulesets with filters (text, folder, name)
Inputs: name, used, folder, fulltext, +1 more.
vibemk_show_rulesetC
π Show ruleset details - Display detailed information about a specific ruleset
Inputs: ruleset_name (required).
vibemk_show_user_roleA
π Show user role details - Display detailed information about a specific user role
Inputs: role_id (required).
vibemk_start_bulk_discoveryA
π Start bulk discovery - Discover services on multiple hosts simultaneously
Inputs: hostnames (required), options, bulk_size, do_full_scan, +1 more.
vibemk_start_service_discoveryC
π Start service discovery - Automatically detect services on a host
Inputs: host_name (required), mode.
vibemk_test_all_endpointsA
π§ͺ Test all API endpoints - Comprehensive endpoint availability check
Inputs: no named parameters.
vibemk_test_direct_urlA
π§ͺ Test direct URL - Test a specific API URL manually
Inputs: test_url (required).
vibemk_test_notificationC
π§ͺ Test notification - Send test notification
Inputs: contact (required), message.
vibemk_update_contact_groupC
π Update contact group - Modify contact group properties
Inputs: name (required), alias, members.
vibemk_update_folderC
π Update folder - Modify folder properties
Inputs: folder (required), title, attributes.
vibemk_update_hostC
π Update host - Modify host configuration with flexible attribute management
Inputs: host_name (required), attributes, update_mode, remove_attributes.
vibemk_update_host_groupB
π Update host group - Modify host group properties
Inputs: name (required), alias.
vibemk_update_host_tagC
π Update host tag - Modify host tag group
Inputs: tag_id (required), help, tags, title, +2 more.
vibemk_update_passwordB
π Update password - Modify stored password
Inputs: ident (required), owner, title, shared, +3 more.
vibemk_update_ruleC
π Update rule - Modify existing monitoring rule
Inputs: rule_id (required), comment, disabled, conditions, +1 more.
vibemk_update_service_groupB
π Update service group - Modify an existing service group's alias
Inputs: name (required), alias (required).
vibemk_update_timeperiodB
π Update time period - Modify time period configuration
Inputs: name (required), alias, exclude, exceptions, +1 more.
vibemk_update_userC
π Update user - Modify user properties
Inputs: username (required), email, roles, fullname, +1 more.
vibemk_update_user_roleA
βοΈ Update user role - Modify an existing user role's alias or permissions
Inputs: role_id (required), alias, permissions.
vibemk_validate_host_configC
β Validate host config - Validate host configuration before applying changes
Inputs: host_name (required), folder, operation, attributes.
vibemk_wait_for_discoveryC
β³ Wait for discovery completion - Wait until service discovery finishes on a host
Inputs: host_name (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 111 tools
Many tools have overlapping or ambiguous purposes, such as get_rulesets, list_rulesets, show_ruleset, and search_rulesets, which could confuse an agent. The distinction between 'debug', 'test', and 'get' is not consistently clear.
Tool names mix verbs like 'get', 'list', 'show', 'search', 'debug', and 'test' without a consistent pattern. Also, some use 'create' while others use 'add' (e.g., add_comment vs create_rule), and 'bulk' variants are not uniformly named.
111 tools is excessive for a single MCP server, even for a complex system like CheckMK. Many tools are redundant or could be combined, making the surface area overwhelming and prone to errors.
The toolset covers many major CheckMK domains (hosts, services, groups, rules, downtimes, metrics), but there are inconsistencies and gaps, such as missing update operations for some entities (e.g., no update for host groups beyond creation/deletion) and redundancy in discovery tools.
Maintenance
Related MCP Connectors
Manage uptime monitors and incidents and search logs, metrics and traces from an AI assistant.
Deploy, monitor, and manage your OpenClaw AI assistants via natural language.
Ask about your Kodem Security data and act on findings in plain language, with your permissions.
Connect AI assistants to Xitoring monitoring: servers, uptime, incidents, metrics, SSL, and alerts.
Related MCP Servers
- 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-
- AlicenseCqualityCmaintenanceEnables natural language interaction with Thruk monitoring systems, allowing users to query hosts/services, schedule downtimes, acknowledge problems, and more via MCP-compatible clients.652MIT
- AlicenseBqualityDmaintenanceEnables natural language management of Bluematador monitoring, including cloud integrations, alerts, notifications, and team management.4110 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables natural language management of CheckMK monitoring environments, including host/service monitoring, downtime scheduling, problem acknowledgement, and configuration management through LLM interfaces.GPL 3.0