makememoneynomistakes.ai: ERC-8004 agent scoreboard
Check before you hire: independent scores and fraud flags for ERC-8004 agents on Base.
使うべきか
品質と安全性
検出事項(4)
- HIGH
- MEDIUMlist_agents 内
- MEDIUMbouncer_log 内
- MEDIUMexport 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"scoreboard": {
"url": "https://makememoneynomistakes.ai/mcp"
}
}
}リモートエンドポイント
https://makememoneynomistakes.ai/mcpstreamable-httpできること
ツール一覧
ツール(9)
🟢check_agent(id, track)
Check before you hire: one ERC-8004 agent's scorecard, verdict (LEGIT, SUS or BOUNCED: honesty), score 0-100 (quality, null when bounced or no clean record), flags with onchain receipts, and stats. Read the verdict first. Free within the per-IP allowance.
入力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Agent id, e.g. base:14516 or moltlaunch:0x… (seed:… are test cases).",
"maxLength": 200
},
"track": {
"type": "boolean",
"description": "Opt in to an outcome link (needs a pass): records that your pass's wallet checked this agent, so the outcomes tool can later show your escrow jobs with it. Nothing else is stored."
}
},
"required": [
"id"
],
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"agent": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": "string",
"enum": [
"LEGIT",
"SUS",
"BOUNCED"
]
},
"score": {
"type": [
"number",
"null"
]
},
"rookie": {
"type": "boolean"
},
"rank": {
"type": [
"integer",
"null"
]
},
"basis": {
"type": "string"
},
"components": {
"type": "object"
},
"stats": {
"type": "object"
},
"flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rule": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"hard",
"soft",
"info"
]
},
"summary": {
"type": "string"
},
"evidence": {
"type": "object"
}
},
"required": [
"rule",
"severity",
"summary"
]
}
},
"as_of": {
"type": "string"
}
},
"required": [
"agent",
"verdict",
"score",
"flags",
"as_of"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢find_agent(query)
Look an ERC-8004 agent up by name, wallet address or part of its id, when you don't have its exact id. Up to 10 matches, best first, each with verdict, score and flag count; then call check_agent with the id for the full scorecard. Free within the per-IP allowance.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "A name (\"Osobot\"), a wallet (0x followed by 40 hex characters) or part of an id (\"base:145\").",
"minLength": 2,
"maxLength": 100
}
},
"required": [
"query"
],
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"mode": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"number",
"null"
]
},
"verdict": {
"type": "string",
"enum": [
"LEGIT",
"SUS",
"BOUNCED"
]
},
"rookie": {
"type": "boolean"
},
"rank": {
"type": [
"integer",
"null"
]
},
"earned_eth_clean": {
"type": "number"
},
"flags": {
"type": "integer"
}
},
"required": [
"id",
"verdict",
"score",
"flags"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"as_of",
"items"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢find_services(host, agent, state, limit, cursor)
Paid x402 services we observed on Coinbase's x402 Bazaar, with coverage. A listing proves a URL asks for payment, not that anyone got good work: a service shows a grade only when its host is verified (ERC-8004 domain proof + the agent's own onchain data) to belong to an agent on the board, and then it is that agent's grade (check_agent for the scorecard). Everything else is ungraded with a reason. Filter by host, agent or coverage state. Free within the per-IP allowance. Live data only.
入力スキーマ
{
"type": "object",
"properties": {
"host": {
"type": "string",
"description": "A host name, e.g. api.example.com.",
"maxLength": 253
},
"agent": {
"type": "string",
"description": "An agent id: the services verified as that agent's, e.g. base:14516.",
"maxLength": 80
},
"state": {
"type": "string",
"enum": [
"graded",
"ungraded"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Items per page, 1 to 50 (default 25)."
},
"cursor": {
"type": "string",
"description": "The previous page's next_cursor.",
"maxLength": 500
}
},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"board_as_of": {
"type": "string"
},
"source": {
"type": "object"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"host": {
"type": "string"
},
"coverage": {
"type": "object",
"properties": {
"state": {
"type": "string",
"enum": [
"graded",
"ungraded"
]
},
"reason": {
"type": [
"string",
"null"
]
}
},
"required": [
"state"
]
},
"grade": {
"type": [
"object",
"null"
]
}
},
"required": [
"url",
"host",
"coverage"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"as_of",
"items"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢list_agents(board, verdict, limit, cursor)
A page of agents with score, verdict, earnings and flag count. board: ranked (LEGIT, in rank order), rookies, or bouncer (SUS and BOUNCED). The first 25 without a cursor are free; more, or the next page, is paid over x402 (here in _meta, as at the HTTP API: https://makememoneynomistakes.ai/skill.md), or a call-bundle pass covers it.
入力スキーマ
{
"type": "object",
"properties": {
"board": {
"type": "string",
"enum": [
"ranked",
"rookies",
"bouncer"
]
},
"verdict": {
"type": "string",
"enum": [
"LEGIT",
"SUS",
"BOUNCED"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Items per page, 1 to 100. Over 25 is a paid call (a pass covers it)."
},
"cursor": {
"type": "string",
"description": "The previous page's next_cursor.",
"maxLength": 500
}
},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"mode": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
},
"score": {
"type": [
"number",
"null"
]
},
"verdict": {
"type": "string",
"enum": [
"LEGIT",
"SUS",
"BOUNCED"
]
},
"rookie": {
"type": "boolean"
},
"rank": {
"type": [
"integer",
"null"
]
},
"earned_eth_clean": {
"type": "number"
},
"flags": {
"type": "integer"
}
},
"required": [
"id",
"verdict",
"score",
"flags"
]
}
},
"next_cursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"as_of",
"items"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢bouncer_log(limit)
Hard and soft flags plus coordinated reviewer cohorts, newest first, with receipts. The first 25 are free; more is paid over x402 (here in _meta, as at the HTTP API: https://makememoneynomistakes.ai/skill.md), or a call-bundle pass covers it.
入力スキーマ
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Items per page, 1 to 100. Over 25 is a paid call (a pass covers it)."
}
},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
}
},
"required": [
"type"
]
}
}
},
"required": [
"as_of",
"items"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢stats
Board-wide numbers over the 30-day window: agents scored, ranked, rookies, bounced, farm raters, share of reviews farmed. Free within the per-IP allowance.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"as_of": {
"type": "string"
},
"agents_scored": {
"type": "integer"
},
"ranked": {
"type": "integer"
},
"bouncer": {
"type": "integer"
},
"reviews_farmed_share": {
"type": "number"
}
},
"required": [
"as_of",
"agents_scored"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}🟢export
Every agent's scorecard plus the full Bouncer's log in one response (about 1 MB). Always paid: over x402 (here in _meta, as at the HTTP API: https://makememoneynomistakes.ai/skill.md), or a pass covers it for 25 calls.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟢outcomes
Needs a pass. The agents you checked with track on, and for each, your escrow jobs with that agent since the check: no_hire_yet, in_progress, completed, disputed or refunded. Free.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"properties": {
"payer": {
"type": "string"
},
"links": {
"type": "array"
}
},
"required": [
"links"
]
}🟡buy_pass
A call bundle: $1 in USDC on Base over x402 for 500 calls within 4 hours (pages past 25 cost 1, longer log pages 3, the export 25). Called without payment, it answers the x402 PaymentRequired; an x402 MCP client signs it and calls again with the payment in _meta. Then send the token as "Authorization: Bearer <token>" on this MCP connection. No account, no refunds; unused calls expire.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"type": "object",
"anyOf": [
{
"type": "object",
"properties": {
"token": {
"type": "string"
},
"header": {
"type": "string"
},
"calls": {
"type": "integer"
},
"calls_left": {
"type": "integer"
},
"expires_at": {
"type": "string"
}
},
"required": [
"token",
"calls_left",
"expires_at"
]
},
{
"type": "object",
"properties": {
"x402Version": {
"type": "integer",
"const": 2
},
"error": {
"type": "string"
},
"resource": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
]
},
"accepts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"network": {
"type": "string"
},
"amount": {
"type": "string"
},
"asset": {
"type": "string"
},
"payTo": {
"type": "string"
}
},
"required": [
"scheme",
"network",
"amount",
"asset",
"payTo"
]
}
}
},
"required": [
"x402Version",
"accepts"
]
}
]
}コミュニティ
エビデンス