Human-validated, chain-run integration recipes for web3 — served version-true, with citations you can re-fetch and receipts you can check on-chain. The corpus exists to make the recipes reachable and version-scoped.
claude mcp add --transport http web3ctx \ https://mcp.scarai.xyz/mcp
{ "mcpServers": { "web3ctx": { "url":
"https://mcp.scarai.xyz/mcp" } } }
Settings → Connectors → Add custom connector → paste the URL.
stdio-only clients:
npx mcp-remote \ https://mcp.scarai.xyz/mcp
Retrieval layers serve superseded APIs beside current ones, unlabelled. The literature calls it deceptive grounding: every claim sourced from a real document — about the wrong version. Every citation check passes; the user loses.
Version identity resolves to a SQL predicate before any search runs, so off-version content cannot enter the payload. When evidence is missing, the server abstains and says what would resolve it — it never guesses.
Integration recipes run by a person against live chains, stamped with who ran them and when, served with on-chain receipts. The footguns that live in NatSpec, revert strings and peer ranges — not in any docs site.
| tool | what it does |
|---|---|
| web3_search | ranked, version-scoped units — plus the human-validated recipe when the question earns one |
| web3_grep | exact identifier lookup across the corpus |
| web3_fetch | full bodies by stable selector, cursor paging for long content |
| web3_deps | dependency closure, stepped by depth |
| web3_lookup | typed records — deployment addresses, ABIs, EIPs — or an honest NOT_FOUND |
the pair, always — a bare total does not publish
every unit labelled project@version with a pinned source
each validated on-chain by a person, served with receipts
| arm | immutable / total citation URLs | |
|---|---|---|
| web3ctx | 142 / 144 | 99% |
| context7 | 0 / 57 | 0% |
| exa (web search) | 7 / 213 | 3% |
| firecrawl | 25 / 338 | 7% |
| claude web search | MISSING — never ran | — |
| ethskills (skill) | 0 / 181 | 0% |