GoldenMCP

GoldenMCP

A Web3 MCP evaluation marketplace enabling standardized Inspect evals with Walrus-backed results, ENS identity, Chainlink attestation, and x402 nanopayments on Arc.

Category
访问服务器

README

GoldenMCP

Web3 MCP evaluation marketplace: standardized Inspect evals, Walrus-backed results, ENS identity, Chainlink attestation, and x402 discovery on Arc.

Evals run against live Web3 MCP servers, get scored on data accuracy / tool-path / token efficiency, and the results are published to Walrus, attested by Chainlink Confidential AI, and written onchain to an MCP registry on Arc. Agents then pay a small USDC micropayment (x402) to look up the best-scoring MCP for a capability.

Bounties — find your code

Each bounty's integration lives in a small number of files. Links go straight to the relevant source on main.

ENS — MCP discovery via ENSIP-25/26

ENS names are the public identity for each scored MCP; text records point at Walrus eval blobs and the onchain registry, resolved live (no hard-coded names).

What Code
ENS text-record resolver (resolve_text, resolve_agent_context, resolve_eval_blob, resolve_mcp_endpoint) packages/identity/src/goldenmcp_identity/registry.py
Registry SDK (ens_name field, register/lookup) packages/identity/
Live ENS resolver UI apps/web/src/app/ens/page.tsx

Chainlink — CRE eval orchestration + Confidential AI attestation

A Chainlink CRE workflow orchestrates the whole pipeline: it calls the eval-runner to score an MCP, submits the score manifest to Confidential AI (CAI) for attestation, publishes to Walrus, then writes the score + attestation onchain.

