Claude Connector (MCP)
monsys.ai publiceert een Model Context Protocol (MCP) server zodat je het kan toevoegen als Custom Connector in Claude. Vanuit een chat of routine kan Claude dan tools aanroepen zoals “lijst open alerts”, “geef Trust Score”, “drill into deze detection”.
Per feedback_human_in_the_loop zijn de tools read-mostly. Claude
kan zien + samenvatten + voorstellen, niet executeren. Destructive
acties (IsolateNetwork, kernel update, user lock) blijven via de
TOTP-gated Emergency Actions in het dashboard. Enige write-tool:
monsys_acknowledge_detection — sluit een detection-event na
investigatie (volledig reversibel, audit-gelogd).
In het dashboard (van Claude’s kant)
- Open Claude desktop of claude.ai
- Settings → Connectors → Add custom connector
- URL:
https://api.monsys.ai - Claude detecteert OAuth via
/.well-known/oauth-authorization-server - Klik Connect → je wordt naar
app.monsys.ai/logingestuurd - Login met je monsys-account → approve scope
mcp.read mcp.acknowledge - Terug in Claude: connector heeft de status “Connected”
Token TTL: 1 uur. Daarna verschijnt een re-auth knop in Claude. Refresh tokens komen later.
Welke tools beschikbaar zijn
| Tool | Wat | Scope |
|---|---|---|
monsys_list_agents | actieve hosts met tag-filter | read |
monsys_get_agent | detail per host (CPU/mem/disk + open alerts) | read |
monsys_trust_score | huidige tenant score + 6 componenten + 7d delta | read |
monsys_list_alerts | open alerts met filter severity/category/agent | read |
monsys_list_detections | detected_events laatste 24u/7d/30d met filter | read |
monsys_get_detection | drill-down: full context + related auth-events + similar findings + suggested next steps | read |
monsys_acknowledge_detection | sluit een detection na investigatie (reversibel) | acknowledge |
monsys_list_kernel_cves | open kernel CVEs met affected_hosts count | read |
monsys_list_os_cves | open OS-pakket CVEs uit OSV.dev (apt/dnf/apk/zypper) | read |
monsys_list_sla_overview | alle SLA targets met observed%/error budget | read |
monsys_audit_log_search | grep audit_log per event_type/actor/time | read |
monsys_kpi_summary | one-shot fleet snapshot voor morning briefings | read |
Elke tool-call wordt gelogd in mcp_call_log met tool_name +
tenant + user + duration + result_status. Zichtbaar in dashboard
audit-log via monsys_audit_log_search(event_type='mcp_tool_invoked').
Voorbeelden — Claude routines
Daily morning briefing (08:00 ma-vr)
Vraag in Claude (sla op als routine):
“Open de monsys connector. Roep
monsys_kpi_summaryaan. Format als korte slack-style update: Trust Score X/100, Y open critical alerts, Z open detections laatste 24u. Als er detections zijn: roep ookmonsys_list_detections(since=24h, ack=open)aan en geef per event een 1-regel samenvatting.”
Onbekende src-IP investigation
“In monsys zie ik een alert vanuit IP 185.220.101.42. Roep
monsys_audit_log_search(actor_email_contains='@yourMSP.com')aan voor de afgelopen 24u énmonsys_list_detections(since=7d)met filter op deze IP. Vat samen wat dit IP heeft geprobeerd en suggereer of dit verdacht is.”
MSP-tenant morning check (cross-tenant)
Per tenant 1× connector. In je MSP-workspace gebruik je per cliënt een aparte Claude-conversatie met de juiste connector aan:
“In monsys-acme:
monsys_kpi_summary. In monsys-eu-bank:monsys_kpi_summary. Vergelijk de twee en flag de tenant met de grootste delta sinds gisteren.”
Sovereignty + privacy
Belangrijk om expliciet te zeggen tegen prospects: Claude is Anthropic (US-bedrijf). Wanneer je een tool aanroept gaat de data door Claude’s API om aan het model gevoerd te worden. Voor sommige tenants (overheid, bepaalde NIS2-sectoren) is dat een dealbreaker. De connector is daarom per-tenant opt-in.
Wat NIET door Claude gaat:
- Geen agent-side data (de connector leest hub-DB, niet host-resources)
- Geen geheimen, geen credentials (de tools returnen tenant-data scoped op de user’s RBAC)
- Geen audit-log raw bodies (alleen event_type + metadata)
Wat WEL door Claude gaat:
- Hostnames, IP-adressen, country codes
- Alert titles + descriptions
- Detection event src_ip + target_user
- Trust Score numbers
Voor de NIS2 audit-buyer is dit acceptabel; voor een AIVD-architect niet. Maak het bewust per cliënt.
Sessie-management
- Tokens revoken: dashboard →
/settings/mcp-tokens(komt v2; voor nu via SQL:UPDATE mcp_access_tokens SET revoked_at=NOW() WHERE user_id='<uuid>') - Audit per connector:
monsys_audit_log_search(event_type='mcp_authorization_granted') - Per-call audit: tabel
mcp_call_logtoont elke tool-call met argument-hash (raw args niet opgeslagen ivm PII)
Of via API (geavanceerd — voor automatisering)
Direct MCP roundtrip met een eigen client (zonder Claude-UI):
# 1. Registreer een clientcurl -X POST https://api.monsys.ai/mcp/oauth/register \ -H "Content-Type: application/json" \ -d '{"client_name":"my-script","redirect_uris":["http://localhost:8080/cb"]}'# returnt: {"client_id":"mcp_xxx",...}
# 2. Browser-flow: open# https://api.monsys.ai/mcp/oauth/authorize?client_id=mcp_xxx&redirect_uri=http://localhost:8080/cb&response_type=code&code_challenge=<sha256-of-verifier>&code_challenge_method=S256&scope=mcp.read# login als nodig → redirect met ?code=xxx
# 3. Wissel code voor tokencurl -X POST https://api.monsys.ai/mcp/oauth/token \ -d "grant_type=authorization_code&code=xxx&redirect_uri=http://localhost:8080/cb&client_id=mcp_xxx&code_verifier=<original>"# returnt: {"access_token":"mat_xxx","token_type":"Bearer","expires_in":3600}
# 4. Roep een tool aancurl -X POST https://api.monsys.ai/mcp \ -H "Authorization: Bearer mat_xxx" \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"monsys_kpi_summary","arguments":{}}}'Wat NIET op deze pagina hoort
- Manueel Emergency Actions (IsolateNetwork etc.) → zie Emergency console
- OpenAI Admin Audit module (andere richting: monsys leest OpenAI/Copilot, niet andersom) → zie OpenAI Audit
- Anthropic case study (Claude → monsys integratie voor false-positive reduction) → zie blog