Summary
The frozen peer tool manifest records exact tool IDs, transport, safety decision, and a secret-redacted hash of MCP configuration/source metadata. That detects config changes, but not every implementation change behind an unchanged command or URL (for example npx ...@latest or a remote endpoint updated in place).
The current guarantee is therefore configuration identity plus live capability re-probe, not immutable MCP implementation provenance.
Evidence
serverFingerprint() hashes the redacted configuration and source detail (scripts/lib/mcp-capabilities.mjs:111-120).
manifestRecord() stores that config fingerprint but no initialized MCP serverInfo name/version (scripts/lib/mcp-capabilities.mjs:686-695).
probeMcpCapabilities() already performs MCP initialize and tools/list, so bounded server metadata may be available without adding another server launch.
Desired outcome
Make implementation-provenance limits explicit and preserve the strongest bounded identity already returned by the live MCP handshake.
Acceptance criteria
- Record secret-free initialized
serverInfo name/version, when provided, in diagnostics and the frozen manifest.
- Re-probe and detect a changed reported identity before Claude execution, or explicitly mark it as informational if compatibility requires that policy.
- Mark unversioned or unidentifiable providers as such; do not describe config fingerprints as artifact pinning.
- Do not persist environment values, headers, credentials, raw config, queries, or unrestricted server output.
- Keep exact tool-ID safety and destructive-veto behavior unchanged.
- Add focused stdio and HTTP tests for stable, changed, missing, and malformed server identity.
Provenance
Non-blocking follow-up from the live v1.7.3 Fable design/research qualification.
Summary
The frozen peer tool manifest records exact tool IDs, transport, safety decision, and a secret-redacted hash of MCP configuration/source metadata. That detects config changes, but not every implementation change behind an unchanged command or URL (for example
npx ...@latestor a remote endpoint updated in place).The current guarantee is therefore configuration identity plus live capability re-probe, not immutable MCP implementation provenance.
Evidence
serverFingerprint()hashes the redacted configuration and source detail (scripts/lib/mcp-capabilities.mjs:111-120).manifestRecord()stores that config fingerprint but no initialized MCPserverInfoname/version (scripts/lib/mcp-capabilities.mjs:686-695).probeMcpCapabilities()already performs MCP initialize and tools/list, so bounded server metadata may be available without adding another server launch.Desired outcome
Make implementation-provenance limits explicit and preserve the strongest bounded identity already returned by the live MCP handshake.
Acceptance criteria
serverInfoname/version, when provided, in diagnostics and the frozen manifest.Provenance
Non-blocking follow-up from the live v1.7.3 Fable design/research qualification.