Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Signed delivery verdicts for agent payments, Polymarket settlement risk and whale data, via x402.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
BUYER_PRIVATE_KEY, PREDGE_KEY, X402_NETWORK, MAX_PRICE_USD, PREDGE_BASE_URL, SOLANA_BUYER_SECRET, X402_SOLANA_NETWORK, SOLANA_RPC_URLValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"whale-data": {
"command": "npx",
"args": [
"-y",
"@predge/whale-data-mcp"
],
"env": {
"BUYER_PRIVATE_KEY": "your-value",
"PREDGE_KEY": "your-value",
"X402_NETWORK": "your-value",
"MAX_PRICE_USD": "your-value",
"PREDGE_BASE_URL": "your-value",
"SOLANA_BUYER_SECRET": "your-value",
"X402_SOLANA_NETWORK": "your-value",
"SOLANA_RPC_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add whale-data --env BUYER_PRIVATE_KEY=your-value --env PREDGE_KEY=your-value --env X402_NETWORK=your-value --env MAX_PRICE_USD=your-value --env PREDGE_BASE_URL=your-value --env SOLANA_BUYER_SECRET=your-value --env X402_SOLANA_NETWORK=your-value --env SOLANA_RPC_URL=your-value -- npx -y @predge/whale-data-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"whale-data": {
"command": "npx",
"args": [
"-y",
"@predge/whale-data-mcp"
],
"env": {
"BUYER_PRIVATE_KEY": "your-value",
"PREDGE_KEY": "your-value",
"X402_NETWORK": "your-value",
"MAX_PRICE_USD": "your-value",
"PREDGE_BASE_URL": "your-value",
"SOLANA_BUYER_SECRET": "your-value",
"X402_SOLANA_NETWORK": "your-value",
"SOLANA_RPC_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"whale-data": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@predge/whale-data-mcp"
],
"env": {
"BUYER_PRIVATE_KEY": "your-value",
"PREDGE_KEY": "your-value",
"X402_NETWORK": "your-value",
"MAX_PRICE_USD": "your-value",
"PREDGE_BASE_URL": "your-value",
"SOLANA_BUYER_SECRET": "your-value",
"X402_SOLANA_NETWORK": "your-value",
"SOLANA_RPC_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
X402_NETWORK envMAX_PRICE_USD envPREDGE_BASE_URL envX402_SOLANA_NETWORK envSOLANA_RPC_URL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account predgeAI, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: BUYER_PRIVATE_KEY, PREDGE_KEY, SOLANA_BUYER_SECRET
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.3.0) reached the registry 6 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, MemberVault MCP by usefulapi
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
List courses; add users to courses, remove course access or delete users in MemberVault.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
MCP server that exposes the Predge API at https://api.predge.io (signed delivery verdicts for AI-agent payments, Polymarket whale trades, smart-money signals, signed attestations, and free signed UMA settlement risk) as tools. Payment is handled under the hood: each paid tool call signs a USDC micropayment via an x402 client — the agent just calls the tool and gets data back. You supply a funded buyer key.
Defaults to Base mainnet (the live Predge API is mainnet-only). Paid tools
spend real USDC — typically $0.005–$0.03/call, hard-capped at
MAX_PRICE_USD($0.05 by default) *before* any money moves. Use a dedicated,
low-balance buyer wallet.
Free pilot key in a minute: https://predge.io/start (no card)
With the MCP server: claude mcp add predge-whale-data -e PREDGE_KEY=pdg_pilot_... -- npx -y @predge/whale-data-mcp (no wallet needed for the calls the key covers, see Optional: a Predge key below).
First call over plain HTTP: a signed delivery verdict for a paid agent call.
export PREDGE_KEY=pdg_pilot_... # from predge.io/start
curl -s https://api.predge.io/v1/verdicts \ -H 'content-type: application/json' \ -H "x-predge-key: $PREDGE_KEY" \ -d '{"job":{"endpoint":"https://api.example.com/v1/report","expected_content_type":"application/json","required_fields":["rows"]}, "delivery":{"status":200,"headers":{"content-type":"application/json"},"body":"{\"rows\":[1]}"}, "payment":{"amount_usd":0.25,"payer":"0xBuyer","payee":"0xMerchant"}}'
The response carries verdict (delivered / not_delivered / inconclusive), reason_codes, an ed25519 attestation and a verify_url. Docs: predge.io/docs#verdicts.
No key? Pay per call over x402 instead: the same request without x-predge-key answers 402 with the price ($0.05), payable in USDC by any x402 client.
Claude Code:
claude mcp add predge-whale-data \
-e BUYER_PRIVATE_KEY=0xYOUR_FUNDED_BASE_MAINNET_KEY \ -e X402_NETWORK=base \ -- npx -y @predge/whale-data-mcp
Claude Desktop / Cursor / any MCP client — add to the client's MCP config:
{
"mcpServers": { "predge-whale-data": { "command": "npx", "args": ["-y", "@predge/whale-data-mcp"], "env": { "BUYER_PRIVATE_KEY": "0xYOUR_FUNDED_BASE_MAINNET_KEY", "X402_NETWORK": "base" } } } }
That's it — the agent gets 25 tools (18 paid routes + 7 free tools: discovery, settlement risk, verdict re-read, verdict report, key status, Desk config, record verification). Discovery, settlement risk, verdict re-read and record verification need no key at all. No account; the buyer key pays USDC per call on Base or Solana. Fund it with a few dollars of USDC (the facilitator pays gas, so no ETH/SOL needed).
PREDGE_KEY)Set PREDGE_KEY and the server sends it as the x-predge-key header on every request:
predge_settlement_estimate) and delivery verdicts (predge_verdict) are free for 30 days, and predge_verdict_report returns your signed monthly report. After the window those calls answer 402 again; with a buyer key they then pay per call.predge_desk_config.claude mcp add predge-whale-data -e PREDGE_KEY=pdg_pilot_... -- npx -y @predge/whale-data-mcp
The key goes first: a call it covers never pays, even with a buyer key set. Without a key or a buyer wallet, a paid tool returns the API's 402 explanation (price, networks, how to pay, where to get a pilot key) instead of failing opaquely. The key is never logged and never copied into a tool result.
ElizaOS — add to your character file (via @fleek-platform/eliza-plugin-mcp):
{
"plugins": ["@fleek-platform/eliza-plugin-mcp"], "settings": { "mcp": { "servers": { "predge": { "type": "stdio", "command": "npx", "args": ["-y", "@predge/whale-data-mcp"], "env": { "BUYER_PRIVATE_KEY": "0xYOUR_FUNDED_BASE_MAINNET_KEY", "MAX_PRICE_USD": "0.05" } } } } } }
Set MAX_PRICE_USD to hard-cap spend — any call above it is refused before payment. Full integration guide (ElizaOS, Claude, raw x402 for non-MCP stacks, spend caps): https://predge.io/docs#whale-data
| Tool | Price | Returns | |||
|---|---|---|---|---|---|
predge_list_endpoints | free | API description + every endpoint with its price/schema (call first) | |||
predge_settlement_risk | free | Signed live UMA settlement risk for one Polymarket market, read from Polygon: UMA state, current proposal + challenge window, every dispute, UMA-vote status, bulletin-board updates, on-chain resolution, risk_level (ok\ | watch\ | caution\ | resolved), segment_dispute_rate, settlement_estimate_available. The settlement_estimate itself is paid: predge_settlement_estimate. The tool re-verifies the ed25519 signature and returns { verification, record }. Param: market (condition id, numeric market id, or slug). 60 req/min per IP |
predge_settlement_estimate | ~$0.02; free with a pilot key | Same signed settlement-risk record with settlement_estimate (statistic from 2026 Polymarket UMA disputes, not advice). GET /v1/settlement-risk/:market/estimate. Check settlement_estimate_available in the free record first. Returns { verification, record }. Param: market | |||
predge_verdict ⭐ | $0.05 / $0.50; free with a pilot key | Delivery verdict: was the paid job delivered? Send job (what was promised: endpoint, expected_content_type, json_schema, required_fields, max_latency_ms, expected_sha256…), delivery (evidence: status, headers, body or body_sha256, timing), payment (amount_usd, tx_hash, network, payer, payee), optional agent / provider_agent (id, version, operator, authorization_ref). payment.amount_usd < 1 → POST /v1/verdicts ($0.05), ≥ 1 → POST /v1/verdicts/large ($0.50; paying it over x402 needs MAX_PRICE_USD ≥ 0.5). Returns a signed verdict (delivered \ | not_delivered \ | inconclusive), per-check results, reason codes and a refund recommendation, as { verification, record } | |
predge_get_verdict | free | GET /v1/verdicts/:id: re-read a stored signed verdict, re-verified. Param: id (vrd_ + 24 chars) | |||
predge_verdict_report | free, needs PREDGE_KEY | GET /v1/verdicts/report: signed monthly dispute-handling report for the verdicts your key requested (counts, refund recommendations, reason codes, time to verdict, verdict ids). Params: month (YYYY-MM), merchant_id, limit, cursor, sample | |||
predge_key_status | free, needs PREDGE_KEY | GET /v1/me: your key's plan, quota and pilot expiry | |||
predge_desk_config | free, needs a Desk key | GET /v1/desk/config: watched wallets, alert targets (webhook, Telegram), plan status | |||
predge_verify_record | free | Offline check of any Predge signed record (predge-attest-v1): C(payload) == canonical, sha256(canonical) == content_hash, ed25519 signature, envelope_signature, and signer listed active in predge-keys.json. Param: record (JSON string) | |||
predge_whales_latest | ~$0.005 | Latest whale trades ≥$10k (15-min delay). Param: limit (1-100) | |||
predge_whale_market | ~$0.01 | 7-day whale activity for one market. Param: condition_id | |||
predge_signals_daily | ~$0.02 | 24h digest: top markets, net flow, largest bets | |||
predge_wallets_leaderboard | ~$0.01 | Wallets ranked by edge over resolved markets. Params: window (7d\ | 30d), limit | ||
predge_wallet_profile | ~$0.01 | Wallet score, win rates, categories, last 20 trades. Param: address | |||
predge_markets_movers | ~$0.005 | Largest YES-price moves. Param: window (1h\ | 6h\ | 24h) | |
predge_signals_consensus | ~$0.03 | Edge-verified smart-money net flow + direction per market | |||
predge_attest ⭐ | ~$0.02 | Flagship. Resolved-outcome attestation — the settled truth for a market (resolved, resolution, resolved_at). Optional side (yes\ | no) checks whether a past signal/win-rate claim was actually right. Params: condition_id, side | ||
predge_sports_attest ⭐ | ~$0.02 | Flagship. Ed25519-signed settled game outcome (winner, final score, completed) from ESPN, verifiable offline against Predge's published key. Optional winner (team abbr) → correct. Settle bets / prove a track record on tamper-evident truth. Leagues: nba, wnba, nfl, college-football, mlb, nhl, mls, epl, champions-league, laliga. Params: league, event_id, winner | |||
predge_bets_biggest | ~$0.005 | Top-20 largest single trades across all markets. Param: window (24h\ | 7d) | ||
predge_signals_daily_category | ~$0.01 | 24h digest scoped to one category. Param: category | |||
predge_signals_consensus_category | ~$0.02 | Consensus scoped to one category. Param: category | |||
predge_signals_market | ~$0.01 | Single-market smart-money verdict ("trust this move?"). Param: condition_id | |||
predge_wallet_history | ~$0.02 | Wallet trade history + running win-rate & PnL curve. Params: address, window (30d\ | 90d\ | all) | |
predge_wallets_compare | ~$0.02 | Compare 2-10 wallets side-by-side + market overlap. Param: addresses | |||
predge_market_history | ~$0.01 | Price/volume history for one market. Params: condition_id, window (7d\ | 30d\ | all) |
Every paid result includes a note with the on-chain settle tx. Not exposed as tools (raw x402/HTTP reaches them; see predge_list_endpoints): the /v1/markets/:id/edge polling pulse, the /v1/onchain/* routes, and the signed-calls / stakes / track-record routes. Paused routes (503 signed_wallet_outputs_paused) have no tool: the wallet track-record attestation /v1/wallets/:address/attest (the predge_wallet_attest tool was removed in 0.3.0), /v1/onchain/pm-activity, /v1/onchain/pm-flows and the free /v1/signal/:address.
Every Predge signed record carries an attestation envelope. The rule is published at data.predge.io/canonicalization.md: canonical is the payload as JSON with keys sorted at every level and no whitespace; content_hash = sha256(canonical); signature is ed25519 over the UTF-8 bytes of canonical; the signer must be an active key in https://api.predge.io/.well-known/predge-keys.json (current attestation kid 3b6551a6439b9bda; 13fa3d18a369e6c7 was revoked on 21 Oct 2026). src/verify.ts implements this with node:crypto only.
Paid tools need a funded key for at least one rail — Base (BUYER_PRIVATE_KEY) and/or Solana (SOLANA_BUYER_SECRET). Every paid route's 402 offers both networks; the client pays on whichever it holds a key for (cheapest when both). The facilitator pays the network fee on either rail — the wallet needs USDC only.
| Var | Default | Notes |
|---|---|---|
PREDGE_KEY | — | Optional. Pilot key (predge.io/start) or Desk key (predge.io/desk), sent as x-predge-key on every request. Never logged. See above. |
BUYER_PRIVATE_KEY | — | Funded Base-mainnet EVM key (0x…) for the Base rail. |
SOLANA_BUYER_SECRET | — | Optional. Funded Solana-mainnet key (64-number JSON array or base58) for the Solana rail. |
X402_NETWORK | base | Base network: base = mainnet (real USDC), base-sepolia only against a testnet deployment. |
X402_SOLANA_NETWORK | matches X402_NETWORK | solana (mainnet) or solana-devnet. |
| SOLANA_RPC_URL
Only the beginning is shown; read the rest in the repo