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”.

Research session for humans

Connect Pera or Defly, pay ~0.03 USDC once, then call session-covered research GETs for 1 hour. Agents stay walletless and may still send paymentSignature per request.

Wallet

Disconnected

Not connected

Remaining TTL

—

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