@alpha-arcade/mcp
This server provides AI agents with tools to browse, trade, and manage positions on Alpha Arcade prediction markets on Algorand. It works in read-only mode with zero configuration; trading requires an Algorand mnemonic, and some features require an API key.
Market Discovery & Data
get_live_markets: List all live tradeable markets with prices and volumeget_reward_markets: Fetch markets with active liquidity rewards (requires API key)get_market: Get full details for a specific market by IDget_agent_guide: Access a built-in guide covering data model, units, mechanics, and workflows
Orderbook & Liquidity
get_orderbook: Fetch the unified on-chain orderbook for any marketget_full_orderbook: Get a richer processed orderbook snapshot via the Alpha REST API (requires API key)get_routed_orderbook: Get native AA + routed Polymarket liquidityrequest_rfq/request_combo_rfq/place_combo_rfq: Request and execute competitive quotes for arbitrary AND/OR combo purchases (API key required; placing also requires mnemonic)
Trading (requires wallet mnemonic)
create_limit_order/create_market_order: Place limit or market orderscancel_order/amend_order: Cancel or edit existing open orderspropose_match: Manually match two existing orders as a taker
Token & Position Management (requires wallet mnemonic or wallet address)
split_shares/merge_shares: Convert USDC into YES/NO outcome tokens and backclaim: Redeem winning tokens from resolved markets for USDCget_open_orders: View open orders for a wallet on a specific marketget_positions: Check YES/NO token balances across all markets
Real-Time WebSocket Streaming
stream_orderbook: Live orderbook snapshot (~5s, faster than on-chain)stream_live_markets: Real-time probability changes across all markets over a time windowstream_market: Watch a specific market for its first change eventstream_wallet_orders: Watch a wallet for order updates (new, filled, or changed)
All prices, quantities, and slippage values are in microunits (1,000,000 = $1.00 or 1 share).
Provides tools for browsing markets, fetching orderbooks, placing orders, managing positions, and trading on Alpha Arcade prediction markets built on the Algorand blockchain.
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., "@@alpha-arcade/mcp list available prediction markets"
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.
@alpha-arcade/mcp
MCP (Model Context Protocol) server for Alpha Arcade prediction markets on Algorand.
Lets AI agents (Claude, Cursor, Copilot, etc.) browse markets, fetch full API-backed orderbooks, place orders, manage positions, and trade on-chain prediction markets.
SDK vs MCP vs CLI
SDK (
@alpha-arcade/sdk): low-level TypeScript primitives for bots, backends, and apps.MCP (
@alpha-arcade/mcp): exposes the same capabilities as MCP tools for AI agents.CLI (
@alpha-arcade/cli): human terminal UX withtable/jsonoutput, prompts, and--dry-run/--yessafety rails.
The CLI and MCP both use the same runtime/client setup logic so behavior stays aligned.
Related MCP server: question-market
Alpha CLI (terminal)
The CLI package lives in alpha-cli/ in this repo and can be published independently as @alpha-arcade/cli.
Quickstart
cd alpha-cli
npm install
npm run build
node dist/index.js markets list --limit 5Common commands
# Read-only
node dist/index.js markets list --limit 5
node dist/index.js markets get <marketId>
node dist/index.js orderbook <marketAppId>
node dist/index.js positions --wallet-address <addr>
# Trading (requires ALPHA_MNEMONIC)
node dist/index.js trade limit --market <id> --position yes --side buy --price 0.52 --quantity 10
node dist/index.js trade market --market <id> --position no --side buy --price 0.45 --quantity 20 --slippage 0.05
node dist/index.js orders amend --market <id> --escrow-app-id <escrow> --price 0.60 --quantity 3
node dist/index.js orders cancel --market <id> --escrow-app-id <escrow> --order-owner <addr>CLI safety model
Write commands prompt for confirmation by default.
--dry-runprints payloads (and market-order matching estimate) without submitting.--yesbypasses prompts for non-interactive automation.Price validation enforces
(0,1)dollars and caps unusually high slippage.
Tools
Tool | Description | Requires Wallet |
| Returns the agent guide — data model, units, mechanics, workflows, pitfalls | No |
| Fetch all live tradeable markets | No |
| Fetch a single market by ID | No |
| Get the unified on-chain orderbook for a market app | No |
| Get the full processed orderbook snapshot from the Alpha REST API for a market | No |
| Get native AA + routed Polymarket liquidity for a market | No |
| Request a fresh routed-liquidity RFQ quote | No* |
| Request a competitive arbitrary-combo RFQ quote | No* |
| Quote, sign, and submit a competitive combo RFQ | Yes* |
| Get open orders for a wallet on a market | No |
| Get YES/NO token positions for a wallet | No |
| Place a limit order on a market | Yes |
| Place a market order with auto-matching | Yes |
| Cancel an open order | Yes |
| Edit an existing unfilled order (price, quantity, slippage) | Yes |
| Match two existing orders | Yes |
| Split USDC into YES + NO tokens | Yes |
| Merge YES + NO tokens back into USDC | Yes |
| Redeem outcome tokens from a resolved market | Yes |
| Get a real-time orderbook snapshot via WebSocket (faster than on-chain) | No |
| Collect live market probability changes for a duration | No |
| Watch a single market for the first change event | No |
| Watch a wallet for order changes | No |
get_full_orderbook
Fetches the full processed orderbook snapshot from the Alpha REST API for a market ID. Requires ALPHA_API_KEY.
marketId (required): The Alpha market ID (UUID), not
marketAppId
Returns the same app-keyed snapshot shape as websocket orderbook_changed.orderbook:
top-level aggregated
bids,asks, andspreaddetailed
yesandnobid/ask orders withescrowAppIdandowner
Combo RFQ
Competitive quotes for arbitrary AND/OR combo purchases (request_combo_rfq / place_combo_rfq).
Requires
ALPHA_API_KEY.place_combo_rfqalso requiresALPHA_MNEMONIC.tree:{ groups: [{ op: "AND"|"OR", legs: [...] }], connectors: ["AND"|"OR", ...] }AA legs:
{ source: "aa", marketId, selection: "yes"|"no" }SGP legs:
{ source: "sgp", graderId, sgp, league?, eventId? }grossStakeMicro: exact-debit stake in micro USDCQuote may include
unsignedUserTxnswhen a wallet address is knownExternal maker decline/timeout requires a fresh quote (no rematch on the same signed legs)
* API-key tools marked No* still need ALPHA_API_KEY.
Resources
Resource | URI | Description |
|
| Agent guide for Alpha Arcade prediction markets — data model, units, mechanics, workflows, and common pitfalls |
WebSocket Stream Tools
The stream_* tools connect to the Alpha Arcade WebSocket API (wss://platform-wss.alphaarcade.com) for real-time data. No API key required. Each tool opens a connection, collects data, then closes — no persistent subscriptions to manage.
stream_orderbook
Gets a real-time orderbook snapshot for a market. Faster than the on-chain get_orderbook tool (~5s vs ~10s). Returns the same full processed snapshot shape as get_full_orderbook, with bids, asks, spread, and per-side YES/NO detail.
slug (required): The market's URL-friendly name (e.g.
"will-btc-hit-100k")timeoutMs (optional): Max wait time in ms (default: 15000)
stream_live_markets
Collects market probability changes over a time window. Returns all accumulated changes with market IDs, probability patches, and spread/midpoint updates. Useful for seeing which markets are currently active.
durationMs (optional): How long to collect events in ms (default: 5000)
stream_market
Watches a single market by slug and returns the first change event. Times out if nothing changes.
slug (required): The market's URL-friendly name
timeoutMs (optional): Max wait time in ms (default: 15000)
stream_wallet_orders
Watches a wallet for order changes (new, updated, or filled orders) and returns the first event. Uses the configured ALPHA_MNEMONIC wallet if no address is provided.
walletAddress (optional): Algorand wallet address
timeoutMs (optional): Max wait time in ms (default: 15000)
Setup
Environment Variables
Variable | Required | Description |
| For trading | 25-word Algorand mnemonic |
| No | Alpha partners API key. If set, markets can be fetched via API and |
| No | Algod URL (default: mainnet Algonode) |
| No | Indexer URL (default: mainnet Algonode) |
| No | Matcher app ID (default: 3078581851) |
| No | USDC ASA ID (default: 31566704) |
Getting an API key
An API key is optional. Without it, you can still fetch markets on-chain, place orders, and use most SDK features. With an API key, you get richer market data, full API-backed orderbooks, liquidity rewards information, wallet order lookups, and more.
To get an API key:
Go to alphaarcade.com and sign up with your email or Google account.
Open the Account page
Open the Partners tab.
Click Create API key and copy the key.
Add it to your environment (e.g. a
.envfile in the project root):
Cursor (read-only, zero config)
Add to your .cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"alpha-arcade": {
"command": "npx",
"args": ["-y", "@alpha-arcade/mcp"]
}
}
}That's it -- no API key needed. Your AI can browse markets, view orderbooks, and check positions.
Cursor (with trading)
To enable trading, add your mnemonic:
{
"mcpServers": {
"alpha-arcade": {
"command": "npx",
"args": ["-y", "@alpha-arcade/mcp"],
"env": {
"ALPHA_MNEMONIC": "your twenty five word mnemonic here"
}
}
}
}Claude Desktop / Claude Code
Same config works for both Claude Desktop (GUI app) and Claude Code (terminal CLI).
Add to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS (or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"alpha-arcade": {
"command": "npx",
"args": ["-y", "@alpha-arcade/mcp"],
"env": {
"ALPHA_MNEMONIC": "your twenty five word mnemonic here"
}
}
}
}For Claude Code specifically, you can also add it via the CLI:
claude mcp add alpha-arcade -- npx -y @alpha-arcade/mcpVS Code / Copilot
Add to .vscode/mcp.json:
{
"servers": {
"alpha-arcade": {
"command": "npx",
"args": ["-y", "@alpha-arcade/mcp"],
"env": {
"ALPHA_MNEMONIC": "your twenty five word mnemonic here"
}
}
}
}Zero Config Mode
With no environment variables at all, the server works in read-only mode. Markets are discovered directly from the Algorand blockchain -- no API key needed. You can browse markets, view orderbooks, and check positions. Trading tools will return an error explaining that a mnemonic is required.
Price and Quantity Units
All prices and quantities use microunits (1,000,000 = $1.00 or 1 share):
Price
500000= $0.50Quantity
1000000= 1 shareSlippage
50000= $0.05
Links
GitHub: github.com/phara23/alpha-mcp
Alpha Arcade: alphaarcade.com
Alpha Arcade API: platform.alphaarcade.com
Available Tools
20 toolsamend_orderA
Edit an existing unfilled order in-place (change price, quantity, or slippage). Faster and cheaper than cancel + recreate. Only works on orders with zero quantity filled. Collateral is adjusted automatically — extra funds are sent if value increases, refunded if it decreases.
Inputs: price (required), quantity (required), escrowAppId (required), marketAppId (required), +1 more.
cancel_orderA
Cancel an open order. Requires escrowAppId (from create_limit_order or get_open_orders) and orderOwner (the Algorand address that created it). Refunds USDC/tokens and ~0.957 ALGO collateral.
Inputs: orderOwner (required), escrowAppId (required), marketAppId (required).
claimA
Claim USDC from a resolved market by redeeming outcome tokens. Winning = 1:1 USDC. Losing = burned.
Inputs: assetId (required), marketAppId (required), amount.
create_limit_orderA
Place a limit order on a prediction market. Price and quantity in microunits (500000 = $0.50, 1000000 = 1 share). Locks ~0.957 ALGO collateral (refunded on cancel/fill). Returns escrowAppId — save it for cancel_order.
Inputs: price (required), isBuying (required), position (required), quantity (required), +1 more.
create_market_orderA
Place a market order with auto-matching against best available counterparty orders. Price, quantity, and slippage in microunits (500000 = $0.50, 1000000 = 1 share, 50000 = $0.05 slippage). Locks ~0.957 ALGO collateral. Returns escrowAppId, matched quantity, and actual fill price.
Inputs: price (required), isBuying (required), position (required), quantity (required), +2 more.
get_agent_guideA
Returns the Alpha Arcade agent guide — data model, units, orderbook mechanics, workflows, and common pitfalls. Read this before interacting with prediction markets.
Inputs: no named parameters.
get_full_orderbookA
Fetch the full processed orderbook snapshot from the Alpha REST API for a market. Requires ALPHA_API_KEY. Input is the Alpha market ID (UUID), not marketAppId. Returns the same app-keyed snapshot shape as websocket orderbook_changed.orderbook.
Inputs: marketId (required).
get_live_marketsA
Fetch all live markets. Returns summary: id, title, marketAppId, prices, volume. Multi-choice markets have an options[] array — use options[].marketAppId for trading, not the parent. Prices (yesPrice/noPrice) are formatted as dollars. Read the agent-guide resource for full data model details.
Inputs: no named parameters.
get_marketA
Fetch full details for a single market by ID (app ID string for on-chain, UUID for API). Returns the complete market object including options for multi-choice markets.
Inputs: marketId (required).
get_open_ordersA
Fetch all open orders for a wallet on a specific market. You must provide walletAddress or set ALPHA_MNEMONIC.
Inputs: marketAppId (required), walletAddress.
get_orderbookA
Fetch the on-chain orderbook as a unified YES-perspective view. Merges all 4 sides (YES bids/asks + NO bids/asks) into a single book: NO bids become YES asks at $(1-X), NO asks become YES bids at $(1-X). Asks sorted low-to-high, bids sorted high-to-low. Includes spread calculation.
Inputs: marketAppId (required).
get_positionsA
Fetch all YES/NO token positions for a wallet across all markets. You must provide walletAddress or set ALPHA_MNEMONIC.
Inputs: walletAddress.
get_reward_marketsA
Fetch all reward markets from the Alpha REST API. Returns markets that have liquidity rewards (totalRewards, rewardsPaidOut, etc.). Requires ALPHA_API_KEY for API access. Same summary shape as get_live_markets: id, title, marketAppId, prices, volume; multi-choice markets have options[].
Inputs: no named parameters.
propose_matchA
Propose a match between an existing maker order and the configured wallet as taker. The maker escrowAppId and address can be found via get_orderbook. quantityMatched is in microunits.
Inputs: marketAppId (required), makerAddress (required), quantityMatched (required), makerEscrowAppId (required).
stream_live_marketsA
Collect real-time market probability changes via WebSocket for a specified duration. Returns all accumulated changes (market ID, probability patches, spread/midpoint updates). Useful for seeing which markets are active right now.
Inputs: durationMs.
stream_marketA
Watch a single market by slug via WebSocket and return the first change event. Times out if no change occurs. Requires the market slug, not the market app ID.
Inputs: slug (required), timeoutMs.
stream_orderbookA
Get a real-time orderbook snapshot for a market via WebSocket. Faster than on-chain reads (~5s vs ~10s). Returns the same full processed snapshot shape as get_full_orderbook, with bids, asks, spread, and per-side YES/NO detail. Requires the market slug (URL-friendly name), not the market app ID.
Inputs: slug (required), timeoutMs.
stream_wallet_ordersA
Watch a wallet for order changes via WebSocket and return the first change event. Times out if no orders change. You must provide walletAddress or set ALPHA_MNEMONIC.
Inputs: timeoutMs, walletAddress.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 20 tools
Each tool targets a distinct action or data type (e.g., create_limit_order vs create_market_order, get_orderbook vs get_full_orderbook). No overlapping purposes.
All tool names follow a consistent verb_noun snake_case pattern (e.g., amend_order, cancel_order, get_live_markets). No mixing of conventions.
20 tools cover the full range of prediction market interactions (orders, queries, streaming, utilities) without being excessive. Well-scoped for the domain.
Covers order lifecycle (create, cancel, amend, match), market data (snapshot, streaming), positions, rewards, and utility (agent guide). No obvious gaps for typical trading workflows.
Maintenance
Related MCP Connectors
Trading MCP server for AI agents, with live market data, account reads and controlled execution.
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents
MCP server exposing the Backtest360 engine API as tools for AI agents.
Historical tick, order book and settlement data for Polymarket and Predict.fun crypto up/down markets, plus smart-money lists and backtest quotes, over a read-only MCP server.
Related MCP Servers
- AlicenseCqualityDmaintenanceMCP server that provides a unified prediction market API for multiple venues like Polymarket and Kalshi, allowing AI agents to discover markets, fetch order books, and execute trades through a single interface.3271 npm8MIT
- AlicenseAqualityDmaintenanceMCP server for question.market prediction markets on Algorand. Enables market browsing, wallet onboarding, and trading through natural language.1341 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes Polymarket prediction markets via CLI wrapper. Enables AI agents to discover markets, check prices, and place trades programmatically.-
- AlicenseNot gradedqualityCmaintenanceMCP server for querying and optionally trading across prediction markets (Polymarket, Kalshi, Limitless, Manifold) through a unified API.31MIT