API · free · no key required
One verified answer, over the wire
Everything on this page is live, deterministic, and free: same query, same answer, no LLM in the loop, and an honest no when nothing qualifies. Humans get JSON; agents get the same six capabilities as MCP tools. The corpus behind it: five envelopes (MCP servers, APIs, libraries, CLIs, models), machine-verified weekly, Ed25519-signed — methodology.
The headline call
/api/answer?q=…One verified answer
Ask what you need; get ONE pick with evidence — verification tier, score, signed passport, freshness, adoption — plus a paste-ready install command, honest alternatives, and the pick's evidence page. If nothing in the verified corpus covers the query confidently, answer is null and noConfidentAnswer.reason says so. Trust the abstention: it is the feature.
curl "https://unfragile.ai/api/answer?q=stripe+payments"
The agent surface — /api/v1
/api/v1/search?q=…&limit=5Ranked results with per-record evidence
The same deterministic scoring as the answer, as a list. Each result carries its envelope, verification status/score, signed-passport flag, adoption, declared tools, install command, and its unfragile.ai evidence page.
curl "https://unfragile.ai/api/v1/search?q=postgres&limit=5"
/api/v1/resolveAgent-runtime resolution: intent → one verified record
One intent in, one verified record out — with a conservative verdict, the Ed25519- signed passport attached, and the invocation snippet, in a single round trip. Honest abstention when nothing qualifies: do not invoke a guess.
curl -X POST https://unfragile.ai/api/v1/resolve \
-H "Content-Type: application/json" \
-d '{"intent": "send a slack message from an agent"}'/api/v1/verifyVerify before invoke
The trust primitive. Returns one verdict — trusted · caution · unverified · flagged— with the record's signed passport. Conservative by design: an unknown target is never trusted. Rule for agents: never invoke a flagged target; treat unverified as review-first.
curl -X POST https://unfragile.ai/api/v1/verify \
-H "Content-Type: application/json" \
-d '{"target": "npm:@stripe/mcp"}'/api/v1/passport/{slug}The raw signed trust passport
The Ed25519-signed passport for any record — by page slug, record id, or package name. Verify it offline: fetch the public key from /api/v1/trust-passport-public-key, detach signature/signedAt/signedBy/version, canonicalize the rest with sorted keys, and run ed25519-verify. Full spec and a copy-paste snippet: /trust.
curl "https://unfragile.ai/api/v1/passport/stripe-mcp"
/api/v1/statsThe live census, as JSON
Honest-tier counts for the whole corpus: listed, verified, signed passports, official records, by envelope. Human renderings: the census and the readiness map.
curl "https://unfragile.ai/api/v1/stats"
For agents: install the MCP server instead
All six capabilities above ship as MCP tools — unfragile_answer · unfragile_search · unfragile_verify · unfragile_resolve · unfragile_passport · unfragile_stats — in @unfragile/mcp-server. One command wires them into Claude Code, Cursor, Windsurf, Cline, or any MCP client:
claude mcp add unfragile -- npx -y @unfragile/mcp-server
Details and per-client setup: /mcp · one-curl install: /agents.md · machine-readable site guide: /llms.txt
Ground rules
- Free, no key. Every endpoint here is open. Future paid tiers price execution-verification depth and volume — never placement. /pricing
- Deterministic. Same query, same answer; every ranking reproducible and explainable. No LLM in the loop.
- Honest tiers.
static-verified= contract machine-checked;execution-verified= we ran it in our sandbox and it worked; "not yet verified" is never "failed". - Rankings are never for sale.