The attestation is the completed TEE inference — there is no synthetic tx hash. The pipeline records the CAI inference_id and the bytes32 transcript hash (the enclave's response_digest, falling back to sha256(output)) on-chain via recordAttestation, mirroring Chainlink's official undercollateralized-loan example.

What Code
CRE pipeline (eval → CAI attest → Walrus → Arc) workflows/eval-pipeline/src/pipeline.ts
CRE workflow entrypoint + cron trigger workflows/eval-pipeline/src/workflow.ts
CAI submit/poll + attestation parsing (caiAttest, parseCaiAttestation) workflows/eval-pipeline/src/pipeline.ts
eval-runner HTTP service CRE calls packages/eval-runner/
CRE workflow config workflows/eval-pipeline/workflow.yaml

Arc — x402 USDC nanopayments for MCP lookup

The marketplace MCP is x402-gated: lookups return HTTP 402 with a USDC price until a payment header is present. Scores are written to an ERC-8004-inspired registry deployed on Arc, where USDC is the native gas token.

What Code
x402-gated lookup server (402 challenge, price ladder, settlement) packages/marketplace-mcp/src/goldenmcp_marketplace/app.py
MCP registry contract (register, updateCapabilityScore, recordAttestation) contracts/mcp-registry/src/MCPRegistry.sol
Arc deploy script contracts/mcp-registry/script/Deploy.s.sol
x402 lookup agent demo demo/lookup_agent.py
CRE → Arc registry write (writeToArc) workflows/eval-pipeline/src/pipeline.ts

Sui / Walrus — eval blob storage (not a bounty)

Walrus is the Sui-native decentralized blob store. Every score manifest and raw Inspect .eval log is written to Walrus testnet via its publisher/aggregator HTTP API, and ENS + registry records point at the resulting walrus://<blobId>. Listed here for completeness even though Sui is not a bounty.

What Code
Walrus publisher/aggregator client (upload, download, *_json) packages/walrus-client/src/goldenmcp_walrus/client.py
walrus:// fsspec adapter + index (Inspect View log dir) packages/walrus-client/
Web demo Walrus manifest fetch apps/web/src/lib/data.ts

Workflow diagrams

Eval pipeline (Chainlink CRE)

A CRE cron trigger fetches the benchmark list, then runs each MCP/capability through scoring, attestation, storage, and the onchain write. The eval-runner calls are async: the pipeline kicks off a run and polls until it reaches scored / published. CAI and Arc steps are skipped when their credentials are absent, so the pipeline is simulatable without secrets.

flowchart TD
    Cron([CRE cron trigger]) -->|GET /benchmarks| Runner[eval-runner HTTP]
    Runner -->|benchmark list| Loop[runPipeline per benchmark]

    Loop -->|"POST /eval/inspect, then poll GET /eval/runs/:id until scored"| Score[score manifest]
    Runner -.->|runs Inspect eval| MCP[(Web3 MCP server)]

    Score --> HasCAI{CAI configured?}
    HasCAI -->|yes| CAI[Confidential AI TEE<br/>POST /v1/inference + poll/callback]
    HasCAI -->|no| Pub
    CAI -->|inference_id + transcript_hash| Pub

    Pub["POST /eval/publish, then poll until published"] --> Walrus[(Walrus: manifest + raw .eval log)]
    Walrus --> HasReg{registry set?}
    HasReg -->|yes| Arc[writeToArc<br/>updateCapabilityScore + recordAttestation]
    HasReg -->|no| Done([done])
    Arc --> Registry[(MCPRegistry on Arc)]
    Registry --> ENS[ENS records point at Walrus + registry]

x402 lookup + payment (Arc)

An agent asks the marketplace for the best MCP for a capability. The first call returns a 402 with a USDC price (it scales with min_score); the agent pays in USDC on Arc and retries with an X-PAYMENT header. The marketplace then builds a score index from the registry + Walrus and returns the top match.

sequenceDiagram
    participant Agent as lookup_agent.py
    participant Market as marketplace-mcp (x402)
    participant Reg as MCPRegistry (Arc)
    participant Wal as Walrus

    Agent->>Market: POST /tools/lookup (capability, min_score)
    Market-->>Agent: 402 Payment Required (price_usdc, payee, network arc-testnet)
    Note over Agent: pay USDC on Arc
    Agent->>Market: POST /tools/lookup + X-PAYMENT header

    Note over Market: _load_index builds the score index
    Market->>Reg: list_agent_ids + getCapabilityScore per capability
    Market->>Wal: download_json(manifest blob)
    Market->>Market: filter by min_score, sort by composite

    Market-->>Agent: results[] top MCP (ens_name, mcp_endpoint, composite,<br/>attestation_id, transcript_hash) + payment_settled

Setup

Prerequisites

  • Python 3.12, managed with uv (no pip)
  • bun for the web app and CRE TypeScript workflow
  • foundry (forge, cast) for contracts and wallet generation
  • An LLM API key (e.g. Anthropic) and reachable Web3 MCP endpoints

Install

# Python toolchain + workspace
uv python install 3.12
uv sync --all-packages

# Credentials — copy and fill in
cp .env.example .env

Or bootstrap a demo machine (generates a cast wallet, sets MCP URLs, runs uv sync):

chmod +x scripts/setup_eval_env.sh
./scripts/setup_eval_env.sh          # full bootstrap
./scripts/setup_eval_env.sh --check  # prerequisites only

Eval chain defaults: Base (8453) for quote evals; Fraxtal (252) for odos_swap. Fund EVM_EVAL_ADDRESS on Base (and Fraxtal for Odos swaps). ENS identity uses Sepolia separately.

Run

# Unit tests
uv run pytest packages/ -v

# Run an eval against a live MCP (needs LLM key + MCP endpoints in .env)
uv run inspect eval goldenmcp/lifi_quote --model anthropic/claude-3-5-haiku-20241022
uv run inspect eval goldenmcp/odos_quote --model anthropic/claude-3-5-haiku-20241022

# eval-runner HTTP service (the API the CRE workflow calls)
uv run python -m goldenmcp_eval_runner

# Marketplace MCP (x402-gated lookup)
uv run python -m goldenmcp_marketplace

# x402 lookup agent demo (needs Arc wallet + x402)
uv run python demo/lookup_agent.py --capability quote --min-score 0.9

# Web demo (leaderboard, eval viewer, ENS resolver)
cd apps/web && bun install && bun run dev

Walrus + Inspect View

GoldenMCP stores eval logs on Walrus with an indexed walrus:// path (S3-style keys over content-addressed blobs). After the first upload, set WALRUS_INDEX_BLOB_ID in .env from the walrus_index_blob_id field printed by post_eval_walrus.py.

# Upload scored eval + raw Inspect log bytes
uv run python scripts/post_eval_walrus.py --mcp lifi --capability quote --log ./logs/your-run.json

# List logs from Walrus (same as s3:// log-dir)
uv run inspect view start --log-dir walrus://evals/goldenmcp

Inspect View requires native .eval / JSON log files at indexed paths — not score-manifest JSON alone.

Scoring

Dimension Weight
DataScore 0.45
PathScore 0.35
TokenEfficiency 0.20

Binary fail (composite 0.0) on prompt injection, disallowed tools, or policy violations.

See docs/scoring.md.

Structure

packages/inspect-web3     Inspect tasks + scorers
packages/walrus-client    walrus:// fsspec + HTTP client
packages/marketplace-mcp  x402 MCP server
packages/identity         ENS + registry SDK
packages/eval-runner      HTTP service for CRE
apps/web                  Leaderboard, eval viewer, ENS resolver
workflows/eval-pipeline   Chainlink CRE workflow
contracts/mcp-registry    ERC-8004-inspired MCP registry (Arc)

Architecture overview: docs/architecture.md. All implementation plans: docs/plans/.

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选