{
  "markdown": "# attester-mcp\n\nMCP server for [attester.dev](https://attester.dev): verification and\nAPI-existence oracle tools for AI agents, callable from any MCP client\n(Claude Code, Cursor, Windsurf, LangChain, CrewAI).\n\nEvery result ships with a wallet-signed attestation you can verify without\ntrusting us: `POST https://attester.dev/receipts/verify` is free.\n\n## Quickstart: free oracle tools, no keys\n\nNo install needed. Point your MCP client at the hosted endpoint:\n\n```json\n{\n  \"mcpServers\": {\n    \"attester\": {\n      \"url\": \"https://attester.dev/mcp/\"\n    }\n  }\n}\n```\n\nFour oracle tools work immediately: no account, no API key, no wallet.\nYou get 25 free calls per day per client IP, shared across the four\ntools, resetting 00:00 UTC. (This config block works for Claude Code,\nClaude Desktop, and Cursor; any MCP client that speaks streamable HTTP.)\n\n| Tool | What it does | Price per call |\n|---|---|---|\n| `attester_package_exists` | Does this PyPI/npm package name really exist? Typosquat-adjacency flags on misses. | Free (25/day keyless); $0.002 paid |\n| `attester_symbol_exists` | Does this function, class, or constant exist in the package? Closest-match suggestions on misses. | Free (25/day keyless); $0.005 paid |\n| `attester_symbol_signature` | Exact signature, structured params, docstring, deprecation status, resolved at a pinned version. | Free (25/day keyless); $0.01 paid |\n| `attester_version_diff` | Symbol-level diff between two pinned versions: added, removed, changed, breaking/additive/neutral. | Free (25/day keyless); $0.02 paid |\n\n**Run it locally instead** (stdio): install from source with\n`pip install git+https://github.com/maminihds/attester-mcp.git`, then use\n`\"command\": \"attester-mcp\"` in the config above. A zero-install\n`uvx attester-mcp` command lands once the package is published to PyPI.\n\n### Steer your agent: CLAUDE.md / Cursor Rules snippet\n\n```\n- Before installing or importing a 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.\n```\n\n## Paid tools\n\n| Tool | What it does | Price per call |\n|---|---|---|\n| `oracle_verify_work` | Check another agent's work: citation support, code correctness, data/schema validation. Verdict plus signed attestation. | $0.15 USDC |\n| `oracle_code_research` | Cited coding research; citations are re-checked and the proof attached. | $0.10 USDC |\n| `oracle_judge` | Grade an output against your rubric; signed score with per-criterion evidence. | $0.10 USDC |\n| `oracle_watchtower_report` | Signed 24h report on whether an x402 service honors its advertised prices. | $0.05 USDC |\n| `oracle_spend_check` | Pre-payment counterparty check: should your agent pay this address? | $0.005 USDC |\n\nPayment works two ways:\n\n- **Prepaid credits (humans, no crypto):** buy a $5 pack at\n  [this Stripe link](https://buy.stripe.com/bJefZhfGo9Uy6zF9ckaZi00), claim\n  the `att_live_...` key once at\n  `https://attester.dev/credits/claim?session_id=cs_...`, and set\n  `ATTESTER_API_KEY=att_live_...` in the server env. Every paid call\n  deducts from the balance. Check it at\n  `GET https://attester.dev/credits/balance` with the key.\n  (`CREDITS_API_KEY` still works as an alias.) The free oracle tools honor\n  the key too: the demo routes skip the daily quota for it and never\n  charge.\n- **x402 (agents with wallets):** set `BUYER_PRIVATE_KEY` to a Base wallet\n  with USDC. The wrapper pays per call automatically (402, sign, retry)\n  and sends the wallet address as `X-Payer`, which keys the paid\n  endpoints' free quotas.\n\nWithout any key, the paid endpoints answer HTTP 402 with payment terms in\nthe body.\n\n## Agent skill bundle (`skills/attester`)\n\nThe same API, packaged as an Agent Skill so agent configs load it as a\ndefault tool: when-to-use rules, exact curl per endpoint (the keyless\n`/demo/v1/*` free path for oracle checks, `X-Payer` free quotas for the\nrest), verdict reading, and receipt verification.\n\nInstall paths:\n\n```bash\n# Claude Code\n/plugin marketplace add maminihds/attester-mcp\n\n# skills.sh CLI (Claude Code, Cursor, Codex, 30+ agents)\nnpx skills add maminihds/attester-mcp\n\n# OpenClaw (manifestless Claude bundle)\nopenclaw plugins install https://github.com/maminihds/attester-mcp\n```\n\nOr copy `skills/attester/` into `~/.claude/skills/` manually. The bundle\nhas a helper (`skills/attester/scripts/call.py`, stdlib + httpx) and two\nworked transcripts in `skills/attester/examples/`.\n\n## Install from source\n\n```bash\npip install -r requirements.txt\npython server.py            # stdio (default, for agents)\npython server.py --http     # streamable-http on :8100\n```\n\nEnvironment variables:\n\n- `SERVER_URL`: API base URL, defaults to `https://attester.dev`.\n- `ATTESTER_API_KEY`: prepaid credits key (`att_live_...`), optional.\n- `BUYER_PRIVATE_KEY`: Base wallet for x402 payment, optional.\n\n## Example clients\n\n`examples/plain_python.py`: direct x402-paid call with the official SDK.\n`examples/langchain_example.py`: LangChain tool wrapper.\n\n## Links\n\n- Site: https://attester.dev\n- OpenAPI: https://attester.dev/openapi.json\n- llms.txt: https://attester.dev/llms.txt\n- Directory listing: https://x402-list.com/services/attester-verification-oracle-verified-research\n",
  "bytes": 5272,
  "sha": "bcc97f8915c056d5b023240b9e502087ce2e21503554860d88b93110097413b9",
  "repo_slug": "maminihds/attester-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_maminihds_attester_mcp_6645f9f6/readme"
}