Built for HackQuest · Injective Global Cup 2026

The World Cup, wired into your agent —
and it pays for its own alpha.

The missing World Cup MCP server — live fixtures, scores, de-vigged consensus odds and the knockout bracket free; premium alpha bought and proven by the agent itself. wc_edge parses a real HTTP 402, checks its own spend budget, signs an EIP-3009 USDC authorization locally and cites the on-chain receipt on Injective. No human. No API keys.

Also: pitch deck · reference docs

0
MCP tools
0
Resources
0
Prompt
0
Vitest passing
per wc_edge call
[snapshot] WC-2026
  • QF NOR v ENG 3.70 / 3.70 / 1.89
  • QF ARG v SUI 1.72 / 3.65 / 6.00
  • SF FRA v ESP 2.44 / 3.30 / 3.35
  • R16 BRA 1–2 NOR
  • R16 MEX 2–3 ENG
  • R16 ARG 3–2 EGY
  • R16 SUI 4–3 COL
  • QF FRA 2–0 MAR
  • QF ESP 2–1 BEL
  • R16 USA 1–4 BEL

Programme notes

What it is

Your AI assistant is football-blind during the biggest event on earth — it can't see tonight's World Cup match, has no odds, and has no way to pay for premium data itself. CupOracle is a published Model Context Protocol server that fixes that: live FIFA World Cup 2026 fixtures, scores, consensus odds and the knockout bracket as free tools — plus wc_edge, a reference agent that pays 0.05 USDC via Injective x402 by itself (under a spend cap) and cites the on-chain receipt. It runs side by side with the Injective MCP server over stdio.

Match highlights

Watch the agent do it — 2 minutes, no cuts

Free tools fire, then wc_edge hits a real 402, gates it against the spend cap, signs the authorization and cites the receipt.

  youtu.be/FAI3_xZFTx0

Prefer YouTube directly? youtu.be/FAI3_xZFTx0

The squad sheet

8 tools · 2 resources · 1 prompt — over stdio

Seven tools are free and work with two free API keys — no wallet, no funds. One is the showpiece: the buyer-side Injective x402 client. MCP-Inspector-conformant in CI.

free

wc_fixtures

Fixtures for a day or the next upcoming window.

free

wc_live

Live score, minute and status for a match.

free

wc_odds

Consensus h2h odds + de-vigged implied probabilities.

free

wc_bracket

Knockout bracket state, Round of 16 → Final.

free

receipt_verify

Verifies a receipt on Injective EVM — block time, amount, payee.

free

wallet_fund_guide

CCTP runbook to fund the agent wallet — routed to the Injective MCP server's tools.

free

wc_spend_ledger

The agent's own purchase history — entries, receipts, session total vs cap.

resource · wc://bracket resource · wc://ledger prompt · analyze-match(matchId)

The set piece

The agent pays itself — the autonomous x402 loop

A buyer-side x402 client on Injective EVM eip155:1776, using @injectivelabs/x402. Native USDC (Circle FiatTokenV2_2, EIP-3009), funded via CCTP. Every step below is real code paths, exercised by 63 tests.

1

402 received

POST /api/edge answers 402 Payment Required with a machine-readable quote.

accepts: eip155:1776 · 50000 · USDC · payTo
2

Budget check

The Agent Skill spend policy gates it: per-call max, per-session cap — above cap it asks the human.

0.05 + session ≤ 0.50 cap
3

EIP-3009 signed locally

A USDC transfer authorization is signed with local viem signTypedData — no broadcast, no shared keys.

transferWithAuthorization
4

200 + on-chain receipt

Retry with PAYMENT-SIGNATURE → payload lands with PAYMENT-RESPONSE. The agent cites the tx; anyone can run receipt_verify.

{ edge, ladder, pick_hash } + tx 0x…

Kick-off

Install

Add it to Claude Code with one line — the four free data tools work with just two free API keys.

  bash
# Claude Code — the 4 free data tools work with just two free API keys
claude mcp add cuporacle -- npx -y cuporacle-mcp

# or run it from source:
git clone https://github.com/edycutjong/cuporacle-mcp
cd cuporacle-mcp && npm install && npm run smoke

The package is live on npm — the npx line works today. Runs side by side with the Injective MCP server. See the reference docs for the full tool surface and the pitch deck for the story.

Node.js ≥ 20 TypeScript Model Context Protocol Injective EVM · eip155:1776 x402 · autonomous pay USDC + CCTP tsup · ESM Vitest · 63 passing MIT

Honestly gated — not faked

  1. The x402 buyer path runs with zero funds: wc_edge(matchId, dry_run: true) parses the recorded 402 quote, enforces the spend cap and signs the EIP-3009 authorization locally — no money moved and no fabricated receipt.
  2. A real settled payment needs a few cents of USDC on Injective (funding is user-gated) plus the live LineLock upstream (a disclosed sibling project) — and the first one now exists (settled 2026-07-18): receipt 0x89cd955c…541a07d. If the upstream is down, wc_edge degrades to free odds — it never fabricates an edge.
  3. Free-tier data APIs cap request rates → 60s cache + committed snapshots, always labeled [snapshot] (including the ticker above).
  4. The payer keystore holds a real (tiny) balance. Spend caps default low; fund only cents. Windows keystore paths are documented, not hardened.

From the terraces

Questions, answered straight

The Model Context Protocol is an open standard that lets AI assistants call external tools. CupOracle is a standalone MCP server over stdio: 8 tools + 2 resources + 1 prompt that give any MCP-capable assistant (Claude Desktop, Claude Code, Cursor…) live World Cup 2026 capability. It runs side by side with the Injective MCP server.

Claude Code: claude mcp add cuporacle -- npx -y cuporacle-mcp — the package is live on npm. Claude Desktop and Cursor take the same command in their mcpServers config. Grab two free keys — football-data.org and the-odds-api.com — and the free tools work immediately.

Seven of eight: wc_fixtures, wc_live, wc_odds, wc_bracket, receipt_verify, wallet_fund_guide and wc_spend_ledger — real live data with no wallet and no funds. Only wc_edge pays, and even that has a zero-funds dry_run mode.

It's a buyer-side x402 client using @injectivelabs/x402: it parses the 402 quote (accepts / PAYMENT-REQUIRED), enforces the spend cap, signs an EIP-3009 USDC transfer authorization locally, retries with PAYMENT-SIGNATURE, and reads the receipt from PAYMENT-RESPONSE. The agent then cites the tx — verifiable with receipt_verify.

Injective EVM mainnet eip155:1776 (testnet eip155:1439), paying in native USDC (Circle FiatTokenV2_2, which supports EIP-3009). The wallet is funded via Circle's CCTP — wallet_fund_guide prints the runbook and routes execution to the Injective MCP server's CCTP tools.

No. The four data tools are free, and wc_edge(matchId, dry_run: true) proves the whole payment client — 402 parse, cap gate, local EIP-3009 signature — with zero funds, no money moved and no fabricated receipt. A real settled call costs about 5¢ and needs a few cents of USDC you fund deliberately; the default session cap is 0.50 USDC. The funded path has been exercised for real — first settled receipt 0x89cd955c…541a07d (2026-07-18).

wc_edge depends on LineLock's /api/edge (a disclosed sibling project). If it's unavailable, wc_edge degrades to free odds — it never fabricates an edge or a receipt. Failures teach: INSUFFICIENT_USDC carries the CCTP runbook; SPEND_CAP_HIT explains the cap and tells the agent to ask the human.

Give your agent a seat
in the stadium.

Free live World Cup data in one command — and a working pattern for agents that buy and prove their own premium data on Injective.