Skip to main content

Policy 2.2 response inspection

Policy 2.2 adds deterministic inspection of selected inbound MCP tool results. This is separate from the outbound intent decision made before a tool call. Inbound enforcement exists only when the call traverses an inspection-enabled Sigil MCP Proxy and the exact tool is covered by the Warrant.

Exact coverage

Declare response mappings under ## mcp:
Each mapped value is an opaque, fully qualified serverId.toolName token and must be an exact member of allowed_tools. Values are sorted, unique, and nonempty. Wildcards, aliases, guessed categories, and mappings outside ## mcp are rejected. response.deny_string is a response-result literal rule. The existing bare deny_string remains an outbound intent rule; it does not inspect results.

Release 1 decision

For a covered tools/call, the proxy projects the SDK-decoded UTF-8 result within fixed byte, depth, and collection bounds. The pinned deterministic ruleset returns one terminal decision:
  • ALLOW: the original result is forwarded once.
  • BLOCK: disclosure is denied with stable no-content metadata.
Binary data, oversize or over-nested results, invalid or expired policy envelopes, evaluator errors, missing execution state, and ambiguous coverage fail closed. Release 1 does not redact content and does not call a scanner, model, network service, or content telemetry sink.

Limits

  • Only exact covered MCP tools/call results are inspected.
  • ## tool_calls actions, including similarly named web or HTTP actions, are not covered.
  • MCP resources, prompts, subscriptions, and unknown methods are not result inspection surfaces. An inspection-enabled proxy refuses them.
  • Policy 2.2 has ALLOW and BLOCK only. Redaction, scanner adapters, and observe mode belong to Policy 2.3 and require format 2.
  • Sigil does not host response content. Deterministic inspection runs locally in the maintained proxy path.
Older Policy 0.x through 2.1.x Warrants retain their prior bytes, hashes, and behavior unless an operator explicitly authors and signs a 2.2 Warrant.

Authoring capability matrix

This matrix records the released Policy 2.2 authoring contract. It remains here for operators maintaining format 1 Warrants. Use the current Policy 2.3 capability matrix for new Warrants. Source: @sigilcore/warrant-core@0.3.0, AUTHORING_CAPABILITY_MANIFEST, filtered to 2.2.x (capability schema v1). Legend: A = author, I = import, P = preserve without loss, D = deploy. none means the surface rejects that field before mutating policy state. This Policy 2.2 snapshot is no longer regenerated. The current-family generator targets Policy 2.3.