Skip to content

v0.8.41 — MCP 2026-07-28 final-spec hardening + ToolPrivBench OPUR

Choose a tag to compare

@sattyamjjain sattyamjjain released this 04 Jul 08:06
74e7061

Added

  • feat(preset): MCP 2026-07-28 final-spec hardeningmcp_spec_2026_07_defaults / MCP_SPEC_2026_07, composed from existing airlock primitives (no new mechanism, Pydantic-only zero-dep core):
    • SEP-2468 / RFC 9207 authorization-response iss validationvalidate_authorization_response_iss(params, *, expected_issuer, require_iss=True) (+ IssuerMismatchError) in mcp_spec/oauth.py: the client-side check that defends against an authorization-server mix-up attack, deny-by-default (missing/mismatched iss refused). Adds a check; does not weaken existing OAuth validation.
    • Server-Card trust boundarycheck_server_card(card) reuses the shipped ToolOutputTrustGuard to classify a tool description fetched from a server card as untrusted output and block the card on an injection-shaped (Agentjacking-class) description.
    • SEP-2468 / RFC 9207 are spec ids, not CVEs — the preset cites no CVE (enforced by the placeholder-CVE guard + a test). Auto-registered via list_active(). (#111)
  • bench: ToolPrivBench OPUR (over-privileged tool-use rate) baseline-vs-enforced columns on the least-privilege benchmark — OPUR 100% → 0% enforced (−100pp) across all 5 risk categories, deterministic (no model call), with the honest "measures enforcement, not model behaviour" caveat. (#110)

Zero new runtime deps. Badge: 3,312 tests / v0.8.41.