Ga naar inhoud

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)

  1. Open Claude desktop of claude.ai
  2. Settings → Connectors → Add custom connector
  3. URL: https://api.monsys.ai
  4. Claude detecteert OAuth via /.well-known/oauth-authorization-server
  5. Klik Connect → je wordt naar app.monsys.ai/login gestuurd
  6. Login met je monsys-account → approve scope mcp.read mcp.acknowledge
  7. 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

ToolWatScope
monsys_list_agentsactieve hosts met tag-filterread
monsys_get_agentdetail per host (CPU/mem/disk + open alerts)read
monsys_trust_scorehuidige tenant score + 6 componenten + 7d deltaread
monsys_list_alertsopen alerts met filter severity/category/agentread
monsys_list_detectionsdetected_events laatste 24u/7d/30d met filterread
monsys_get_detectiondrill-down: full context + related auth-events + similar findings + suggested next stepsread
monsys_acknowledge_detectionsluit een detection na investigatie (reversibel)acknowledge
monsys_list_kernel_cvesopen kernel CVEs met affected_hosts countread
monsys_list_os_cvesopen OS-pakket CVEs uit OSV.dev (apt/dnf/apk/zypper)read
monsys_list_sla_overviewalle SLA targets met observed%/error budgetread
monsys_audit_log_searchgrep audit_log per event_type/actor/timeread
monsys_kpi_summaryone-shot fleet snapshot voor morning briefingsread

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_summary aan. Format als korte slack-style update: Trust Score X/100, Y open critical alerts, Z open detections laatste 24u. Als er detections zijn: roep ook monsys_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 én monsys_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_log toont 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):

Terminal window
# 1. Registreer een client
curl -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 token
curl -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 aan
curl -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