WebMCP
Same page for people and agents. Tools below are the live Amarok MCP set
(33 tools: 4 free, 29 paid).
Agents discover them via document.modelContext.registerTool
(Chrome) with a navigator.modelContext fallback. Humans on this
page buy a 1h research session (~0.03 USDC) or pay the
Alpha scan SKU (~0.025 USDC). This page does not require a
ChatGPT login.
Browser
WebMCP API
Checking…
Origin isolated
—
Registered
0 / 33
Enable Chrome chrome://flags/#enable-webmcp-testing or open
this URL in ChatGPT’s in-app browser. Without WebMCP the catalog still
lists every tool; they just stay “Catalog only”.
Run as a human
amarok_list_opportunities uses the page session.
amarok_get_scan is not session-covered — it charges
~0.025 USDC from the same wallet. Venue scans, execution,
portfolio, advisor, and watchlist stay agent-only. Same
execute path as WebMCP; fail closed. Gateway:
https://amarok-api.compx.io. MCP docs stay
on /mcp.
Registered tools
Names and schemas match live discovery mcpServer.tools. Agents
see this full set. Humans see the same list here.
Discovery
Free catalog and liveness.
amarok_health free
Catalog
Check Amarok API liveness via GET /health. Free endpoint.
GET /health
amarok_get_discovery free
Catalog
Fetch free/paid route catalog and x402 templates via GET /discovery. Free endpoint.
GET /discovery
amarok_get_openapi free
Catalog
Fetch OpenAPI document via GET /openapi.json. Free endpoint.
GET /openapi.json
amarok_list_execution_shapes free
Catalog
List Amarok execution shapes via GET /v1/alpha/execution/shapes. Free endpoint. Use with amarok_get_execution_quote.
GET /v1/alpha/execution/shapes
Alpha research
Session covers light GETs. Scan stays per-request.
amarok_list_opportunities paid · 0.005 USDC session
Catalog
Mixed ranked opportunities across LP reward, spread, and parity (GET /v1/alpha/opportunities). Quick “what’s good” view; prefer lane-specific tools for strategy focus. Supports research filters. Paid ~0.005 USDC. Omit paymentSignature for PAYMENT_REQUIRED preflight.
GET /v1/alpha/opportunities
amarok_list_rewards paid · 0.005 USDC session
Catalog
Ranked LP reward opportunities (GET /v1/alpha/rewards). Safest emissions-farming lane. Supports research filters. Paid ~0.005 USDC. Omit paymentSignature for preflight.
GET /v1/alpha/rewards
amarok_list_spreads paid · 0.005 USDC session
Catalog
Ranked maker/spread opportunities (GET /v1/alpha/spreads). Supports research filters. Paid ~0.005 USDC. Omit paymentSignature for preflight.
GET /v1/alpha/spreads
amarok_list_parity paid · 0.005 USDC session
Catalog
Ranked YES+NO parity opportunities (GET /v1/alpha/parity). Supports research filters. Paid ~0.005 USDC. Omit paymentSignature for preflight.
GET /v1/alpha/parity
amarok_list_markets paid · 0.005 USDC session
Catalog
Search/filter live Alpha Arcade markets (GET /v1/alpha/markets). Metadata only (no orderbooks). Filters: q, category, horizon, series, hasRewards, limit, offset. Paid ~0.005 USDC. Omit paymentSignature for preflight.
GET /v1/alpha/markets
amarok_get_market paid · 0.005 USDC session
Catalog
Alpha Arcade market deep dive (GET /v1/alpha/markets/{marketAppId}). Paid ~0.005 USDC. Requires marketAppId. Omit paymentSignature for preflight.
GET /v1/alpha/markets/{marketAppId}
amarok_get_quotes paid · 0.006 USDC session
Catalog
Suggested Alpha Arcade quotes for reward/spread lanes only (GET /v1/alpha/quotes). Supports research filters. Paid ~0.006 USDC. Omit paymentSignature for preflight.
GET /v1/alpha/quotes
amarok_get_scan paid · 0.025 USDC
Catalog
Full Alpha Arcade scan summary (GET /v1/alpha/scan). Supports research filters. Production caps ~12 markets / 45s orderbook budget so MCP clients (~60s tool timeout) finish; response may include timedOut/capped. Paid ~0.025 USDC. Omit paymentSignature for preflight.
GET /v1/alpha/scan
amarok_get_research_bundle paid · 0.02 USDC session
Catalog
Research bundle SKU (GET /v1/alpha/bundle): one payment returns opportunities + quotes + N market details (default 5, max 10). Additive to per-request 402. Supports research filters plus marketLimit and marketAppIds. Paid ~0.02 USDC. PAYMENT-RESPONSE is the bundle receipt — not replayable on other routes. Omit paymentSignature for PAYMENT_REQUIRED preflight, or pass sessionToken from amarok_create_research_session.
GET /v1/alpha/bundle
Polymarket (scan-only)
Light GETs are session-covered. /scan is not.
amarok_get_polymarket_scan paid · 0.025 USDC
Catalog
Capped Polymarket scan (GET /v1/polymarket/scan): Gamma open markets plus CLOB book tops (marketId is the condition id). Honors POLY_SCAN_* timeout/cap/cache independently of Alpha; payload may include timedOut/capped/candidateCount. Not covered by AMAROK-SESSION (neither venue /scan is). Paid ~0.025 USDC. Omit paymentSignature for preflight. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/polymarket/scan
amarok_list_polymarket_opportunities paid · 0.005 USDC session
Catalog
Mixed ranked Polymarket opportunities (GET /v1/polymarket/opportunities): LP_REWARD | MAKER | PARITY composed from the sibling lane handlers, sorted by edgeBps. Venue polymarket only — no Kalshi/Alpha mix. Quick “what’s good” view; prefer lane-specific tools for strategy focus. Honors POLY_SCAN_* independently of Alpha. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/polymarket/opportunities
amarok_list_polymarket_rewards paid · 0.005 USDC session
Catalog
Ranked Polymarket LP rewards (GET /v1/polymarket/rewards): CLOB /rewards/markets/current joined to Gamma metadata. Sorted by estimatedRewardUsdPerDay. Missing Gamma rows stay observations. Honors POLY_SCAN_* independently of Alpha. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/polymarket/rewards
amarok_list_polymarket_spreads paid · 0.005 USDC session
Catalog
Ranked Polymarket maker/spreads (GET /v1/polymarket/spreads): CLOB book tops sorted by bookTopBestSpread. Missing Gamma rows stay observations. Honors POLY_SCAN_* independently of Alpha. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/polymarket/spreads
amarok_list_polymarket_parity paid · 0.005 USDC session
Catalog
Ranked Polymarket YES+NO vs $1 (GET /v1/polymarket/parity): both token books sorted by buy-both edgeBps (1 - yesAsk - noAsk) * 10_000. Missing Gamma rows stay observations. Honors POLY_SCAN_* independently of Alpha. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/polymarket/parity
amarok_list_polymarket_markets paid · 0.005 USDC session
Catalog
Search/filter live Polymarket markets (GET /v1/polymarket/markets). Gamma metadata only (no orderbooks). Identity is marketId (condition id), not Alpha marketAppId. Thin filters: q, limit, offset. Items include yesTokenId/noTokenId. Honors POLY_SCAN_* timeout/cache independently of Alpha. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/polymarket/markets
amarok_get_polymarket_market paid · 0.005 USDC session
Catalog
Polymarket market detail (GET /v1/polymarket/markets/{marketId}). Lookup by Gamma condition id. Includes yesTokenId/noTokenId. Not Alpha marketAppId. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Requires marketId. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/polymarket/markets/{marketId}
Kalshi (scan-only)
Light GETs are session-covered. /scan is not.
amarok_get_kalshi_scan paid · 0.025 USDC
Catalog
Capped Kalshi scan (GET /v1/kalshi/scan): open markets plus inferred two-sided book tops (YES bid p ↔ NO ask 1-p). Honors KALSHI_SCAN_* timeout/cap/cache independently of Alpha; payload may include timedOut/capped. Not covered by AMAROK-SESSION (neither venue /scan is). Paid ~0.025 USDC. Omit paymentSignature for preflight. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/kalshi/scan
amarok_list_kalshi_opportunities paid · 0.005 USDC session
Catalog
Mixed ranked Kalshi opportunities (GET /v1/kalshi/opportunities): LP_REWARD | MAKER | PARITY composed from the sibling lane handlers, sorted by edgeBps. Venue kalshi only — no Polymarket/Alpha mix. Quick “what’s good” view; prefer lane-specific tools for strategy focus. Honors KALSHI_SCAN_* independently of Alpha. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/kalshi/opportunities
amarok_list_kalshi_rewards paid · 0.005 USDC session
Catalog
Ranked Kalshi LP rewards (GET /v1/kalshi/rewards): public /incentive_programs joined to market metadata. Liquidity programs first; volume stays observation. Sorted by estimatedRewardUsdPerDay (shared rankReward). Missing market rows stay observations. Honors KALSHI_SCAN_* independently of Alpha. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/kalshi/rewards
amarok_list_kalshi_spreads paid · 0.005 USDC session
Catalog
Ranked Kalshi maker/spreads (GET /v1/kalshi/spreads): inferred two-sided book tops (YES bid p ↔ NO ask 1-p) sorted by bookTopBestSpread. Missing market rows stay observations. Honors KALSHI_SCAN_* independently of Alpha. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/kalshi/spreads
amarok_list_kalshi_parity paid · 0.005 USDC session
Catalog
Ranked Kalshi YES+NO vs $1 (GET /v1/kalshi/parity): inferred/reciprocal book tops (YES bid p ↔ NO ask 1-p) sorted by buy-both edgeBps (1 - yesAsk - noAsk) * 10_000. Missing market rows stay observations. Honors KALSHI_SCAN_* independently of Alpha. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/kalshi/parity
amarok_list_kalshi_markets paid · 0.005 USDC session
Catalog
Kalshi market list (GET /v1/kalshi/markets): public Trade API open markets keyed by ticker (marketId), not Alpha marketAppId. Metadata only. Filters: q, eventTicker, limit, offset. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/kalshi/markets
amarok_get_kalshi_market paid · 0.005 USDC session
Catalog
Kalshi market deep dive (GET /v1/kalshi/markets/{ticker}). Requires ticker (marketId). Book prices are probabilities in (0, 1) with inferred asks — never cents. Covered by AMAROK-SESSION. Paid ~0.005 USDC. Omit paymentSignature for preflight, or pass sessionToken from amarok_create_research_session. Scan-only family: no execution, WebSockets, Perps, cross-venue matching, quotes/bundle SKUs, watchlist/history, or GET /quotes. Own in-process TTL cache (not Alpha scanCache; not Redis/KV).
GET /v1/kalshi/markets/{ticker}
Session
1h AMAROK-SESSION capability. Humans buy this on a later ticket.
amarok_create_research_session paid · 0.03 USDC
Catalog
Research session SKU (POST /v1/alpha/session): pay once for a 1h HMAC capability covering research GETs (Alpha opportunities, lanes, markets, quotes, bundle, plus light Polymarket/Kalshi GETs — not either /scan, execution, portfolio, advisor, or watchlist). Present the token as AMAROK-SESSION / sessionToken on covered GETs instead of a new PAYMENT-SIGNATURE. Per-request 402 stays the bazaar default. Paid ~0.03 USDC. Omit paymentSignature for PAYMENT_REQUIRED preflight. meta.executionSubmitted always false.
POST /v1/alpha/session
Execution & inventory
Always per-request. Unsigned groups only — Amarok never signs or submits.
amarok_get_execution_quote paid · 0.01 USDC
Catalog
Build unsigned Alpha Arcade transaction groups (POST /v1/alpha/execution/quotes) for alpha_place_limit_order, alpha_cancel_order, alpha_claim, alpha_place_market_order, alpha_merge_shares, alpha_split_shares, or alpha_opt_in. Returns unsigned txns only; agent signs and submits via own algod; Amarok never submits. Paid ~0.01 USDC (match/split at current execution SKU; cancel/claim remain on this cheaper-than-scan route). Omit paymentSignature for PAYMENT_REQUIRED preflight.
POST /v1/alpha/execution/quotes
amarok_get_portfolio paid · 0.005 USDC
Catalog
Alpha Arcade portfolio for a wallet address (GET /v1/alpha/portfolio/{address}): balances, positions with mark-to-market, open orders, bid escrow. Same DTO family as free Ghillie showcase. Requires address. Paid ~0.005 USDC. Omit paymentSignature for preflight.
GET /v1/alpha/portfolio/{address}
amarok_get_advisor paid · 0.008 USDC
Catalog
Inventory-aware advisor (POST /v1/alpha/advisor). Post authoritative snapshot: address + positions + open orders + optional avg cost / asset ids. Returns suggested exits, off-zone/underwater cancels, resolvable claims, size adjustments. No keys; meta.executionSubmitted always false. Snapshot is authoritative for wallet state; Amarok re-reads Alpha markets/books only. Paid ~0.008 USDC. Omit paymentSignature for PAYMENT_REQUIRED preflight.
POST /v1/alpha/advisor
amarok_register_watchlist paid · 0.008 USDC
Catalog
Register market ids for a watchlist (POST /v1/alpha/watchlist). Returns a watchlistId + cursor. Later paid polls return deltas only (not a full rescan). Max 25 markets. Coarse history is top 25 per lane in ~5m buckets. Paid ~0.008 USDC. Not covered by AMAROK-SESSION. Omit paymentSignature for PAYMENT_REQUIRED preflight. meta.executionSubmitted always false.
POST /v1/alpha/watchlist
amarok_poll_watchlist paid · 0.008 USDC
Catalog
Poll watchlist deltas (GET /v1/alpha/watchlist). Requires watchlistId from amarok_register_watchlist. Optional cursor (omit or pass origin for first seed). Response is changed ranked rows only — entered/exited/updated vs the previous 5m bucket — never a full scan payload. Paid ~0.008 USDC. Not covered by AMAROK-SESSION. Omit paymentSignature for PAYMENT_REQUIRED preflight. meta.executionSubmitted always false.
GET /v1/alpha/watchlist