Epistemic guard for AI coding: tracks uncertain values and blocks writes until verified.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
AI doesn't remember what it wasn't sure about. Credence does.
[mcp] adds the FastMCP server for Claude Code. Core package has zero hard dependencies.
You say: "The rate limit is probably around 50 β I haven't confirmed it yet."
Fifteen turns later, Claude writes:
The API rejects every request at 2am. The real limit was 10. Claude forgot you weren't sure.
This isn't hallucination. The model reproduced exactly what it read. What it read had the qualifier stripped β by context compression, fifteen turns back.
Tracks uncertain values the moment you state them. Blocks writes that embed those values until you confirm them.
Every other tool warns. Credence enforces.
After you confirm: "Confirmed β rate limit is 100 req/min per stripe.com/docs" β gate clears.

1. Add to .mcp.json:
2. Add to .claude/settings.json:
Done. No API key required.
Registry: Credence creates
epistemic_registry.dbin your working directory. Add*.dbto your.gitignore, or setCREDENCE_DB=~/.credence/registry.dbto keep it global.Session tracking: Set
CREDENCE_SESSION_ID=my-projectto keep constraints stable across directory changes and terminal restarts.Event log: The gate writes block/allow events to
~/.credence/events.jsonl(local only, never sent anywhere). SetCREDENCE_NO_LOG=1to disable.Constraint cap: The registry allows up to 500 constraints per session by default. Override with
CREDENCE_MAX_CONSTRAINTS=<n>.
Two layers, neither requires model cooperation:
| Layer | Hook | Role |
|---|---|---|
| Observer | UserPromptSubmit | Passive listener β registers uncertain values before Claude generates anything |
| Gate | PreToolUse | Blocks writes that embed unverified values |
The observer fires before the model processes your message. If you say "I think the rate limit is 50", the registry has that entry before Claude generates a single token.
Once verified, the gate clears.
46% of uncertainty qualifiers are stripped by Claude Haiku during context compression. Credence blocks 100% of those writes (n=50, bootstrap CI: [0%β0%]).
Validated across 7 open-weight models (Qwen, Mistral, Llama, Phi, Gemma) from 5 organizations: same failure mode, same block rate.
Full methodology: docs/TECHNICAL_REPORT.md
The scientific basis for Credence is documented in paper/ (EQL / EQLR / FCR).
The companion geometry thesis β on confabulation detection and why the detection axis is dissociable from the causal control axis β lives in a separate repo: β Detection Without Control
Lakshmi Chakradhar Vijayarao β GitHub Β· LinkedIn Β· X
Apache 2.0 License
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/credence-epistemic-guard)<a href="https://allmcps.com/mcp/credence-epistemic-guard"><img src="https://allmcps.com/api/badge/credence-epistemic-guard?style=directory" alt="Credence β Epistemic Guard on AllMCPs" /></a>