Skip to content

Connectors · MSP & PSA

Wazuh MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Wazuh and the rest of your systems. It gives your agent 178 Wazuh actions (115 reads, 38 writes and 25 that wait for a confirmation) and holds the Wazuh credential itself, so the agent never does. It paces Wazuh's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "wazuh.security.users_list",  intent: "check which Wazuh account is connected"}# List users · read · 1 upstream call
  • 178actionsin one signed file
  • 115readlook, never change
  • 38writecreate and update
  • 25wait for a yesdestructive, confirmed first

Set up

Connect Wazuh in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Wazuh.

    Session login. actionlake opens the session and renews it when it expires. actionlake stores what you paste write-only, sealed under your tenant's key.

    • usernameWazuh API user (a user from Server management > Security, e.g. `wazuh-wui`, or a dedicated user with the RBAC roles…
    • passwordPassword of that Wazuh API user
    • hostWhere your Wazuh lives: your host
    account { op: "connections.requirements", service: "wazuh" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "wazuh.security.users_list" }# list users · read · 1 upstream callcheck { action: "wazuh.security.users_create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Wazuh at a glance

Sign-in
Session login. actionlake opens the session and renews it when it expires.
You provide
usernamepassword
Setup fields
host
Limits we pace to
300 calls a minute, per connection
API covered
Wazuh server API 4.14 (OpenAPI 3.0.0, spec v4.14.9), at your Wazuh instance's API base URL, which you enter when connecting
Built from
Wazuh's documentation, read 23 October 2026OpenAPI spec (GitHub)documentation.wazuh.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
115 of 115 reads, for up to 5 minutes; a write clears what it affects
Shared entities
4, so ask can line Wazuh up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Wazuh.

178 actions in 21 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 115readlook, never change
  • 38writecreate and update
  • 25destructivewait for a confirmation
  1. Security

    31

    9 read · 10 write · 12 destructive

    List users · List roles · Add user · Update users

  2. Agents

    30

    14 read · 12 write · 4 destructive

    List agents · Add agent · Delete agents · Restart agent

  3. Cluster

    23

    20 read · 3 write · 0 destructive

    Get node logs · Get nodes info · Reloads the analysisd process for the nodes · Get nodes API config

  4. Manager

    18

    15 read · 3 write · 0 destructive

    Get logs · Reloads the analysisd process for the master or local node · Get API config · Get active configuration

  5. Syscollector

    13

    13 read · 0 write · 0 destructive

    Get agent browser extensions · Get agent groups · Get agent hotfixes · Get agent netaddr

  6. Experimental

    12

    10 read · 0 write · 2 destructive

    Get agents CIS-CAT results · Get agents hardware · Get agents hotfixes · Get agents netaddr

  7. Groups

    8

    5 read · 2 write · 1 destructive

    Get agents in a group · Get group configuration · Create a group · Get group files

  8. Mitre

    7

    7 read · 0 write · 0 destructive

    Get MITRE groups · Get MITRE mitigations · Get MITRE references · Get MITRE software

13 more areas · 36 actions
  • Rules 7
  • Decoders 6
  • Lists 5
  • Rootcheck 4
  • Syscheck 4
  • Logtest 2
  • Sca 2
  • Active response 1
  • API 1
  • Ciscat 1
  • Events 1
  • Overview 1
  • Tasks 1

Top actions

The Wazuh API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 17 of Wazuh's 17 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
wazuh.security.users_listList usersList users.readidentity.user.list474 connectors
wazuh.security.roles_listList rolesList roles.readidentity.role.list184 connectors
wazuh.security.users_createAdd userAdd user.writeidentity.user.create262 connectors
wazuh.security.roles_createAdd roleAdd role.writeidentity.role.create105 connectors
wazuh.agents.listList agentsList agents.readdevice.endpoint.list65 connectors
wazuh.security.users_deleteDelete usersDelete users.destructiveidentity.user.delete253 connectors
wazuh.security.policies_listList policiesList policies.readsecurity.policy.list36 connectors
wazuh.security.meGet current user infoGet current user info.readidentity.current_user.get307 connectors
wazuh.agents.createAdd agentAdd agent.writedevice.endpoint.create12 connectors
wazuh.security.policies_createAdd policyAdd policy.writesecurity.policy.create25 connectors
wazuh.rules.listList rulesList rules.readthis connector
wazuh.agents.insertAdd agent fullAdd agent full.writethis connector

Try it

Prompts to paste into Claude.

Each one names the Wazuh actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which Wazuh devices have not checked in for a week?

    callswazuh.agents.list

  2. Writewrite

    Add user in Wazuh. Show me exactly what you will send before you save it.

    callswazuh.security.users_create

Governance for Wazuh

Destructive actions wait for a yes.

25 Wazuh actions are destructive. These are all of them:

  • Delete userswazuh.security.users_delete
  • Delete roleswazuh.security.roles_delete
  • Delete agentswazuh.agents.delete
  • Delete policieswazuh.security.policies_delete
  • Delete groupswazuh.groups.delete
  • Delete rules filewazuh.rules.file_delete
  • Remove agent from groupwazuh.agents.group_remove
  • Restore default security configwazuh.security.config_reset
  • Delete security ruleswazuh.security.rules_delete
  • Add security rules to rolewazuh.security.role_rules_add
  • Add roles to userwazuh.security.user_roles_add
  • Remove agents from groupwazuh.agents.bulk_group_remove
  • Remove agent from groupswazuh.agents.groups_remove_all
  • Add policies to rolewazuh.security.role_policies_add
  • Remove security rules from rolewazuh.security.role_rules_remove
  • Revoke JWT tokenswazuh.security.tokens_revoke_all
  • Remove roles from userwazuh.security.user_roles_remove
  • Remove policies from rolewazuh.security.role_policies_remove
  • Delete CDB list filewazuh.lists.file_delete
  • End sessionwazuh.logtest.session_end
  • Delete decoders filewazuh.decoders.file_delete
  • Clear resultswazuh.syscheck.results_clear
  • Clear resultswazuh.rootcheck.results_clear
  • Clear agents FIM resultswazuh.experimental.syscheck_clear
  • Clear rootcheck resultswazuh.experimental.rootcheck_clear

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

dowazuh.agents.deleteconfirm_policy: human

Delete agents?

intent: the user asked me to delete agents

run suspended · waiting for a named person · key wazuh-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "wazuh-agent",  allowed_actions: ["wazuh.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "wazuh.security.users_delete", approver: "[email protected]" },    { match: "wazuh.security.roles_delete", approver: "[email protected]" },    { match: "wazuh.agents.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Wazuh only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Wazuh costs on actionlake.

Every Wazuh action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Wazuh refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 178 Wazuh actions
  • 178actions pageeach page of a long list is one call
  • 115reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Wazuh action.

178 actions by area: the id your agent calls, what it does, and its effect.

Security31
  • wazuh.security.config_getGet security configread
  • wazuh.security.config_resetRestore default security configdestructive
  • wazuh.security.config_updateUpdate security configwrite
  • wazuh.security.meGet current user inforead
  • wazuh.security.my_policiesGet current user processed policiesread
  • wazuh.security.policies_createAdd policywrite
  • wazuh.security.policies_deleteDelete policiesdestructive
  • wazuh.security.policies_listList policiesread
  • wazuh.security.policies_updateUpdate policywrite
  • wazuh.security.rbac_actions_listList RBAC actionsread
  • wazuh.security.rbac_resources_listList RBAC resourcesread
  • wazuh.security.role_policies_addAdd policies to roledestructive
  • wazuh.security.role_policies_removeRemove policies from roledestructive
  • wazuh.security.role_rules_addAdd security rules to roledestructive
  • wazuh.security.role_rules_removeRemove security rules from roledestructive
  • wazuh.security.roles_createAdd rolewrite
  • wazuh.security.roles_deleteDelete rolesdestructive
  • wazuh.security.roles_listList rolesread
  • wazuh.security.roles_updateUpdate rolewrite
  • wazuh.security.rules_createAdd security rulewrite
  • wazuh.security.rules_deleteDelete security rulesdestructive
  • wazuh.security.rules_listList security rulesread
  • wazuh.security.rules_updateUpdate security rulewrite
  • wazuh.security.tokens_revoke_allRevoke JWT tokensdestructive
  • wazuh.security.user_roles_addAdd roles to userdestructive
  • wazuh.security.user_roles_removeRemove roles from userdestructive
  • wazuh.security.users_createAdd userwrite
  • wazuh.security.users_deleteDelete usersdestructive
  • wazuh.security.users_listList usersread
  • wazuh.security.users_run_as_setEnable/Disable run_aswrite
  • wazuh.security.users_updateUpdate userswrite
Agents30
  • wazuh.agents.bulk_group_assignAssign agents to groupwrite
  • wazuh.agents.bulk_group_removeRemove agents from groupdestructive
  • wazuh.agents.bulk_restartRestart agentswrite
  • wazuh.agents.component_statsGet agent's component statsread
  • wazuh.agents.config_getGet active configurationread
  • wazuh.agents.createAdd agentwrite
  • wazuh.agents.daemon_statsGet Wazuh daemon stats from an agentread
  • wazuh.agents.deleteDelete agentsdestructive
  • wazuh.agents.distinct_fieldsList agents distinctread
  • wazuh.agents.group_assignAssign agent to groupwrite
  • wazuh.agents.group_removeRemove agent from groupdestructive
  • wazuh.agents.group_sync_statusGet configuration sync statusread
  • wazuh.agents.groups_remove_allRemove agent from groupsdestructive
  • wazuh.agents.insertAdd agent fullwrite
  • wazuh.agents.key_getGet keyread
  • wazuh.agents.listList agentsread
  • wazuh.agents.list_outdatedList outdated agentsread
  • wazuh.agents.list_ungroupedList agents without groupread
  • wazuh.agents.quick_createAdd agent quickwrite
  • wazuh.agents.reconnectForce reconnect agentswrite
  • wazuh.agents.restartRestart agentwrite
  • wazuh.agents.restart_by_groupRestart agents in groupwrite
  • wazuh.agents.restart_by_nodeRestart agents in nodewrite
  • wazuh.agents.summarySummarize agents informationread
  • wazuh.agents.summary_osSummarize agents OSread
  • wazuh.agents.summary_statusSummarize agents statusread
  • wazuh.agents.uninstall_permissionCheck user's permission to uninstall agentsread
  • wazuh.agents.upgradeUpgrade agentswrite
  • wazuh.agents.upgrade_customUpgrade agents customwrite
  • wazuh.agents.upgrade_resultsGet upgrade resultsread
Cluster23
  • wazuh.cluster.analysisd_reloadReloads the analysisd process for the nodeswrite
  • wazuh.cluster.api_configGet nodes API configread
  • wazuh.cluster.configuration_validateCheck nodes configread
  • wazuh.cluster.healthcheckGet nodes healthcheckread
  • wazuh.cluster.local_configGet local node configread
  • wazuh.cluster.local_infoGet local node inforead
  • wazuh.cluster.node_component_config_getGet node active configurationread
  • wazuh.cluster.node_configuration_getGet node configread
  • wazuh.cluster.node_configuration_updateUpdate node configurationwrite
  • wazuh.cluster.node_daemon_statsGet Wazuh daemon stats from a cluster noderead
  • wazuh.cluster.node_infoGet node inforead
  • wazuh.cluster.node_logs_listGet node logsread
  • wazuh.cluster.node_logs_summaryGet node logs summaryread
  • wazuh.cluster.node_statsGet node statsread
  • wazuh.cluster.node_stats_analysisdGet node stats analysisdread
  • wazuh.cluster.node_stats_hourlyGet node stats hourread
  • wazuh.cluster.node_stats_remotedGet node stats remotedread
  • wazuh.cluster.node_stats_weeklyGet node stats weekread
  • wazuh.cluster.node_statusGet node statusread
  • wazuh.cluster.nodes_listGet nodes inforead
  • wazuh.cluster.restartRestart nodeswrite
  • wazuh.cluster.ruleset_sync_statusGet cluster nodes ruleset synchronization statusread
  • wazuh.cluster.statusGet cluster statusread
Manager18
  • wazuh.manager.analysisd_reloadReloads the analysisd process for the master or local nodewrite
  • wazuh.manager.api_configGet API configread
  • wazuh.manager.component_config_getGet active configurationread
  • wazuh.manager.configuration_getGet configurationread
  • wazuh.manager.configuration_updateUpdate Wazuh configurationwrite
  • wazuh.manager.configuration_validateCheck configread
  • wazuh.manager.daemon_statsGet Wazuh daemon statsread
  • wazuh.manager.infoGet informationread
  • wazuh.manager.logs_listGet logsread
  • wazuh.manager.logs_summaryGet logs summaryread
  • wazuh.manager.restartRestart managerwrite
  • wazuh.manager.statsGet statsread
  • wazuh.manager.stats_analysisdGet stats analysisdread
  • wazuh.manager.stats_hourlyGet stats hourread
  • wazuh.manager.stats_remotedGet stats remotedread
  • wazuh.manager.stats_weeklyGet stats weekread
  • wazuh.manager.statusGet statusread
  • wazuh.manager.version_checkCheck available updatesread
Syscollector13
  • wazuh.syscollector.browser_extensions_listGet agent browser extensionsread
  • wazuh.syscollector.groups_listGet agent groupsread
  • wazuh.syscollector.hardwareGet agent hardwareread
  • wazuh.syscollector.hotfixes_listGet agent hotfixesread
  • wazuh.syscollector.netaddr_listGet agent netaddrread
  • wazuh.syscollector.netiface_listGet agent netifaceread
  • wazuh.syscollector.netproto_listGet agent netprotoread
  • wazuh.syscollector.osGet agent OSread
  • wazuh.syscollector.packages_listGet agent packagesread
  • wazuh.syscollector.ports_listGet agent portsread
  • wazuh.syscollector.processes_listGet agent processesread
  • wazuh.syscollector.services_listGet agent servicesread
  • wazuh.syscollector.users_listGet agent usersread
Experimental12
  • wazuh.experimental.ciscat_results_listGet agents CIS-CAT resultsread
  • wazuh.experimental.hardware_listGet agents hardwareread
  • wazuh.experimental.hotfixes_listGet agents hotfixesread
  • wazuh.experimental.netaddr_listGet agents netaddrread
  • wazuh.experimental.netiface_listGet agents netifaceread
  • wazuh.experimental.netproto_listGet agents netprotoread
  • wazuh.experimental.os_listGet agents OSread
  • wazuh.experimental.packages_listGet agents packagesread
  • wazuh.experimental.ports_listGet agents portsread
  • wazuh.experimental.processes_listGet agents processesread
  • wazuh.experimental.rootcheck_clearClear rootcheck resultsdestructive
  • wazuh.experimental.syscheck_clearClear agents FIM resultsdestructive
Groups8
  • wazuh.groups.agents_listGet agents in a groupread
  • wazuh.groups.configuration_getGet group configurationread
  • wazuh.groups.configuration_updateUpdate group configurationwrite
  • wazuh.groups.createCreate a groupwrite
  • wazuh.groups.deleteDelete groupsdestructive
  • wazuh.groups.file_getGet a file in groupread
  • wazuh.groups.files_listGet group filesread
  • wazuh.groups.listGet groupsread
Mitre7
  • wazuh.mitre.groups_listGet MITRE groupsread
  • wazuh.mitre.metadataGet MITRE metadataread
  • wazuh.mitre.mitigations_listGet MITRE mitigationsread
  • wazuh.mitre.references_listGet MITRE referencesread
  • wazuh.mitre.software_listGet MITRE softwareread
  • wazuh.mitre.tactics_listGet MITRE tacticsread
  • wazuh.mitre.techniques_listGet MITRE techniquesread
Rules7
  • wazuh.rules.file_deleteDelete rules filedestructive
  • wazuh.rules.file_getGet rules file contentread
  • wazuh.rules.file_putUpdate rules filewrite
  • wazuh.rules.files_listGet filesread
  • wazuh.rules.groups_listGet groupsread
  • wazuh.rules.listList rulesread
  • wazuh.rules.requirement_values_listGet requirementsread
Decoders6
  • wazuh.decoders.file_deleteDelete decoders filedestructive
  • wazuh.decoders.file_getGet decoders file contentread
  • wazuh.decoders.file_putUpdate decoders filewrite
  • wazuh.decoders.files_listGet filesread
  • wazuh.decoders.listList decodersread
  • wazuh.decoders.parents_listGet parent decodersread
Lists5
  • wazuh.lists.file_deleteDelete CDB list filedestructive
  • wazuh.lists.file_getGet CDB list file contentread
  • wazuh.lists.file_putUpdate CDB list filewrite
  • wazuh.lists.files_listGet CDB lists filesread
  • wazuh.lists.listGet CDB lists inforead
Rootcheck4
  • wazuh.rootcheck.last_scanGet last scan datetimeread
  • wazuh.rootcheck.results_clearClear resultsdestructive
  • wazuh.rootcheck.results_listGet resultsread
  • wazuh.rootcheck.runRun scanwrite
Syscheck4
  • wazuh.syscheck.files_listGet resultsread
  • wazuh.syscheck.last_scanGet last scan datetimeread
  • wazuh.syscheck.results_clearClear resultsdestructive
  • wazuh.syscheck.runRun scanwrite
Logtest2
  • wazuh.logtest.runRun logtestwrite
  • wazuh.logtest.session_endEnd sessiondestructive
Sca2
  • wazuh.sca.checks_listGet policy checksread
  • wazuh.sca.policies_listGet resultsread
Active response1
  • wazuh.active_response.runRun commandwrite
API1
  • wazuh.api.infoGet API inforead
Ciscat1
  • wazuh.ciscat.results_listGet resultsread
Events1
  • wazuh.events.ingestIngest eventswrite
Overview1
  • wazuh.overview.agentsGet agents overviewread
Tasks1
  • wazuh.tasks.status_listList tasksread

Questions

The Wazuh MCP server, answered.

Is there a Wazuh MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 178 Wazuh actions across security, agents, cluster and manager, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Wazuh.

What do I need to connect Wazuh?

Wazuh API user (a user from Server management > Security, e.g. `wazuh-wui`, or a dedicated user with the RBAC roles… and Password of that Wazuh API user. Plus your host. The free call account { op: "connections.requirements", service: "wazuh" } lists exactly what to paste.

Can an AI agent delete or change things in Wazuh?

Only if its key allows it, and only with an explicit confirmation. 25 Wazuh actions are destructive, including delete users, delete roles and delete agents. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Wazuh API limit?

actionlake paces every call to the limits in the Wazuh service file: 300 calls a minute per connection. Repeated reads are answered from cache (115 Wazuh actions can be), which never reaches Wazuh.

What does a Wazuh action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (178 Wazuh actions page). Cache hits, searches, dry runs and calls Wazuh refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Wazuh API does it cover?

The Wazuh server API 4.14 (OpenAPI 3.0.0, spec v4.14.9) at your Wazuh instance's API base URL, which you enter when connecting. It is built from Wazuh's documentation as read on 23 October 2026. 178 actions in 21 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Wazuh data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Wazuh credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Wazuh today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.