# vibeMK (pypi · vibemk)

Query and configure CheckMK monitoring: hosts, services, rules, downtimes, metrics

- Trust score: 88/100 (high trust)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-17

## Components

- pypi · `vibemk`: 88/100 (this document), [markdown](https://verifymcp.io/servers/chexma-vibemk/vibemk.md), [page](https://verifymcp.io/servers/chexma-vibemk/vibemk)

## Channel facts

- Registry: `pypi`
- Package: `vibemk`
- Version: `0.6.4`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-17.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it.
  - 1 of 28 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to chexma/vibeMK).
  - Clear OSI-approved license (GPL-3.0-or-later).
  - Actively maintained (last published 14 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 72/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 14466 tokens (~93/item across 154 items; 154 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 50/100
  - Stability observed for 15 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (7% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 21 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 154 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the vibeMK MCP server?

vibeMK runs locally as a PyPI package, launched with uvx vibemk. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add chexma-vibemk -- uvx vibemk
```

### Cursor

```json
{
  "mcpServers": {
    "chexma-vibemk": {
      "command": "uvx",
      "args": [
        "vibemk"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "chexma-vibemk": {
      "command": "uvx",
      "args": [
        "vibemk"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add chexma-vibemk -- uvx vibemk
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "chexma-vibemk": {
      "type": "local",
      "command": [
        "uvx",
        "vibemk"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add chexma-vibemk --command uvx --arg vibemk
```

### Hermes

```yaml
mcp_servers:
  chexma-vibemk:
    command: "uvx"
    args: ["vibemk"]
```

### Netclaw

```json
{
  "McpServers": {
    "chexma-vibemk": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "vibemk"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add chexma-vibemk -t stdio -c uvx -a vibemk
```

### Other

```json
{
  "mcpServers": {
    "chexma-vibemk": {
      "command": "uvx",
      "args": [
        "vibemk"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-17 (score 88, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-10-16 (score 73, −14)

- [security regression] Malware scan: pass → unverified

### 2026-10-14 (score 87, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-12 (score 86, +3)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 33. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-07 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 17. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-04 (score 82, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-03 (score 66, 0)

- [functional improvement] Tool coverage: 2% → 7%
- [functional improvement] Stability: unverified → 0.03
- [functional] Package version: 0.6.3 → 0.6.4

### 2026-10-02 (score 66)

First indexed and scored.

## MCP tools (154)

### `vibemk_debug_checkmk_connection` (~27 tokens)

CheckMK connection diagnostics

🔍 CheckMK connection diagnostics - Test server connectivity and API access

### `vibemk_debug_url_detection` (~26 tokens)

Debug URL detection

🔍 Debug URL detection - Show all tested URL patterns and results

### `vibemk_test_direct_url` (~82 tokens)

Test direct URL

🧪 Test direct URL - Send a GET to a URL under the configured CheckMK API and show the raw response. URLs on other hosts or outside the API path are refused.

Input parameters:

- `test_url` (string, required): Full URL to test (e.g., http://localhost:8080/cmk/check_mk/api/1.0/version)

### `vibemk_test_all_endpoints` (~26 tokens)

Test all API endpoints

🧪 Test all API endpoints - Comprehensive endpoint availability check

### `vibemk_get_checkmk_version` (~27 tokens)

Get CheckMK version

📋 Get CheckMK version - Show version information and system details

### `vibemk_get_checkmk_hosts` (~52 tokens)

List hosts

🖥️ List hosts - Show all monitored hosts with optional folder filtering

Input parameters:

- `effective_attributes` (boolean): Include effective attributes
- `folder` (string): Folder path to filter hosts

Output parameters:

- `hosts` (array)
- `total` (integer): Hosts the site reported

### `vibemk_get_host_status` (~39 tokens)

Get host status

📊 Get host status - Show current monitoring status of a specific host

Input parameters:

- `host_name` (string, required): Name of the host

Output parameters:

- `has_been_checked` (boolean)
- `host_name` (string)
- `is_hard_state` (boolean): Whether CheckMK considers the state settled
- `last_check` (integer|null): Unix timestamp, or null when CheckMK reported none
- `last_state_change` (integer|null): Unix timestamp, or null when CheckMK reported none
- `plugin_output` (string): What the check itself reported
- `state` (string): Monitoring state; UNKNOWN when CheckMK reported none
- `state_code` (integer): 0 UP, 1 DOWN, 2 UNREACHABLE, -1 unavailable

### `vibemk_get_host_details` (~34 tokens)

Host details

🔍 Host details - Get comprehensive host information

Input parameters:

- `host_name` (string, required): Name of the host

### `vibemk_get_host_config` (~37 tokens)

Get host configuration

⚙️ Get host configuration - Show host configuration with attributes

Input parameters:

- `host_name` (string, required): Name of the host

### `vibemk_create_host` (~151 tokens)

Create host(s)

➕ Create host(s) - Add one or multiple hosts to monitoring (automatically uses bulk API for multiple hosts)

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `attributes` (object): Host attributes - ipaddress, etc. (single host mode)
- `bake_agent` (boolean): Whether to bake agents after creation (bulk mode only)
- `folder` (string): Folder path (single host mode)
- `host_name` (string): Name of the new host (single host mode)
- `hosts` (array): List of hosts to create (multiple hosts mode - automatically uses bulk API)

### `vibemk_bulk_create_hosts` (~86 tokens)

Bulk create hosts

➕ Bulk create hosts - Create multiple hosts in a single operation

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `bake_agent` (boolean): Whether to bake agents after creation (CheckMK Enterprise Edition only)
- `entries` (array, required): List of hosts to create

### `vibemk_update_host` (~121 tokens)

Update host

📝 Update host - Modify host configuration with flexible attribute management

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `attributes` (object): Updated attributes
- `host_name` (string, required): Name of the host
- `remove_attributes` (array): List of attribute names to remove (used with remove mode)
- `update_mode` (string): Update mode: 'update' (merge), 'overwrite' (replace), 'remove' (delete attributes)

### `vibemk_delete_host` (~63 tokens)

Delete host

🗑️ Delete host - Remove host from monitoring

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `host_name` (string, required): Name of the host

### `vibemk_move_host` (~73 tokens)

Move host

📁 Move host - Move host to different folder

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `host_name` (string, required): Name of the host
- `target_folder` (string, required): Target folder path

### `vibemk_rename_host` (~56 tokens)

Rename host

✏️ Rename host - Rename a host in CheckMK (starts a background job)

Input parameters:

- `host_name` (string, required): Current host name
- `new_name` (string, required): New host name (FQDN)

### `vibemk_bulk_update_hosts` (~65 tokens)

Bulk update hosts

🔄 Bulk update hosts - Update multiple hosts at once

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `entries` (array, required): One entry per host to change

### `vibemk_create_cluster_host` (~102 tokens)

Create cluster host

🏢 Create cluster host - Create a cluster host with multiple nodes

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `attributes` (object): Additional host attributes
- `folder` (string): Folder path
- `host_name` (string, required): Name of the cluster host
- `nodes` (array, required): List of node hostnames for the cluster

### `vibemk_validate_host_config` (~71 tokens)

Validate host config

✅ Validate host config - Validate host configuration before applying changes

Input parameters:

- `attributes` (object): Host attributes to validate
- `folder` (string): Folder path
- `host_name` (string, required): Name of the host to validate
- `operation` (string): Operation type (create, update)

### `vibemk_compare_host_states` (~48 tokens)

Compare host states

🔄 Compare host states - Compare current vs desired host configuration

Input parameters:

- `desired_attributes` (object, required): Desired host attributes
- `host_name` (string, required): Name of the host

### `vibemk_get_host_effective_attributes` (~40 tokens)

Get effective host attributes

📋 Get effective host attributes - Show host attributes including inherited values

Input parameters:

- `host_name` (string, required): Name of the host

### `vibemk_get_checkmk_services` (~37 tokens)

List services

🔧 List services - Show services with optional host filtering

Input parameters:

- `host_name` (string): Filter by host name

### `vibemk_get_service_status` (~47 tokens)

Get service status

📊 Get service status - Show current status of a service

Input parameters:

- `host_name` (string, required): Name of the host
- `service_description` (string, required): Service description

Output parameters:

- `host_name` (string)
- `is_hard_state` (boolean): Whether CheckMK considers the state settled
- `last_check` (integer|null): Unix timestamp, or null when CheckMK reported none
- `last_state_change` (integer|null): Unix timestamp, or null when CheckMK reported none
- `plugin_output` (string): What the check itself reported
- `service_description` (string)
- `state` (string): Monitoring state; UNAVAILABLE when CheckMK reported none (UNKNOWN is a real state)
- `state_code` (integer|null): 0 OK, 1 WARNING, 2 CRITICAL, 3 UNKNOWN

### `vibemk_get_current_problems` (~39 tokens)

Get current problems

🚨 Get current problems - Show all hosts and services with problems

Input parameters:

- `host_name` (string): Filter by host name

Output parameters:

- `host_problems` (array)
- `service_problems` (array)
- `total` (integer)

### `vibemk_acknowledge_problem` (~123 tokens)

Acknowledge problem

✅ Acknowledge problem - Acknowledge host or service problem

Input parameters:

- `acknowledge_type` (string, required): Type: host or service
- `comment` (string, required): Acknowledgment comment
- `host_name` (string, required): Name of the host
- `notify` (boolean): Send notifications to the configured contacts
- `persistent` (boolean): Keep the comment after the acknowledgement is removed
- `service_description` (string): Service description (for service ack)
- `sticky` (boolean): Hold the acknowledgement until the object returns to UP/OK

### `vibemk_schedule_downtime` (~102 tokens)

Schedule downtime

⏰ Schedule downtime - Schedule maintenance downtime

Input parameters:

- `comment` (string, required): Downtime comment
- `downtime_type` (string, required): Type: host, service, or hostgroup
- `end_time` (string, required): End time (ISO format)
- `host_name` (string): Name of the host
- `service_description` (string): Service description (for service downtime)
- `start_time` (string, required): Start time (ISO format)

### `vibemk_activate_changes` (~82 tokens)

Activate changes

🔄 Activate changes - Deploy pending configuration changes. INTERNAL: vibeMK reads the ETag from pending_changes itself, so there is no manual ETag handling to do. After activating, wait for the next check cycle before results become visible.

Input parameters:

- `force_foreign_changes` (boolean): Force activation
- `sites` (array): List of site names

### `vibemk_get_pending_changes` (~25 tokens)

Get pending changes

📋 Get pending changes - Show uncommitted configuration changes

Output parameters:

- `changes` (array)
- `count` (integer)

### `vibemk_get_folders` (~37 tokens)

List folders

📁 List folders - Show folder structure with optional parent filtering

Input parameters:

- `parent` (string): Parent folder path to filter

### `vibemk_create_folder` (~79 tokens)

Create folder

➕ Create folder - Add new folder to the structure

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `folder` (string, required): Folder path
- `parent` (string): Parent folder path
- `title` (string, required): Display title

### `vibemk_delete_folder` (~86 tokens)

Delete folder

🗑️ Delete folder - Remove folder (with options for recursive deletion)

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `delete_mode` (string): Delete mode: 'abort_on_nonempty' or 'recursive'
- `folder` (string, required): Folder path to delete

### `vibemk_update_folder` (~76 tokens)

Update folder

📝 Update folder - Modify folder properties

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `attributes` (object): Folder attributes
- `folder` (string, required): Folder path
- `title` (string): New display title

### `vibemk_move_folder` (~72 tokens)

Move folder

📁 Move folder - Move folder to different parent

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `destination` (string, required): New parent folder path
- `folder` (string, required): Folder path to move

### `vibemk_get_folder_hosts` (~37 tokens)

Get folder hosts

🖥️ Get folder hosts - List all hosts in a specific folder

Input parameters:

- `folder` (string, required): Folder path

### `vibemk_get_users` (~22 tokens)

List users

👥 List users - Show all CheckMK users

### `vibemk_create_user` (~79 tokens)

Create user

👤 Create user - Add new CheckMK user

Input parameters:

- `contactgroups` (array): Contact groups to assign user to
- `email` (string): Email address
- `fullname` (string, required): Full name
- `password` (string): Password
- `roles` (array): User roles
- `username` (string, required): Username

### `vibemk_update_user` (~69 tokens)

Update user

📝 Update user - Modify user properties

Input parameters:

- `contactgroups` (array): Contact groups to assign user to
- `email` (string): Email address
- `fullname` (string): Full name
- `roles` (array): User roles
- `username` (string, required): Username

### `vibemk_delete_user` (~33 tokens)

Delete user

🗑️ Delete user - Remove CheckMK user

Input parameters:

- `username` (string, required): Username to delete

### `vibemk_get_contact_groups` (~22 tokens)

List contact groups

👥 List contact groups - Show contact groups

### `vibemk_create_contact_group` (~78 tokens)

Create contact group

➕ Create contact group - Add new contact group

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `alias` (string, required): Display alias
- `members` (array): Group members
- `name` (string, required): Group name

### `vibemk_add_user_to_group` (~46 tokens)

Add user to contact group

👥 Add user to contact group - Assign user to contact group

Input parameters:

- `group_name` (string, required): Contact group name
- `username` (string, required): Username

### `vibemk_remove_user_from_group` (~46 tokens)

Remove user from contact group

👥 Remove user from contact group - Remove user from contact group

Input parameters:

- `group_name` (string, required): Contact group name
- `username` (string, required): Username

### `vibemk_update_contact_group` (~78 tokens)

Update contact group

📝 Update contact group - Modify contact group properties

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `alias` (string): Display alias
- `members` (array): Group members
- `name` (string, required): Group name

### `vibemk_delete_contact_group` (~63 tokens)

Delete contact group

🗑️ Delete contact group - Remove contact group

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `name` (string, required): Group name to delete

### `vibemk_list_user_roles` (~51 tokens)

List user roles

👥 List user roles - Show all available user roles (built-in and custom)

Input parameters:

- `show_builtin` (boolean): Include built-in roles (admin, user, guest) in the list

### `vibemk_show_user_role` (~44 tokens)

Show user role details

🔍 Show user role details - Display detailed information about a specific user role

Input parameters:

- `role_id` (string, required): ID of the role to show details for

### `vibemk_create_user_role` (~114 tokens)

Create user role

➕ Create user role - Clone an existing role to create a new custom role

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `base_role_id` (string, required): Existing role ID to clone from (e.g., 'admin', 'user', 'guest')
- `new_alias` (string): Display name/alias for the new role
- `new_role_id` (string, required): ID for the new role

### `vibemk_update_user_role` (~100 tokens)

Update user role

✏️ Update user role - Modify an existing user role's alias or permissions

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `alias` (string): New display name/alias for the role
- `permissions` (object): Permission dictionary (permission_id: boolean)
- `role_id` (string, required): ID of the role to update

### `vibemk_delete_user_role` (~76 tokens)

Delete user role

🗑️ Delete user role - Remove a custom user role (built-in roles cannot be deleted)

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `role_id` (string, required): ID of the custom role to delete

### `vibemk_get_host_groups` (~24 tokens)

List host groups

🏠 List host groups - Show all host groups

### `vibemk_create_host_group` (~69 tokens)

Create host group

➕ Create host group - Add new host group

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `alias` (string, required): Display alias
- `name` (string, required): Group name

### `vibemk_update_host_group` (~69 tokens)

Update host group

📝 Update host group - Modify host group properties

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `alias` (string): Display alias
- `name` (string, required): Group name

### `vibemk_delete_host_group` (~63 tokens)

Delete host group

🗑️ Delete host group - Remove host group

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `name` (string, required): Group name to delete

### `vibemk_get_service_groups` (~23 tokens)

List service groups

🔧 List service groups - Show all service groups

### `vibemk_get_comments` (~44 tokens)

List comments

💬 List comments - Show host/service comments

Input parameters:

- `host_name` (string): Filter by host name
- `service_description` (string): Filter by service

### `vibemk_add_comment` (~77 tokens)

Add comment

💬 Add comment - Add comment to host or service

Input parameters:

- `comment` (string, required): Comment text
- `comment_type` (string, required): Type: host or service
- `host_name` (string, required): Host name
- `persistent` (boolean): Persistent comment
- `service_description` (string): Service (for service comments)

### `vibemk_delete_comment` (~127 tokens)

Delete comment

🗑️ Delete comment - Remove a host or service comment by ID or query

Input parameters:

- `comment_id` (integer): Comment ID (for delete_type=by_id)
- `delete_type` (string): Deletion mode: 'by_id' (requires comment_id) or 'by_query' (requires host_name)
- `host_name` (string): Host name (for delete_type=by_query)
- `service_description` (string): Service description (optional, for delete_type=by_query)
- `site_id` (string): Site ID (defaults to configured site)

### `vibemk_get_downtimes` (~40 tokens)

List downtimes

⏰ List downtimes - Show scheduled downtimes

Input parameters:

- `host_name` (string): Filter by host name

Output parameters:

- `downtimes` (array)
- `total` (integer)

### `vibemk_get_rulesets` (~36 tokens)

List rulesets

📋 List rulesets - Show available rulesets

Input parameters:

- `search` (string): Search term to filter rulesets

### `vibemk_get_ruleset` (~98 tokens)

List the rules of a ruleset, optionally filtered by host name. Shows the rule IDs vibemk_delete_rule needs.

📋 List the rules of a ruleset, optionally filtered by host name. Shows the rule IDs vibemk_delete_rule needs.

Input parameters:

- `hostname` (string): Show only rules for this host (optional)
- `limit` (integer): Maximum number of rules to return (default: 50)
- `ruleset_name` (string, required): Ruleset name, e.g. 'active_checks:http' or 'host_label_rules'

### `vibemk_create_rule` (~154 tokens)

Create rule

➕ Create rule - Add new monitoring rule

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `comment` (string): Rule comment
- `conditions` (object): Rule conditions
- `folder` (string): Target folder
- `position` (string): Where to place the new rule. Omit to leave placement to CheckMK. The two *_specific_rule values need target_rule_id.
- `rule_config` (object, required): Rule configuration
- `ruleset_name` (string, required): Ruleset name
- `target_rule_id` (string): Rule to position relative to, for before_specific_rule/after_specific_rule

### `vibemk_update_rule` (~96 tokens)

Update rule

📝 Update rule - Modify existing monitoring rule

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `comment` (string): Rule comment
- `conditions` (object): Rule conditions
- `disabled` (boolean): Disable rule
- `rule_config` (object): Rule configuration
- `rule_id` (string, required): Rule ID

### `vibemk_delete_rule` (~62 tokens)

Delete rule

🗑️ Delete rule - Remove monitoring rule

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `rule_id` (string, required): Rule ID to delete

### `vibemk_move_rule` (~107 tokens)

Move rule

🔄 Move rule - Change rule position in ruleset

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `position` (string): Where to move the rule. The two *_specific_rule values need target_rule_id.
- `rule_id` (string, required): Rule ID
- `target_rule_id` (string): Rule to position relative to, for before_specific_rule/after_specific_rule

### `vibemk_get_host_tags` (~26 tokens)

List host tags

🏷️ List host tags - Show available host tag groups

### `vibemk_create_host_tag` (~108 tokens)

Create host tag

🏷️ Create host tag - Add new host tag group

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `help` (string): Help text
- `tag_id` (string, required): Tag group ID
- `tags` (array, required): List of tags with id and title
- `title` (string, required): Tag group title
- `topic` (string): Tag topic/category

### `vibemk_update_host_tag` (~115 tokens)

Update host tag

📝 Update host tag - Modify host tag group

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `help` (string): Help text
- `repair` (boolean): Repair host assignments
- `tag_id` (string, required): Tag group ID
- `tags` (array): List of tags with id and title
- `title` (string): Tag group title
- `topic` (string): Tag topic/category

### `vibemk_delete_host_tag` (~76 tokens)

Delete host tag

🗑️ Delete host tag - Remove host tag group

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `repair` (boolean): Repair host assignments
- `tag_id` (string, required): Tag group ID to delete

### `vibemk_get_timeperiods` (~26 tokens)

List time periods

⏰ List time periods - Show all configured time periods

### `vibemk_create_timeperiod` (~105 tokens)

Create time period

⏰ Create time period - Add new time period

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `active_time_ranges` (array, required): Active time ranges
- `alias` (string): Time period alias
- `exceptions` (array): Exception time ranges
- `exclude` (array): Excluded time periods
- `name` (string, required): Time period name

### `vibemk_update_timeperiod` (~104 tokens)

Update time period

📝 Update time period - Modify time period configuration

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `active_time_ranges` (array): Active time ranges
- `alias` (string): Time period alias
- `exceptions` (array): Exception time ranges
- `exclude` (array): Excluded time periods
- `name` (string, required): Time period name

### `vibemk_delete_timeperiod` (~64 tokens)

Delete time period

🗑️ Delete time period - Remove time period

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `name` (string, required): Time period name to delete

### `vibemk_get_passwords` (~21 tokens)

List passwords

🔐 List passwords - Show stored passwords

### `vibemk_create_password` (~116 tokens)

Create password

🔐 Create password - Store new password securely

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `comment` (string): Password description
- `documentation_url` (string): Documentation URL
- `ident` (string, required): Password identifier
- `owner` (string): Owner user/group
- `password` (string, required): Password value
- `shared` (array): Shared with users/groups
- `title` (string): Password title

### `vibemk_update_password` (~115 tokens)

Update password

📝 Update password - Modify stored password

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `comment` (string): Password description
- `documentation_url` (string): Documentation URL
- `ident` (string, required): Password identifier
- `owner` (string): Owner user/group
- `password` (string): Password value
- `shared` (array): Shared with users/groups
- `title` (string): Password title

### `vibemk_delete_password` (~61 tokens)

Delete password

🗑️ Delete password - Remove stored password

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `ident` (string, required): Password identifier to delete

### `vibemk_get_notification_rules` (~27 tokens)

List notification rules

📢 List notification rules - Show all configured notification rules with their IDs

### `vibemk_get_notification_rule` (~55 tokens)

Show notification rule

🔍 Show notification rule - Return one rule including its full rule_config. Use this first to obtain a template before creating or updating a rule.

Input parameters:

- `rule_id` (string, required): Rule ID from get_notification_rules

### `vibemk_create_notification_rule` (~91 tokens)

Create notification rule

➕ Create notification rule - CheckMK requires the complete rule_config structure (properties, contact selection, conditions and notification_method), and nearly every field is mandatory. Read an existing rule with vibemk_get_notification_rule and adapt its rule_config rather than composing one from scratch. Activate changes afterwards.

Input parameters:

- `rule_config` (object, required): Complete rule configuration as returned by vibemk_get_notification_rule

### `vibemk_update_notification_rule` (~75 tokens)

Update notification rule

✏️ Update notification rule - Replaces the rule's configuration. Send the complete rule_config, not just the fields you want changed; read the current one first. Activate changes afterwards.

Input parameters:

- `rule_config` (object, required): Complete replacement configuration
- `rule_id` (string, required): Rule ID from get_notification_rules

### `vibemk_delete_notification_rule` (~45 tokens)

Delete notification rule

🗑️ Delete notification rule - Remove a notification rule by ID. Activate changes afterwards.

Input parameters:

- `rule_id` (string, required): Rule ID from get_notification_rules

### `vibemk_get_host_metrics` (~100 tokens)

Get host metrics

📊 Get host metrics - Extract performance data from CheckMK RRD databases

Input parameters:

- `host_name` (string, required): Host name
- `metric_name` (string): Specific metric name (optional)
- `reduce` (string): Aggregation function: 'max', 'min', 'average'
- `time_range` (string): Time range: '1h', '4h', '24h', '7d', '30d'

Output parameters:

- `available_metrics` (array): Present when listing: the IDs metric_name accepts
- `end` (string|null)
- `host_name` (string)
- `metric_id` (string|null): null when listing what is available
- `series` (array)
- `service_description` (string|null): null for a host metric
- `start` (string|null): Window CheckMK actually used, ISO 8601
- `step` (integer|null): Seconds per data point
- `time_range` (string)

### `vibemk_get_service_metrics` (~132 tokens)

Get service metrics

📊 Get service metrics - Extract service performance data from CheckMK metrics API

Input parameters:

- `host_name` (string, required): Host name
- `metric_name` (string): Specific metric ID (e.g., 'if_in_bps', 'cpu_util')
- `reduce` (string): Aggregation function: 'max', 'min', 'average'
- `service_description` (string, required): Service description
- `site` (string): CheckMK site name
- `time_range` (string): Time range: '1h', '4h', '24h', '7d', '30d'

Output parameters:

- `available_metrics` (array): Present when listing: the IDs metric_name accepts
- `end` (string|null)
- `host_name` (string)
- `metric_id` (string|null): null when listing what is available
- `series` (array)
- `service_description` (string|null): null for a host metric
- `start` (string|null): Window CheckMK actually used, ISO 8601
- `step` (integer|null): Seconds per data point
- `time_range` (string)

### `vibemk_get_custom_graph` (~93 tokens)

Get custom graph

📊 Get custom graph - Retrieve predefined custom graph data Enterprise/Cloud only: a Raw site does not serve this endpoint and answers 404.

Input parameters:

- `custom_graph_id` (string, required): Custom graph ID
- `reduce` (string): Aggregation function
- `time_range` (string): Time range: '1h', '4h', '24h', '7d', '30d'

### `vibemk_search_metrics` (~197 tokens)

Search metrics

🔍 Search metrics - Read one predefined graph (graph_id) or one metric (metric_id) across the hosts and services a filter matches. Exactly one of the two IDs is required; both are shown in the service view once 'Show internal IDs' is enabled in its display options. Enterprise/Cloud only: a Raw site does not serve this endpoint and answers 404.

Input parameters:

- `graph_id` (string): ID of a predefined graph, e.g. cmk_cpu_time_by_phase. Exclusive with metric_id
- `host_filter` (string, required): Host filter pattern
- `metric_id` (string): ID of a single metric, e.g. cmk_time_agent. Exclusive with graph_id
- `reduce` (string): Aggregation function
- `service_filter` (string): Service filter pattern (optional)
- `site_filter` (string): Site filter (optional)
- `time_range` (string): Time range

### `vibemk_list_available_metrics` (~52 tokens)

List available metrics

📋 List available metrics - Show all available metrics for host or service

Input parameters:

- `host_name` (string, required): Host name
- `service_description` (string): Service description (optional for service metrics)

Output parameters:

- `available_metrics` (array)
- `host_name` (string)
- `metric_id` (null)
- `series` (array)
- `service_description` (string|null)

### `vibemk_debug_api_endpoints` (~29 tokens)

Debug API endpoints

🔍 Debug API endpoints - Analyze available CheckMK API endpoints and their structure

### `vibemk_debug_permissions` (~24 tokens)

Debug permissions

🔐 Debug permissions - Check automation user permissions for API access

### `vibemk_find_host_grouping_rulesets` (~35 tokens)

Find host grouping rulesets

🔍 Find host grouping rulesets - Discover available rulesets for host group and contact group assignment

### `vibemk_create_host_contactgroup_rule` (~111 tokens)

Create host contact group rule

📞 Create host contact group rule - Assign contact groups to hosts based on conditions

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `comment` (string): Rule comment
- `contact_groups` (array, required): List of contact group names to assign
- `folder` (string): Folder path
- `host_conditions` (object): Conditions to match hosts (optional, empty = all hosts)

### `vibemk_create_host_hostgroup_rule` (~111 tokens)

Create host group rule

🏠 Create host group rule - Assign hosts to host groups based on conditions

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `comment` (string): Rule comment
- `folder` (string): Folder path
- `host_conditions` (object): Conditions to match hosts (optional, empty = all hosts)
- `host_groups` (array, required): List of host group names to assign

### `vibemk_get_example_rule_structures` (~30 tokens)

Get example rule structures

📚 Get example rule structures - Show example JSON structures for host grouping rules

### `vibemk_schedule_host_downtime` (~273 tokens)

Schedule host downtime

🔧 Schedule host downtime - Schedule maintenance downtime for a host to suppress alerts

Input parameters:

- `comment` (string): Comment describing the reason for downtime. Default: 'Scheduled maintenance'
- `duration` (integer|string): Downtime duration - supports natural language: '2h', '1h30m', '90m' or minutes as integer. Default: 60
- `end_time` (string): End time - supports natural language: '23:30 today', 'tomorrow at 16:00', 'monday at 17:00', or relative like '+2h'. Optional if duration specified
- `force` (boolean): Schedule even if a downtime with the same comment already exists. Default: false
- `host_name` (string, required): Host name to schedule downtime for
- `recur` (string): Repeat the downtime. Commercial editions only: a Raw/Community site accepts it but schedules the downtime once. Default: once
- `start_time` (string): Start time - supports natural language: '22:00 today', 'tomorrow at 14:00', 'monday at 09:00', '2024-08-23 at 22:00', 'in 2 hours', 'now', or ISO format. Default: now

### `vibemk_schedule_service_downtime` (~288 tokens)

Schedule service downtime

🔧 Schedule service downtime - Schedule maintenance downtime for specific services

Input parameters:

- `comment` (string): Comment describing the reason for downtime. Default: 'Scheduled service maintenance'
- `duration` (integer|string): Downtime duration - supports natural language: '2h', '1h30m', '90m' or minutes as integer. Default: 60
- `end_time` (string): End time - supports natural language: '23:30 today', 'tomorrow at 16:00', 'monday at 17:00', or relative like '+2h'. Optional if duration specified
- `force` (boolean): Schedule even if a downtime with the same comment already exists. Default: false
- `host_name` (string, required): Host name where services are located
- `recur` (string): Repeat the downtime. Commercial editions only: a Raw/Community site accepts it but schedules the downtime once. Default: once
- `service_descriptions` (array, required): List of service descriptions to schedule downtime for
- `start_time` (string): Start time - supports natural language: '22:00 today', 'tomorrow at 14:00', 'monday at 09:00', '2024-08-23 at 22:00', 'in 2 hours', 'now', or ISO format. Default: now

### `vibemk_list_downtimes` (~83 tokens)

List downtimes

📋 List downtimes - Show all scheduled downtimes with filtering options

Input parameters:

- `active_only` (boolean): Show only active downtimes (default: true)
- `host_name` (string): Optional: Filter downtimes for specific host
- `service_description` (string): Optional: Filter downtimes for specific service

Output parameters:

- `downtimes` (array)
- `total` (integer)

### `vibemk_get_active_downtimes` (~54 tokens)

Get active downtimes

🔴 Get active downtimes - Show only currently active downtimes that are suppressing alerts

Input parameters:

- `host_name` (string): Optional: Filter active downtimes for specific host

Output parameters:

- `downtimes` (array)
- `total` (integer)

### `vibemk_delete_downtime` (~50 tokens)

Delete downtime

🗑️ Delete downtime - Cancel a scheduled or active downtime by ID

Input parameters:

- `downtime_id` (integer, required): Downtime ID to delete (get from list_downtimes)

### `vibemk_check_host_downtime_status` (~50 tokens)

Check host downtime status

🔍 Check host downtime status - Distinguish between host-level and service-level downtimes

Input parameters:

- `host_name` (string, required): Host name to check downtime status for

### `vibemk_modify_downtime` (~138 tokens)

Modify downtime

✏️ Modify downtime - Extend or shorten an active downtime's end time

Input parameters:

- `comment` (string): New comment (optional)
- `downtime_id` (integer): Downtime ID to modify (use vibemk_list_downtimes to find it)
- `end_time` (string, required): New end time in ISO 8601 format, e.g. '2026-06-09T18:00:00Z'
- `host_name` (string): Host name for query-based modification (alternative to downtime_id)
- `service_description` (string): Service description (optional, narrows query-based modification)

### `vibemk_start_service_discovery` (~70 tokens)

Start service discovery

🔍 Start service discovery - Automatically detect services on a host

Input parameters:

- `host_name` (string, required): Host name to discover services on
- `mode` (string): Discovery mode. 'tabula_rasa' removes every service and rediscovers, so it is the destructive one.

### `vibemk_start_bulk_discovery` (~89 tokens)

Start bulk discovery

🔍 Start bulk discovery - Discover services on multiple hosts simultaneously

Input parameters:

- `bulk_size` (integer): Number of hosts to process simultaneously
- `do_full_scan` (boolean): Perform full service scan
- `hostnames` (array, required): List of host names to discover services on
- `ignore_errors` (boolean): Continue on errors
- `options` (object): Discovery options

### `vibemk_get_discovery_status` (~42 tokens)

Get discovery status

📊 Get discovery status - Show current service discovery results for a host

Input parameters:

- `host_name` (string, required): Host name to check discovery status

### `vibemk_get_bulk_discovery_status` (~41 tokens)

Get bulk discovery status

📊 Get bulk discovery status - Show progress of a bulk discovery job

Input parameters:

- `job_id` (string, required): Bulk discovery job ID

### `vibemk_wait_for_discovery` (~62 tokens)

Wait for discovery completion

⏳ Wait for discovery completion - Wait until service discovery finishes on a host

Input parameters:

- `host_name` (string, required): Host name to wait for discovery completion
- `timeout` (number): Seconds to wait before reporting the job as still running

### `vibemk_get_discovery_background_job` (~45 tokens)

Get discovery background job

📋 Get discovery background job - Show last discovery job status on a host

Input parameters:

- `host_name` (string, required): Host name to check background job status

### `vibemk_create_service_group` (~92 tokens)

Create service group

🔧 Create service group - Create a new service group for organizing services

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `alias` (string, required): Human-readable description/alias for the service group
- `name` (string, required): Service group name (letters, numbers, hyphens, underscores only)

### `vibemk_list_service_groups` (~24 tokens)

List service groups

📋 List service groups - Show all configured service groups

### `vibemk_get_service_group` (~40 tokens)

Get service group details

🔍 Get service group details - Show detailed information about a specific service group

Input parameters:

- `name` (string, required): Service group name to retrieve

### `vibemk_update_service_group` (~80 tokens)

Update service group

📝 Update service group - Modify an existing service group's alias

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `alias` (string, required): New alias/description for the service group
- `name` (string, required): Service group name to update

### `vibemk_delete_service_group` (~68 tokens)

Delete service group

🗑️ Delete service group - Remove a service group from CheckMK

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `name` (string, required): Service group name to delete

### `vibemk_bulk_create_service_groups` (~68 tokens)

Bulk create service groups

🔧 Bulk create service groups - Create multiple service groups at once

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `entries` (array, required): List of service groups to create

### `vibemk_bulk_update_service_groups` (~68 tokens)

Bulk update service groups

📝 Bulk update service groups - Update multiple service groups at once

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `entries` (array, required): List of service groups to update

### `vibemk_bulk_delete_service_groups` (~71 tokens)

Bulk delete service groups

🗑️ Bulk delete service groups - Delete multiple service groups at once

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `entries` (array, required): List of service group names to delete

### `vibemk_search_rulesets` (~118 tokens)

Search rulesets

🔍 Search rulesets - Find rulesets with filters (text, folder, name)

Input parameters:

- `deprecated` (boolean): Only show deprecated rulesets
- `folder` (string): The folder in which to search for rules. Path delimiters can be ~, /, or \
- `fulltext` (string): Search all keys (name, title, help) for this text. Regex allowed.
- `name` (string): A regex of the ruleset name
- `used` (boolean): Only show used rulesets

### `vibemk_show_ruleset` (~53 tokens)

Show ruleset details

📋 Show ruleset details - Display detailed information about a specific ruleset

Input parameters:

- `ruleset_name` (string, required): The name of the ruleset (e.g., host_groups, host_contactgroups)

### `vibemk_list_rulesets` (~58 tokens)

List all rulesets

📋 List all rulesets - Show all available rulesets with basic information

Input parameters:

- `limit` (integer): Maximum number of rulesets to return
- `show_deprecated` (boolean): Include deprecated rulesets in the list

### `vibemk_acknowledge_host_problem` (~134 tokens)

Acknowledge host problem

✅ Acknowledge host problem - Suppress notifications for a DOWN/UNREACHABLE host

Input parameters:

- `comment` (string): Why the problem is being acknowledged
- `expire_on` (string): Optional expiry as ISO-8601, e.g. 2026-12-24T22:00:00Z
- `host_name` (string, required): Host name
- `notify` (boolean): Send notifications to the configured contacts
- `persistent` (boolean): Keep the comment after the acknowledgement is removed
- `sticky` (boolean): Hold the acknowledgement until the host returns to UP

### `vibemk_acknowledge_service_problem` (~157 tokens)

Acknowledge service problem

✅ Acknowledge service problem - Suppress notifications for a WARN/CRIT/UNKNOWN service

Input parameters:

- `comment` (string): Why the problem is being acknowledged
- `expire_on` (string): Optional expiry as ISO-8601, e.g. 2026-12-24T22:00:00Z
- `host_name` (string, required): Host name
- `notify` (boolean): Send notifications to the configured contacts
- `persistent` (boolean): Keep the comment after the acknowledgement is removed
- `service_description` (string, required): Service name exactly as CheckMK shows it, e.g. 'CPU utilization'
- `sticky` (boolean): Hold the acknowledgement until the service returns to OK

### `vibemk_list_acknowledgements` (~29 tokens)

List acknowledgements

📋 List acknowledgements - Show all currently acknowledged host and service problems

### `vibemk_remove_acknowledgement` (~120 tokens)

Remove acknowledgement

🗑️ Remove acknowledgement - Delete by ID, by host/service, or by comment pattern

Input parameters:

- `acknowledgement_id` (string): Acknowledgement ID from list_acknowledgements
- `comment_pattern` (string): Remove acknowledgements whose comment contains this text
- `delete_all_matching` (boolean): Remove every match instead of only the first (default: false)
- `host_name` (string): Remove the acknowledgement on this host
- `service_description` (string): Restrict removal to this service on the host

### `vibemk_clone_host` (~137 tokens)

Clone a host

🔁 Clone a host - copies the folder, tags and labels of a source host onto a new target host. A different IP address can optionally be given.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `ip_address` (string): Optional IP address for the new host. Without it, the source host's IP is copied.
- `source_hostname` (string, required): Source host name, e.g. 'web01.example.com'
- `target_hostname` (string, required): New host name, e.g. 'web02.example.com'

### `vibemk_create_http_check` (~649 tokens)

Create an HTTP/HTTPS check for a host (active_checks:http). Supports URL mode (content check, auth, timing) and certificate mode.

🌐 Create an HTTP/HTTPS check for a host (active_checks:http). Supports URL mode (content check, auth, timing) and certificate mode.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `address_family` (string): IP version: 'ipv4' or 'ipv6' (optional)
- `auth_password` (string): HTTP basic auth password (optional)
- `auth_user` (string): HTTP basic auth user name (optional)
- `cert_days_crit` (integer): CRIT this many days before the certificate expires (default: 7, cert_mode only)
- `cert_days_warn` (integer): WARN this many days before the certificate expires (default: 14, cert_mode only)
- `cert_mode` (boolean): Check certificate expiry instead of the URL (default: false)
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `direct_address` (string): Address to contact instead of the host name (optional)
- `expect_regex` (string): Regular expression the response body must match, e.g. '"status":\s*"ok"'
- `expect_response` (string): Expected HTTP status line, e.g. 'HTTP/1.1 200' or 'HTTP/1.1 404'
- `expect_string` (string): Literal string the response body must contain, e.g. 'ok' or 'healthy'
- `extended_perfdata` (boolean): Collect extended performance data such as body and header size (default: false)
- `folder` (string): Checkmk folder (optional, defaults to the host's own folder)
- `hostname` (string, required): Host the rule applies to (Checkmk host name)
- `method` (string): HTTP method: GET, POST, HEAD, PUT, DELETE, OPTIONS, CONNECT (default: GET)
- `name` (string): Service name in the monitoring, e.g. 'HTTP Main' or 'API Health'
- `no_body` (boolean): Fetch headers only, not the body (default: false)
- `onredirect` (string): Redirect handling: 'ok', 'warning', 'critical', 'follow', 'sticky', 'stickyport'
- `port` (integer): HTTP port (default: 80, or 443 with SSL)
- `proxy_address` (string): HTTP proxy address (optional, e.g. 'proxy.internal')
- `proxy_port` (integer): HTTP proxy port (default: 80)
- `response_time_crit` (number): Response time CRIT threshold in seconds, e.g. 5.0
- `response_time_warn` (number): Response time WARN threshold in seconds, e.g. 2.0
- `ssl` (boolean): Use HTTPS/SSL (default: false)
- `timeout` (integer): Timeout in seconds (optional)
- `uri` (string): URL path, or a full URL (default: '/')
- `virt_host` (string): Virtual host header, when it differs from the host name

### `vibemk_create_tcp_check` (~321 tokens)

Create a TCP port check for a host. Tests reachability, optionally the response content, and the SSL certificate.

🔌 Create a TCP port check for a host. Tests reachability, optionally the response content, and the SSL certificate.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `cert_days_crit` (integer): CRIT this many days before the certificate expires (ssl=true only)
- `cert_days_warn` (integer): WARN this many days before the certificate expires (ssl=true only)
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `expect` (string): String expected in the TCP response, e.g. 'SSH-2.0' or 'Connection refused'
- `folder` (string): Checkmk folder (optional)
- `hostname` (string, required): Hostname
- `mismatch_state` (string): State when the expected string does not match: 'ok', 'warn', 'crit'
- `name` (string): Optional service name
- `port` (integer, required): TCP port, e.g. 8080
- `refuse_state` (string): State when the port refuses the connection: 'ok', 'warn', 'crit' (default: 'crit')
- `response_time_crit` (number): Response time CRIT threshold in seconds
- `response_time_warn` (number): Response time WARN threshold in seconds
- `ssl` (boolean): Use SSL/TLS (default: false)
- `timeout` (integer): Timeout in seconds (optional)

### `vibemk_create_icmp_check` (~284 tokens)

Create an ICMP/PING check for a host. Measures reachability, packet loss and round-trip time.

🏓 Create an ICMP/PING check for a host. Measures reachability, packet loss and round-trip time.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `explicit_address` (string): Ping this address instead of the host name (optional)
- `folder` (string): Checkmk folder (optional)
- `hostname` (string, required): Hostname
- `loss_crit_percent` (number): Packet loss CRIT threshold in percent, e.g. 100
- `loss_warn_percent` (number): Packet loss WARN threshold in percent, e.g. 20
- `min_pings` (integer): Minimum number of replies for the result to count (optional)
- `name` (string): Service name (default: 'PING')
- `packets` (integer): Number of packets (default: 5)
- `rta_crit_ms` (number): Round-trip time CRIT threshold in milliseconds, e.g. 500
- `rta_warn_ms` (number): Round-trip time WARN threshold in milliseconds, e.g. 200
- `timeout` (number): Timeout in seconds (default: 20)

### `vibemk_create_custom_check` (~166 tokens)

Create a custom Nagios plugin check for a host. Runs any Nagios-compatible plugin.

🔧 Create a custom Nagios plugin check for a host. Runs any Nagios-compatible plugin.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `command_line` (string, required): Plugin command line, e.g. '$USER1$/check_smtp -H $HOSTNAME$ -t 5'
- `command_name` (string): Optional internal name for the command
- `description` (string): Rule description, shown in WATO. Pick one that says what the rule is for.
- `folder` (string): Checkmk folder (default: '~')
- `hostname` (string, required): Hostname
- `service_description` (string, required): Service name in the monitoring

### `vibemk_create_dns_check` (~229 tokens)

Create a DNS check for a host. Tests whether a name resolves and whether the answer arrives in time.

🔎 Create a DNS check for a host. Tests whether a name resolves and whether the answer arrives in time.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `dns_server` (string): DNS server IP (optional, defaults to the system resolver)
- `expect_all_addresses` (boolean): Require every expected_addresses entry to be returned (default: false)
- `expected_addresses` (string): Expected IP address or addresses, one or a comma-separated list (optional)
- `folder` (string): Checkmk folder (optional)
- `hostname` (string, required): Host the rule applies to
- `lookup_hostname` (string): Name to resolve (defaults to hostname)
- `response_time_crit` (number): CRIT threshold in seconds (default: 0.3)
- `response_time_warn` (number): WARN threshold in seconds (default: 0.2)

### `vibemk_create_smtp_check` (~253 tokens)

Create an SMTP check for a host. Tests the SMTP service, optionally STARTTLS and certificate expiry.

📧 Create an SMTP check for a host. Tests the SMTP service, optionally STARTTLS and certificate expiry.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `cert_days_crit` (integer): CRIT this many days before the certificate expires (default: 7, with starttls or check_cert)
- `cert_days_warn` (integer): WARN this many days before the certificate expires (default: 14, with starttls or check_cert)
- `check_cert` (boolean): Check the certificate only, without STARTTLS (default: false)
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `folder` (string): Checkmk folder (optional)
- `hostname` (string, required): Hostname
- `name` (string): Service name (default: 'SMTP')
- `port` (integer): SMTP port, e.g. 587 for submission or 465 for SMTPS (default: the check's own, 25)
- `starttls` (boolean): Use STARTTLS and check the certificate (default: false)

### `vibemk_create_ftp_check` (~158 tokens)

Create an FTP check for a host. Tests whether an FTP port is reachable.

📁 Create an FTP check for a host. Tests whether an FTP port is reachable.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `folder` (string): Checkmk folder (optional)
- `hostname` (string, required): Hostname
- `port` (integer): FTP port (default: 21)
- `refuse_state` (string): State when the connection is refused: 'crit', 'warn', 'ok' (default: 'crit')
- `timeout` (integer): Timeout in seconds (optional)

### `vibemk_create_ldap_check` (~250 tokens)

Create an LDAP check for a host. Tests the LDAP service and its response time.

🗂️ Create an LDAP check for a host. Tests the LDAP service and its response time.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `attribute` (string): LDAP attribute or filter string (optional, e.g. '(objectclass=*)')
- `base_dn` (string, required): LDAP base DN, e.g. 'DC=example,DC=com'
- `bind_dn` (string): Bind DN for authentication (optional)
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `folder` (string): Checkmk folder (optional)
- `hostname` (string, required): Hostname
- `name` (string): Service name (default: 'LDAP')
- `password` (string): LDAP password (optional)
- `port` (integer): LDAP port (optional, default: 389)
- `response_time_crit_ms` (number): Response time CRIT threshold in milliseconds (default: 800)
- `response_time_warn_ms` (number): Response time WARN threshold in milliseconds (default: 500)

### `vibemk_create_smb_check` (~225 tokens)

Create an SMB/CIFS share check for a host. Tests availability and used space of a Windows network share.

🖥️ Create an SMB/CIFS share check for a host. Tests availability and used space of a Windows network share.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `crit_percent` (number): Used space CRIT threshold in percent (default: 95)
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `folder` (string): Checkmk folder (optional)
- `hostname` (string, required): Hostname
- `password` (string): SMB password (optional)
- `share` (string, required): Share name without backslashes, e.g. 'public'
- `smb_host` (string): SMB host IP or name (default: 'use_parent_host')
- `username` (string): SMB user name (optional)
- `warn_percent` (number): Used space WARN threshold in percent (default: 85)
- `workgroup` (string): Workgroup or domain (optional)

### `vibemk_create_mkevents_check` (~176 tokens)

Create an Event Console check for a host. Reports whether the Checkmk Event Console holds open events for it.

📋 Create an Event Console check for a host. Reports whether the Checkmk Event Console holds open events for it.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `folder` (string): Checkmk folder (optional)
- `hostname` (string, required): Hostname
- `ignore_acknowledged` (boolean): Ignore acknowledged events (default: true)
- `remote_ec_host` (string): IP or host of an external Event Console (optional)
- `show_last_log` (string): 'summary' (in the service summary), 'details' or 'no' (default: 'summary')

### `vibemk_create_inventory_check` (~266 tokens)

Create a HW/SW inventory check for a host. Triggers hardware and software inventory and reports changes since the last scan.

🔬 Create a HW/SW inventory check for a host. Triggers hardware and software inventory and reports changes since the last scan.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `fail_status` (integer): State when the inventory fails: 0=OK, 1=WARN, 2=CRIT (default: 0)
- `folder` (string): Checkmk folder (optional)
- `hostname` (string, required): Hostname
- `hw_changes_state` (integer): State on hardware changes: 0=OK, 1=WARN, 2=CRIT (default: 0)
- `status_data_inventory` (boolean): Enable status data inventory (default: true)
- `sw_changes_state` (integer): State on software changes: 0=OK, 1=WARN, 2=CRIT (default: 0)
- `sw_missing_state` (integer): State when software data is missing: 0=OK, 1=WARN, 2=CRIT (default: 0)

### `vibemk_list_active_checks` (~78 tokens)

List active check rules, optionally filtered by host or check type.

🔍 List active check rules, optionally filtered by host or check type.

Input parameters:

- `check_type` (string): Type: 'http', 'tcp', 'icmp', 'dns', 'smtp', 'custom' (optional, all types when empty)
- `hostname` (string): Show only rules for this host name (optional)

### `vibemk_delete_active_check` (~158 tokens)

Delete an active check rule, either by rule_id (UUID) or by hostname plus an optional service_name, which finds and deletes the matching rules.

🗑️ Delete an active check rule, either by rule_id (UUID) or by hostname plus an optional service_name, which finds and deletes the matching rules.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `check_type` (string): Check type filter: 'http', 'tcp', 'icmp', 'custom' (optional)
- `hostname` (string): Host name; finds every active check rule for this host
- `rule_id` (string): Rule ID (UUID) — deletes that rule directly
- `service_name` (string): Optional service name filter, e.g. 'HTTP' or 'HTTPS'

### `vibemk_get_events` (~118 tokens)

Retrieve Event Console events. Shows open and acknowledged events, optionally filtered by host, state and phase.

🗃️ Retrieve Event Console events. Shows open and acknowledged events, optionally filtered by host, state and phase.

Input parameters:

- `application` (string): Application filter
- `host` (string): Host name filter
- `phase` (string): Phase: 'open' (default) or 'ack' (acknowledged)
- `site_id` (string): Site ID, e.g. 'im' or 'uel'
- `state` (string): State filter: 'ok', 'warning', 'critical', 'unknown'

### `vibemk_acknowledge_event` (~65 tokens)

Acknowledge an Event Console event.

✅ Acknowledge an Event Console event.

Input parameters:

- `comment` (string): Comment recorded with the acknowledgement
- `event_id` (integer, required): Event ID
- `site_id` (string): Site the event lives on (optional, defaults to the connected site)

### `vibemk_change_event_state` (~76 tokens)

Change the state of an Event Console event.

🔄 Change the state of an Event Console event.

Input parameters:

- `event_id` (integer, required): Event ID
- `new_state` (string, required): New state: 'ok', 'warning', 'critical', 'unknown'
- `site_id` (string): Site the event lives on (optional, defaults to the connected site)

### `vibemk_delete_events` (~115 tokens)

Delete Event Console events, either by a list of IDs or every event of one phase or host.

🗑️ Delete Event Console events, either by a list of IDs or every event of one phase or host.

Input parameters:

- `event_ids` (array): List of event IDs; when empty, phase and host are used as the filter
- `host` (string): Delete only the events of this host
- `phase` (string): Phase filter: 'open', 'ack' (default: 'open')
- `site_id` (string): Site the event lives on (optional, defaults to the connected site)

### `vibemk_get_aux_tags` (~22 tokens)

List every configured auxiliary tag.

🏷️ List every configured auxiliary tag.

### `vibemk_create_aux_tag` (~113 tokens)

Create a new auxiliary tag.

🏷️ Create a new auxiliary tag.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `help` (string): Help text
- `tag_id` (string, required): Unique tag ID, e.g. 'sys-linux'
- `title` (string, required): Display name, e.g. 'Linux System'
- `topic` (string): Topic the tag is grouped under, e.g. 'Operating System'

### `vibemk_update_aux_tag` (~88 tokens)

Update an auxiliary tag.

🏷️ Update an auxiliary tag.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `help` (string): New help text
- `tag_id` (string, required): Tag ID
- `title` (string): New display name
- `topic` (string): New topic

### `vibemk_delete_aux_tag` (~59 tokens)

Delete an auxiliary tag.

🗑️ Delete an auxiliary tag.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `tag_id` (string, required): Tag ID

### `vibemk_get_audit_log` (~146 tokens)

Retrieve the audit log: Checkmk configuration changes such as hosts created or deleted, rules changed, and activations.

📋 Retrieve the audit log: Checkmk configuration changes such as hosts created or deleted, rules changed, and activations.

Input parameters:

- `date` (string): Start date (YYYY-MM-DD, default: today)
- `limit` (integer): Maximum number of entries (default: 50)
- `object_id` (string): Object name filter, e.g. a host name
- `object_type` (string): Object type filter: 'All', 'Folder', 'Host', 'User', 'Rule', 'Ruleset'
- `regexp` (string): Regular expression filtered against user_id, action and summary
- `user_id` (string): User filter

### `vibemk_get_sites` (~27 tokens)

List monitoring sites: every configured Checkmk instance in a distributed setup.

🌐 List monitoring sites: every configured Checkmk instance in a distributed setup.

### `vibemk_login_site` (~60 tokens)

Log in to a remote site (distributed monitoring).

🔑 Log in to a remote site (distributed monitoring).

Input parameters:

- `password` (string, required): Password
- `site_id` (string, required): Site ID, e.g. 'uel' or 'ham'
- `username` (string, required): User name

### `vibemk_logout_site` (~30 tokens)

Log out of a remote site.

🚪 Log out of a remote site.

Input parameters:

- `site_id` (string, required): Site ID

### `vibemk_set_process_thresholds` (~538 tokens)

Create process monitoring with thresholds for a host (inventory_processes_rules). The rule defines which processes are watched and how many instances trigger WARN and CRIT. A service discovery runs a…

⚙️ Create process monitoring with thresholds for a host (inventory_processes_rules). The rule defines which processes are watched and how many instances trigger WARN and CRIT. A service discovery runs afterwards so the thresholds take effect immediately. Example: 'Process wnscli.exe' on host X should warn at >=10 instances and go critical at >=12.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `cpu_average_min` (integer): Average CPU over N minutes instead of using the instantaneous value (optional, e.g. 15)
- `cpu_crit_percent` (number): Total CPU usage CRIT threshold in percent (optional, e.g. 95)
- `cpu_warn_percent` (number): Total CPU usage WARN threshold in percent (optional, e.g. 80)
- `crit_max` (integer, required): CRITICAL when more than this many processes run (e.g. 12)
- `crit_min` (integer): CRITICAL when fewer than this many processes run (default: 1)
- `description` (string): Rule description shown in WATO. Pick one that says what the rule is for.
- `folder` (string): Checkmk folder (optional, defaults to the host's own folder)
- `hostname` (string, required): Checkmk host name the rule applies to
- `mem_crit_mb` (integer): Virtual memory CRIT threshold in MB (optional)
- `mem_warn_mb` (integer): Virtual memory WARN threshold in MB (optional)
- `process_name` (string, required): Process name, e.g. 'wnscli.exe', 'nginx' or 'java'. Used both as the process match and as the service name. A leading 'Process ' is stripped if present.
- `resident_crit_mb` (integer): Resident memory (RSS) CRIT threshold in MB (optional)
- `resident_warn_mb` (integer): Resident memory (RSS) WARN threshold in MB (optional)
- `run_discovery` (boolean): Run a service discovery after creating the rule (default: true). Set it to false only when creating several rules at once.
- `single_cpu_crit_percent` (number): Per-process CPU usage CRIT threshold in percent (optional)
- `single_cpu_warn_percent` (number): Per-process CPU usage WARN threshold in percent (optional)
- `warn_max` (integer, required): WARNING when more than this many processes run (e.g. 10)
- `warn_min` (integer): WARNING when fewer than this many processes run (default: 1)

### `vibemk_set_interface_params` (~286 tokens)

Override interface parameters for a Checkmk host (checkgroup_parameters:interfaces). Typically used to set the expected speed and clear an 'expected speed' WARN. Example: interface vmbr1 warns becaus…

🌐 Override interface parameters for a Checkmk host (checkgroup_parameters:interfaces). Typically used to set the expected speed and clear an 'expected speed' WARN. Example: interface vmbr1 warns because 10 Gbit/s is expected and 1 Gbit/s is real; expected_speed_mbit=1000 sets the expectation to 1 Gbit/s. RULE ORDER: the new rule is created in the host's own folder, not in root, so that subfolder precedence applies. Only activate_changes is needed, no service discovery.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `description` (string): Rule description shown in WATO (optional)
- `expected_speed_mbit` (integer, required): Expected interface speed in Mbit/s. Typical values: 10, 100, 1000 (1 Gbit/s), 10000 (10 Gbit/s).
- `folder` (string): Checkmk folder (optional, defaults to the host's own folder)
- `hostname` (string, required): Checkmk host name, e.g. 'web01.example.com'
- `interface_name` (string, required): Interface name, e.g. 'vmbr1', 'eth0' or 'bond0'. A leading 'Interface ' is stripped if present.

### `vibemk_set_memory_thresholds` (~324 tokens)

Set memory thresholds for a host (checkgroup_parameters:memory_linux), creating a rule for RAM and/or swap usage. IMPORTANT, the memory keys are: RAM = levels_virtual (not 'levels'), swap = levels_sw…

💾 Set memory thresholds for a host (checkgroup_parameters:memory_linux), creating a rule for RAM and/or swap usage. IMPORTANT, the memory keys are: RAM = levels_virtual (not 'levels'), swap = levels_swap, physical RAM = levels_ram, committed = levels_committed. RULE ORDER: the new rule is created in the host's own folder, not in root. Check with vibemk_get_ruleset whether a rule for this host already exists and update it with vibemk_update_rule rather than adding a second one. Only activate_changes is needed.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `description` (string): Rule description shown in WATO (optional)
- `folder` (string): Checkmk folder (optional, defaults to the host's own folder)
- `hostname` (string, required): Checkmk host name, e.g. 'web01.example.com'
- `ram_crit_percent` (number): Total virtual memory CRIT in percent (levels_virtual, e.g. 95). Required when ram_warn is set.
- `ram_warn_percent` (number): Total virtual memory WARN in percent (levels_virtual, e.g. 90). Optional.
- `swap_crit_percent` (number): Swap usage CRIT threshold in percent (e.g. 50). Required when swap_warn is set.
- `swap_warn_percent` (number): Swap usage WARN threshold in percent (e.g. 30). Optional.

### `vibemk_list_process_rules` (~68 tokens)

List process monitoring rules (inventory_processes_rules): which processes are monitored on which hosts, and at what thresholds.

🔍 List process monitoring rules (inventory_processes_rules): which processes are monitored on which hosts, and at what thresholds.

Input parameters:

- `hostname` (string): Show only rules for this host (optional)
- `process_name` (string): Show only rules for this process (optional)

### `vibemk_delete_service_param_rule` (~88 tokens)

Delete a service parameter rule, such as a process threshold rule. Needs the rule ID from vibemk_list_process_rules.

🗑️ Delete a service parameter rule, such as a process threshold rule. Needs the rule ID from vibemk_list_process_rules.

Input parameters:

- `activate_changes` (boolean): Activate the changes immediately after the operation (default: false). Ask the user first whether they want that.
- `rule_id` (string, required): Rule ID, from vibemk_list_process_rules

### `vibemk_bake_agents` (~30 tokens)

Bake agents

🍞 Bake agents - Trigger agent package baking for all hosts (CEE/Cloud only)

### `vibemk_baking_status` (~40 tokens)

Baking status

🍞 Baking status - Get current agent baking status Enterprise/Cloud only: a Raw site does not serve this endpoint and answers 404.

### `vibemk_download_agent_by_host` (~86 tokens)

Download agent

📦 Download agent - Get download URL for the agent package of a specific host Enterprise/Cloud only: a Raw site does not serve this endpoint and answers 404.

Input parameters:

- `host_name` (string, required): Host name to get agent for
- `os_type` (string): OS type, e.g. linux_deb, linux_rpm, windows_msi

### `vibemk_checkmk_rules_guide` (~50 tokens)

CheckMK Rules Guide

📖 CheckMK Rules Guide - Returns the complete guide for rule management, ordering pitfalls, and API tricks. Call this BEFORE creating/modifying rules when unsure about the correct approach.

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/chexma-vibemk/vibemk#diagnostics

## Score history

- 2026-10-17: 88
- 2026-10-16: 73
- 2026-10-15: 87
- 2026-10-14: 87
- 2026-10-13: 86
- 2026-10-12: 86
- 2026-10-07: 83
- 2026-10-05: 82
- 2026-10-04: 82
- 2026-10-03: 66
- 2026-10-02: 66

## Common questions

### What is the vibeMK MCP server?

vibeMK is an MCP server listed in the public MCP registry as io.github.chexma/vibemk. Query and configure CheckMK monitoring: hosts, services, rules, downtimes, metrics. This page covers its PyPI package (vibemk).

### Is the vibeMK MCP server safe to use?

vibeMK scores 88 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 17 October 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the vibeMK MCP server expose?

vibeMK exposes 154 tools: vibemk_debug_checkmk_connection, vibemk_debug_url_detection, vibemk_test_direct_url, vibemk_test_all_endpoints, vibemk_get_checkmk_version, and 149 more. Their descriptions and schemas cost roughly 14,466 tokens of context every time the server is loaded.

### Is the vibeMK MCP server still maintained?

vibeMK is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the vibeMK MCP server under?

vibeMK declares the GPL-3.0-or-later licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- PyPI project: https://pypi.org/project/vibemk/
- Socket report: https://socket.dev/pypi/package/vibemk
- Repository: https://github.com/chexma/vibeMK
- Changelog RSS feed: https://verifymcp.io/servers/chexma-vibemk/vibemk.xml
- Changelog JSON feed: https://verifymcp.io/servers/chexma-vibemk/vibemk.json
- HTML version of this page: https://verifymcp.io/servers/chexma-vibemk/vibemk
