mendapi
com.mendapiPublished by mendapi.comv0.5.6Updated Oct 24, 2026
Detect API breaking changes, scan your codebase for impact, and draft the fix. Runs locally.
Overview
Local MCP server that scans a codebase for upstream API breaking changes and drafts migration diffs.
- What you can do
- Scan a repository for upstream API breaking changes, with file, line and symbol detail and confidence scores, and list the API providers and SDKs a project depends on. Draft migration fixes as reviewable diffs from a scan report, and revalidate findings. Read the locally synced upstream API change feed covering major providers.
- When to use it
- Useful when a project depends on third-party SDKs or APIs that change often and you want an assistant to spot breaking changes and draft migration diffs without source code leaving the machine.
- Requirements
- Runs locally over stdio via npx, requiring Node.js 22.13 or newer. The change feed must first be pulled with the sync command, the only step that uses the network; scanning, fixing and the MCP tools then work offline against a local SQLite database.
Installation
In SourceWeft
- Open mendapi in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
mendapi
Dependabot, but for every API you depend on. We watch your upstream API providers for breaking changes, scan your codebase for impact, and open the fix PR before your integration breaks.
30 seconds to your first result
sync pulls the upstream API change feed into a local SQLite database. It is the only command that touches the network, and you run it once (then whenever you want fresher data).
scan reports every upstream breaking change that actually hits your code — file, line, and symbol — scored for confidence. fix drafts the migration as a reviewable diff, without touching a single file until you pass --apply. Neither reads or writes anything outside your machine.
Using an AI coding agent? One line plugs mendapi into Claude Code as an MCP server (Cursor and every other MCP client work too — details below):
Requires Node.js 22.13 or newer. Everything runs locally: the scanner, fixer, and review CLIs contain no network code at all.
Security model (read this first)
This tool is designed for teams that cannot let source code leave their machines. The security model is the product, not a FAQ entry:
- Your code never leaves your machine. The scanner runs locally or in your CI. Nothing is uploaded by default — there is no network code in the scanner, fixer, or review CLIs at all (mechanically enforced by our test suite, which fails the build if any network primitive appears in those files).
- Metadata-only reporting, opt-in only. If you ever choose to report results to a hosted dashboard, the payload builder (
payload.js) is whitelist-constructed: provider names, SDK versions, file basenames, line numbers, and symbol names only. Code snippets are structurally impossible to include — the field does not exist in the payload schema. Reporting requires an explicit--report-toflag; it is never on by default. - Secrets are redacted in depth. Fifteen secret patterns (OpenAI, Stripe, AWS, GitHub, Slack, JWT, bearer tokens, generic key assignments, and more) are scrubbed from every field of any outbound payload, and a pre-transmission assertion throws if a forbidden key or unredacted secret survives.
- Auditable by design. The CLI is open source so your security team can verify, line by line, exactly what is read and what (if anything) is sent.
- Minimal GitHub permissions. Fix PRs use a GitHub App scoped to
contents:read+pull_requests:writeon repos you choose. Never admin. - Self-hosting available. Enterprise plans run the entire stack — change feed included — inside your firewall.
What it does
Three components form a closed loop:
Quickstart
Requires Node.js 22.13 or newer (uses built-in node:sqlite). Zero npm dependencies.
Running from a checkout? node app/cli.js <command> works identically.
What a fix looks like
This is real output — the exact diff our test suite pins, byte for byte, for the openai-node v3 → v4 migration pack. Note the two lines that mention the legacy calls inside a string and a template literal: the codemod leaves both untouched, because rules anchor on call positions in the syntax tree, not on text patterns.
Every migration pack ships with a pinned diff like this one; the build fails if a pack's output drifts from its gold evidence. Six more, embedded with the same byte-match guarantee, are on the provider guides: OpenAI, AWS, Cloudflare, PayPal, Vercel, Stripe, Shopify.
Use it from your AI coding agent (MCP)
mendapi mcp starts a Model Context Protocol server on stdio — offline-first, zero network: every tool call runs the local CLIs against the local SQLite database only, and the server ships with zero npm dependencies. It speaks the current MCP revision (2026-07-28, per-request _meta version negotiation + server/discover) and keeps full backward compatibility with older clients that use the initialize handshake (2025-06-18 / 2025-03-26) — a dual-era server, because a tool that repairs breaking changes should not ship one.
Claude Code (one line):
Cursor (or any JSON-configured MCP client) — add to .cursor/mcp.json:
Tools exposed: scan, deps, fix, revalidate, changes — the same schema_version-stamped JSON as the CLI --json flags. See the For AI agents docs page for the full tool catalog and an autonomous-maintenance recipe.
Why precision matters
Alert fatigue kills tools like this. Our scanner gates every finding through:
- Source-aware evidence rules — an SDK release only affects repos that import that SDK; a changelog entry about an API endpoint affects anyone calling that host.
- Sub-API filtering for monorepo providers (Google, AWS) — a
youtuberelease does not page the team that only uses S3. - Identifier-boundary symbol matching —
getRnever matchesgetRelatedArticles. - Context-aware env-var detection —
process.env.STRIPE_KEYcounts; a regex constant namedMETA_REdoes not.
Dogfooding across three production repos: the current pipeline reports zero false positives where an earlier naive version produced 27.
Measured in public
We benchmark the change database against real provider spec corpora and publish the full accounting — every headline number is recomputed from archived evidence by the site's build gates, so the reports cannot drift from the data:
- What 47 Stripe API versions taught us about breaking-change detection — 47 consecutive spec pairs, head-to-head with oasdiff, zero unexplained gaps.
- Three more providers, 49 spec pairs, zero unexplained gaps — the same audit across Twilio, PayPal, and Vercel.
- 20 Twilio spec pairs: 358 findings from one engine, 142 from ours, and every disagreement named — why two engines disagree by 2.5x, with every divergence accounted for.
- 11 Vercel spec pairs: a real 12-endpoint removal, and the release notes that cried breaking — the changelog got it wrong in both directions; the wire did not.
- 136 raw removals, 17 real ones: what a spec diff over-reports — the curation rules that keep alert fatigue out of the feed.
- 821 OpenAI spec changes, 3 that can break a client: the honest negative — the value of a tool that tells you when you are fine.
Status
Published on npm as mendapi (v0.5.6). Early release — the change database and migration pack registry grow daily; interfaces may still shift before 1.0.
License
AGPL-3.0-only for the CLI (see LICENSE). Chosen so security teams can audit every line that reads code or builds a payload, and so hosted forks must share their changes.
Source: README.md at commit 2452f3c
Tools
0Version history
1- v0.5.6LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts