Assurance — Claude Code MCP server: what it does, how to install
Reads a session transcript and reports what the agent skipped or could not verify. Useful when a run ends with a cheerful “all done”.
claude mcp add assurance-mcp -- uvx assurance-mcpWhat Assurance does
Assurance takes the transcript of a Claude session and works through it: which commands ran, which ones failed, what changed after the last test run. The report comes back in plain sentences. When a command is not recognised, the server says so and names it instead of counting silence as a pass.
A Stop hook runs the audit after every turn and speaks up only when there is something to report. There are three levels: “note”, “suggested review” and “stop and check”. The last one fires when untested code has been pushed, merged, deployed, migrated or committed to main. The hook never blocks a session.
Everything runs through uvx, so you need uv installed or the package from pip install assurance. Installing the hook edits ~/.claude/settings.json; the installer shows the change and asks first. Test commands are picked up from package.json, Makefile and justfile, and a run of zero tests is not treated as a pass.
What it helps with
- spot that the same test failed three times while the agent reported success
- catch an edit that no relevant test followed
- review a session where some commands stayed unclassified
- check that untested code never reached a push or deploy
- get a session report without reading the transcript by hand
Example prompts for the agent
- Audit my last Claude session and tell me what was left unverified
- Check the transcript for whether
pytest -q tests/test_invoice.pyran after the last edit - Install the assurance Stop hook so the audit runs after every turn
How to install Assurance
Platform CLI
claude mcp add assurance-mcp -- uvx assurance-mcpuvx runs the command named after the package; if the README names another one, use uvx --from assurance-mcp <command>
Platform CLI
codex mcp add assurance -- uvx assurance-mcpuvx runs the command named after the package; if the README names another one, use uvx --from assurance-mcp <command>
Config file
{
"mcpServers": {
"assurance": {
"command": "uvx",
"args": [
"assurance-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from assurance-mcp <command>
Config file
{
"servers": {
"assurance": {
"type": "stdio",
"command": "uvx",
"args": [
"assurance-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from assurance-mcp <command>
Platform CLI
gemini mcp add assurance uvx assurance-mcpuvx runs the command named after the package; if the README names another one, use uvx --from assurance-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Assurance
How do I install Assurance in Claude Code?
Add the MCP server with claude mcp add assurance-mcp -- uvx assurance-mcp. The hook is a separate step: uvx assurance@latest hook install.
What does Assurance do?
It reads a session record and reports what the agent did, what it skipped and what could not be verified. Commands it cannot classify are listed by name.
What does Assurance need to run?
The command goes through uvx, so uv has to be present, or you install the package with pip install assurance. The hook installer modifies ~/.claude/settings.json and asks for confirmation.