Models invent package names. Two lines of config make your agent check every name against a deterministic oracle before it installs or imports anything. The check is free and needs no account.
Paste into CLAUDE.md, Cursor Rules, or whatever file your agent reads before acting. Pick the variant that matches your setup.
# If your agent has the attester MCP tools (see uvx attester-mcp below): - Before installing or importing any package, call attester_package_exists (and attester_symbol_exists for specific functions) to confirm the name exists. Never import a name the oracle says does not exist.
# Works anywhere, plain HTTP, no key: - Before installing or importing any package, POST https://attester.dev/demo/v1/package/exists with {"ecosystem": "pypi" | "npm", "name": "..."} and proceed only when exists is true. For a specific function or class, use https://attester.dev/demo/v1/symbol/exists with {"ecosystem", "package", "symbol"}. Never import a name the oracle says does not exist.
The demo routes run the same pipeline as the paid routes: real registry artifacts, signed answers. Negative answers are the point. "Does not exist" comes with the artifact we checked, signed.
# does the package exist? curl -X POST https://attester.dev/demo/v1/package/exists \ -H 'Content-Type: application/json' \ -d '{"ecosystem": "pypi", "name": "requests"}' # does the symbol exist in that package? curl -X POST https://attester.dev/demo/v1/symbol/exists \ -H 'Content-Type: application/json' \ -d '{"ecosystem": "pypi", "package": "requests", "symbol": "get"}'
Answers carry exists,
closest_match on symbol misses, typosquat_adjacent on package misses,
and proof (artifact sha256 plus source URL). Quota is 25 calls per day per client IP,
shared across the four demo endpoints. When it runs out you get HTTP 429 and the paid route in the
body. Paid: $0.002 per package check, $0.005 per symbol check, via x402 or prepaid credits.
Details in /llms.txt and /policy.
Four oracle tools any MCP client can call (Claude Code, Cursor, Windsurf).
Zero config: uvx attester-mcp and the free tools work immediately,
no key, no wallet. Source and docs:
github.com/maminihds/attester-mcp.
The check as a guard, not a rule: a pre-commit hook, a Claude Code hook that blocks the write, and a GitHub Action that annotates PRs. Blocks only on a confident "does not exist"; quota and offline fail open. github.com/maminihds/attester-import-check.
pre-commit · Claude hook · Action