{
  "markdown": "# verdict-finance-mcp\n\n[Verdict](https://www.verdict.finance) is the due-diligence house for DeFi:\nindependent ratings, rating-priced cover, security testing and continuous\nmonitoring, plus a security partner marketplace for audits, monitoring and pen\ntesting, across seven entity types. This\n[Model Context Protocol](https://modelcontextprotocol.io) server lets AI agents\ncall that house directly.\n\n**Live today: Ratings.** Letter grade (AAA to D) plus a composite score\n(0 to 100) built from 300+ criteria across the full dependency graph, for\nprotocols, chains, tokens, oracles, vaults, organisations and bridges. Plus\npost-quantum readiness for chains, and a live feed of DeFi hack incidents\n(confirmed by default).\n\nKeyless by default. It wraps Verdict's live anonymous API, so there is no signup\nand no API key. Each user runs it locally and queries from their own IP. Bring\nyour own key if you want the per-domain breakdown behind a grade (see below).\n\n## Install\n\nAdd to your MCP client config (Claude Desktop: `claude_desktop_config.json`;\nClaude Code: `.mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"verdict-finance\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"verdict-finance-mcp\"]\n    }\n  }\n}\n```\n\nThat is it. No key needed to read ratings. (Requires Node 20+.)\n\n## Tools\n\n| Tool | What it does |\n| --- | --- |\n| `search_ratings({ query, entity_type? })` | Find entities by name or keyword. Omit `entity_type` to search all 7 types at once. |\n| `get_rating({ entity_type, identifier })` | Letter grade, composite score and public metadata for one entity, by slug (`aave-v4`, `ethereum`) or UUID. Includes dependency-drag provenance when it shaped the grade. |\n| `list_ratings({ entity_type, category?, chain?, limit? })` | Browse a set, best-rated first (default 25, cap 50). Category filters are lowercase, e.g. `lending`. |\n| `quantum_readiness({ chain? })` | Post-quantum cryptographic readiness for chains (QRI 0-100, readiness band, migration stage, hybrid-signature status), data by LayerQu. Omit `chain` for the full 72+ chain league table, including chains Verdict has not rated. |\n| `get_recent_incidents({ since?, slug?, min_status?, limit? })` | DeFi hack incidents, newest first (default 25, cap 200). Confirmed by default; `min_status: 'corroborated'` opts into multi-source leads that have not yet reached confirmation. Each is corroborated by more than one public hack-reporting source. Poll with `since`; filter to one rated protocol with `slug`. |\n| `get_methodology({})` | The published methodology: criteria counts and domains per entity type, and the AAA to D grade scale with the composite band each grade needs. |\n| `get_rating_breakdown({ entity_type, slug })` | The per-domain scores behind one entity's grade, plus its intrinsic (pre-dependency) pair. Needs an API key; see [Bring your own key](#bring-your-own-key). |\n| `request_coverage({ entity_name, entity_type, contact_email, note? })` | Ask Verdict to rate an entity it does not cover yet. Returns a reference id. The resulting rating is public either way; requesting coverage never buys or moves a grade. |\n\nEvery rating response ends with an attribution line linking back to the rating\non verdict.finance.\n\n## Bring your own key\n\nRatings are free to read: the tools above work with no key at all. Set\n`VERDICT_API_KEY` and the server authenticates every call, which adds\n`get_rating_breakdown` (per-domain scores). Keys come from the Verdict\ndashboard at [verdict.finance](https://www.verdict.finance); plans are at\n[verdict.finance/pricing](https://www.verdict.finance/pricing).\n\n```json\n{\n  \"mcpServers\": {\n    \"verdict-finance\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"verdict-finance-mcp\"],\n      \"env\": { \"VERDICT_API_KEY\": \"your-key\" }\n    }\n  }\n}\n```\n\nWithout the variable the server behaves exactly as it always has: no header is\nsent, and nothing about the keyless path changes. The key is never logged,\nechoed, or included in tool output. Called without a key,\n`get_rating_breakdown` answers with where to get one rather than failing.\n\nAgent-native micropayment access (x402) is the announced direction. It is not\nshipped, and nothing here is behind a paywall today.\n\nQuantum-readiness data is provided by\n[LayerQu](https://layerqu.com/dashboard/) and is companion data only. It never\nfeeds a Verdict grade; chain ratings simply carry an extra LayerQu line when a\nreading is available.\n\nThe incident feed carries hack incidents across DeFi (confirmed by default),\nincluding ones at protocols Verdict does not rate. Two things are worth\nknowing when reading it. Matching to a rated protocol happens when an incident\nis received, and re-runs when an incident escalates and its payload improves,\nso matched_protocol reads as of the incident's current tier. It is still never\nretroactive when Verdict's own coverage grows. And an incident is a signal to\nlook, never an automatic downgrade: a matched entity may be flagged under\nreview, but re-rating is always a human decision.\n\n### Example prompts\n\n- *\"What does Verdict rate Aave?\"* runs `get_rating({ entity_type: \"protocol\", identifier: \"aave-v4\" })`\n- *\"Search Verdict for Chainlink.\"* runs `search_ratings({ query: \"chainlink\" })`\n- *\"List the chains Verdict rates.\"* runs `list_ratings({ entity_type: \"chain\" })`\n- *\"Is Ethereum quantum-ready?\"* runs `quantum_readiness({ chain: \"ethereum\" })`\n- *\"Any DeFi hacks this week?\"* runs `get_recent_incidents({ limit: 10 })`\n- *\"How does Verdict score a bridge?\"* runs `get_methodology({})`\n- *\"What dragged Aave's grade down?\"* runs `get_rating_breakdown({ entity_type: \"protocol\", slug: \"aave-v4\" })`\n- *\"Get my protocol rated.\"* runs `request_coverage({ entity_name: \"...\", entity_type: \"protocol\", contact_email: \"...\" })`\n\n### Example output\n\n```\nAave V4 — BBB (78/100) · protocol · chains: Ethereum · categories: lending · https://www.verdict.finance/products/ratings#protocol-aave-v4\n\nRating by Verdict — https://www.verdict.finance/products/ratings#protocol-aave-v4 · Methodology + deeper analysis at https://www.verdict.finance\n```\n\nEntities that are not yet rated render as `unrated`. When a rating was pulled\ndown by a weak dependency, the response says which one.\n\n## The roadmap: the callable marketplace\n\nVerdict's diligence lifecycle is Assess, Rate, Cover, Secure, Monitor. Ratings\nare the first module agents can call. As the rest of the house becomes\ncallable, this server grows a module per product:\n\n- **Cover**: rating-priced parametric cover on rated protocols.\n- **Audit Marketplace**: hand over a repo, receive blind bids from vetted audit\n  firms.\n- **Monitoring Marketplace**: watchlists, live alerts and webhooks on rated\n  entities.\n- **Pen Test Marketplace**: engage penetration tests through vetted partner\n  firms, scoped and priced per engagement by the partner.\n\nThe rating function stays structurally separate from what the marketplace\nsells: buying a service never moves a grade.\n\nTool names are module-scoped (`search_ratings`, `get_rating`, `list_ratings`)\nso new modules arrive without breaking existing agents.\n\n## How it works\n\nVerdict's read API is anonymous and rate-limited per IP (120/min, 20k/day).\nThis server:\n\n- lists and looks up entities via `GET /{type}s` and `GET /{type}s/{identifier}`,\n- fetches each entity's latest published scorecard\n  (`GET /{type}s/{id}/scorecards`) for the grade + composite score,\n- reads the published methodology from `GET /methodology`,\n- reads per-domain scores from `GET /{type}s/{slug}/domains` (the one route that\n  needs a key), and\n- submits coverage requests to `POST /contacts`, the same public endpoint the\n  \"Get rated\" form on verdict.finance posts to.\n\nThe API base is `https://api.verdict.finance/api/v1` and can be overridden with\nthe `VERDICT_API_BASE` environment variable (used for testing). Set\n`VERDICT_API_KEY` to authenticate; leave it unset to stay keyless. The full API\nsurface is documented at\n[api.verdict.finance/openapi.json](https://api.verdict.finance/openapi.json).\n\nRate limits and outages are handled gracefully. Tools return a friendly text\nmessage, never a crash.\n\n## Attribution and trademark\n\nRatings and methodology are © Verdict. This tool surfaces the public ratings\nand the published methodology; the deeper analysis lives at\n[verdict.finance](https://www.verdict.finance). The code is Apache-2.0; the\nVerdict name and branding are not licensed by it.\n\n## Development\n\n```bash\nnpm install\nnpm run build     # tsc -> dist/\nnpm test          # vitest (unit tests, HTTP client mocked)\n\n# optional live smoke against the real API:\nVERDICT_LIVE_SMOKE=1 npx vitest run test/live.smoke.test.ts\n\n# the smoke's one keyed case (get_rating_breakdown) skips unless a key is set:\nVERDICT_LIVE_SMOKE=1 VERDICT_API_KEY=... npx vitest run test/live.smoke.test.ts\n```\n\n## License\n\nApache-2.0. Copyright 2026 Verdict Capital.\n",
  "bytes": 8845,
  "sha": "5755d54be39003ecbff810ec714b22632cc1d119bef12f7efdd53056dec348c3",
  "repo_slug": "verdict-capital/verdict-finance-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_charles_verdict_verdict_financ_95a6fa5a/readme"
}