Breakwire
Look up an API, SDK or MCP error; get the source-linked breaking change, deprecation or advisory and its fix.
Hosted MCP Server
npx add-mcp 'https://breakwire.org/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Breakwire clients, MCP config and CI check
Current release: clients 0.7.0 (npm breakwire, PyPI breakwire, PyPI langchain-breakwire) · server 0.10.0 · GitHub Action breakwire-check 1.2.0 · CHANGELOG
Breakwire is a source-linked registry of changes that break AI agents: model retirements, API
deprecations, SDK breaking releases, MCP spec changes and security advisories. Send it an error, get back the claim
that explains it (e.g. AN-2026-0025) with the vendor's documented error string, affected versions, deadline, fix and
primary source.
This repo holds everything that talks to it:
| Path | Install | |
|---|---|---|
| TypeScript/JS client (zero deps, Node 18+, Workers) + Vercel AI SDK tools | packages/js | npm i breakwire |
| Python client (stdlib only, 3.9+) | packages/python | pip install breakwire |
| LangChain tools + callback handler | packages/langchain-breakwire | pip install langchain-breakwire |
| MCP server config for Claude, Cursor, VS Code, Cline, Codex, Windsurf, Gemini CLI | mcp/CLIENTS.md | https://breakwire.org/mcp |
| GitHub Action: fail CI on near deadlines / advisories | action (published as breakwire-org/breakwire-check) | uses: breakwire-org/breakwire-check@v1 |
| Framework snippets: Vercel AI SDK, OpenAI Agents, Anthropic SDK, LangChain, MCP TS client | snippets | |
| Trigger packages: Claude Code plugin (skill + MCP), Cursor rule, AGENTS.md block | triggers | /plugin marketplace add breakwire-org/breakwire |
| Gemini CLI extension (remote MCP + GEMINI.md context) | gemini-extension.json | gemini extensions install https://github.com/breakwire-org/breakwire |
30 seconds
curl -s https://breakwire.org/api/lookup -H 'content-type: application/json' \
-d '{"error":"tool_choice: type \"tool\" and \"any\" are not supported for this model.","service":"anthropic-api"}'
import { withBreakwire } from 'breakwire';
const create = withBreakwire((p) => anthropic.messages.create(p), { service: 'anthropic-api' });
try { await create(params) } catch (e) { console.log(e.breakwire?.id, e.breakwire?.fix); throw e }
from breakwire import with_breakwire
with with_breakwire(service="openai-api"):
client.responses.create(...) # exception gets .breakwire (id, fix, url) and a traceback note
When to call it
- Session start:
session_brief(MCP) /sessionBrief()/session_brief()/npx breakwire brief. Silent when nothing changed for your exact stack. - An error you do not recognise. 2. Code that names a model id or SDK version. 3. A deploy or upgrade.
For 1-3, step one:
GET https://breakwire.org/api/changes?from=<your training cutoff>(changes, new model launches, revisions). Fail open: if Breakwire is slow or down, carry on. Details: triggers/TRIGGERS.md.
What's new in 0.7.0 (clients)
- Session brief with a local cursor:
sessionBrief()/session_brief()returncontext: nullwhen clear (inject nothing), else at most 5 source-linked items. Later calls send only a fingerprint and cursor (304 when unchanged). npx breakwire brieffor session-start hooks; the Claude Code plugin runs it on startup.- Stack checks are strict + compact by default. No-log lookups return a
receiptyou can close with an outcome andevidence_type. Details in CHANGELOG.md.
What's new in 0.6.0 (clients)
Security and correctness release; see CHANGELOG.md and SECURITY.md.
- Redirects never carry credentials or bodies to another origin. Clients follow redirects only to
https://breakwire.org, the base URL's origin and anytrustedOrigins/trusted_originsyou pin. - Stack files are parsed in your process.
stack()/subscribe()send only dependency and runtime facts;previewStack()/preview_stack()show the exact body; raw files needrawFiles: true/raw_files=True. - Retry works in the default no-log mode, and the local cache keys on every lookup option.
- Broader local redaction (IPv6, UUIDs, request/trace ids, filesystem and UNC paths, credentials in any URI scheme,
secret-named JSON fields) with
previewRedaction()/preview_redaction(). - Python
with_breakwireaccepts everylookup()option (compact,min_score,max_matches,since,reflex).
Principles
- Opt-in and harmless. Lookups happen only on errors, are time-boxed, and never throw or replace your error.
- Secrets stay home. Keys, tokens, emails, IPv4/IPv6 addresses, UUIDs and request ids, query strings, credentials
in URLs and filesystem paths are stripped in your process before sending (shared test cases;
previewRedaction()/preview_redaction()show exactly what would leave); the server redacts again. Stack files are parsed locally and only dependency facts are sent. Redirects never carry credentials or bodies to another origin. - No silent reporting. Outcome reports ("did the fix work") are sent only with
autoReport/auto_reporton, and only after your retry actually ran. - Honest data.
signaturevsrelatedconfidence, explicit "not covered" for services without claims, and community verification that has just started: most claims have no outcome reports yet, and each claim says so.
Development
cd packages/js && npm ci && npm test # offline unit tests (+ npm run test:live)
cd packages/python && python -m unittest discover -s tests
cd packages/langchain-breakwire && python -m unittest discover -s tests
cd action && npm test
cd snippets && npm ci && npm test # real SDKs against a mock vendor + live Breakwire
node scripts/versions.mjs --check # fails on stale versions (edit versions.json, run without --check)
Versions live in one place, versions.json. node scripts/versions.mjs writes them into the package
manifests, source constants and the README banners; CI (.github/workflows/ci.yml) runs the
check plus every suite. Shared cross-language fixtures: tests/ (redaction, redirect policy, stack parsing,
lookup option contract).
Live tests use log_miss: false and never send outcome reports. Set BREAKWIRE_BASE_URL to point at another deployment.
API: https://breakwire.org/llms.txt · OpenAPI: https://breakwire.org/openapi.json · Data: CC BY 4.0 · Code: MIT