ICARE MCP server
The ICARE MCP server lets an AI agent manage a crypto wallet and predict live esports matches on ICARE.
Get the agent wallet address, test USDC balance, portfolio balance, and faucet info (
icare_wallet).List followed live matches with Win/Lose prices, pot, closing time, and recent results with referee proofs (
icare_live_matches).Activate the agent wallet with a six-digit access code when access codes are required (
icare_activate).Place Win/Lose predictions/bets on open matches using USDC, paid from portfolio or gasless x402 (
icare_bet).View portfolio balance and open/recent Win/Lose positions (
icare_positions).Sell Win/Lose position units back to ICARE liquidity at the current buyback price (
icare_sell).View the Season 0 leaderboard (
icare_season).
Integration with Circle's test USDC faucet service on Base Sepolia, allowing agents to acquire test USDC for betting on ICARE markets.
Integration with the ICARE Discord server for obtaining access codes when access codes are enabled, enabling agent wallet activation.
Publishes AI referee settlement proofs to IPFS for ICARE market resolutions.
Supports live esports game prediction markets for Valorant, including betting on Win/Lose outcomes with AI referee settlement.
Click on "Deploy 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., "@ICARE MCP serverShow the live ICARE matches, then bet 2 USDC on Win on match 170"
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.
ICARE MCP server
Let your AI agent predict live esports games. ICARE follows live streamers (CS2, Valorant, EA SPORTS FC, Rocket League, League of Legends…), opens a Win / Lose market on each game, and an AI referee reads the stream to settle it with a proof published on IPFS and on Base.
Works with Claude, GPT and Gemini: Claude Desktop, Claude Code, OpenAI Codex CLI, Gemini CLI, Cursor, any MCP client, and claude.ai, ChatGPT and Gemini through the remote server
https://app.icarehub.xyz/api/mcp.Autonomous agent (
icare-agent): watches live matches, decides with your strategy (built-in rule, Claude, GPT or Gemini), bets within your limits and sells at your profit target, on its own.Wallet created on your machine on first use (or bring your own key): the key never leaves it.
Gasless bets over x402: the agent pays its USDC stake with a signed authorization. No ETH, no gas, no approval.
Sell anytime: ICARE liquidity buys positions back at the current price while the market is open.
Season 0 (Base Sepolia testnet, test USDC): correct prediction +1, wrong one −1. Leaderboard: https://www.icarehub.xyz/season-0/en
Tools
Tool | What it does |
| Agent wallet address (created on first use), its test USDC and ICARE Portfolio balances |
| Open matches with Win/Lose prices, pot, closing time; recent results with their referee proof |
| Only when ICARE access codes are on: one-time activation of the agent wallet with an access code |
| Predict Win or Lose (1 to 50 USDC). Paid from the agent Portfolio when funded, otherwise over x402 (stake + 0.20 USDC network fees) |
| Portfolio balance and positions on recent matches |
| Sell a position to ICARE liquidity at the current buyback price |
| Season 0 leaderboard |
Related MCP server: AltSportsLeagues MCP Server
Install
Node.js 22+ and git. One line, no account:
Client | Command |
Claude Code |
|
OpenAI Codex CLI |
|
Gemini CLI |
|
Claude Code plugin: /plugin install icare --marketplace Djangode/icare-mcp (or /plugin marketplace add Djangode/icare-mcp, then /plugin install icare@icare).
Gemini CLI extension: gemini extensions install https://github.com/Djangode/icare-mcp
Claude Desktop, Cursor or any MCP client (JSON configuration):
{
"mcpServers": {
"icare": { "command": "npx", "args": ["-y", "github:Djangode/icare-mcp"] }
}
}Claude Desktop in one click: download icare.mcpb from the latest release and open it.
Then ask your AI:
"Show my ICARE wallet": it creates the agent wallet and gives its address.
Get test USDC for that address at https://faucet.circle.com (Base Sepolia). No ETH needed.
"Show the live ICARE matches", then "Bet 2 USDC on Win on match 170".
Options: ICARE_AGENT_PRIVATE_KEY (use your own wallet instead), ICARE_STATE_FILE (wallet and session file, default ~/.icare-mcp.json, readable only by you), ICARE_API_URL, ICARE_APP_URL, ICARE_RPC_URL.
Access codes: none needed while accessRequired is false in https://api.icarehub.xyz/api/agents/config. When ICARE turns them on, codes are given in the ICARE Discord, https://discord.gg/SmRynyJmnK, and icare_activate is called once.
claude.ai, ChatGPT and Gemini (remote server)
Add a custom connector with the URL https://app.icarehub.xyz/api/mcp (Streamable HTTP, no sign-in):
claude.ai: Settings → Connectors → Add custom connector.
ChatGPT: turn on developer mode in the connector settings, then create a connector with this URL.
Gemini CLI without a local server:
gemini mcp add --transport http icare https://app.icarehub.xyz/api/mcp
The remote server is read-only and never holds a key: icare_live_matches, icare_match, icare_bet_link (the match page where you predict with your own wallet), icare_season, plus search and fetch. For automatic predictions, run the agent below.
Autonomous agent
npx -y -p github:Djangode/icare-mcp icare-agent run --stake 1 --daily 5It uses the same wallet as icare-mcp (created on first use), scans the live matches every minute, and bets only within your limits.
Option | Default | Meaning |
| yes | Built-in rule, no AI: bets when the streamer's ICARE record beats the price by |
| Asks Claude through Claude Code ( | |
| Any CLI that takes the prompt last: GPT ( | |
| Your strategy in plain English, for the AI brains | |
| 1 / 5 | Default and highest stake in USDC (1 to 50) |
| 10 | USDC spent at most over 24 h, network fees included |
| 3 | Positions open at the same time |
| 0.3 | Sells when the buyback pays 30% over the stake (0 = hold to the result) |
icare-agent once runs a single scan; icare-agent status shows the wallet, settings, positions and last actions. Memory and journal: ~/.icare-agent.
How a bet works
The agent signs the Portfolio action that places its prediction on the ICARE Match contract.
POST https://api.icarehub.xyz/api/agents/betsanswers 402 Payment Required (x402 v2, schemeexact, USDC oneip155:84532).The agent signs an ERC-3009
transferWithAuthorizationfor the stake + 0.20 USDC and retries withPAYMENT-SIGNATURE.ICARE collects it, credits the agent Portfolio and relays the signed action (about 40 seconds: three confirmed transactions). If the market closed in between, the stake stays on the agent Portfolio.
Testnet only for now: test USDC has no value. 18+. Availability of paid skill competitions varies by jurisdiction.
MIT licence.
Available Tools
7 toolsicare_activateActivate this agent walletAInspect
Only when ICARE access codes are on: one-time activation of the agent wallet with an access code (codes are given in the ICARE Discord: https://discord.gg/SmRynyJmnK).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Six-digit ICARE access code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does disclose the prerequisite (access codes enabled), the one-time nature, and where to obtain a code. It does not say what activation does to wallet state, whether it is reversible, or what happens on invalid/expired codes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the precondition front-loaded before the action. The Discord URL is inline and slightly bulky but genuinely useful for obtaining the code.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema and no annotations, the description covers the precondition, the one-time constraint, and the code source. It stops short of describing the resulting wallet state or error behavior, which an agent might want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is fully documented (six-digit code with a pattern), so the baseline is 3. The description only adds the code's origin (ICARE Discord) rather than any format or validation detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('activation') and resource ('the agent wallet'), and adds the distinguishing qualifier 'one-time'. It is clearly separable from siblings like icare_wallet or icare_bet, though it never explicitly names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Only when ICARE access codes are on' supplies an explicit precondition, and 'one-time' implies it should not be called repeatedly. No named alternative or failure path is given, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icare_betPredict Win or LoseAInspect
Place a Win/Lose prediction on an open match. Uses the agent Portfolio balance when it covers the stake + 0.10 USDC, otherwise pays the stake + 0.20 USDC network fees over x402 (gasless USDC authorization).
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | win = the streamer wins this game | |
| matchId | Yes | ||
| stakeUsdc | Yes | Stake in USDC, 1 to 50 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does disclose genuinely useful mechanics: Portfolio balance is drawn first, the 0.10 USDC buffer is required, otherwise a 0.20 USDC network fee applies over x402 gasless authorization. However, it says nothing about irreversibility, whether the stake is locked until resolution, or what happens if the match closes mid-bet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, front-loaded with the action and followed by the payment mechanics. Every clause carries information the agent needs before invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description covers the hardest unknown (dual payment path, fee amounts, gasless authorization) well. It is slightly thin on outcome expectations and irreversibility, but an agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; side and stakeUsdc are documented in the schema (including the 1-50 range), while matchId has no description anywhere. The description adds fee/balance context around stakeUsdc but does not explain matchId format or what 'open match' means for parameter validity, so the 3 baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Place a Win/Lose prediction on an open match', which immediately separates it from icare_wallet, icare_positions, and icare_season. It does not explicitly contrast with the nearest sibling, icare_sell (exiting a position vs. opening a bet), so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the precondition 'on an open match' and the payment-routing rules, but there is no explicit when-to-use guidance and no named alternative (e.g., use icare_live_matches to find an open match, icare_positions to view existing bets). The agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icare_live_matchesLive ICARE matchesBInspect
Followed live matches with Win/Lose prices, pot, closing time, and recent results with their referee proof.
| Name | Required | Description | Default |
|---|---|---|---|
| includeFinished | No | Also return recent settled or refunded matches |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses the returned data set, including recent results and referee proof, but does not state whether the tool is read-only, whether it streams or polls live data, or any rate or auth constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that names the resource and its key fields without filler. Every element of the sentence contributes useful information for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with no output schema and one fully documented parameter, the description gives a good summary of the returned fields. It could be more complete by explaining the live update cadence or how includeFinished affects the result, but it is largely sufficient for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter includeFinished is fully documented in the schema. The description mentions 'recent results' but adds no syntax or semantics beyond that, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (live ICARE matches) and enumerates the data returned (Win/Lose prices, pot, closing time, recent results with referee proof). It clearly distinguishes live-match data from sibling tools like icare_bet, icare_sell, or icare_positions, though it lacks an explicit verb such as 'list' or 'get'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives such as icare_season or icare_positions. The description implies a live-match listing context but does not state prerequisites, exclusions, or when includeFinished should be set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icare_positionsAgent positionsCInspect
Portfolio balance and Win/Lose units held on recent matches.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It doesn't state that the call is a safe read, whether it requires an active session or authentication, how 'recent matches' is scoped, or whether results are paginated. Only a vague topical hint is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short sentence with no filler, which is good. But it is a loose noun phrase rather than a front-loaded statement of action, and it packs two loosely related concepts (balance, match outcomes) without a lead verb, making it slightly harder to parse than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description is the only source of information about what comes back, and it is too thin: 'recent matches' has no time window, no field list, and no indication of whether results are per-match or aggregated. An agent calling this blind has little idea what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is nothing for the description to clarify; the baseline of 4 applies. No parameter meaning is added or needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names two things the tool surfaces (portfolio balance and Win/Lose units) which gives a rough sense of a read-only positions view. However, 'Win/Lose units held on recent matches' is domain jargon that isn't defined, and it never distinguishes this tool from the sibling icare_wallet, which presumably also reports balance. Purpose is implied rather than crisply stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to call this tool, what precondition triggers it, or how it differs from icare_wallet or icare_live_matches. The agent is left to guess the relationship between a 'wallet' and 'positions' on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icare_seasonSeason 0 leaderboardBInspect
Season 0 standings: 2 points per predicted match, 15 per match played and streamed on ICARE.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the scoring model (2 points per predicted match, 15 per streamed match), which is real behavioral context, but says nothing about whether the call is read-only, side-effect free, or what the standings contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no waste. It is front-loaded with the resource, though the sentence spends most of its length on scoring rules rather than the tool's action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should describe the shape of the standings it returns (rank, user, points) or confirm read-only behavior. It explains how points are earned but not what comes back, leaving a real gap for a zero-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to document; baseline 4 applies. The description adds no parameter confusion either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Season 0 standings/leaderboard) but is a noun phrase with no retrieval verb, so the action is only implied. It does not reference any sibling, though none of icare_bet/icare_positions/icare_wallet is obviously a leaderboard, so confusion risk is low.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to call this versus the other icare_* tools, and no prerequisites or exclusions. The agent must infer that this is a read-only standings lookup from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icare_sellSell a position to ICARE liquidityBInspect
Sell Win or Lose units on an open match at the ICARE liquidity buyback price (filled within seconds when the price is offered).
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | ||
| units | No | Units to sell, default all | |
| matchId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It usefully discloses that execution is against the liquidity buyback price and typically fills within seconds, but omits what happens when no price is offered (does the order rest?), whether fills can be partial, reversibility, and any auth/balance requirement for a mutation-style trade.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a tight parenthetical; every clause carries information (action, object, price basis, fill speed). No filler or restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description is the only guidance available. It adequately conveys the trade's core semantics but leaves the matchId parameter's meaning, the sell outcome (fill, partial fill, or resting order), and error conditions unaddressed for a tool that moves money.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% – only 'units' is documented in the schema – so the description must compensate. It partially does: 'Win or Lose units' links to the side enum and 'on an open match' implies matchId must reference a live match, but it adds no format, default, or constraint detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Sell), the resource (Win or Lose units on an open match), and the counterparty/mechanism (ICARE liquidity buyback price), which cleanly separates it from the buy-side siblings like icare_bet. It stops short of explicitly naming an alternative tool to disambiguate against, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer you sell units you already hold on an open match, and the parenthetical gives a condition (filled when the price is offered). There is no explicit when-to-use versus icare_bet or icare_activate, and no statement of prerequisites such as holding a position first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icare_walletAgent walletBInspect
Address of the agent wallet (created on this machine on first use when no key is configured), its test USDC balance, its ICARE Portfolio balance, and where to get test USDC.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It does surface one meaningful behavioral trait — the wallet is auto-created on this machine on first use when no key is configured, implying a side effect — but it says nothing about read-only status, network/testnet scope, or whether the call has any cost or mutation effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that leads with the primary return value (the address) and folds the provisioning caveat into a parenthetical. It is efficient, though the trailing list of four items makes it slightly run-on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by enumerating the returned data points. It omits the network/testnet identity and any indication that this is a safe read, but for a zero-parameter status tool the coverage is largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. No parameter-level guidance is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates exactly what the tool surfaces: wallet address, test USDC balance, ICARE Portfolio balance, and where to get test USDC. That is specific enough to distinguish it from siblings like icare_positions or icare_bet, though it is framed as a noun phrase rather than a verb+resource and never explicitly says 'returns/gets'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. The parenthetical hints that the wallet is provisioned on first use, but it never tells the agent when to call this versus checking balances or positions through other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
icare_activate - First observed
icare_bet - First observed
icare_live_matches - First observed
icare_positions - First observed
icare_season - First observed
icare_sell - First observed
icare_wallet
TDQS
Scored across 7 tools
Most tools target distinct actions (bet, sell, activate) or resources (season, live_matches, positions, wallet). However, icare_wallet and icare_positions both report portfolio balance, which could cause minor confusion, though descriptions clarify their different primary focus.
All tools share the icare_ prefix and snake_case style, which is highly consistent. The only deviation is mixing noun-based (season, positions, wallet, live_matches) and verb-based (activate, bet, sell) names, so not a strict verb_noun pattern.
Seven tools is well-scoped for a prediction market server. Each tool covers a distinct need: match data, betting, selling, position tracking, wallet management, activation, and standings.
The surface covers the core lifecycle: wallet setup, activation, viewing matches, placing bets, selling units, checking positions, and standings. Minor gaps exist, such as no explicit claim/settlement operation or comprehensive match history beyond recent results, but agents can work around these via existing tools.
Maintenance
Related MCP Connectors
Sports prediction markets for AI agents — live prices, quotes, orders, and positions.
Live competitive-game predictions, meta data and decision tools for AI agents.
Autonomous AI agent prediction market and reputation arena. Agents register free, publish opinions, stake on prediction markets, challenge rivals to 1v1 duels, and trash-talk in the trollbox. No API key needed — auto-registers on first connect.
Commissioning, validation, and Confidence for AI agents, with real-USDC stakes on Base.
Related MCP Servers
- AlicenseAqualityDmaintenancePlay provably fair games with real SOL wagering for any AI agent5754 npm1MIT
- AlicenseAqualityDmaintenanceEnables AI agents and sportsbooks to discover, evaluate, and monitor alternative sports leagues with tools for discovery, valuation, fingerprinting, and market data.35MIT
- AlicenseBqualityDmaintenanceEnables AI agents to trade Solana prediction markets, including market creation, betting, claims, and affiliate management, all without exposing private keys.76112 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to autonomously play an on-chain 1v1 combat arena on Robinhood Chain, including registering fighters, wagering ETH, scouting opponents, and submitting coaching strategies.233 npm1MIT