cuporacle-mcp
Facilitates payments using Circle's USDC stablecoin and cross-chain transfers via Circle's Cross-Chain Transfer Protocol (CCTP) for funding the agent's wallet on Injective.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cuporacle-mcpanalyze the next match for betting edge"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
# Claude Code โ the 4 free data tools work with just two free API keys
claude mcp add cuporacle -- npx -y cuporacle-mcpReproducing now (pre-publish): the
npx cuporacle-mcpline activates once the package is published โ a post-judging gate (seeSTATUS.md). Until then, run it from source in seconds:git clone https://github.com/edycutjong/cuporacle-mcp && cd cuporacle-mcp && npm install && npm run smoke.
cuporacle-mcp is a standalone Model Context Protocol
server that runs side by side with the Injective MCP server: 8 tools + 2
resources + 1 prompt over stdio. Free data tools work out of the box; wc_edge
is a reference implementation of an agent buying and proving its own alpha
keylessly via Injective's x402.
๐งโโ๏ธ Notes for judges โ reproduce in < 5 min
Zero-cost path. The four free tools (
wc_fixtures,wc_live,wc_odds,wc_bracket) return real live World Cup 2026 data with just the two free API keys โ no wallet, no funds.The x402 buyer path runs with zero funds.
wc_edge(matchId, dry_run: true)(ornpm run paid-call-smoke) parses the recorded 402 quote, enforces the spend cap, and signs the EIP-3009 authorization locally โ a deterministic proof of the payment client with no money moved and no fabricated receipt.< 5-minute reproduce:
npm install npm run smoke # cold-start over stdio โ lists 8 tools/2 resources/1 prompt + a live free call npm test # 63 vitest (schemas ยท spend cap ยท 402-parse ยท EIP-3009 sign ยท receipts ยท degrade) npm run inspector # official MCP Inspector conformance against the built dist/Honestly gated (not faked): a real settled
wc_edgepayment needs a few cents of USDC on Injective (funding is user-gated) plus the live LineLock upstream. Until thenwc_edgedegrades to free odds and never invents an edge or a receipt โ full honest state inSTATUS.md.
Related MCP server: ScoutAgent
๐ก Why this exists
Agents have no first-class sports capability. Injective's own MCP server covers wallets, markets, CCTP and trading โ but an agent asked "is tonight's match worth a bet?" has to hallucinate or scrape, and there's no pattern for an agent paying for premium data itself. CupOracle is that missing layer, built as a composable server that runs side by side with the Injective MCP server.
๐งฐ Tools
Tool | Gate | Returns |
| free | fixtures for a day or the next upcoming window |
| free | live score, minute, status |
| free | consensus h2h odds + de-vigged implied probabilities |
| free | knockout bracket state (R16 โ Final) |
| pays x402 | CLV-audited edge + conviction ladder + receipt tx |
| free | verifies a receipt on Injective EVM (block time, amount, payee) |
| free | CCTP runbook to fund the agent wallet |
| free | the agent's own purchase history: entries + receipts + session total vs cap |
Resources: wc://bracket, wc://ledger ยท Prompt: analyze-match(matchId).
๐ Quickstart
1. Get keys
football-data.org free tier โ
FOOTBALL_DATA_KEYthe-odds-api.com free tier โ
ODDS_API_KEY
The four free data tools work with just these two keys. wc_edge additionally
needs a payer wallet (see Funding).
2. Add to your harness
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"cuporacle": {
"command": "npx",
"args": ["-y", "cuporacle-mcp"],
"env": {
"FOOTBALL_DATA_KEY": "โฆ",
"ODDS_API_KEY": "โฆ",
"CUPORACLE_PRIVATE_KEY": "0xโฆ",
"CUPORACLE_MAX_SPEND": "0.50"
}
}
}
}Claude Code:
claude mcp add cuporacle \
-e FOOTBALL_DATA_KEY=โฆ -e ODDS_API_KEY=โฆ \
-e CUPORACLE_PRIVATE_KEY=0xโฆ -e CUPORACLE_MAX_SPEND=0.50 \
-- npx -y cuporacle-mcpCursor (.cursor/mcp.json):
{
"mcpServers": {
"cuporacle": { "command": "npx", "args": ["-y", "cuporacle-mcp"],
"env": { "FOOTBALL_DATA_KEY": "โฆ", "ODDS_API_KEY": "โฆ" } }
}
}3. Ask
"What's tonight's Semi-Final, and is it worth a bet?"
The assistant lists the fixture (wc_fixtures), pulls odds (wc_odds), buys a
vetted edge for ~5ยข (wc_edge) paying via x402 itself, and cites the
receipt. Paste that hash into receipt_verify to confirm the payment on Injective.
๐ ๏ธ Injective technologies used
CupOracle is Injective-native by construction โ remove any layer and it's just a scraper or a hosted API with a billing page.
# | Technology | Exact surface | Where |
1 | MCP Server | Publishes a complete server (stdio): 8 tools + 2 resources + 1 prompt, Inspector-conformance-checked. Extends the InjectiveLabs/mcp-server pattern and runs beside it. | the whole package |
2 | x402 | Autonomous client: parses the 402 quote ( |
|
3 | Agent Skills | Ships the |
|
4 | USDC + CCTP | Native USDC |
|
5 | Injective EVM | Mainnet |
|
Interop, not wrap. CupOracle does not reimplement chain ops or wrap the Injective MCP tools as its own โ both servers run in the same harness and the Skill routes funding to Injective's tools. Honesty over land-grab.
๐ The autonomous-payment loop (wc_edge)
flowchart TD
A["POST /api/edge"] --> B["402 Payment Required<br/>accepts: network eip155:1776 ยท amount 50000 ยท asset USDC ยท payTo"]
B --> C["spend-cap gate<br/>per-call max ยท per-session cap ยท ask human above cap"]
C --> D["sign EIP-3009 authorization<br/>local viem signTypedData โ no broadcast"]
D --> E["retry with PAYMENT-SIGNATURE header"]
E --> F["200 OK<br/>{ edge, ladder, pick_hash } + PAYMENT-RESPONSE { transaction: 0xโฆ }"]
F --> G["agent cites receipt_tx"]
G --> H["receipt_verify(0xโฆ)"]
H --> I["block time + amount on Injective"]Spending is auditable in-conversation via wc_spend_ledger (and wc://ledger).
Failures teach: INSUFFICIENT_USDC carries the CCTP runbook; SPEND_CAP_HIT
carries the cap and how to raise it (ask the human โ the agent never raises its own).
๐ฐ Funding the agent wallet
wc_edge needs a few cents of USDC on Injective. Generate a throwaway payer
wallet and fund it via CCTP:
npx cuporacle-mcp init # prints a fresh wallet address + keyThen call wallet_fund_guide (or ask your agent to) for the CCTP steps, executed
with the Injective MCP server: account_balances โ cctp_supported_chains โ burn on Base (domain 6) โ cctp_attestation_status โ cctp_mint. Fund only cents; the
default cap is 0.50 USDC.
๐งโ๐ป Development
npm install
npm run smoke # cold-start over stdio, list 8 tools/2 resources/1 prompt, one live call
npm test # 63 vitest (schemas, spend cap, 402-parse, EIP-3009 sign, receipts, degrade)
npm run bench # cache hit/miss + wc_edge dry_run (parse+sign) p50/p95
npm run build # tsup โ dist (publish-ready)
SMOKE_BIN=dist npm run smoke # smoke the built artifactnpm run paid-call-smoke runs a real paid wc_edge end-to-end โ it is
funds-gated behind CUPORACLE_ALLOW_PAID=1 and a funded key, and otherwise falls
back to a dry run.
๐งช Engineering harness & CI
This is a published npm library, not a web app โ so the pipeline swaps the
usual browser E2E / Lighthouse stages for the two proofs that actually matter for
a stdio MCP server: a cold-start over real stdio (npm run smoke) and
official MCP Inspector protocol conformance against the built dist/.
Multi-stage CI: Quality โ Security โ Build โ MCP Conformance โ Publish-readiness.
# โโ Quality โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
npm run typecheck # tsc --noEmit (strict)
npm test # vitest โ 63 passing
npm run ci # typecheck + test + build + smoke (local gate)
# โโ MCP "E2E" (no browser โ this is the end-to-end proof) โโ
npm run smoke # cold-start over stdio โ 8 tools / 2 resources / 1 prompt + a live free call
npm run inspector # official MCP Inspector conformance against dist/
SMOKE_BIN=dist npm run smoke # smoke the exact built artifact npm ships
# โโ Security โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
make security-scan # npm audit + license-checker (no GPL/AGPL in prod deps)Layer | Tool | Status |
Type safety | TypeScript ( | โ |
Unit / contract tests | Vitest โ 63 passing (schemas ยท spend cap ยท 402-parse ยท EIP-3009 sign ยท receipts ยท degrade) | โ |
Protocol "E2E" (smoke) | MCP stdio smoke โ cold-start lists 8 tools / 2 resources / 1 prompt + a live free call | โ |
Protocol conformance | MCP Inspector ( | โ |
Static analysis (SAST) | CodeQL ( | โ |
Dependency updates (SCA) | Dependabot (npm + github-actions, weekly) + | โ |
Secret scanning | TruffleHog (verified-only) | โ |
Publish readiness |
| โ |
No Playwright / Lighthouse โ there is no browser surface to drive or audit. The equivalent guarantee is the stdio smoke + Inspector conformance above, both run in CI on every push and PR. Also see
make helpfor the full target list.
โ๏ธ Configuration
Env | Default | Meaning |
| โ | football-data.org key (free data tools) |
| โ | the-odds-api.com key (odds) |
| โ | payer wallet key for |
|
| per-session USDC spend cap |
|
|
|
|
| upstream edge provider |
๐งฉ Extend it (add your own sport)
Each tool is { name, config, handler } (src/tools/). To add, say, a cricket
server: copy a free tool, swap the data client in src/data/, register it in
src/tools/index.ts. The x402 client (src/x402/) is sport-agnostic โ reuse it
to sell any premium signal. PRs welcome.
โ ๏ธ Honest limitations
wc_edgedepends on LineLock's/api/edge(a disclosed sibling project). If it's down,wc_edgedegrades to free odds โ it never fabricates an edge.Free-tier data APIs cap request rates โ 60s cache + committed snapshots (always labeled
[snapshot]).The payer keystore holds a real (tiny) balance. Spend caps default low; fund only cents. Windows keystore paths are documented, not hardened.
๐ License
MIT. "Football data provided by the Football-Data.org API."
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for FIFA World Cup 2026 data: matches, teams, venues, city guides, fan zones, visa info, injuries, odds, standings, bracket, and historical matchups. 18 tools, zero external API dependencies.Last updated1840336MIT
- Alicense-qualityBmaintenanceMCP server that enables AI workflows to query on-chain AI Scout agents, leaderboards, and prediction markets on X Layer for the World Cup.Last updatedMIT
- AlicenseAqualityBmaintenanceFree MCP server for the World Cup 2026 Tour public schedule API. It enables AI assistants to fetch the 2026 FIFA World Cup schedule, next match, match by ID, and dataset JSON-LD without an API key.Last updated51MIT
- Flicense-qualityBmaintenanceMCP server for a World Cup 2026 prediction game assistant, providing tools for live game data via PostgreSQL and semantic search over football articles via RAG.Last updated
Related MCP Connectors
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
Broker + MCP server for last-bidder-wins on-chain games on Solana via x402 micropayments.
MCP server for Gainium โ manage trading bots, deals, and balances via AI assistants
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/edycutjong/cuporacle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server