Summary
Let your AI read your Wazuh 4.x security platform through the server API: manager version and daemon status, agents and their connection status, the detection rules and decoders, Security Configuration Assessment (CIS benchmark) results and File Integrity Monitoring data per agent. Read-only: it never restarts, changes or deletes anything. Alerts and vulnerabilities live in the Wazuh indexer and are not covered.
Guided setup
Connect Wazuh to Microsoft Copilot in 2 minutes
Start a free trial on AnythingMCP Cloud, connect Wazuh in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for Wazuh
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Wazuh, paste your credentials, mint an MCP API key — done. No Docker, no
git clone, no local server.
Wazuh + Microsoft Copilot
Let your AI read your Wazuh 4.x security platform through the server API: manager version and daemon status, agents and their connection status, the detection rules and decoders, Security Configuration Assessment (CIS benchmark) results and File Integrity Monitoring data per agent. Read-only: it never restarts, changes or deletes anything. Alerts and vulnerabilities live in the Wazuh indexer and are not covered.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
WAZUH_URL, WAZUH_USERNAME, WAZUH_PASSWORD
Step 1 — Get credentials
Setting up takes about 5 minutes. You need a Wazuh 4.x server API (the manager, port 55000 by default) that AnythingMCP can reach with a certificate it trusts, and an API user with the built-in readonly role.
- Set
WAZUH_URLto the server API address, normallyhttps://<manager-host>:55000, without a trailing slash. Not the dashboard (port 443) and not the indexer (port 9200). - Create a dedicated API user for the AI and give it the built-in
readonlyrole: in the Wazuh dashboard under Server management → Security → Users, or withPOST /security/usersandPOST /security/users/{user_id}/roles. - Put that user's name in
WAZUH_USERNAMEand its password inWAZUH_PASSWORD. The connector signs in with them and renews the session token itself (Wazuh tokens last 900 seconds by default). - Install the connector and run
wazuh_get_manager_info: it returns the manager version and confirms that address and sign-in work.
Read-only: every tool is a GET request. The connector cannot restart anything, run active responses, add, remove or upgrade agents, or edit rules, decoders, users or configuration. The readonly role covers every permission it needs (manager:read, agent:read, rules:read, decoders:read, sca:read and syscheck:read).
What it reads: manager and API versions and the state of each manager daemon; agents with status, IP, OS, version, groups and last keep-alive, counts by status (wazuh_get_agents_summary), OS platforms and agents older than the manager; the ruleset by level, group, compliance mapping (PCI DSS, GDPR, HIPAA, NIST 800-53, TSC) or MITRE id, and the decoders; Security Configuration Assessment (CIS benchmark) policies and failed checks per agent, with rationale and remediation; File Integrity Monitoring (syscheck) files, hashes and the last scan per agent. Agent ids have at least three digits (001); 000 is the manager itself.
Certificate: Wazuh installs a self-signed certificate on port 55000, and a self-signed certificate fails: the connector has no switch to trust any certificate. Give the API a certificate whose name matches WAZUH_URL (https.cert and https.key in Wazuh's api.yaml), put a reverse proxy with a valid certificate in front of it, or, on self-hosted, start AnythingMCP with NODE_EXTRA_CA_CERTS pointing to your internal CA.
Where Wazuh runs: on a self-hosted AnythingMCP, a Wazuh on a private address (https://10.0.0.5:55000, https://wazuh.intern:55000) needs an administrator to allow the host in SSRF_ALLOWED_HOSTS or in the allowlist in the admin settings. AnythingMCP Cloud can only reach a Wazuh API exposed on the public internet over HTTPS with a publicly trusted certificate.
Privacy: agent names, IP addresses, operating systems, file paths and hashes describe your infrastructure. Assign the connector only to MCP servers whose users may see that.
Limits: list tools return 50 items by default and at most 500 per call. Wazuh allows 300 requests per minute by default and answers 429 above that, and by default 50 failed logins within 5 minutes block the address for 300 seconds.
Common errors: 401 "Invalid credentials" means a wrong WAZUH_USERNAME or WAZUH_PASSWORD. 403 means the API user lacks a read permission: give it the readonly role. 404 on every call means WAZUH_URL points at the dashboard or the indexer instead of the server API. "Agent does not exist" (Wazuh error 1701) means no agent has that id. 400 "There is no database for agent" means the agent never connected, so it has no SCA or FIM data yet. "self-signed certificate" or "unable to verify the first certificate" is the certificate problem above.
The connector does not read alerts and events or vulnerability detection results (they live in the Wazuh indexer, not in this API), does not write anything, does not cover cluster configuration, and does not support Wazuh 5.x, which removes most of these endpoints.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
Wazuhtools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
wazuh_get_api_info | Get the Wazuh server API's own info: API version (e.g. 4.14.9), revision, license, hostname and server time |
wazuh_get_manager_info | Get the Wazuh manager's basic information: version, installation path, type (server), max agents, OpenSSL support, time zone and uuid |
wazuh_get_manager_status | Get the state of every Wazuh manager daemon (wazuh-analysisd, wazuh-remoted, wazuh-db, wazuh-modulesd, wazuh-apid and others): running or… |
wazuh_list_agents | List Wazuh agents with id, name, IP, status, OS name and version, agent version, last keep-alive, groups, cluster node and registration… |
wazuh_get_agent | Get one Wazuh agent by id with every field Wazuh keeps: name, IP and registration IP, status, OS (name, version, platform, arch, uname)… |
wazuh_get_agents_summary | Count Wazuh agents by connection status (active, disconnected, never_connected, pending, total) and by configuration sync state (synced… |
wazuh_get_agents_os_summary | List the operating system platforms present among the Wazuh agents, e.g. ubuntu, windows, darwin, with the total |
wazuh_list_outdated_agents | List Wazuh agents whose version is older than the manager's, with id, name and version, plus the total |
wazuh_list_rules | Search the Wazuh ruleset: rule id, level, description, groups, file, status and MITRE technique ids, plus the total |
wazuh_list_rule_groups | List the group names used in the Wazuh ruleset (e.g. authentication_failed, syscheck, web), plus the total; a group is what… |
wazuh_list_decoders | List Wazuh decoders: name, file, directory, status and parent decoder, plus the total |
wazuh_list_sca_policies | List the Security Configuration Assessment (SCA) policies scanned on one agent, e.g. a CIS benchmark: policy_id, name, passed, failed and… |
wazuh_list_sca_checks | List the checks of one SCA policy on one agent: check id, title, result (passed, failed, not applicable), rationale and remediation, plus… |
wazuh_list_syscheck_files | List what File Integrity Monitoring (FIM, syscheck) recorded on one agent: file or registry path, type, size, owner, permissions, hashes… |
wazuh_get_syscheck_last_scan | Get the start and end time of the last File Integrity Monitoring (syscheck) scan on one agent |
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
Was this guide helpful?