{"count":76,"categories":["Trading","Imperial market data","Phoenix","Spot & data rails","Grok & AI models","Technical analysis","Paper trading","Strategy planners","Swarms","Wallet & auth","Percolator venue","Privacy Rings","Render widgets"],"category_counts":{"Trading":7,"Imperial market data":12,"Phoenix":9,"Spot & data rails":11,"Grok & AI models":4,"Technical analysis":2,"Paper trading":3,"Strategy planners":2,"Swarms":3,"Wallet & auth":7,"Percolator venue":11,"Privacy Rings":4,"Render widgets":1},"tools":[{"name":"auth_challenge","category":"Wallet & auth","access":"read","secret_material":false,"summary":"Start $CLAWD holder sign-in: returns a single-use challenge message (10-minute TTL) binding your wallet, this server's domain, and a nonce.","description":"Start $CLAWD holder sign-in: returns a single-use challenge message\n    (10-minute TTL) binding your wallet, this server's domain, and a nonce.\n    Sign the message with your Solana wallet, then call auth_verify.","params":[{"name":"wallet","type":"string","required":true,"default":null,"description":""}]},{"name":"auth_status","category":"Wallet & auth","access":"read","secret_material":false,"summary":"Whoami for holder sessions: wallet, live $CLAWD balance, tier, and today's remaining inference/API quotas.","description":"Whoami for holder sessions: wallet, live $CLAWD balance, tier, and\n    today's remaining inference/API quotas. Requires the session Bearer\n    token from auth_verify.","params":[]},{"name":"auth_verify","category":"Wallet & auth","access":"read","secret_material":false,"summary":"Finish holder sign-in: verifies your Ed25519 signature over the challenge message, reads your $CLAWD balance via Helius DAS, and issues a Bearer session token carrying your tier.","description":"Finish holder sign-in: verifies your Ed25519 signature over the\n    challenge message, reads your $CLAWD balance via Helius DAS, and issues\n    a Bearer session token carrying your tier. Send it as\n    `Authorization: Bearer <token>` on later MCP calls. Signature may be\n    base58 or base64.","params":[{"name":"wallet","type":"string","required":true,"default":null,"description":""},{"name":"nonce","type":"string","required":true,"default":null,"description":""},{"name":"signature","type":"string","required":true,"default":null,"description":""}]},{"name":"clawd_execute_signed_order","category":"Trading","access":"gated","secret_material":false,"summary":"Consume a single owner-signature ticket; never retry an ambiguous write.","description":"Consume a single owner-signature ticket; never retry an ambiguous write.","params":[{"name":"approval_id","type":"string","required":true,"default":null,"description":""},{"name":"owner_signature","type":"string","required":true,"default":null,"description":""}]},{"name":"clawd_policy_status","category":"Trading","access":"read","secret_material":false,"summary":"Report live gates without disclosing keys.","description":"Report live gates without disclosing keys.","params":[]},{"name":"clawd_prepare_signed_order","category":"Trading","access":"read","secret_material":false,"summary":"Preflight and prepare a 120-second one-use EXACT owner-signed order.","description":"Preflight and prepare a 120-second one-use EXACT owner-signed order.","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""},{"name":"side","type":"string","required":false,"default":"long","description":""},{"name":"size_usd","type":"number","required":false,"default":25.0,"description":""},{"name":"collateral_usd","type":"number","required":false,"default":25.0,"description":""},{"name":"slippage_bps","type":"integer","required":false,"default":20,"description":""}]},{"name":"dflow_quote","category":"Spot & data rails","access":"read","secret_material":false,"summary":"DFlow spot quote (Trading API).","description":"DFlow spot quote (Trading API). Requires DFLOW_API_KEY (prod rails,\n    quote-api.dflow.net, x-api-key header). Without a key this reports\n    not_configured — a free dev host (dev-quote-api.dflow.net) exists but is\n    rate-limited and is NOT silently used for prod-shaped answers.","params":[{"name":"input_mint","type":"string","required":true,"default":null,"description":""},{"name":"output_mint","type":"string","required":true,"default":null,"description":""},{"name":"amount_atomic","type":"integer","required":true,"default":null,"description":""},{"name":"slippage_bps","type":"integer","required":false,"default":50,"description":""}]},{"name":"get_auth_flow_info","category":"Wallet & auth","access":"read","secret_material":false,"summary":"Explain the Imperial auth flow this server supports: (a) operator JWT via IMPERIAL_API_KEY env, (b) ephemeral session wallet: generate -> sign imperial:mobile-connect:{wallet}:{fresh timestamp nonce} -> /mobile/connect -…","description":"Explain the Imperial auth flow this server supports: (a) operator JWT\n    via IMPERIAL_API_KEY env, (b) ephemeral session wallet: generate ->\n    sign imperial:mobile-connect:{wallet}:{fresh timestamp nonce} ->\n    /mobile/connect -> /mobile/exchange. JWTs are ~30-day delegations.","params":[]},{"name":"grok_analyze","category":"Grok & AI models","access":"holder","secret_material":false,"summary":"Clawd Grok analysis: Imperial mark + funding + TA, reasoned over by Grok (XAI_API_KEY / GROK_API_KEY, model GROK_MODEL, default grok-4.6), or, when Grok is unset, the OpenRouter :free catalog (OPENROUTER_API_KEY) with fa…","description":"Clawd Grok analysis: Imperial mark + funding + TA, reasoned over by\n    Grok (XAI_API_KEY / GROK_API_KEY, model GROK_MODEL, default grok-4.6),\n    or, when Grok is unset, the OpenRouter :free catalog (OPENROUTER_API_KEY)\n    with failover across free models. HOLDER-GATED: requires a $CLAWD holder session (auth_challenge ->\n    auth_verify, then send the session token as a Bearer header) and spends\n    one daily inference credit for the caller's tier. With NO Grok key\n    configured this returns a deterministic TA-only summary with\n    grok=\"not_configured\" — it never invents a Grok opinion.","params":[{"name":"symbol","type":"string","required":false,"default":"SOL","description":""},{"name":"timeframe","type":"string","required":false,"default":"hour","description":""},{"name":"question","type":"string","required":false,"default":"What is the trade setup here?","description":""}]},{"name":"grok_trade_plan","category":"Grok & AI models","access":"holder","secret_material":false,"summary":"Structured trade PLAN (paper | dry-run only): entry at the live mark, TP/SL from ATR (SL 1.5x ATR, TP1 2x ATR, TP2 3x ATR), position size from the risk budget and the SL distance, checked against guardrails.","description":"Structured trade PLAN (paper | dry-run only): entry at the live mark,\n    TP/SL from ATR (SL 1.5x ATR, TP1 2x ATR, TP2 3x ATR), position size from\n    the risk budget and the SL distance, checked against guardrails.\n    HOLDER-GATED like grok_analyze (Bearer session token + one inference\n    credit). This tool NEVER calls any order endpoint — executing the plan\n    is a separate gated step (paper_place_order, or imperial_place_order\n    when live).","params":[{"name":"symbol","type":"string","required":false,"default":"SOL","description":""},{"name":"side","type":"string","required":false,"default":"long","description":""},{"name":"risk_usdc","type":"number","required":false,"default":500.0,"description":""},{"name":"mode","type":"string","required":false,"default":"paper","description":""}]},{"name":"helius_wallet_balances","category":"Spot & data rails","access":"read","secret_material":false,"summary":"SOL + SPL token balances for a wallet via the configured Helius RPC (HELIUS_RPC_URL, HELIUS_API_KEY, or HELIUS_KEY_RING with failover).","description":"SOL + SPL token balances for a wallet via the configured Helius RPC\n    (HELIUS_RPC_URL, HELIUS_API_KEY, or HELIUS_KEY_RING with failover).\n    Read-only JSON-RPC; the RPC URL and keys are never returned or logged.","params":[{"name":"wallet","type":"string","required":false,"default":null,"description":""}]},{"name":"imperial_auth_exchange","category":"Imperial market data","access":"read","secret_material":false,"summary":"Full Imperial auth flow for a session wallet: sign imperial:mobile-connect:{wallet}:{fresh-nonce} in memory, POST /mobile/connect, then /mobile/exchange.","description":"Full Imperial auth flow for a session wallet: sign\n    imperial:mobile-connect:{wallet}:{fresh-nonce} in memory, POST\n    /mobile/connect, then /mobile/exchange. The resulting JWT is stored in\n    server memory for the session; the tool output carries only a masked\n    tail + expiry — never the full JWT.","params":[{"name":"session_id","type":"string","required":true,"default":null,"description":""}]},{"name":"imperial_balances","category":"Imperial market data","access":"read","secret_material":false,"summary":"Per-profile USDC balances (JWT required): GET /mobile/balances.","description":"Per-profile USDC balances (JWT required): GET /mobile/balances.\n    Values are 6-decimal native units; usdc_usd is the decoded amount.\n    Uninitialized profiles return 0 — that is normal, not an error.","params":[]},{"name":"imperial_cancel_order","category":"Trading","access":"gated","secret_material":false,"summary":"Cancel a resting Imperial order (POST /mobile/orders/cancel).","description":"Cancel a resting Imperial order (POST /mobile/orders/cancel).\n    Same fail-closed gate as imperial_place_order.","params":[{"name":"order_pda","type":"string","required":true,"default":null,"description":""},{"name":"profile_index","type":"integer","required":false,"default":0,"description":""},{"name":"cascade_children","type":"boolean","required":false,"default":true,"description":""},{"name":"confirm","type":"boolean","required":false,"default":false,"description":""},{"name":"confirm_token","type":"string","required":false,"default":"","description":""}]},{"name":"imperial_close_position","category":"Trading","access":"gated","secret_material":false,"summary":"Close (or reduce) a live Imperial position (POST /mobile/orders, action=Decrease).","description":"Close (or reduce) a live Imperial position (POST /mobile/orders,\n    action=Decrease). Sized by closeBps against the LIVE position\n    (10000 = full close) — never by echoing the open's sizeUsd. `side` is the\n    POSITION's side (long/short). Same fail-closed gate as imperial_place_order.","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""},{"name":"side","type":"string","required":true,"default":null,"description":""},{"name":"close_bps","type":"integer","required":false,"default":10000,"description":""},{"name":"profile_index","type":"integer","required":false,"default":0,"description":""},{"name":"underwriter","type":"integer","required":false,"default":2,"description":""},{"name":"slippage_bps","type":"integer","required":false,"default":50,"description":""},{"name":"confirm","type":"boolean","required":false,"default":false,"description":""},{"name":"confirm_token","type":"string","required":false,"default":"","description":""}]},{"name":"imperial_funding_rates","category":"Imperial market data","access":"read","secret_material":false,"summary":"Imperial funding/borrow rates per symbol per venue (public).","description":"Imperial funding/borrow rates per symbol per venue (public).\n    Sign convention: longFundingRatePerHourPercent > 0 means longs pay shorts.","params":[{"name":"symbols","type":"array","required":false,"default":null,"description":""}]},{"name":"imperial_health","category":"Imperial market data","access":"read","secret_material":false,"summary":"Imperial platform health: GET /api/v1/status (public, no auth) plus this server's config booleans (never secret values) and gate state.","description":"Imperial platform health: GET /api/v1/status (public, no auth) plus\n    this server's config booleans (never secret values) and gate state.","params":[]},{"name":"imperial_mark_prices","category":"Imperial market data","access":"read","secret_material":false,"summary":"Imperial mark prices (public).","description":"Imperial mark prices (public). Optionally filter by symbols, e.g.\n    [\"SOL\",\"BTC\"]. Returns a compact {symbol: usd} map plus raw row count.","params":[{"name":"symbols","type":"array","required":false,"default":null,"description":""}]},{"name":"imperial_markets_phoenix","category":"Imperial market data","access":"read","secret_material":false,"summary":"Phoenix perp markets listed through Imperial (public): symbol, max leverage, isolated-only flag, fee tiers — compact view.","description":"Phoenix perp markets listed through Imperial (public): symbol,\n    max leverage, isolated-only flag, fee tiers — compact view.","params":[{"name":"limit","type":"integer","required":false,"default":50,"description":""}]},{"name":"imperial_orders","category":"Imperial market data","access":"read","secret_material":false,"summary":"Open/resting orders for a wallet (public read, walletAddress query).","description":"Open/resting orders for a wallet (public read, walletAddress query).","params":[{"name":"wallet","type":"string","required":false,"default":null,"description":""}]},{"name":"imperial_place_order","category":"Trading","access":"gated","secret_material":false,"summary":"LIVE Imperial order (POST /mobile/orders).","description":"LIVE Imperial order (POST /mobile/orders). FAIL-CLOSED: refuses unless\n    IMPERIAL_TRADING_ENABLED=true AND confirm=true AND\n    confirm_token=\"CONFIRM_LIVE_ORDER\". On submission, Imperial answers HTTP\n    200 even on rejection — success/error/errorCode are surfaced verbatim.\n    Always preflight + render_trade_ticket and get the user's exact-terms\n    approval first.","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""},{"name":"side","type":"string","required":false,"default":"long","description":""},{"name":"size_usd","type":"number","required":false,"default":100.0,"description":""},{"name":"collateral_usd","type":"number","required":false,"default":null,"description":""},{"name":"leverage","type":"number","required":false,"default":1.0,"description":""},{"name":"order_type","type":"integer","required":false,"default":0,"description":""},{"name":"trigger_price_usd","type":"number","required":false,"default":null,"description":""},{"name":"slippage_bps","type":"integer","required":false,"default":50,"description":""},{"name":"profile_index","type":"integer","required":false,"default":0,"description":""},{"name":"underwriter","type":"integer","required":false,"default":2,"description":""},{"name":"confirm","type":"boolean","required":false,"default":false,"description":""},{"name":"confirm_token","type":"string","required":false,"default":"","description":""}]},{"name":"imperial_points","category":"Imperial market data","access":"read","secret_material":false,"summary":"Imperial points for the active season (JWT required).","description":"Imperial points for the active season (JWT required). Points are\n    credited in weekly batches, so the figure updates weekly, not per-trade.","params":[]},{"name":"imperial_positions","category":"Imperial market data","access":"read","secret_material":false,"summary":"Open perp positions for a wallet (public read, walletAddress query): symbol, side, size, entry/mark, leverage, liquidation, unrealized PnL.","description":"Open perp positions for a wallet (public read, walletAddress query):\n    symbol, side, size, entry/mark, leverage, liquidation, unrealized PnL.","params":[{"name":"wallet","type":"string","required":false,"default":null,"description":""}]},{"name":"imperial_preflight_order","category":"Trading","access":"read","secret_material":false,"summary":"Preflight an Imperial order (POST /mobile/orders/preflight): would this exact order be accepted? Places NOTHING.","description":"Preflight an Imperial order (POST /mobile/orders/preflight): would this\n    exact order be accepted? Places NOTHING. Needs the Imperial JWT only —\n    no trading gate. Phoenix (underwriter 2) is the default venue.","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""},{"name":"side","type":"string","required":false,"default":"long","description":""},{"name":"size_usd","type":"number","required":false,"default":100.0,"description":""},{"name":"collateral_usd","type":"number","required":false,"default":null,"description":""},{"name":"leverage","type":"number","required":false,"default":1.0,"description":""},{"name":"order_type","type":"integer","required":false,"default":0,"description":""},{"name":"trigger_price_usd","type":"number","required":false,"default":null,"description":""},{"name":"slippage_bps","type":"integer","required":false,"default":50,"description":""},{"name":"profile_index","type":"integer","required":false,"default":0,"description":""},{"name":"underwriter","type":"integer","required":false,"default":2,"description":""}]},{"name":"imperial_route","category":"Imperial market data","access":"read","secret_material":false,"summary":"Cost-optimized venue route for one perp trade (public): GET /route?asset&side&notional.","description":"Cost-optimized venue route for one perp trade (public):\n    GET /route?asset&side&notional. Size deposits from its requiredDeposit.","params":[{"name":"asset","type":"string","required":false,"default":"SOL","description":""},{"name":"side","type":"string","required":false,"default":"long","description":""},{"name":"notional_usd","type":"number","required":false,"default":1000.0,"description":""},{"name":"leverage","type":"number","required":false,"default":null,"description":""},{"name":"profile_index","type":"integer","required":false,"default":0,"description":""}]},{"name":"imperial_trades","category":"Imperial market data","access":"read","secret_material":false,"summary":"Recent trade lifecycles for a wallet (public read): opens/closes, fees and realized PnL.","description":"Recent trade lifecycles for a wallet (public read): opens/closes,\n    fees and realized PnL.","params":[{"name":"wallet","type":"string","required":false,"default":null,"description":""},{"name":"limit","type":"integer","required":false,"default":20,"description":""}]},{"name":"jupiter_price","category":"Spot & data rails","access":"read","secret_material":false,"summary":"Jupiter Price v3 USD prices for mints or symbols (SOL/USDC/CLAWD/...).","description":"Jupiter Price v3 USD prices for mints or symbols (SOL/USDC/CLAWD/...).","params":[{"name":"mints","type":"array","required":true,"default":null,"description":""}]},{"name":"jupiter_quote","category":"Spot & data rails","access":"read","secret_material":false,"summary":"Jupiter swap quote (spot).","description":"Jupiter swap quote (spot). Pass mints or symbols SOL/USDC/USDT/CLAWD/JUP.\n    amount_atomic is in the input token's smallest units. Quote only — no swap\n    transaction is built or signed here.","params":[{"name":"input_mint","type":"string","required":true,"default":null,"description":""},{"name":"output_mint","type":"string","required":true,"default":null,"description":""},{"name":"amount_atomic","type":"integer","required":true,"default":null,"description":""},{"name":"slippage_bps","type":"integer","required":false,"default":50,"description":""}]},{"name":"musebook_directory_stats","category":"Spot & data rails","access":"read","secret_material":false,"summary":"Musebook directory snapshot via the public musebook.trade/mcp: reports the live MCP tool surface (count + names).","description":"Musebook directory snapshot via the public musebook.trade/mcp:\n    reports the live MCP tool surface (count + names). Best-effort proxy.","params":[]},{"name":"openrouter_chat","category":"Grok & AI models","access":"holder","secret_material":false,"summary":"Chat with an OpenRouter :free model, failing over to the next free model on rate limits or outages (up to 3 tries, ending with openrouter/free).","description":"Chat with an OpenRouter :free model, failing over to the next free\n    model on rate limits or outages (up to 3 tries, ending with\n    openrouter/free). HOLDER-GATED: needs a $CLAWD holder Bearer session and\n    spends one inference credit. Rerank/embed/TTS models are refused. Not\n    trading advice; never places orders.","params":[{"name":"prompt","type":"string","required":true,"default":null,"description":""},{"name":"model","type":"string","required":false,"default":null,"description":""},{"name":"feature","type":"string","required":false,"default":null,"description":""},{"name":"prefer","type":"string","required":false,"default":"quality","description":""},{"name":"system","type":"string","required":false,"default":null,"description":""},{"name":"max_tokens","type":"integer","required":false,"default":800,"description":""}]},{"name":"openrouter_models","category":"Grok & AI models","access":"read","secret_material":false,"summary":"List the OpenRouter :free model catalog (all $0 in/out).","description":"List the OpenRouter :free model catalog (all $0 in/out). Filter by\n    feature (reasoning, vision, agentic, audio, rerank, embed) or chat_only.\n    Never returns the API key.","params":[{"name":"feature","type":"string","required":false,"default":null,"description":""},{"name":"chat_only","type":"boolean","required":false,"default":false,"description":""}]},{"name":"paper_close","category":"Paper trading","access":"read","secret_material":false,"summary":"Close a paper position (by id, or the first open one for `symbol`) at the live Imperial mark.","description":"Close a paper position (by id, or the first open one for `symbol`)\n    at the live Imperial mark. Simulated only.","params":[{"name":"position_id","type":"string","required":false,"default":null,"description":""},{"name":"symbol","type":"string","required":false,"default":null,"description":""}]},{"name":"paper_place_order","category":"Paper trading","access":"read","secret_material":false,"summary":"PAPER order: simulated fill at the live Imperial mark price.","description":"PAPER order: simulated fill at the live Imperial mark price. This is\n    the default execution mode — no chain, wallet, or Imperial order is\n    touched. State persists to a JSON file under the server state dir.","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""},{"name":"side","type":"string","required":false,"default":"long","description":""},{"name":"size_usd","type":"number","required":false,"default":1000.0,"description":""},{"name":"leverage","type":"number","required":false,"default":1.0,"description":""}]},{"name":"paper_positions","category":"Paper trading","access":"read","secret_material":false,"summary":"Paper book: cash, open simulated positions marked to live Imperial marks, equity and unrealized PnL.","description":"Paper book: cash, open simulated positions marked to live Imperial\n    marks, equity and unrealized PnL. Paper only.","params":[]},{"name":"percolator_close_position","category":"Percolator venue","access":"gated","secret_material":false,"summary":"Close the owner's whole position (trades the opposite of the current size).","description":"Close the owner's whole position (trades the opposite of the current size). Gated; mainnet unsigned if enabled.","params":[{"name":"slab","type":"string","required":true,"default":null,"description":""},{"name":"owner","type":"string","required":true,"default":null,"description":""},{"name":"lp_owner","type":"string","required":true,"default":null,"description":""},{"name":"user_idx","type":"integer","required":false,"default":null,"description":""},{"name":"lp_idx","type":"integer","required":false,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""},{"name":"confirm","type":"boolean","required":false,"default":false,"description":""},{"name":"confirm_token","type":"string","required":false,"default":"","description":""}]},{"name":"percolator_create_user_market","category":"Percolator venue","access":"gated","secret_material":false,"summary":"Create a permissionless perps market on a pump.fun / PumpSwap / LaunchLab token.","description":"Create a permissionless perps market on a pump.fun / PumpSwap / LaunchLab token. One atomic tx:\n        create slab + vault, InitMarket, ConfigurePoolOracle, TopUpInsurance(bond). The creator is the admin, but\n        pool markets lock every admin price lever. Devnet default. Simulates unless confirm=true and\n        confirm_token=\"CONFIRM_PERCOLATOR_TX\". Mainnet needs PERCOLATOR_MAINNET_WRITES_ENABLED (unsigned only).","params":[{"name":"mint","type":"string","required":true,"default":null,"description":""},{"name":"collateral_mint","type":"string","required":true,"default":null,"description":""},{"name":"creator","type":"string","required":true,"default":null,"description":""},{"name":"bond","type":"integer","required":true,"default":null,"description":""},{"name":"im_bps","type":"integer","required":false,"default":2000,"description":""},{"name":"invert","type":"boolean","required":false,"default":false,"description":""},{"name":"tier","type":"string","required":false,"default":"small","description":""},{"name":"min_liquidity","type":"integer","required":false,"default":1000000000,"description":""},{"name":"ema_alpha_bps","type":"integer","required":false,"default":500,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""},{"name":"confirm","type":"boolean","required":false,"default":false,"description":""},{"name":"confirm_token","type":"string","required":false,"default":"","description":""}]},{"name":"percolator_deposit","category":"Percolator venue","access":"gated","secret_material":false,"summary":"Deposit collateral (base units).","description":"Deposit collateral (base units). init=true first opens the trader account (InitUser). Devnet default; gated.","params":[{"name":"slab","type":"string","required":true,"default":null,"description":""},{"name":"owner","type":"string","required":true,"default":null,"description":""},{"name":"amount","type":"integer","required":true,"default":null,"description":""},{"name":"user_idx","type":"integer","required":false,"default":null,"description":""},{"name":"init","type":"boolean","required":false,"default":false,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""},{"name":"confirm","type":"boolean","required":false,"default":false,"description":""},{"name":"confirm_token","type":"string","required":false,"default":"","description":""}]},{"name":"percolator_detect_venue","category":"Percolator venue","access":"read","secret_material":false,"summary":"Paste a token mint: detect pump.fun curve / PumpSwap / LaunchLab (Stonk.fun) pool and perps eligibility.","description":"Paste a token mint: detect pump.fun curve / PumpSwap / LaunchLab (Stonk.fun) pool and perps eligibility. Read-only.","params":[{"name":"mint","type":"string","required":true,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"mainnet","description":""},{"name":"min_liquidity","type":"integer","required":false,"default":1000000000,"description":""}]},{"name":"percolator_list_markets","category":"Percolator venue","access":"read","secret_material":false,"summary":"List CLAWD Percolator perps markets (slabs) on a cluster (default devnet).","description":"List CLAWD Percolator perps markets (slabs) on a cluster (default devnet). Read-only.","params":[{"name":"cluster","type":"string","required":false,"default":"devnet","description":""},{"name":"limit","type":"integer","required":false,"default":50,"description":""}]},{"name":"percolator_open_position","category":"Percolator venue","access":"gated","secret_material":false,"summary":"Open/increase a position against an LP (size base units, +long/-short).","description":"Open/increase a position against an LP (size base units, +long/-short). Refreshes the pool oracle first.\n        TradeNoCpi needs the LP's co-signature (devnet). Gated; mainnet unsigned-only when PERCOLATOR_MAINNET_WRITES_ENABLED.","params":[{"name":"slab","type":"string","required":true,"default":null,"description":""},{"name":"owner","type":"string","required":true,"default":null,"description":""},{"name":"lp_owner","type":"string","required":true,"default":null,"description":""},{"name":"size","type":"integer","required":true,"default":null,"description":""},{"name":"lp_idx","type":"integer","required":false,"default":null,"description":""},{"name":"user_idx","type":"integer","required":false,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""},{"name":"confirm","type":"boolean","required":false,"default":false,"description":""},{"name":"confirm_token","type":"string","required":false,"default":"","description":""}]},{"name":"percolator_oracle_price","category":"Percolator venue","access":"read","secret_material":false,"summary":"Current index price of a market: pool EMA (trustless pool markets) or admin-pushed price.","description":"Current index price of a market: pool EMA (trustless pool markets) or admin-pushed price.","params":[{"name":"slab","type":"string","required":true,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""}]},{"name":"percolator_quote","category":"Percolator venue","access":"read","secret_material":false,"summary":"Quote a position (size in base units, +long/-short): notional, initial margin, fee, leverage cap.","description":"Quote a position (size in base units, +long/-short): notional, initial margin, fee, leverage cap.","params":[{"name":"slab","type":"string","required":true,"default":null,"description":""},{"name":"size","type":"integer","required":true,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""}]},{"name":"percolator_read_market","category":"Percolator venue","access":"read","secret_material":false,"summary":"Decode a CLAWD Percolator slab: config, pool-oracle state, engine totals (optionally accounts).","description":"Decode a CLAWD Percolator slab: config, pool-oracle state, engine totals (optionally accounts).","params":[{"name":"slab","type":"string","required":true,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""},{"name":"include_accounts","type":"boolean","required":false,"default":false,"description":""}]},{"name":"percolator_update_oracle","category":"Percolator venue","access":"gated","secret_material":false,"summary":"Permissionless keeper call: UpdatePoolPrice (read pool reserves into the EMA).","description":"Permissionless keeper call: UpdatePoolPrice (read pool reserves into the EMA). Gated; mainnet unsigned-only when PERCOLATOR_MAINNET_WRITES_ENABLED.","params":[{"name":"slab","type":"string","required":true,"default":null,"description":""},{"name":"keeper","type":"string","required":true,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""},{"name":"confirm","type":"boolean","required":false,"default":false,"description":""},{"name":"confirm_token","type":"string","required":false,"default":"","description":""}]},{"name":"percolator_withdraw","category":"Percolator venue","access":"gated","secret_material":false,"summary":"Withdraw collateral (margin-checked on-chain at the oracle price).","description":"Withdraw collateral (margin-checked on-chain at the oracle price). Devnet default; gated.","params":[{"name":"slab","type":"string","required":true,"default":null,"description":""},{"name":"owner","type":"string","required":true,"default":null,"description":""},{"name":"amount","type":"integer","required":true,"default":null,"description":""},{"name":"user_idx","type":"integer","required":false,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""},{"name":"confirm","type":"boolean","required":false,"default":false,"description":""},{"name":"confirm_token","type":"string","required":false,"default":"","description":""}]},{"name":"phoenix_candles","category":"Phoenix","access":"read","secret_material":false,"summary":"","description":"","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""}]},{"name":"phoenix_funding_rates","category":"Phoenix","access":"read","secret_material":false,"summary":"","description":"","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""}]},{"name":"phoenix_mark_price","category":"Phoenix","access":"read","secret_material":false,"summary":"","description":"","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""}]},{"name":"phoenix_market","category":"Phoenix","access":"read","secret_material":false,"summary":"","description":"","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""}]},{"name":"phoenix_markets","category":"Phoenix","access":"read","secret_material":false,"summary":"","description":"","params":[]},{"name":"phoenix_orderbook","category":"Phoenix","access":"read","secret_material":false,"summary":"","description":"","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""}]},{"name":"phoenix_trader_capabilities","category":"Phoenix","access":"read","secret_material":false,"summary":"","description":"","params":[]},{"name":"phoenix_trader_state","category":"Phoenix","access":"read","secret_material":false,"summary":"","description":"","params":[{"name":"authority","type":"string","required":true,"default":null,"description":""}]},{"name":"phoenix_wallet_login_challenge","category":"Phoenix","access":"read","secret_material":false,"summary":"Public nonce only; never return or store JWTs in model responses.","description":"Public nonce only; never return or store JWTs in model responses.","params":[{"name":"wallet","type":"string","required":true,"default":null,"description":""}]},{"name":"pumpai_recent_launches","category":"Spot & data rails","access":"read","secret_material":false,"summary":"Recent Solana launches from the public PumpAI MCP (pumpai.ai/mcp, tool get_recent_launches).","description":"Recent Solana launches from the public PumpAI MCP (pumpai.ai/mcp,\n    tool get_recent_launches). Best-effort proxy: failure returns\n    available=false instead of raising.","params":[{"name":"limit","type":"integer","required":false,"default":10,"description":""},{"name":"source","type":"string","required":false,"default":null,"description":""}]},{"name":"render_trade_ticket","category":"Render widgets","access":"read","secret_material":false,"summary":"RENDER tool: display a prepared Imperial perp order as a trade-ticket card.","description":"RENDER tool: display a prepared Imperial perp order as a trade-ticket\n    card. Call the data/preflight tools FIRST, then this. It places nothing —\n    it returns the ticket data bound to the trade-ticket widget UI. Estimated\n    liquidation is a rough isolated-margin approximation, labelled as such.","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""},{"name":"side","type":"string","required":true,"default":null,"description":""},{"name":"size_usd","type":"number","required":true,"default":null,"description":""},{"name":"leverage","type":"number","required":false,"default":1.0,"description":""},{"name":"collateral_usd","type":"number","required":false,"default":null,"description":""},{"name":"order_type","type":"integer","required":false,"default":0,"description":""},{"name":"trigger_price_usd","type":"number","required":false,"default":null,"description":""},{"name":"profile_index","type":"integer","required":false,"default":0,"description":""}]},{"name":"render_wallet_card","category":"Wallet & auth","access":"read","secret_material":false,"summary":"RENDER tool: show the session-wallet card (pubkey + generate button).","description":"RENDER tool: show the session-wallet card (pubkey + generate button).\n    Pass a session_id to display that wallet; the card can also generate a\n    fresh one via the MCP Apps bridge. Secrets are never rendered.","params":[{"name":"session_id","type":"string","required":false,"default":null,"description":""}]},{"name":"session_generate_keypair","category":"Wallet & auth","access":"read","secret_material":true,"summary":"Generate an ephemeral session wallet (Ed25519, solders + PyNaCl).","description":"Generate an ephemeral session wallet (Ed25519, solders + PyNaCl).\n    Returns ONLY the session id and public key — the secret stays in server\n    memory, is never returned/logged/persisted, and dies on restart.","params":[]},{"name":"session_sign_message","category":"Wallet & auth","access":"read","secret_material":true,"summary":"Sign an arbitrary message with a session wallet.","description":"Sign an arbitrary message with a session wallet. Supports the Imperial\n    auth string imperial:mobile-connect:{wallet}:{nonce} (fresh unix\n    timestamp nonce). Returns the base58 signature + pubkey, never the secret.","params":[{"name":"session_id","type":"string","required":true,"default":null,"description":""},{"name":"message","type":"string","required":true,"default":null,"description":""}]},{"name":"solana_tracker_token","category":"Spot & data rails","access":"read","secret_material":false,"summary":"Solana Tracker token overview (requires SOLANA_TRACKER_API_KEY): price, liquidity, market cap, risk/holder summary for one mint.","description":"Solana Tracker token overview (requires SOLANA_TRACKER_API_KEY):\n    price, liquidity, market cap, risk/holder summary for one mint.","params":[{"name":"mint","type":"string","required":true,"default":null,"description":""}]},{"name":"spr_flow","category":"Privacy Rings","access":"read","secret_material":false,"summary":"How one Privacy Rings flow works and what it reveals.","description":"How one Privacy Rings flow works and what it reveals. flow is one of:\n        create_private_wallet, deposit, transfer, withdraw, read_balance,\n        read_history, onramp_from_fiat, offramp_to_fiat.","params":[{"name":"flow","type":"string","required":true,"default":null,"description":""}]},{"name":"spr_info","category":"Privacy Rings","access":"read","secret_material":false,"summary":"Solana Privacy Rings reference: program IDs (same on mainnet and devnet), endpoints, per-flow visibility, and the custody model.","description":"Solana Privacy Rings reference: program IDs (same on mainnet and devnet),\n        endpoints, per-flow visibility, and the custody model. This server never\n        holds shielded keys, never decrypts, and never signs privacy transactions.","params":[]},{"name":"spr_shielded_transactions_by_signature","category":"Privacy Rings","access":"read","secret_material":false,"summary":"Fetch the ENCRYPTED shielded outputs of one Solana transaction from the Helius Privacy indexer (getShieldedTransactionsBySignature).","description":"Fetch the ENCRYPTED shielded outputs of one Solana transaction from the\n        Helius Privacy indexer (getShieldedTransactionsBySignature). Read-only.\n        Decrypt in the owner's wallet; this server cannot.","params":[{"name":"signature","type":"string","required":true,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""}]},{"name":"spr_shielded_transactions_by_tags","category":"Privacy Rings","access":"read","secret_material":false,"summary":"Fetch ENCRYPTED shielded transactions for view tags from the Helius Privacy indexer (getShieldedTransactionsByTags).","description":"Fetch ENCRYPTED shielded transactions for view tags from the Helius\n        Privacy indexer (getShieldedTransactionsByTags). In confidential Rings\n        the view tag is the owner's Solana public key. Read-only; returns\n        ciphertext only — decrypt locally with the viewing key.","params":[{"name":"tags","type":"array","required":true,"default":null,"description":""},{"name":"cluster","type":"string","required":false,"default":"devnet","description":""},{"name":"limit","type":"integer","required":false,"default":50,"description":""},{"name":"cursor","type":"string","required":false,"default":null,"description":""}]},{"name":"stonk_launch_pricing","category":"Spot & data rails","access":"read","secret_material":false,"summary":"Stonkfun LaunchLab pricing for a quote mint (no key).","description":"Stonkfun LaunchLab pricing for a quote mint (no key). CRITICAL:\n    raise.raw is the only correct totalFundRaisingB (raw amount in the\n    quote's decimals) — never substitute the Raydium SDK's 85-SOL constant.\n    Also returns curve params, platform ids per mode, and market-cap points.\n    Note: POST /launches/prepare is DISABLED upstream (503) — the live path\n    is a self-built LaunchLab launch; this tool is pricing/read only.","params":[{"name":"quote_mint","type":"string","required":true,"default":null,"description":""}]},{"name":"stonk_pairs","category":"Spot & data rails","access":"read","secret_material":false,"summary":"Stonkfun quote pairs a new launch can use (no key).","description":"Stonkfun quote pairs a new launch can use (no key). launchable is the\n    platform's own gate; launchLabReady says Raydium has the on-chain\n    GlobalConfig a LaunchLab launch needs — both must be true to launch.","params":[{"name":"launchable_only","type":"boolean","required":false,"default":true,"description":""}]},{"name":"stonk_token_fees","category":"Spot & data rails","access":"read","secret_material":false,"summary":"Stonkfun creator-fee state for a token (no key, read-only).","description":"Stonkfun creator-fee state for a token (no key, read-only). LaunchLab\n    launches pay the creator automatically (0.5% of every trade forwarded) —\n    there is nothing to claim; pump-style launches accrue claimable fees via\n    the prepare -> sign -> submit flow, which this read-only tool only reports.","params":[{"name":"mint","type":"string","required":true,"default":null,"description":""}]},{"name":"stonk_tokens","category":"Spot & data rails","access":"read","secret_material":false,"summary":"Stonkfun tokens with live platform pools (no key): sort newest|marketCap|volume, optional mode standard|reward and status new|aboutToGraduate|graduated.","description":"Stonkfun tokens with live platform pools (no key): sort\n    newest|marketCap|volume, optional mode standard|reward and status\n    new|aboutToGraduate|graduated. Research data only — not advice.","params":[{"name":"sort","type":"string","required":false,"default":"newest","description":""},{"name":"mode","type":"string","required":false,"default":null,"description":""},{"name":"status_filter","type":"string","required":false,"default":null,"description":""},{"name":"page_size","type":"integer","required":false,"default":10,"description":""}]},{"name":"strategy_grid_plan","category":"Strategy planners","access":"read","secret_material":false,"summary":"Grid plan (paper-mode planning only — no live runner): symmetric buy/ sell levels around the live mark (or a supplied center), each level an equal slice of total notional, checked against GUARDRAIL_* limits, including ma…","description":"Grid plan (paper-mode planning only — no live runner): symmetric buy/\n    sell levels around the live mark (or a supplied center), each level an\n    equal slice of total notional, checked against GUARDRAIL_* limits,\n    including max price drift from center to the outermost level.","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""},{"name":"total_notional_usdc","type":"number","required":false,"default":10000.0,"description":""},{"name":"num_levels","type":"integer","required":false,"default":5,"description":""},{"name":"spacing_bps","type":"number","required":false,"default":50.0,"description":""},{"name":"center_price_usd","type":"number","required":false,"default":null,"description":""}]},{"name":"strategy_twap_plan","category":"Strategy planners","access":"read","secret_material":false,"summary":"TWAP plan (paper-mode planning only — no live runner exists and none is claimed): equal slices on a schedule, checked against GUARDRAIL_* limits.","description":"TWAP plan (paper-mode planning only — no live runner exists and none\n    is claimed): equal slices on a schedule, checked against GUARDRAIL_*\n    limits. Executing slices is a separate, per-order decision.","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""},{"name":"side","type":"string","required":false,"default":"long","description":""},{"name":"total_notional_usdc","type":"number","required":false,"default":10000.0,"description":""},{"name":"num_slices","type":"integer","required":false,"default":10,"description":""},{"name":"interval_seconds","type":"integer","required":false,"default":300,"description":""}]},{"name":"swarms_health","category":"Swarms","access":"read","secret_material":false,"summary":"Swarms API health (GET https://api.swarms.world/health — public, no key) plus whether SWARMS_API_KEY is configured here (boolean only).","description":"Swarms API health (GET https://api.swarms.world/health — public, no\n    key) plus whether SWARMS_API_KEY is configured here (boolean only).","params":[]},{"name":"swarms_run_agent","category":"Swarms","access":"read","secret_material":false,"summary":"Run ONE agent on Swarms (POST /v1/agent/completions, x-api-key auth).","description":"Run ONE agent on Swarms (POST /v1/agent/completions, x-api-key auth).\n    Without SWARMS_API_KEY this returns not_configured — it never fabricates\n    an agent run. Research/utility only; the agent has no trading tools.","params":[{"name":"name","type":"string","required":true,"default":null,"description":""},{"name":"system_prompt","type":"string","required":true,"default":null,"description":""},{"name":"task","type":"string","required":true,"default":null,"description":""},{"name":"model_name","type":"string","required":false,"default":"gpt-4o-mini","description":""}]},{"name":"swarms_run_swarm","category":"Swarms","access":"read","secret_material":false,"summary":"Run the 3-agent Clawd trading RESEARCH swarm on Swarms (POST /v1/swarm/completions, swarm_type=ConcurrentWorkflow): TA analyst, funding/flow analyst, risk officer — fed with this server's live Imperial marks/funding and …","description":"Run the 3-agent Clawd trading RESEARCH swarm on Swarms\n    (POST /v1/swarm/completions, swarm_type=ConcurrentWorkflow): TA analyst,\n    funding/flow analyst, risk officer — fed with this server's live Imperial\n    marks/funding and TA for context. RESEARCH ONLY: the output carries a\n    disclaimer, is not an order, and the swarm cannot place trades. Without\n    SWARMS_API_KEY this returns not_configured.","params":[{"name":"symbol","type":"string","required":false,"default":"SOL","description":""},{"name":"question","type":"string","required":false,"default":"What is the current setup and what are the risks?","description":""},{"name":"model_name","type":"string","required":false,"default":"gpt-4o-mini","description":""}]},{"name":"ta_report","category":"Technical analysis","access":"read","secret_material":false,"summary":"Technical analysis for a symbol from live candles: RSI(14), MACD, Bollinger(20,2), ATR(14), VWAP, SMA20/50, EMA12/26.","description":"Technical analysis for a symbol from live candles: RSI(14), MACD,\n    Bollinger(20,2), ATR(14), VWAP, SMA20/50, EMA12/26. Candle source is\n    GeckoTerminal (DexScreener top pool); if that fails, Phoenix stats marks\n    are used and the report is marked degraded (VWAP unavailable there).","params":[{"name":"symbol","type":"string","required":false,"default":"SOL","description":""},{"name":"timeframe","type":"string","required":false,"default":"hour","description":""}]},{"name":"ta_signal","category":"Technical analysis","access":"read","secret_material":false,"summary":"Check one indicator condition: indicator in rsi|macd_histogram|sma_20| sma_50|atr|vwap_distance_pct|bollinger_pct_b, op in gt|lt|gte|lte.","description":"Check one indicator condition: indicator in rsi|macd_histogram|sma_20|\n    sma_50|atr|vwap_distance_pct|bollinger_pct_b, op in gt|lt|gte|lte.\n    Returns the live value and whether the condition triggers.","params":[{"name":"symbol","type":"string","required":true,"default":null,"description":""},{"name":"indicator","type":"string","required":false,"default":"rsi","description":""},{"name":"op","type":"string","required":false,"default":"gt","description":""},{"name":"threshold","type":"number","required":false,"default":70.0,"description":""},{"name":"timeframe","type":"string","required":false,"default":"hour","description":""}]},{"name":"voice_brief","category":"Imperial market data","access":"read","secret_material":false,"summary":"One-call spoken briefing: SOL/BTC marks, SOL funding, open positions and profile balance — composed into a single short `speech` paragraph for voice clients.","description":"One-call spoken briefing: SOL/BTC marks, SOL funding, open positions\n    and profile balance — composed into a single short `speech` paragraph\n    for voice clients. Tolerates a missing JWT (balance is skipped).","params":[{"name":"wallet","type":"string","required":false,"default":null,"description":""}]}]}