# MCP surface lock

Vendored from the app at 409b742b19676b30aa82c4da919fa5a1edf0cd25; regenerated there from the code that serves tools/list.

The file's `source_commit` field is `cd52b6dc18fb9cc8d58664761d6712239f973cf3`. `schema` is `coderifts.mcp-surface-lock.v1`. `source.url` is `https://app.coderifts.com/mcp`, `source.transport` is `mcp`, and `source.protocol_version` is `2025-06-18`. The three tool names are `preflight_change_set`, `verify_receipt`, and `get_decision_details`. `tools_sha256` is `sha256:cb989871bb8376655bff573cb074ecac1e367a2393a88aff067055c07722ecb6`.

## What this lock does not prove

A lock is a declaration of the tool list, not measured behaviour. The flip page, re-derived 2026-10-16, says a hint is a declaration by the server, not measured behaviour. The client's cache is not measured. The limits block on the verify page says clients may cache the tool list for the life of a connection, and expiry behaviour differs by client and is undocumented.

`coderifts tools-check` compares this lock with a `tools/list` snapshot locally. Help text read 2026-10-17T17:52:07Z: no key, no network, not a grant. Exit 0 is no change or info only, exit 2 is a breaking change, and exit 1 means the check could not decide.
