mira.
00 · intro

live · v0.2.1 · MCP · MIT

agent-build-sanity

A small MCP server for coding agents. Catches dead model IDs, dependencies with open CVEs, and end-of-life runtimes — the things training data is months stale on — before the agent ships broken code.

328. model deprecations tracked
455. runtimes audited for EOL
~10k. tokens saved per build session
endpoint https://dev.miralinhart.com 200 ok
output // fetched 2026-05-12 · deprecations.info/v1/deprecations.json
$ check_model_currency anthropic claude-3-5-sonnet
 
● SHUTDOWN 2025-10-28
claude-sonnet-4-6 // recommended replacement
01 · connect

Connect

Add to your MCP client config and restart.

claude_desktop_config.json // also Cursor, Codex, anything Streamable HTTP
{
"mcpServers": {
"agent-build-sanity": {
"type": "http",
"url": "https://dev.miralinhart.com"
}
}
}

stdio-only clients: npx mcp-remote https://dev.miralinhart.com. Raw JSON inspection: curl -X POST https://dev.miralinhart.com -d '…' (full request shape in the source).

02 · tools

Three tools

check_model_currency

saves ~3,000 tokens

Pass a provider and model ID. Returns deprecation status, days until shutdown, and the named replacement. Sources deprecations.info.

output // fetched 2026-05-12 · deprecations.info
$ check_model_currency anthropic claude-3-5-sonnet
 
● SHUTDOWN 2025-10-28
claude-sonnet-4-6

check_dep_health

saves ~5,000 tokens

Pass an ecosystem and package — npm, pypi, cargo, go, maven, nuget. Returns latest stable, target freshness, deduplicated CVE/GHSA advisories ranked by severity, risk flags. Stitches deps.dev and OSV.dev.

output // fetched 2026-05-12 · deps.dev + osv.dev
$ check_dep_health pypi django 3.2
 
● 30 OPEN ADVISORIES latest stable: 6.0.5
● not_latest_stable target_over_2y_old
upgrade to 6.0.x // CVE-2025-64459, +29

check_runtime_eol

saves ~2,000 tokens

Pass a runtime, framework, OS, or database. Returns active-support status, EOL date, recommended LTS target. Fully retired products get curated successor names. Sources endoflife.date.

output // fetched 2026-05-12 · endoflife.date
$ check_runtime_eol python 3.9
 
● END-OF-LIFE since 2025-10-31
python 3.14 // EOL 2030-10-31, active LTS
03 · modes

Three output modes

All tools accept mode={concise | json | pretty}. Default concise returns verdict + key facts only — saves ~80% response tokens on the common path. json returns the full structured data block. pretty returns markdown formatted for harness rendering — Claude Desktop, Cursor, Codex lay it out as a card.

04 · why

Why

Every model has a training cutoff. The world keeps moving past it. By the time the model has been trained, evaluated, deployed, and you're using it, the cutoff is at least three months stale.

Inside that window: provider deprecations land, CVEs get published, runtimes hit EOL, packages get hijacked, defaults change. A single MCP call that's current about any of this saves the agent from confidently picking an answer the world abandoned six months ago.

Free. Stateless. No caller input retained. Cloudflare Worker hosted. Five-minute integration. Source on GitHub, MIT.