Agents
Everything an agent needs, in the order it needs it.
You are an agent, or you are wiring one. Three doors into the same search: MCP, the API, the command line. Below, in order: install, the seven tools, plain HTTP, the CLI, the four rules. The same text is at /agents.md for machines that read markdown.
Two searches, same doors
- 1. Search over our own index live
- 2.2 million tool actions inside the software agents and robots can invoke, every result labelled by our checks. This is what answers today, through MCP, the API or the CLI.
- 2. The neutral router next
- One call that decides, on the question itself, which search source to ask: our index first, then outside engines, judged on quality, latency and cost, with the source named. Not built yet; it will arrive as its own endpoint and MCP tool.
1. Install the MCP server
On a machine with Claude Code, one line adds Unfragile as an MCP server. On any other machine the script prints the configuration block to paste.
curl -fsSL https://unfragile.ai/install.sh | shclaude mcp add unfragile -- npx -y @unfragile/mcp-server{
"mcpServers": {
"unfragile": { "command": "npx", "args": ["-y", "@unfragile/mcp-server"] }
}
}2. The seven tools
- unfragile_find
- Arguments: task (plain words), limit (1–20, default 5), answer (boolean). The tool ACTION that does a task, across 2.2 million actions. Every result labelled. answer: true adds one pick with its reasoning or a question back; it costs 2–10 s, the results alone arrive in under a second.
- unfragile_answer
- One verified software record for a need, with evidence and an install snippet, or an honest no.
- unfragile_search
- A ranked list of software records with per-record evidence.
- unfragile_verify
- A signed verdict for a target before you install or invoke it: trusted · caution · unverified · flagged.
- unfragile_resolve
- One intent in; one record, verdict, signed passport and invocation snippet out.
- unfragile_passport
- The raw Ed25519-signed trust passport for a record, verifiable offline.
- unfragile_stats
- Live index numbers by door type.
3. Plain HTTP, no key
No SDK needed. Every endpoint is free and answers JSON. Full shapes in the API reference.
| GET | /api/v1/find?q=…&k=10&answer=1 | the action that does a task, labelled; the headline call |
| GET | /api/answer?q=… | one verified software record, or an honest no |
| GET | /api/v1/search?q=…&limit=5 | ranked software records with evidence |
| POST | /api/v1/resolve {"intent": "…"} | one record + verdict + signed passport + invocation snippet |
| POST | /api/v1/verify {"target": "npm:…"} | verdict before you invoke; never run a flagged target |
| GET | /api/v1/passport/{id} | the signed passport (URL-encode the id) |
| GET | /api/v1/stats | live index numbers |
| GET | /api/v1/trust-passport-public-key | the Ed25519 public key for offline checks |
import json, urllib.parse, urllib.request
q = urllib.parse.quote("send a slack message")
data = json.load(urllib.request.urlopen(f"https://unfragile.ai/api/v1/find?q={q}&k=5&answer=1"))
pick = data["answer"]["pick"]
print(pick and (pick["name"], pick["action"], pick["label"]))4. The command line
For an agent that runs shell commands, the same package is a CLI. verify prints a signed verdict for a package or MCP server; guard wraps an install command and blocks a flagged target. Exit code 1 means stop.
npx -p @unfragile/mcp-server unfragile verify npm:postmark-mcpnpx -p @unfragile/mcp-server unfragile guard -- claude mcp add pg -- npx -y @scope/pg-mcp5. The rules
- Labels are the instruments' verdict. No ranking, model or payment changes them. Read the label before you act on a result.
- Never invoke a
failedorflaggedtarget. Treatfound in code, not yet checkedas review-first. Unknown is never safe. - An honest no is an answer.
answer.pickisnullwhen nothing fits;answer.questionasks one thing back when the task is ambiguous. Do not fill the gap with a guess. - Cite the passport. A verified result's
urlis its signed passport; verify it offline against the public key when the stakes warrant.
6. Files for machines
- /agents.md: this page as markdown, for runtimes that read it.
- /llms.txt: when a language model should defer to Unfragile, and where.
- /install.sh: the install script, readable before you run it.
- /robots.md: the robot guide as markdown.
- /openapi.json: the API in OpenAPI 3.1, for ChatGPT Actions, SDK generators and any runtime that reads a contract.