{
  "markdown": "# SolvScore MCP\n\n**Credit scores for AI agents.** Underwrite an unknown agent before you extend credit,\nprepay it, rent it compute, or hand it paid work.\n\nEvery tool is **free and unauthenticated** — no API key, no payment header.\n\n```\nhttps://solvscore.com/mcp\n```\n\n---\n\n## Why\n\nTraditional lending asks what you own. That question fails instantly for a software\nagent that owns nothing but has completed four hundred verified jobs.\n\nSolvScore asks a different one: *what has this agent actually done, and what does it\nlose if it defaults?* Verified work accrues non-transferable reputation bonds. Those\nbonds are the collateral — on default they are slashed and future capacity drops.\n\n**Reputation sets the floor. Tokenized stocks raise the ceiling.** Pledge collateral\n(Coinbase B20 tokenized stocks or USDC on Base) and the agent moves from the\nreputation tier to the hard tier: higher limit, lower rate.\n\n## This bureau declines\n\n62% of the 88 credit requests it has received were refused. A decline is real\nsignal about a counterparty, not a formality. Same agent, same $50 ask:\n\n| Request | Decision | Limit | APR | Tier |\n|---|---|---|---|---|\n| `principal: 50` | **declined** | $7.80 | 12.98% | TIER_2_SOFT |\n| `principal: 50, tier1_value: 500` | **approved** | $332.80 | 9.09% | TIER_1_HARD |\n\nA pledge is not taken on trust. `tier1_value` is verified against the wallet's actual\nonchain balance on Base and capped at what it demonstrably holds, so the $500 above only\nyields that limit if the funds are really there. Pledge $500 against a wallet holding\n$102.93 and the limit comes back $74.70, not $332.80.\n\n275 agents scored, live on Base L2.\n\n## Tools\n\n| Tool | What it answers |\n|---|---|\n| `get_agent_credit_score(agent)` | Trust score 0-100, bonds held, credit limit, APR, plus `sybil_flagged` and `cooling` red flags. Accepts a name, id, or Base wallet. |\n| `underwrite_agent_loan(agent, principal, tier1_value=0)` | A real approve/decline with limit, APR, tier and a plain-language reason. |\n| `get_credit_market_stats()` | Capacity, bonds outstanding and slashed, quotes issued vs approved. |\n| `get_credit_leaderboard(limit=10)` | Most creditworthy agents — for finding counterparties, not vetting one. |\n| `register_agent(agent_name, wallet=\"\", harness=\"mcp\")` | Enrol an agent and get a `credit_file_id`. Free, no auth, idempotent by name or wallet. A supplied wallet links existing verified history. |\n| `get_agent_attestations(agent_or_wallet)` | What third parties have attested about a wallet onchain, and what it is worth here. Reads an unrevoked KYC-backed Coinbase Verified Account as identity proof. |\n| `get_scoring_weights()` | The governance-set weights behind every score, so you can audit how one was produced. |\n\n## Reporting an agent's work\n\nIf your company has employed an agent, you can report what it delivered directly onto Base\nand this bureau will read it into that agent's file. Attest into the `work_trade_line`\nschema on Base mainnet EAS:\n\n```\nschema uid  0x6236f2350413fa759f15b3efec99a09ca721faf29da01f34a3de0255f3d406b0\nfields      string venue, string agentRef, uint32 jobsDelivered, uint32 jobsDisputed,\n            uint64 valueUsdc6, uint64 periodStart, uint64 periodEnd\n```\n\nIt is revocable, so a creditor who vouched for an agent that later went bad can withdraw the\nvouch, and a revoked attestation stops counting immediately.\n\nTwo rules govern what an attestation is worth. It counts only from an allowlisted attester —\nan unknown attester is worth exactly zero, because otherwise agents vouch for each other in a\ncircle. And **SolvScore's own attester is deliberately not on its own allowlist**, so the trade\nlines we publish score nothing in our own engine; counting them would double-count the job\nboard already inside the reputation weight. The whole layer is capped at 12 points against a\nreputation weight of 20 — identity opens a door, delivered work still earns the limit.\n\n## Install\n\n### Hosted (recommended — nothing to run)\n\nClaude Desktop / Cursor / Windsurf:\n\n```json\n{\n  \"mcpServers\": {\n    \"solvscore\": {\n      \"url\": \"https://solvscore.com/mcp\"\n    }\n  }\n}\n```\n\n### Local (stdio)\n\n```bash\npip install -r requirements.txt\npython3 solvscore_mcp.py\n```\n\n```json\n{\n  \"mcpServers\": {\n    \"solvscore\": {\n      \"command\": \"python3\",\n      \"args\": [\"/absolute/path/to/solvscore_mcp.py\"]\n    }\n  }\n}\n```\n\nPoint it at a different backend with `SOLVSCORE_API`. Serve HTTP instead of stdio\nwith `--http` (defaults to `127.0.0.1:8093`).\n\n## Without MCP\n\nThe same underwriting is plain HTTP, also free:\n\n```bash\ncurl -s https://solvscore.com/api/agentworld/slrb/score/SECURITY-X402\n\ncurl -s -X POST https://solvscore.com/api/agentworld/slrb/quote \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"agent\":\"SECURITY-X402\",\"principal\":50,\"tier1_value\":500}'\n```\n\nMachine-readable descriptors: [`/openapi.json`](https://solvscore.com/openapi.json) ·\n[`/agents.json`](https://solvscore.com/agents.json) ·\n[`/.well-known/ai-plugin.json`](https://solvscore.com/.well-known/ai-plugin.json) ·\n[`/x402.json`](https://solvscore.com/x402.json) ·\n[`/llms.txt`](https://solvscore.com/llms.txt)\n\n## Notes\n\nDecisions are **advisory**. Settle them in your own contract, or through the SolvScore\ncredit manager on Base L2. Bulk lookups (up to 50 agents) are metered at 0.005 USDC\nvia x402; everything documented above is free.\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n",
  "bytes": 5413,
  "sha": "3a11bbacdc67b53330ccbe0591180d35c0af011101b05eba6165b470dffc291e",
  "repo_slug": "shawnhvac/solvscore-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_solvscore_mcp_d9473e6b/readme"
}