multimind.mcp, MultiMind’s internal Model Composition Protocol for workflow orchestration. The MCP server lives in multimind.mcp_server.
Install and run
multimind-compliance and speaks MCP over stdio. The base multimind.mcp_server package imports without the mcp extra; only running the server requires it.
Client configuration
Claude Desktop (claude_desktop_config.json) or Claude Code (.mcp.json):
Tools
scan_text(text)
Detect PII in text. Returns finding types and character spans plus per-type counts — never the raw matched values.
email, phone, ssn, credit_card (Luhn-validated), ip_address, iban, passport, dob, api_key (entropy-filtered).
redact_text(text, strategy="mask")
Redact detected PII. Strategies: mask ([EMAIL]), hash ([EMAIL:1f9a3c2b], a stable 8-char tag for correlation without exposure), remove (delete outright).
check_grounding(response, sources)
Score how well each sentence of a response is supported by the given source texts. Deterministic n-gram containment — offline, no LLM call. Catches fabricated sentences; being lexical, it cannot catch paraphrased contradictions.
audit_log(event, metadata?)
Append a caller-declared compliance event to the JSONL audit trail (MULTIMIND_AUDIT_LOG). The event text and any string metadata values are PII-masked before writing, so raw PII never lands in the log; detected types are recorded as counts.
check_policy(text, block_on)
Pre-send gate: call before pushing content to an external service. Returns whether the text is free of the blocked PII types (case-insensitive type names).
Positioning
These are agent-invocable compliance tools: the agent decides when to scan, redact, or gate. For transparent interception of all traffic — every prompt and response, no cooperation required — put the compliance guard in the request path instead withmultimind serve (see guard-proxy.md), or wrap a model in-process with multimind.compliance.guard (guard(model, block_on=("ssn",)) returns a ComplianceGuard).