Features
Discovery & execution
- Automatic discovery — abilities with show_in_rest or mcp.public metadata become MCP tools, regardless of which plugin registered them
- Built-in MCP tools — discover abilities, get info, execute single, execute batch
- Permission metadata — abilities carry permission (read/write/delete) and enabled state in MCP annotations
- MCP annotations — readonly, destructive, idempotent hints flow through to tool definitions
- Schema transformation — JSON Schema to MCP-compatible format with automatic wrapping
- Error mapping — WP_Error objects map cleanly to MCP error codes
- HTTP transport — REST API endpoint with session management, plus minimal Server-Sent Events stub
Safety surface (v1.4.x)
- Three-bucket response redaction — secrets always filtered (passwords, API keys, tokens, hashes); payment / regulated identifiers and contact PII filtered by default with operator-controlled overrides; type-aware markers preserve schema shape
- Per-ability exemptions — operators unlock contact PII visibility on specific abilities (e.g. CRM workflows that legitimately need email) without weakening defaults globally
- Origin allowlist + scoped CORS — defense-in-depth against DNS rebinding; CORS scoped to MCP routes only, no global REST API side effects
- Rate limiting at /mcp boundary — per-IP and per-user windows, with Cloudflare and custom-allowlist trusted-proxy presets
- Boundary event log — structured events for session lifecycle, auth denials, transport errors, rate-limit hits, and settings audit changes (consumed by Abilities for AI’s kl_boundary writer when present)
- Sanitized event hooks — third-party listeners receive sanitized metadata only; raw API keys are hashed before any listener fires
Operator UI
- Settings → MCP Abilities — per-ability enable/disable controls, permission tier overrides
- Settings → MCP Safety — master redaction toggle (with warning checkbox), keyword editor per bucket, per-ability exemption list, trusted-proxy configuration
- AI-callable safety configuration — operators can ask their AI to read or strengthen safety settings; weakening default safety requires in-chat 1/2 confirmation; Bucket 2 (payment/regulated) cannot be weakened through chat at any granularity

