Frame Check in your AI conversations
Frame Check runs as an MCP server. Install it once and any MCP-compatible client (Claude Desktop, Cursor, Claude CLI, agent frameworks) can ask Frame Check to read the structural frame your AI just put on a question. Self-audit, cross-AI audit, or text analysis. Deterministic, zero LLM cost on the structural layer, Apache-2.0.
pip install frame-check-mcp. The package exposes
a console script of the same name; point your MCP client at
it. The package source lives at
pypi.org/project/frame-check-mcp
under Apache-2.0; the
changelog
tracks releases.
Install
Three steps: install the package, register the server with your AI client, restart and try one of the prompts. Pick the client you use; the steps below cover the three most common.
Step 1 · Install the package
pip install frame-check-mcp
Installs the frame-check-mcp console script on
your PATH. The registration step below uses the script name;
no absolute path is needed. Python 3.10 or newer is required.
Step 2 · Register with your AI client
Pick the path for the client you actually use. You only need one of these.
Claude Desktop
Open claude_desktop_config.json
(~/Library/Application Support/Claude/ on macOS,
%APPDATA%\Claude\ on Windows) and add the
frame-check entry below.
{
"mcpServers": {
"frame-check": {
"command": "frame-check-mcp"
}
}
}
Claude CLI (one command)
If you use the claude CLI, register the server
with one command.
claude mcp add frame-check frame-check-mcp
Cursor
Cursor reads MCP servers from ~/.cursor/mcp.json
with the same schema as Claude Desktop. Add the
frame-check entry below.
{
"mcpServers": {
"frame-check": {
"command": "frame-check-mcp"
}
}
}
Any other MCP client
Any MCP client speaking stdio transport works (protocol version 2024-11-05). Point the client at:
frame-check-mcp
Step 3 · Restart and try a prompt
Restart your AI client so it picks up the new server. Then ask any of these (the agent will run the corresponding prompt):
- Self-audit: "Run Frame Check on your last response."
- Cross-AI audit: "Frame check this AI's reply: [paste a response from a different AI]"
- Adversarial: "Challenge this text: [paste any text]"
- Walkthrough: "Explain the framing of this analysis."
Step 4 (optional) · Verify the install
Sanity-check the install without an MCP client. Prints the installed version and exits.
frame-check-mcp --version
Step 5 · Keep your install current
Releases ship to PyPI; upgrade with pip and restart your AI
client so it re-launches the MCP server. The server reports
its version via the MCP initialize handshake;
your client surfaces this on connect.
pip install --upgrade frame-check-mcp
# Restart your AI client so it re-launches the MCP server.
Restart matters: most MCP clients launch the server as a
child process at startup and do not auto-reload when the
underlying package changes. After pip install --upgrade,
quit and relaunch your AI client to pick up the new version.
What this enables
A life question ("is this a good investment," "should I leave my job," "what should I tell my child") returns a prescriptive answer from an LLM. That answer has a structural frame: a voice, a coverage footprint, a stance on risks and uncertainty, a set of named frame patterns from the frame vocabulary. Frame Check surfaces that frame. The user sees the frame their AI chose and decides what to do with the seeing. No tool in the category, to the best of what we have been able to survey, currently does that at the moment of the conversation.
Two tools
- frame_check: analyse a text.
Optional
source_textargument unlocks Layer 4 source-fidelity verification against the material the text was supposed to ground in. Used three ways: analyse a text you have, self-audit the agent's own last response, or analyse another AI's response the user pasted in. - frame_compare: compare two texts on the same subject. Returns per-text summaries plus the cross-text signal: shared blind spots, unique coverage gaps, voice / temporal / epistemic deltas, and a structured framing-differences narrative.
Four prompts
MCP prompts are server-defined templates the agent's LLM executes directly. Zero additional cost on our side; the agent's existing context runs them.
- frame_check_my_response: agent self-audit.
The agent calls
frame_checkon its own last response, surfaces the frame structurally, names what the measurements do not tell. No verdict, no defensive rewriting. The core one. - frame_check_this_ai_response: the user pastes a response from a different AI; the agent analyses what that AI did structurally, without calling it biased or balanced.
- challenge_document: adversarial questions traced to specific structural signals (low sourcing, missing stakeholders, promotional voice, any matched FVS entry's teaching question).
- explain_framing: walkthrough template for a completed frame_check result.
What each call returns
Both tools return the same three-section epistemic payload:
- analysis: the measurements themselves (coverage, voice, temporal, epistemic, frame-library matches with adjacent-frame MCP URIs and per-entry versions, extracted claims).
- agent_guidance: what the tool can and cannot tell the agent, and how to cite the output faithfully. Verdict patterns ("biased," "balanced," "A is better than B") are explicitly prohibited. Structure is surfaced; the user judges.
- provenance: methodology version, measurement-stack version, frame-library version, license (Apache-2.0 code, CC-BY-4.0 corpus), citation string, ISO-8601 timestamp, tool URL, and cost (which is zero, because no LLM is invoked in the structural layer).
Resources the server exposes
Alongside the tools, the server lets an agent read the
frame vocabulary,
the method,
the worked examples,
per-run
calibration evidence,
and the curated research transmissions from
blog.clarethium.com
as first-class MCP resources (URIs under
frame-check://). Each resource carries a SHA-256
content hash so a citation resolves to the exact bytes that
supported it. Transmissions are served locally because a
Cloudflare edge layer blocks automated fetches to the public
blog; only the author's explicitly-published transmissions
are surfaced.
Full reference
The complete MCP server contract (tool arguments, resource URIs, prompt texts, agent guidance rationale, troubleshooting, stability guarantees pinned by tests) lives in the repo README:
The engine is Apache-2.0. The frame library, methodology, and calibration data are CC-BY-4.0. Self-hosting and citation are both supported first-class; the hosted site is one surface among several.