Runtime capability-state attestation and Tool Graph Capability Score (TCS) for Model Context Protocol agents.
14 tools with domain-specific governance focus. Tool names follow verb_noun pattern (build_, collect_, classify_, sign_, verify_, b1_ - b6_, tcs, sensitivity_, evaluate). Descriptions present and substantive (100 - 200 chars typical), explaining WHAT and WHEN. Input schemas visible in type annotations (Path, string, Attestation, etc.), but JSON Schema format not directly inspectable from source. Parameters have type hints and descriptions in docstrings. No critical naming conflicts. However, schema completeness cannot be fully verified without seeing actual JSON Schema registration; parameter descriptions are embedded in Python type hints rather than explicit schema descriptions. Error handling and output schemas not visible in provided code excerpt.
Compare two attestations and surface the change set. Detects added, removed, or reclassified tools.
Check third-party server exposure against an allow-list and maximum count.
Detect potential data-exfiltration paths in the tool graph where data can move from local disk to network-reaching write tool.
Evaluate privileged-access exposure via TCS threshold and execute capability checks.
Emit audit artefacts (OCSF event and CEF line) and rate the attestation as a log record.
Detect silent capability-surface changes under a stable host version (AI-specific governance gap).
Breakpoint tools (b1 - b6) use abbreviated names (b1_change, b2_thirdparty) that do not clearly convey action. LLMs may struggle to infer intent from 'b1_change' vs 'detect_tool_changes' or 'compare_attestations'. Abbreviated names reduce discoverability.
JSON Schema format not directly visible in source code. Type hints are present (Path, Attestation, Weights, etc.) but actual JSON Schema registration and validation constraints (minLength, pattern, enum) cannot be verified. Schema completeness score capped at 65 pending inspection of actual MCP tool registration.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Build a full (unsigned) Attestation from a config file.
Classify a raw server into a single representative ToolRecord with reach, action, and third-party status.
Parse MCP configuration files into server definitions. Supports Claude Desktop, Claude Code, and Cursor config formats.
Evaluate B1–B6 breakpoint checks against an attestation under a supplied policy.
Run sensitivity analysis over reference configurations with a reweighting grid.
Return a new Attestation signed with sigstore keyless.
Compute Tool Graph Capability Score from a configuration.
Verify the signature on an attestation.
Output schemas not documented in provided code. Tools return complex types (Attestation, VerificationResult, list[Weights]) but response structure, field descriptions, and pagination guidance are not visible. LLMs cannot plan downstream calls without knowing what fields are returned.
Error handling and recovery guidance not visible in provided code. No evidence of actionable error messages, error classification (retryable vs fatal), or recovery suggestions. Pattern:recovery-guide not demonstrated.
Tool composition: evaluate() wraps b1 - b6 checks but does not clearly document which breakpoint tools are prerequisites or how to interpret combined results. Agents may not understand the logical flow or when to call individual breakpoints vs the aggregate evaluate().