{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_7auetuws37sx","handle":"moby","url":"https://wellknown.network/agents/moby","links":{"self":"https://wellknown.network/agents/moby/record.json","html":"https://wellknown.network/agents/moby","markdown":"https://wellknown.network/agents/moby/record.md","api":"https://wellknown.network/api/v1/agents/moby","status":"https://wellknown.network/api/v1/agents/moby/status","claim":"https://wellknown.network/agents/moby/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/moby/claim.json","badge":"https://wellknown.network/agents/moby/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/moby/history","tools":"https://wellknown.network/api/v1/agents/moby/tools"},"ard":{"identifier":"urn:air:mcp.moby.win:server:moby","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Moby MCP server card","summary":"MCP Server Card (SEP-2127): identity, transport and auth for the Moby MCP server.","description":"MCP Server Card (SEP-2127): identity, transport and auth for the Moby MCP server.","publisher":{"name":"moby.win","url":"https://moby.win"},"homepage":"https://moby.win/agents/","repository":null,"version":"1.0.2","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.moby.win/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"ard":{"type":"application/mcp-server-card+json","metadata":null,"identifier":"urn:air:moby.win:mcp:server-card","artifactUrl":"https://mcp.moby.win/mcp/server-card","representativeQueries":[]},"updatedAt":"2026-11-03T13:21:01.965537Z","publishedAt":"2026-11-03T13:21:01.965537Z","registryName":"win.moby/moby"},"attribution":{"kind":"ard_catalog","name":"ard_catalog","summary":"ard_catalog","version":"mcp_registry","description":"ard_catalog","homepageUrl":"ard_catalog","publisherUrl":"ard_catalog","publisherName":"ard_catalog"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"finance.accounting","name":"Accounting","confidence":0.948,"provenance":"derived"},{"slug":"finance.banking","name":"Banking","confidence":0.583,"provenance":"derived"},{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":0.54,"provenance":"derived"},{"slug":"automation.scheduling","name":"Scheduling & Cron","confidence":0.54,"provenance":"derived"},{"slug":"documents.contracts","name":"Contracts & Legal","confidence":0.525,"provenance":"derived"}],"categories":["automation","commerce","dev","documents","finance","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-11-06T02:28:03.246Z","lastProbedAt":"2026-11-06T02:28:03.246Z","statusComputedAt":"2026-11-06T02:30:54.133Z","reliability30d":{"probes":6,"successRate":1,"p50Ms":142,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":6,"ok":6,"authBoundaryOk":0,"serviceOk":6,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-11-06T02:28:03.246Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":126,"error":null,"detail":{"tools":[{"name":"scan_tokens","description":"THE first call of a scheduled scan: Moby applies a strategy's thresholds server-side and returns only the Solana tokens that pass, already deduplicated for this"},{"name":"get_screener_leaderboard","description":"What's trending and moving on Solana right now, ranked by Moby's 24h activity score with whale counts and safety tier. Use for \"what's hot\", \"top gainers\", \"tre"},{"name":"get_degen_leaderboard","description":"Newer, smaller, high-risk Solana memecoins ranked by activity. Say plainly they can lose most of their value fast. Riskier than `get_screener_leaderboard`, and "},{"name":"get_screener_groups","description":"List Moby's token categories and themes on Solana, and their group_id values. Pass a `group_id` to `get_group_leaderboard`. `home_tabs` lists the app's Home boa"},{"name":"get_group_leaderboard","description":"Ranked tokens in one category: majors (`home_majors`), tokenized stocks such as NVDAx, SPYx, GLDx (`home_stocks`), Pulse (`home_pulse`) or a theme from get_scre"},{"name":"get_launchpads","description":"Recently launched Solana tokens grouped by launchpad such as pump.fun. Highest-risk category. Use for 'what launched recently' and 'new pump.fun coins'; pair wi"},{"name":"get_market_movers","description":"What just happened on Solana: sudden price and volume moves, newest first, with smart-money flow. Use for \"what pumped in the last hour\", \"what changed\". Use it"},{"name":"search_tokens","description":"Find a Solana token's mint address by name, ticker, symbol or pasted contract address (CA). Use first whenever the user names a token. For majors and tokenized "},{"name":"get_token_trade_brief","description":"One-call pre-buy research and rug check for a Solana token: safety tier, risk signals (snipers, insiders, bundlers, dev hold, mint/freeze authority), smart-mone"},{"name":"get_token_overview","description":"Price, market cap, FDV, liquidity, volume, holders, safety tier and smart-money read for one Solana token. Use for \"tell me about X\", \"what's the market cap of "},{"name":"get_token_risk_signals","description":"Rug-pull and scam risk for one Solana token: honeypot, buy/sell tax, mint and freeze authority, dev hold, sniper, insider, bundler and fresh-wallet shares. Use "},{"name":"get_token_smart_money","description":"Which tracked whales, KOLs and proven traders are buying or selling one Solana token over 1h, 4h and 24h. Use for \"is smart money in X\", \"are whales buying X\". "},{"name":"get_token_key_holders","description":"Tracked whale, KOL and trader holders of one Solana token, with position size, entry, 30-day win rate and PnL, and concentration. Use for \"who holds X\", \"are th"},{"name":"get_token_live_feed","description":"Newest trades by tracked whales, KOLs and traders in one Solana token, with quick-flip flags. NOT the whole market: only wallets Moby tracks; every tracked trad"},{"name":"get_token_chart","description":"Price history line for one Solana token over a `period` (5m to 365d). Use to describe a trend. Prices are USD; `period` defaults to `1d`. Choosing between the t"},{"name":"get_token_ohlcv","description":"Open/high/low/close/volume candles for one Solana token, for technical analysis (RSI, moving averages, returns). Series is newest-first. Prices are USD. Candle "},{"name":"get_token_price","description":"Current USD price of one Solana token. Cheapest price check. Use `get_token_overview` when you also need market cap, liquidity or volume."},{"name":"get_whalewatch_feed","description":"Buys and sells by tracked Solana whale wallets, filterable by token, wallet, list and time. Newest first. Filter by `token_address`, `wallet_address` (a TRACKED"},{"name":"get_whalewatch_feed_window","description":"Every tracked whale trade in a window up to 48h, one row per swap, cursor paged. Unlike `get_whalewatch_feed`: ONE ROW PER SWAP (`list_id` is one matching list)"},{"name":"get_whalewatch_kol_feed","description":"What crypto influencers (KOLs) are buying and selling on Solana. Same rows as `get_whalewatch_feed`, pre-filtered to KOLs server-side (no `list_ids`). For one K"},{"name":"get_smart_money_pulse","description":"Market-wide whale, KOL and smart-money buying and selling on Solana for 1h, 4h, 24h, with top net-bought and net-sold tokens. Use first for \"what are whales buy"},{"name":"get_whalewatch_lists","description":"Tracked whale, KOL and trader lists and their list_ids, for filtering whale feeds. Pass `list_ids` to `get_whalewatch_feed`. Not the browse-and-follow lists (`g"},{"name":"get_whale_wallet_holdings","description":"Current holdings of one tracked wallet. ⚠️ Somebody else's portfolio, not the user's (that is `get_my_balances`). Take `wallet_address` from a whale feed row; o"},{"name":"get_whale_wallet_wins","description":"Top 5 closed trades by profit for one wallet. Judge a wallet before weighting its trades. ⚠️ Somebody else's track record, not the user's (theirs is `get_my_clo"},{"name":"get_whalewatch_home_feed","description":"The latest headline whale buy on Solana ($10k or more), as the Moby app's home screen shows it. For anything filtered (one token, one wallet, lists, a time wind"},{"name":"get_whalewatch_legend","description":"Static legend for badges on whale feed rows. Static reference data: call it once to explain a marker on a feed row, never poll it. It has no market data and no "},{"name":"get_top_held","description":"Tokens ranked by total USD held by tracked whales (default) or by Moby users. Use for \"what are whales holding most\". Always TOKENS, never a ranking of people. "},{"name":"get_screener_event_filters","description":"Valid event_types, period and market_cap_group values for get_market_movers. Call it BEFORE filtering `get_market_movers`: an invented filter value returns an e"},{"name":"get_token_holdings","description":"Bucketed holder distribution for one Solana token (how supply is spread). For the itemised top holders use `get_token_holders`; for tracked whales and KOLs use "},{"name":"get_token_holders","description":"Every top holder of one Solana token by size, not only tracked wallets. Use for supply concentration (\"does one wallet own 30%\"). `get_token_key_holders` is the"},{"name":"get_token_whale_holders","description":"Tracked whales holding one Solana token, grouped by whale list. `get_token_key_holders` is the same population ungrouped (whales and KOLs together, with win rat"},{"name":"get_kol_top_held","description":"Named crypto influencers (KOLs) holding one Solana token. The KOL-only slice of `get_token_key_holders`. Use for 'which influencers hold X'; their trades are in"},{"name":"get_token_dca_orders","description":"Other people's open on-chain DCA orders on one Solana token (who is accumulating). Not the user's DCAs. ⚠️ The user's own DCAs are `get_my_dca_schedules`; the t"},{"name":"get_token_x_profile","description":"Follower count, age and verification of a Solana token's X (Twitter) account. Paid per lookup; use sparingly. Answers 'is this project's social presence real or"},{"name":"get_whale_wallet_track_record","description":"Win rate, realized PnL, trade count and hold time for one wallet. Prefer the profile tool. Also `backfill_state` (whether Moby finished indexing it). `get_whale"},{"name":"get_whale_wallet_pnl_chart","description":"One wallet's cumulative realized PnL curve (1d, 7d, 30d, 1y). Is the record a steady climb or one lucky trade? ⚠️ Somebody else's equity curve, never the user's"},{"name":"get_whale_wallet_positions","description":"One tracked wallet's positions with cost basis and unrealized PnL. Richer than `get_whale_wallet_holdings` (amount and USD only). ⚠️ Somebody else's positions; "},{"name":"get_whale_wallet_profile","description":"Identity, 7d and 30d win rate and PnL, holdings and recent trades for one public Solana wallet. Use for \"is this wallet any good\". Also whether Moby stopped tra"},{"name":"get_whale_wallet_profiles","description":"Win rate and PnL for up to 20 wallets in one call. Rate 10-20 key holders before a buy; stats only. Pass the `wallet_address` refs from `get_token_key_holders`."},{"name":"get_my_balances","description":"Per-token balances in the Solana agent wallet, with available USDC to size a buy. USDC is your cash (`is_cash: true`). SOL and every other token are positions; "},{"name":"get_my_portfolio","description":"Total value and holdings of the user's agent wallet. Use for \"how am I doing\". Counts the AGENT's wallets only (`scope: agent_wallets`): Copy Trading and manual"},{"name":"get_my_position","description":"Holding, cost basis and unrealized PnL for one token. Use for \"am I up on X\". Quantities come from the CHAIN; cost basis and PnL from Moby's swap ledger, which "},{"name":"get_my_closed_positions","description":"Positions the user fully exited, with realized PnL. `get_my_closed_positions` is exited positions ONLY; what the user holds now is `get_my_balances`. Never say "},{"name":"get_my_activity","description":"The user's recent trades, deposits and transfers timeline. Newest first and CURSOR-paginated: pass the response's `cursor` back; there are no page numbers. Choo"},{"name":"get_my_token_balance","description":"How much of one token the user holds now. Use to size a sell. `balance_token_amount` IS THE ANSWER: the on-chain balance, same as `get_my_balances`; 0 means the"},{"name":"get_my_closed_trades","description":"Each closed buy and sell cycle for one token, with fills and tx hashes. Newest first; each cycle has `fills` (timestamp, side, price_usd, token_amount, usd_amou"},{"name":"get_my_transactions","description":"Raw transaction list, filterable by type (swaps, deposits, withdrawals, transfers, order fills). Newest first, page-numbered. `bridge` rows are inbound deposits"},{"name":"get_my_wallets","description":"The user's Solana agent wallet address, for deposits. AI Trading is Solana only for now: tell the user to deposit to the Solana one. The user's regular app wall"},{"name":"get_my_transaction","description":"One transaction by id. Get the id from `get_my_transactions` first; this tool does not search or list. The row carries the full detail of that one transaction."},{"name":"get_my_watchlists","description":"The user's watchlist names and ids. Pass an id to `get_my_watchlist_tokens` for a list's contents. Start here for 'what's on my watchlist'. A watchlist is token"},{"name":"get_my_watchlist_tokens","description":"Tokens on a watchlist with price, 24h change, market cap and safety tier. One call instead of a `get_token_overview` per token: `price_usd`, `price_change_24hr`"},{"name":"check_positions","description":"THE first call of every scheduled run, before the scan: what each held position needs now under a strategy's exit rules. One call for position upkeep: for each "},{"name":"get_my_orders","description":"The user's open and past limit, take-profit, stop-loss orders and DCA schedules. Live orders by default: check before placing one (no duplicates) and to find an"},{"name":"get_my_dca_schedules","description":"The user's recurring DCA buys and sells with progress. The same rows `get_my_orders` returns as `dca_schedules`. `get_my_orders` answers 'what is running' in ON"},{"name":"get_my_guardrails","description":"The user's app-set limits on max per trade, daily buy volume and market-cap range, allowed order types and pause state. Read-only. Use for \"what can my agent sp"},{"name":"get_swap_quote","description":"Price a Solana swap before doing it: output, price impact, fees, slippage, and a quote_id. Moves nothing. Quote `output_amount_ui` and `minimum_output_amount_ui"},{"name":"execute_swap","description":"Execute a quoted swap from the user's agent wallet. Real money. Only after the user approves the quote. Buys are checked against the app-set limits. ⚠️ THIS SPE"},{"name":"quick_buy","description":"Buy a Solana token or tokenized stock with USDC in one step. Real money. Confirm token and amount first. Checked server-side against max per trade, daily buy vo"},{"name":"quick_sell","description":"Sell all or part of a held token to USDC at market. Real money. Full sells also cancel that token's open exits. Quote + execute in one call (no expired quotes):"},{"name":"get_swap_status","description":"Status and fill of a swap by quote_id or signature. Safe to repeat. Moves nothing. Pass `quote_id` (from the swap result, or a failure message's Reference ID) O"},{"name":"create_order","description":"Place a limit buy or sell, take-profit, stop-loss, bracket (SL + TP), trigger buy or DCA on a Solana token. Real money when it fires. Buy orders are checked aga"},{"name":"cancel_order","description":"Cancel one open order or a whole DCA schedule. Moves no funds; not reversible. Pass EXACTLY ONE of `order_id` (from `get_my_orders`) or `schedule_id` (stops eve"},{"name":"get_whalewatch_wallet_lists","description":"Curated wallet lists to browse for copy trading, with their slugs. The Find-wallets tab: a 'picks' strip, then one summary per curated list (whale groups, KOL g"},{"name":"get_whalewatch_wallet_list_detail","description":"Ranked wallets in one curated list (slug from the browse lists tool). Pre-ranked. `slug` MUST come from `get_whalewatch_wallet_lists`: an invented or stale slug"},{"name":"search_whalewatch_wallets","description":"Find a public whale or KOL wallet by name or list brand. By KOL name or whale-list brand, NOT by pasted address, and not a token search (`search_tokens`). `disc"},{"name":"discover_wallets_to_follow","description":"Suggested profitable public Solana wallets to follow or copy trade, or search one by name or address. Each row has `is_following`. With `query`: search by name,"},{"name":"get_my_recommended_wallets","description":"Tracked wallets that hold the same tokens as the user. 'For you', in the same shape as `get_whalewatch_wallet_list_detail`. Holding nothing Moby tracks gives `t"},{"name":"follow_wallet","description":"Follow a public Solana wallet so its trades appear in the user's following feed. Moves no money and does not copy trades automatically. Idempotent: following an"},{"name":"unfollow_wallet","description":"Stop following a wallet. Moves no money. Idempotent: a no-op if the user does not follow it. Also clears that wallet from `get_my_following_feed` at once."},{"name":"get_my_followed_wallets","description":"Wallets the user follows, with the follow cap. `max_follows` lets you say 'N of 50' in one call; rows carry list associations and any nickname set with `follow_"},{"name":"get_my_following_feed","description":"Recent trades by the wallets the user follows. Newest first. ⚠️ EMPTY means the user follows nobody or nobody they follow traded lately, NOT 'no whale activity'"},{"name":"get_my_trading_profile","description":"The user's saved trading preferences and onboarding state. Call first on every connect. 🔴 BEFORE ANY OTHER TOOL.\n- `agent`: this key's agent (`name`).\n- `inter"},{"name":"save_trading_profile","description":"Save onboarding answers or a skip. Changes no limit and moves no money. Call it after you played the answers back in TWO lines and the user said yes, or with `s"},{"name":"get_my_invite_codes","description":"The user's AI Trading (AGENT-) invite codes with share links, the friends who redeemed them and the USDC earned from their trading fees. Read-only. Use for \"my "},{"name":"get_my_invite_payouts","description":"The USDC referral payouts swept to the user's agent wallet, paged. Read-only, newest first. Each payout has `amount_usdc`, `status` (pending / success / failure"},{"name":"list_strategies","description":"Moby's ready-made strategies (Large Cap Allocator, Smart Money Confirmed, others) with risk labels. From the Strategies section of AI Trading in the Moby app: e"},{"name":"get_strategy","description":"The full prompt and editable settings for one starter strategy. `prompt` is ready to run: the same text the app copies. Run that prompt as the user's standing i"},{"name":"get_my_active_strategies","description":"Strategies the agent is running for this user. Check before starting one. Saved on Moby so every client and session sees them: `name`, `strategy_id` (the starte"},{"name":"save_active_strategy","description":"Record a strategy start, pause, resume, stop or run heartbeat. Moves no money. So other sessions and clients see what you run:\n- START: omit `active_strategy_id"},{"name":"submit_feedback","description":"Log a bug, wrong data or feature idea for the Moby team. Once per issue; tell the user it was logged, with its id. Not for payments, lost funds or account probl"},{"name":"get_my_feedback","description":"Status and team replies for earlier feedback. Mention a shipped one to the user when relevant. Each has `id`, `kind`, `title`, `status` (new / reviewed / planne"}],"toolCount":81,"toolsHash":"9ed4ba2fc867a623746780d9460bb4c771ea8f42d3042bb60addbfd5101318cc","serverName":"moby","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-05T17:28:01.279Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":138,"error":null,"detail":{"tools":[{"name":"scan_tokens","description":"THE first call of a scheduled scan: Moby applies a strategy's thresholds server-side and returns only the Solana tokens that pass, already deduplicated for this"},{"name":"get_screener_leaderboard","description":"What's trending and moving on Solana right now, ranked by Moby's 24h activity score with whale counts and safety tier. Use for \"what's hot\", \"top gainers\", \"tre"},{"name":"get_degen_leaderboard","description":"Newer, smaller, high-risk Solana memecoins ranked by activity. Say plainly they can lose most of their value fast. Riskier than `get_screener_leaderboard`, and "},{"name":"get_screener_groups","description":"List Moby's token categories and themes on Solana, and their group_id values. Pass a `group_id` to `get_group_leaderboard`. `home_tabs` lists the app's Home boa"},{"name":"get_group_leaderboard","description":"Ranked tokens in one category: majors (`home_majors`), tokenized stocks such as NVDAx, SPYx, GLDx (`home_stocks`), Pulse (`home_pulse`) or a theme from get_scre"},{"name":"get_launchpads","description":"Recently launched Solana tokens grouped by launchpad such as pump.fun. Highest-risk category. Use for 'what launched recently' and 'new pump.fun coins'; pair wi"},{"name":"get_market_movers","description":"What just happened on Solana: sudden price and volume moves, newest first, with smart-money flow. Use for \"what pumped in the last hour\", \"what changed\". Use it"},{"name":"search_tokens","description":"Find a Solana token's mint address by name, ticker, symbol or pasted contract address (CA). Use first whenever the user names a token. For majors and tokenized "},{"name":"get_token_trade_brief","description":"One-call pre-buy research and rug check for a Solana token: safety tier, risk signals (snipers, insiders, bundlers, dev hold, mint/freeze authority), smart-mone"},{"name":"get_token_overview","description":"Price, market cap, FDV, liquidity, volume, holders, safety tier and smart-money read for one Solana token. Use for \"tell me about X\", \"what's the market cap of "},{"name":"get_token_risk_signals","description":"Rug-pull and scam risk for one Solana token: honeypot, buy/sell tax, mint and freeze authority, dev hold, sniper, insider, bundler and fresh-wallet shares. Use "},{"name":"get_token_smart_money","description":"Which tracked whales, KOLs and proven traders are buying or selling one Solana token over 1h, 4h and 24h. Use for \"is smart money in X\", \"are whales buying X\". "},{"name":"get_token_key_holders","description":"Tracked whale, KOL and trader holders of one Solana token, with position size, entry, 30-day win rate and PnL, and concentration. Use for \"who holds X\", \"are th"},{"name":"get_token_live_feed","description":"Newest trades by tracked whales, KOLs and traders in one Solana token, with quick-flip flags. NOT the whole market: only wallets Moby tracks; every tracked trad"},{"name":"get_token_chart","description":"Price history line for one Solana token over a `period` (5m to 365d). Use to describe a trend. Prices are USD; `period` defaults to `1d`. Choosing between the t"},{"name":"get_token_ohlcv","description":"Open/high/low/close/volume candles for one Solana token, for technical analysis (RSI, moving averages, returns). Series is newest-first. Prices are USD. Candle "},{"name":"get_token_price","description":"Current USD price of one Solana token. Cheapest price check. Use `get_token_overview` when you also need market cap, liquidity or volume."},{"name":"get_whalewatch_feed","description":"Buys and sells by tracked Solana whale wallets, filterable by token, wallet, list and time. Newest first. Filter by `token_address`, `wallet_address` (a TRACKED"},{"name":"get_whalewatch_feed_window","description":"Every tracked whale trade in a window up to 48h, one row per swap, cursor paged. Unlike `get_whalewatch_feed`: ONE ROW PER SWAP (`list_id` is one matching list)"},{"name":"get_whalewatch_kol_feed","description":"What crypto influencers (KOLs) are buying and selling on Solana. Same rows as `get_whalewatch_feed`, pre-filtered to KOLs server-side (no `list_ids`). For one K"},{"name":"get_smart_money_pulse","description":"Market-wide whale, KOL and smart-money buying and selling on Solana for 1h, 4h, 24h, with top net-bought and net-sold tokens. Use first for \"what are whales buy"},{"name":"get_whalewatch_lists","description":"Tracked whale, KOL and trader lists and their list_ids, for filtering whale feeds. Pass `list_ids` to `get_whalewatch_feed`. Not the browse-and-follow lists (`g"},{"name":"get_whale_wallet_holdings","description":"Current holdings of one tracked wallet. ⚠️ Somebody else's portfolio, not the user's (that is `get_my_balances`). Take `wallet_address` from a whale feed row; o"},{"name":"get_whale_wallet_wins","description":"Top 5 closed trades by profit for one wallet. Judge a wallet before weighting its trades. ⚠️ Somebody else's track record, not the user's (theirs is `get_my_clo"},{"name":"get_whalewatch_home_feed","description":"The latest headline whale buy on Solana ($10k or more), as the Moby app's home screen shows it. For anything filtered (one token, one wallet, lists, a time wind"},{"name":"get_whalewatch_legend","description":"Static legend for badges on whale feed rows. Static reference data: call it once to explain a marker on a feed row, never poll it. It has no market data and no "},{"name":"get_top_held","description":"Tokens ranked by total USD held by tracked whales (default) or by Moby users. Use for \"what are whales holding most\". Always TOKENS, never a ranking of people. "},{"name":"get_screener_event_filters","description":"Valid event_types, period and market_cap_group values for get_market_movers. Call it BEFORE filtering `get_market_movers`: an invented filter value returns an e"},{"name":"get_token_holdings","description":"Bucketed holder distribution for one Solana token (how supply is spread). For the itemised top holders use `get_token_holders`; for tracked whales and KOLs use "},{"name":"get_token_holders","description":"Every top holder of one Solana token by size, not only tracked wallets. Use for supply concentration (\"does one wallet own 30%\"). `get_token_key_holders` is the"},{"name":"get_token_whale_holders","description":"Tracked whales holding one Solana token, grouped by whale list. `get_token_key_holders` is the same population ungrouped (whales and KOLs together, with win rat"},{"name":"get_kol_top_held","description":"Named crypto influencers (KOLs) holding one Solana token. The KOL-only slice of `get_token_key_holders`. Use for 'which influencers hold X'; their trades are in"},{"name":"get_token_dca_orders","description":"Other people's open on-chain DCA orders on one Solana token (who is accumulating). Not the user's DCAs. ⚠️ The user's own DCAs are `get_my_dca_schedules`; the t"},{"name":"get_token_x_profile","description":"Follower count, age and verification of a Solana token's X (Twitter) account. Paid per lookup; use sparingly. Answers 'is this project's social presence real or"},{"name":"get_whale_wallet_track_record","description":"Win rate, realized PnL, trade count and hold time for one wallet. Prefer the profile tool. Also `backfill_state` (whether Moby finished indexing it). `get_whale"},{"name":"get_whale_wallet_pnl_chart","description":"One wallet's cumulative realized PnL curve (1d, 7d, 30d, 1y). Is the record a steady climb or one lucky trade? ⚠️ Somebody else's equity curve, never the user's"},{"name":"get_whale_wallet_positions","description":"One tracked wallet's positions with cost basis and unrealized PnL. Richer than `get_whale_wallet_holdings` (amount and USD only). ⚠️ Somebody else's positions; "},{"name":"get_whale_wallet_profile","description":"Identity, 7d and 30d win rate and PnL, holdings and recent trades for one public Solana wallet. Use for \"is this wallet any good\". Also whether Moby stopped tra"},{"name":"get_whale_wallet_profiles","description":"Win rate and PnL for up to 20 wallets in one call. Rate 10-20 key holders before a buy; stats only. Pass the `wallet_address` refs from `get_token_key_holders`."},{"name":"get_my_balances","description":"Per-token balances in the Solana agent wallet, with available USDC to size a buy. USDC is your cash (`is_cash: true`). SOL and every other token are positions; "},{"name":"get_my_portfolio","description":"Total value and holdings of the user's agent wallet. Use for \"how am I doing\". Counts the AGENT's wallets only (`scope: agent_wallets`): Copy Trading and manual"},{"name":"get_my_position","description":"Holding, cost basis and unrealized PnL for one token. Use for \"am I up on X\". Quantities come from the CHAIN; cost basis and PnL from Moby's swap ledger, which "},{"name":"get_my_closed_positions","description":"Positions the user fully exited, with realized PnL. `get_my_closed_positions` is exited positions ONLY; what the user holds now is `get_my_balances`. Never say "},{"name":"get_my_activity","description":"The user's recent trades, deposits and transfers timeline. Newest first and CURSOR-paginated: pass the response's `cursor` back; there are no page numbers. Choo"},{"name":"get_my_token_balance","description":"How much of one token the user holds now. Use to size a sell. `balance_token_amount` IS THE ANSWER: the on-chain balance, same as `get_my_balances`; 0 means the"},{"name":"get_my_closed_trades","description":"Each closed buy and sell cycle for one token, with fills and tx hashes. Newest first; each cycle has `fills` (timestamp, side, price_usd, token_amount, usd_amou"},{"name":"get_my_transactions","description":"Raw transaction list, filterable by type (swaps, deposits, withdrawals, transfers, order fills). Newest first, page-numbered. `bridge` rows are inbound deposits"},{"name":"get_my_wallets","description":"The user's Solana agent wallet address, for deposits. AI Trading is Solana only for now: tell the user to deposit to the Solana one. The user's regular app wall"},{"name":"get_my_transaction","description":"One transaction by id. Get the id from `get_my_transactions` first; this tool does not search or list. The row carries the full detail of that one transaction."},{"name":"get_my_watchlists","description":"The user's watchlist names and ids. Pass an id to `get_my_watchlist_tokens` for a list's contents. Start here for 'what's on my watchlist'. A watchlist is token"},{"name":"get_my_watchlist_tokens","description":"Tokens on a watchlist with price, 24h change, market cap and safety tier. One call instead of a `get_token_overview` per token: `price_usd`, `price_change_24hr`"},{"name":"check_positions","description":"THE first call of every scheduled run, before the scan: what each held position needs now under a strategy's exit rules. One call for position upkeep: for each "},{"name":"get_my_orders","description":"The user's open and past limit, take-profit, stop-loss orders and DCA schedules. Live orders by default: check before placing one (no duplicates) and to find an"},{"name":"get_my_dca_schedules","description":"The user's recurring DCA buys and sells with progress. The same rows `get_my_orders` returns as `dca_schedules`. `get_my_orders` answers 'what is running' in ON"},{"name":"get_my_guardrails","description":"The user's app-set limits on max per trade, daily buy volume and market-cap range, allowed order types and pause state. Read-only. Use for \"what can my agent sp"},{"name":"get_swap_quote","description":"Price a Solana swap before doing it: output, price impact, fees, slippage, and a quote_id. Moves nothing. Quote `output_amount_ui` and `minimum_output_amount_ui"},{"name":"execute_swap","description":"Execute a quoted swap from the user's agent wallet. Real money. Only after the user approves the quote. Buys are checked against the app-set limits. ⚠️ THIS SPE"},{"name":"quick_buy","description":"Buy a Solana token or tokenized stock with USDC in one step. Real money. Confirm token and amount first. Checked server-side against max per trade, daily buy vo"},{"name":"quick_sell","description":"Sell all or part of a held token to USDC at market. Real money. Full sells also cancel that token's open exits. Quote + execute in one call (no expired quotes):"},{"name":"get_swap_status","description":"Status and fill of a swap by quote_id or signature. Safe to repeat. Moves nothing. Pass `quote_id` (from the swap result, or a failure message's Reference ID) O"},{"name":"create_order","description":"Place a limit buy or sell, take-profit, stop-loss, bracket (SL + TP), trigger buy or DCA on a Solana token. Real money when it fires. Buy orders are checked aga"},{"name":"cancel_order","description":"Cancel one open order or a whole DCA schedule. Moves no funds; not reversible. Pass EXACTLY ONE of `order_id` (from `get_my_orders`) or `schedule_id` (stops eve"},{"name":"get_whalewatch_wallet_lists","description":"Curated wallet lists to browse for copy trading, with their slugs. The Find-wallets tab: a 'picks' strip, then one summary per curated list (whale groups, KOL g"},{"name":"get_whalewatch_wallet_list_detail","description":"Ranked wallets in one curated list (slug from the browse lists tool). Pre-ranked. `slug` MUST come from `get_whalewatch_wallet_lists`: an invented or stale slug"},{"name":"search_whalewatch_wallets","description":"Find a public whale or KOL wallet by name or list brand. By KOL name or whale-list brand, NOT by pasted address, and not a token search (`search_tokens`). `disc"},{"name":"discover_wallets_to_follow","description":"Suggested profitable public Solana wallets to follow or copy trade, or search one by name or address. Each row has `is_following`. With `query`: search by name,"},{"name":"get_my_recommended_wallets","description":"Tracked wallets that hold the same tokens as the user. 'For you', in the same shape as `get_whalewatch_wallet_list_detail`. Holding nothing Moby tracks gives `t"},{"name":"follow_wallet","description":"Follow a public Solana wallet so its trades appear in the user's following feed. Moves no money and does not copy trades automatically. Idempotent: following an"},{"name":"unfollow_wallet","description":"Stop following a wallet. Moves no money. Idempotent: a no-op if the user does not follow it. Also clears that wallet from `get_my_following_feed` at once."},{"name":"get_my_followed_wallets","description":"Wallets the user follows, with the follow cap. `max_follows` lets you say 'N of 50' in one call; rows carry list associations and any nickname set with `follow_"},{"name":"get_my_following_feed","description":"Recent trades by the wallets the user follows. Newest first. ⚠️ EMPTY means the user follows nobody or nobody they follow traded lately, NOT 'no whale activity'"},{"name":"get_my_trading_profile","description":"The user's saved trading preferences and onboarding state. Call first on every connect. 🔴 BEFORE ANY OTHER TOOL.\n- `interview_due: true`: show `onboarding_brie"},{"name":"save_trading_profile","description":"Save onboarding answers or a skip. Changes no limit and moves no money. Call it after you played the answers back in TWO lines and the user said yes, or with `s"},{"name":"list_strategies","description":"Moby's ready-made strategies (Large Cap Allocator, Smart Money Confirmed, others) with risk labels. From the Strategies section of AI Trading in the Moby app: e"},{"name":"get_strategy","description":"The full prompt and editable settings for one starter strategy. `prompt` is ready to run: the same text the app copies. Run that prompt as the user's standing i"},{"name":"get_my_active_strategies","description":"Strategies the agent is running for this user. Check before starting one. Saved on Moby so every client and session sees them: `name`, `strategy_id` (the starte"},{"name":"save_active_strategy","description":"Record a strategy start, pause, resume, stop or run heartbeat. Moves no money. So other sessions and clients see what you run:\n- START: omit `active_strategy_id"},{"name":"submit_feedback","description":"Log a bug, wrong data or feature idea for the Moby team. Once per issue; tell the user it was logged, with its id. Not for payments, lost funds or account probl"},{"name":"get_my_feedback","description":"Status and team replies for earlier feedback. Mention a shipped one to the user when relevant. Each has `id`, `kind`, `title`, `status` (new / reviewed / planne"}],"toolCount":79,"toolsHash":"bad2aa85a34cc1e29f60c3de7718523670b7d670f9c6e0c43e69dc53a76f6936","serverName":"moby","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-05T09:26:32.205Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":145,"error":null,"detail":{"tools":[{"name":"scan_tokens","description":"THE first call of a scheduled scan: Moby applies a strategy's thresholds server-side and returns only the Solana tokens that pass, already deduplicated for this"},{"name":"get_screener_leaderboard","description":"What's trending and moving on Solana right now, ranked by Moby's 24h activity score with whale counts and safety tier. Use for \"what's hot\", \"top gainers\", \"tre"},{"name":"get_degen_leaderboard","description":"Newer, smaller, high-risk Solana memecoins ranked by activity. Say plainly they can lose most of their value fast. Riskier than `get_screener_leaderboard`, and "},{"name":"get_screener_groups","description":"List Moby's token categories and themes on Solana, and their group_id values. Pass a `group_id` to `get_group_leaderboard`. `home_tabs` lists the app's Home boa"},{"name":"get_group_leaderboard","description":"Ranked tokens in one category: majors (`home_majors`), tokenized stocks such as NVDAx, SPYx, GLDx (`home_stocks`), Pulse (`home_pulse`) or a theme from get_scre"},{"name":"get_launchpads","description":"Recently launched Solana tokens grouped by launchpad such as pump.fun. Highest-risk category. Use for 'what launched recently' and 'new pump.fun coins'; pair wi"},{"name":"get_market_movers","description":"What just happened on Solana: sudden price and volume moves, newest first, with smart-money flow. Use for \"what pumped in the last hour\", \"what changed\". Use it"},{"name":"search_tokens","description":"Find a Solana token's mint address by name, ticker, symbol or pasted contract address (CA). Use first whenever the user names a token. For majors and tokenized "},{"name":"get_token_trade_brief","description":"One-call pre-buy research and rug check for a Solana token: safety tier, risk signals (snipers, insiders, bundlers, dev hold, mint/freeze authority), smart-mone"},{"name":"get_token_overview","description":"Price, market cap, FDV, liquidity, volume, holders, safety tier and smart-money read for one Solana token. Use for \"tell me about X\", \"what's the market cap of "},{"name":"get_token_risk_signals","description":"Rug-pull and scam risk for one Solana token: honeypot, buy/sell tax, mint and freeze authority, dev hold, sniper, insider, bundler and fresh-wallet shares. Use "},{"name":"get_token_smart_money","description":"Which tracked whales, KOLs and proven traders are buying or selling one Solana token over 1h, 4h and 24h. Use for \"is smart money in X\", \"are whales buying X\". "},{"name":"get_token_key_holders","description":"Tracked whale, KOL and trader holders of one Solana token, with position size, entry, 30-day win rate and PnL, and concentration. Use for \"who holds X\", \"are th"},{"name":"get_token_live_feed","description":"Newest trades by tracked whales, KOLs and traders in one Solana token, with quick-flip flags. NOT the whole market: only wallets Moby tracks; every tracked trad"},{"name":"get_token_chart","description":"Price history line for one Solana token over a `period` (5m to 365d). Use to describe a trend. Prices are USD; `period` defaults to `1d`. Choosing between the t"},{"name":"get_token_ohlcv","description":"Open/high/low/close/volume candles for one Solana token, for technical analysis (RSI, moving averages, returns). Series is newest-first. Prices are USD. Candle "},{"name":"get_token_price","description":"Current USD price of one Solana token. Cheapest price check. Use `get_token_overview` when you also need market cap, liquidity or volume."},{"name":"get_whalewatch_feed","description":"Buys and sells by tracked Solana whale wallets, filterable by token, wallet, list and time. Newest first. Filter by `token_address`, `wallet_address` (a TRACKED"},{"name":"get_whalewatch_feed_window","description":"Every tracked whale trade in a window up to 48h, one row per swap, cursor paged. Unlike `get_whalewatch_feed`: ONE ROW PER SWAP (`list_id` is one matching list)"},{"name":"get_whalewatch_kol_feed","description":"What crypto influencers (KOLs, callers) are buying and selling on Solana. Same rows as `get_whalewatch_feed`, pre-filtered to KOLs server-side (no `list_ids`). "},{"name":"get_smart_money_pulse","description":"Market-wide whale, KOL and smart-money buying and selling on Solana for 1h, 4h, 24h, with top net-bought and net-sold tokens. Use first for \"what are whales buy"},{"name":"get_whalewatch_lists","description":"Tracked whale, KOL and trader lists and their list_ids, for filtering whale feeds. Pass `list_ids` to `get_whalewatch_feed`. Not the browse-and-follow lists (`g"},{"name":"get_whale_wallet_holdings","description":"Current holdings of one tracked wallet. ⚠️ Somebody else's portfolio, not the user's (that is `get_my_balances`). Take `wallet_address` from a whale feed row; o"},{"name":"get_whale_wallet_wins","description":"Top 5 closed trades by profit for one wallet. Judge a wallet before weighting its trades. ⚠️ Somebody else's track record, not the user's (theirs is `get_my_clo"},{"name":"get_whalewatch_home_feed","description":"The latest headline whale buy on Solana ($10k or more), as the Moby app's home screen shows it. For anything filtered (one token, one wallet, lists, a time wind"},{"name":"get_whalewatch_legend","description":"Static legend for badges on whale feed rows. Static reference data: call it once to explain a marker on a feed row, never poll it. It has no market data and no "},{"name":"get_top_held","description":"Tokens ranked by total USD held by tracked whales (default) or by Moby users. Use for \"what are whales holding most\". Always TOKENS, never a ranking of people. "},{"name":"get_screener_event_filters","description":"Valid event_types, period and market_cap_group values for get_market_movers. Call it BEFORE filtering `get_market_movers`: an invented filter value returns an e"},{"name":"get_token_holdings","description":"Bucketed holder distribution for one Solana token (how supply is spread). For the itemised top holders use `get_token_holders`; for tracked whales and KOLs use "},{"name":"get_token_holders","description":"Every top holder of one Solana token by size, not only tracked wallets. Use for supply concentration (\"does one wallet own 30%\"). `get_token_key_holders` is the"},{"name":"get_token_whale_holders","description":"Tracked whales holding one Solana token, grouped by whale list. `get_token_key_holders` is the same population ungrouped (whales and KOLs together, with win rat"},{"name":"get_kol_top_held","description":"Named crypto influencers (KOLs) holding one Solana token. The KOL-only slice of `get_token_key_holders`. Use for 'which influencers hold X'; their trades are in"},{"name":"get_token_dca_orders","description":"Other people's open on-chain DCA orders on one Solana token (who is accumulating). Not the user's DCAs. ⚠️ The user's own DCAs are `get_my_dca_schedules`; the t"},{"name":"get_token_x_profile","description":"Follower count, age and verification of a Solana token's X (Twitter) account. Paid per lookup; use sparingly. Answers 'is this project's social presence real or"},{"name":"get_whale_wallet_track_record","description":"Win rate, realized PnL, trade count and hold time for one wallet. Prefer the profile tool. Also `backfill_state` (whether Moby finished indexing it). `get_whale"},{"name":"get_whale_wallet_pnl_chart","description":"One wallet's cumulative realized PnL curve (1d, 7d, 30d, 1y). Is the record a steady climb or one lucky trade? ⚠️ Somebody else's equity curve, never the user's"},{"name":"get_whale_wallet_positions","description":"One tracked wallet's positions with cost basis and unrealized PnL. Richer than `get_whale_wallet_holdings` (amount and USD only). ⚠️ Somebody else's positions; "},{"name":"get_whale_wallet_profile","description":"Identity, 7d and 30d win rate and PnL, holdings and recent trades for one public Solana wallet. Use for \"is this wallet any good\". Also whether Moby stopped tra"},{"name":"get_whale_wallet_profiles","description":"Win rate and PnL for up to 20 wallets in one call. Rate 10-20 key holders before a buy; stats only. Pass the `wallet_address` refs from `get_token_key_holders`."},{"name":"get_my_balances","description":"Per-token balances in the Solana agent wallet, with available USDC to size a buy. USDC is your cash (`is_cash: true`). SOL and every other token are positions; "},{"name":"get_my_portfolio","description":"Total value and holdings of the user's agent wallet. Use for \"how am I doing\". Counts the AGENT's wallets only (`scope: agent_wallets`): Copy Trading and manual"},{"name":"get_my_position","description":"Holding, cost basis and unrealized PnL for one token. Use for \"am I up on X\". Quantities come from the CHAIN; cost basis and PnL from Moby's swap ledger, which "},{"name":"get_my_closed_positions","description":"Positions the user fully exited, with realized PnL. `get_my_closed_positions` is exited positions ONLY; what the user holds now is `get_my_balances`. Never say "},{"name":"get_my_activity","description":"The user's recent trades, deposits and transfers timeline. Newest first and CURSOR-paginated: pass the response's `cursor` back; there are no page numbers. Choo"},{"name":"get_my_token_balance","description":"How much of one token the user holds now. Use to size a sell. `balance_token_amount` IS THE ANSWER: the on-chain balance, same as `get_my_balances`; 0 means the"},{"name":"get_my_closed_trades","description":"Each closed buy and sell cycle for one token, with fills and tx hashes. Newest first; each cycle has `fills` (timestamp, side, price_usd, token_amount, usd_amou"},{"name":"get_my_transactions","description":"Raw transaction list, filterable by type (swaps, deposits, withdrawals, transfers, order fills). Newest first, page-numbered. `bridge` rows are inbound deposits"},{"name":"get_my_wallets","description":"The user's Solana agent wallet address, for deposits. AI Trading is Solana only for now: tell the user to deposit to the Solana one. The user's regular app wall"},{"name":"get_my_transaction","description":"One transaction by id. Get the id from `get_my_transactions` first; this tool does not search or list. The row carries the full detail of that one transaction."},{"name":"get_my_watchlists","description":"The user's watchlist names and ids. Pass an id to `get_my_watchlist_tokens` for a list's contents. Start here for 'what's on my watchlist'. A watchlist is token"},{"name":"get_my_watchlist_tokens","description":"Tokens on a watchlist with price, 24h change, market cap and safety tier. One call instead of a `get_token_overview` per token: `price_usd`, `price_change_24hr`"},{"name":"check_positions","description":"THE first call of every scheduled run, before the scan: what each held position needs now under a strategy's exit rules. One call for position upkeep: for each "},{"name":"get_my_orders","description":"The user's open and past limit, take-profit, stop-loss orders and DCA schedules. Live orders by default: check before placing one (no duplicates) and to find an"},{"name":"get_my_dca_schedules","description":"The user's recurring DCA buys and sells with progress. The same rows `get_my_orders` returns as `dca_schedules`. `get_my_orders` answers 'what is running' in ON"},{"name":"get_my_guardrails","description":"The user's app-set limits on max per trade, daily buy volume and market-cap range, allowed order types and pause state. Read-only. Use for \"what can my agent sp"},{"name":"get_swap_quote","description":"Price a Solana swap before doing it: output, price impact, fees, slippage, and a quote_id. Moves nothing. Quote `output_amount_ui` and `minimum_output_amount_ui"},{"name":"execute_swap","description":"Execute a quoted swap from the user's agent wallet. Real money. Only after the user approves the quote. Buys are checked against the app-set limits. ⚠️ THIS SPE"},{"name":"quick_buy","description":"Buy a Solana token or tokenized stock with USDC in one step. Real money. Confirm token and amount first. Checked server-side against max per trade, daily buy vo"},{"name":"quick_sell","description":"Sell all or part of a held token to USDC at market. Real money. Full sells also cancel that token's open exits. Quote + execute in one call (no expired quotes):"},{"name":"get_swap_status","description":"Status and fill of a swap by quote_id or signature. Safe to repeat. Moves nothing. Pass `quote_id` (from the swap result, or a failure message's Reference ID) O"},{"name":"create_order","description":"Place a limit buy or sell, take-profit, stop-loss, bracket (SL + TP), trigger buy or DCA on a Solana token. Real money when it fires. Buy orders are checked aga"},{"name":"cancel_order","description":"Cancel one open order or a whole DCA schedule. Moves no funds; not reversible. Pass EXACTLY ONE of `order_id` (from `get_my_orders`) or `schedule_id` (stops eve"},{"name":"get_whalewatch_wallet_lists","description":"Curated wallet lists to browse for copy trading, with their slugs. The Find-wallets tab: a 'picks' strip, then one summary per curated list (whale groups, KOL g"},{"name":"get_whalewatch_wallet_list_detail","description":"Ranked wallets in one curated list (slug from the browse lists tool). Pre-ranked. `slug` MUST come from `get_whalewatch_wallet_lists`: an invented or stale slug"},{"name":"search_whalewatch_wallets","description":"Find a public whale or KOL wallet by name or list brand. By KOL name or whale-list brand, NOT by pasted address, and not a token search (`search_tokens`). `disc"},{"name":"discover_wallets_to_follow","description":"Suggested profitable public Solana wallets to follow or copy trade, or search one by name or address. Each row has `is_following`. With `query`: search by name,"},{"name":"get_my_recommended_wallets","description":"Tracked wallets that hold the same tokens as the user. 'For you', in the same shape as `get_whalewatch_wallet_list_detail`. Holding nothing Moby tracks gives `t"},{"name":"follow_wallet","description":"Follow a public Solana wallet so its trades appear in the user's following feed. Moves no money and does not copy trades automatically. Idempotent: following an"},{"name":"unfollow_wallet","description":"Stop following a wallet. Moves no money. Idempotent: a no-op if the user does not follow it. Also clears that wallet from `get_my_following_feed` at once."},{"name":"get_my_followed_wallets","description":"Wallets the user follows, with the follow cap. `max_follows` lets you say 'N of 50' in one call; rows carry list associations and any nickname set with `follow_"},{"name":"get_my_following_feed","description":"Recent trades by the wallets the user follows. Newest first. ⚠️ EMPTY means the user follows nobody or nobody they follow traded lately, NOT 'no whale activity'"},{"name":"get_my_trading_profile","description":"The user's saved trading preferences and onboarding state. Call first on every connect. 🔴 BEFORE ANY OTHER TOOL.\n- `interview_due: true`: show `onboarding_brie"},{"name":"save_trading_profile","description":"Save onboarding answers or a skip. Changes no limit and moves no money. Call it after you played the answers back in TWO lines and the user said yes, or with `s"},{"name":"list_strategies","description":"Moby's ready-made strategies (Large Cap Allocator, Smart Money Confirmed, others) with risk labels. From the Strategies section of AI Trading in the Moby app: e"},{"name":"get_strategy","description":"The full prompt and editable settings for one starter strategy. `prompt` is ready to run: the same text the app copies. Run that prompt as the user's standing i"},{"name":"get_my_active_strategies","description":"Strategies the agent is running for this user. Check before starting one. Saved on Moby so every client and session sees them: `name`, `strategy_id` (the starte"},{"name":"save_active_strategy","description":"Record a strategy start, pause, resume, stop or run heartbeat. Moves no money. So other sessions and clients see what you run:\n- START: omit `active_strategy_id"},{"name":"submit_feedback","description":"Log a bug, wrong data or feature idea for the Moby team. Once per issue; tell the user it was logged, with its id. Not for payments, lost funds or account probl"},{"name":"get_my_feedback","description":"Status and team replies for earlier feedback. Mention a shipped one to the user when relevant. Each has `id`, `kind`, `title`, `status` (new / reviewed / planne"}],"toolCount":79,"toolsHash":"cb45e8ad5eeaac196d7ca1ea1fb2e5e72d9c1281d969193a2b90d6d755b0fae6","serverName":"moby","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-05T01:28:22.399Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":135,"error":null,"detail":{"tools":[{"name":"scan_tokens","description":"THE first call of a scheduled scan: Moby applies a strategy's thresholds server-side and returns only the Solana tokens that pass, already deduplicated for this"},{"name":"get_screener_leaderboard","description":"What's trending and moving on Solana right now, ranked by Moby's 24h activity score with whale counts and safety tier. Use for \"what's hot\", \"top gainers\", \"tre"},{"name":"get_degen_leaderboard","description":"Newer, smaller, high-risk Solana memecoins ranked by activity. Say plainly they can lose most of their value fast. Riskier than `get_screener_leaderboard`, and "},{"name":"get_screener_groups","description":"List Moby's token categories and themes on Solana, and their group_id values. Pass a `group_id` to `get_group_leaderboard`. `home_tabs` lists the app's Home boa"},{"name":"get_group_leaderboard","description":"Ranked tokens in one category: majors (`home_majors`), tokenized stocks such as NVDAx, SPYx, GLDx (`home_stocks`), Pulse (`home_pulse`) or a theme from get_scre"},{"name":"get_launchpads","description":"Recently launched Solana tokens grouped by launchpad such as pump.fun. Highest-risk category. Use for 'what launched recently' and 'new pump.fun coins'; pair wi"},{"name":"get_market_movers","description":"What just happened on Solana: sudden price and volume moves, newest first, with smart-money flow. Use for \"what pumped in the last hour\", \"what changed\". Use it"},{"name":"search_tokens","description":"Find a Solana token's mint address by name, ticker, symbol or pasted contract address (CA). Use first whenever the user names a token. For majors and tokenized "},{"name":"get_token_trade_brief","description":"One-call pre-buy research and rug check for a Solana token: safety tier, risk signals (snipers, insiders, bundlers, dev hold, mint/freeze authority), smart-mone"},{"name":"get_token_overview","description":"Price, market cap, FDV, liquidity, volume, holders, safety tier and smart-money read for one Solana token. Use for \"tell me about X\", \"what's the market cap of "},{"name":"get_token_risk_signals","description":"Rug-pull and scam risk for one Solana token: honeypot, buy/sell tax, mint and freeze authority, dev hold, sniper, insider, bundler and fresh-wallet shares. Use "},{"name":"get_token_smart_money","description":"Which tracked whales, KOLs and proven traders are buying or selling one Solana token over 1h, 4h and 24h. Use for \"is smart money in X\", \"are whales buying X\". "},{"name":"get_token_key_holders","description":"Tracked whale, KOL and trader holders of one Solana token, with position size, entry, 30-day win rate and PnL, and concentration. Use for \"who holds X\", \"are th"},{"name":"get_token_live_feed","description":"Newest trades by tracked whales, KOLs and traders in one Solana token, with quick-flip flags. NOT the whole market: only wallets Moby tracks; every tracked trad"},{"name":"get_token_chart","description":"Price history line for one Solana token over a `period` (5m to 365d). Use to describe a trend. Prices are USD; `period` defaults to `1d`. Choosing between the t"},{"name":"get_token_ohlcv","description":"Open/high/low/close/volume candles for one Solana token, for technical analysis (RSI, moving averages, returns). Series is newest-first. Prices are USD. Candle "},{"name":"get_token_price","description":"Current USD price of one Solana token. Cheapest price check. Use `get_token_overview` when you also need market cap, liquidity or volume."},{"name":"get_whalewatch_feed","description":"Buys and sells by tracked Solana whale wallets, filterable by token, wallet, list and time. Newest first. Filter by `token_address`, `wallet_address` (a TRACKED"},{"name":"get_whalewatch_feed_window","description":"Every tracked whale trade in a window up to 48h, one row per swap, cursor paged. Unlike `get_whalewatch_feed`: ONE ROW PER SWAP (`list_id` is one matching list)"},{"name":"get_whalewatch_kol_feed","description":"What crypto influencers (KOLs, callers) are buying and selling on Solana. Same rows as `get_whalewatch_feed`, pre-filtered to KOLs server-side (no `list_ids`). "},{"name":"get_smart_money_pulse","description":"Market-wide whale, KOL and smart-money buying and selling on Solana for 1h, 4h, 24h, with top net-bought and net-sold tokens. Use first for \"what are whales buy"},{"name":"get_whalewatch_lists","description":"Tracked whale, KOL and trader lists and their list_ids, for filtering whale feeds. Pass `list_ids` to `get_whalewatch_feed`. Not the browse-and-follow lists (`g"},{"name":"get_whale_wallet_holdings","description":"Current holdings of one tracked wallet. ⚠️ Somebody else's portfolio, not the user's (that is `get_my_balances`). Take `wallet_address` from a whale feed row; o"},{"name":"get_whale_wallet_wins","description":"Top 5 closed trades by profit for one wallet. Judge a wallet before weighting its trades. ⚠️ Somebody else's track record, not the user's (theirs is `get_my_clo"},{"name":"get_whalewatch_home_feed","description":"The latest headline whale buy on Solana ($10k or more), as the Moby app's home screen shows it. For anything filtered (one token, one wallet, lists, a time wind"},{"name":"get_whalewatch_legend","description":"Static legend for badges on whale feed rows. Static reference data: call it once to explain a marker on a feed row, never poll it. It has no market data and no "},{"name":"get_top_held","description":"Tokens ranked by total USD held by tracked whales (default) or by Moby users. Use for \"what are whales holding most\". Always TOKENS, never a ranking of people. "},{"name":"get_screener_event_filters","description":"Valid event_types, period and market_cap_group values for get_market_movers. Call it BEFORE filtering `get_market_movers`: an invented filter value returns an e"},{"name":"get_token_holdings","description":"Bucketed holder distribution for one Solana token (how supply is spread). For the itemised top holders use `get_token_holders`; for tracked whales and KOLs use "},{"name":"get_token_holders","description":"Every top holder of one Solana token by size, not only tracked wallets. Use for supply concentration (\"does one wallet own 30%\"). `get_token_key_holders` is the"},{"name":"get_token_whale_holders","description":"Tracked whales holding one Solana token, grouped by whale list. `get_token_key_holders` is the same population ungrouped (whales and KOLs together, with win rat"},{"name":"get_kol_top_held","description":"Named crypto influencers (KOLs) holding one Solana token. The KOL-only slice of `get_token_key_holders`. Use for 'which influencers hold X'; their trades are in"},{"name":"get_token_dca_orders","description":"Other people's open on-chain DCA orders on one Solana token (who is accumulating). Not the user's DCAs. ⚠️ The user's own DCAs are `get_my_dca_schedules`; the t"},{"name":"get_token_x_profile","description":"Follower count, age and verification of a Solana token's X (Twitter) account. Paid per lookup; use sparingly. Answers 'is this project's social presence real or"},{"name":"get_whale_wallet_track_record","description":"Win rate, realized PnL, trade count and hold time for one wallet. Prefer the profile tool. Also `backfill_state` (whether Moby finished indexing it). `get_whale"},{"name":"get_whale_wallet_pnl_chart","description":"One wallet's cumulative realized PnL curve (1d, 7d, 30d, 1y). Is the record a steady climb or one lucky trade? ⚠️ Somebody else's equity curve, never the user's"},{"name":"get_whale_wallet_positions","description":"One tracked wallet's positions with cost basis and unrealized PnL. Richer than `get_whale_wallet_holdings` (amount and USD only). ⚠️ Somebody else's positions; "},{"name":"get_whale_wallet_profile","description":"Identity, 7d and 30d win rate and PnL, holdings and recent trades for one public Solana wallet. Use for \"is this wallet any good\". Also whether Moby stopped tra"},{"name":"get_whale_wallet_profiles","description":"Win rate and PnL for up to 20 wallets in one call. Rate 10-20 key holders before a buy; stats only. Pass the `wallet_address` refs from `get_token_key_holders`."},{"name":"get_my_balances","description":"Per-token balances in the Solana agent wallet, with available USDC to size a buy. USDC is your cash (`is_cash: true`). SOL and every other token are positions; "},{"name":"get_my_portfolio","description":"Total value and holdings of the user's agent wallet. Use for \"how am I doing\". Counts the AGENT's wallets only (`scope: agent_wallets`): Copy Trading and manual"},{"name":"get_my_position","description":"Holding, cost basis and unrealized PnL for one token. Use for \"am I up on X\". Quantities come from the CHAIN; cost basis and PnL from Moby's swap ledger, which "},{"name":"get_my_closed_positions","description":"Positions the user fully exited, with realized PnL. `get_my_closed_positions` is exited positions ONLY; what the user holds now is `get_my_balances`. Never say "},{"name":"get_my_activity","description":"The user's recent trades, deposits and transfers timeline. Newest first and CURSOR-paginated: pass the response's `cursor` back; there are no page numbers. Choo"},{"name":"get_my_token_balance","description":"How much of one token the user holds now. Use to size a sell. `balance_token_amount` IS THE ANSWER: the on-chain balance, same as `get_my_balances`; 0 means the"},{"name":"get_my_closed_trades","description":"Each closed buy and sell cycle for one token, with fills and tx hashes. Newest first; each cycle has `fills` (timestamp, side, price_usd, token_amount, usd_amou"},{"name":"get_my_transactions","description":"Raw transaction list, filterable by type (swaps, deposits, withdrawals, transfers, order fills). Newest first, page-numbered. `bridge` rows are inbound deposits"},{"name":"get_my_wallets","description":"The user's Solana agent wallet address, for deposits. AI Trading is Solana only for now: tell the user to deposit to the Solana one. The user's regular app wall"},{"name":"get_my_transaction","description":"One transaction by id. Get the id from `get_my_transactions` first; this tool does not search or list. The row carries the full detail of that one transaction."},{"name":"get_my_watchlists","description":"The user's watchlist names and ids. Pass an id to `get_my_watchlist_tokens` for a list's contents. Start here for 'what's on my watchlist'. A watchlist is token"},{"name":"get_my_watchlist_tokens","description":"Tokens on a watchlist with price, 24h change, market cap and safety tier. One call instead of a `get_token_overview` per token: `price_usd`, `price_change_24hr`"},{"name":"check_positions","description":"THE first call of every scheduled run, before the scan: what each held position needs now under a strategy's exit rules. One call for position upkeep: for each "},{"name":"get_my_orders","description":"The user's open and past limit, take-profit, stop-loss orders and DCA schedules. Live orders by default: check before placing one (no duplicates) and to find an"},{"name":"get_my_dca_schedules","description":"The user's recurring DCA buys and sells with progress. The same rows `get_my_orders` returns as `dca_schedules`. `get_my_orders` answers 'what is running' in ON"},{"name":"get_my_guardrails","description":"The user's app-set limits on max per trade, daily buy volume and market-cap range, allowed order types and pause state. Read-only. Use for \"what can my agent sp"},{"name":"get_swap_quote","description":"Price a Solana swap before doing it: output, price impact, fees, slippage, and a quote_id. Moves nothing. Quote `output_amount_ui` and `minimum_output_amount_ui"},{"name":"execute_swap","description":"Execute a quoted swap from the user's agent wallet. Real money. Only after the user approves the quote. Buys are checked against the app-set limits. ⚠️ THIS SPE"},{"name":"quick_buy","description":"Buy a Solana token or tokenized stock with USDC in one step. Real money. Confirm token and amount first. Checked server-side against max per trade, daily buy vo"},{"name":"quick_sell","description":"Sell all or part of a held token to USDC at market. Real money. Full sells also cancel that token's open exits. Quote + execute in one call (no expired quotes):"},{"name":"get_swap_status","description":"Status and fill of a swap by quote_id or signature. Safe to repeat. Moves nothing. Pass `quote_id` (from the swap result, or a failure message's Reference ID) O"},{"name":"create_order","description":"Place a limit buy or sell, take-profit, stop-loss, bracket (SL + TP), trigger buy or DCA on a Solana token. Real money when it fires. Buy orders are checked aga"},{"name":"cancel_order","description":"Cancel one open order or a whole DCA schedule. Moves no funds; not reversible. Pass EXACTLY ONE of `order_id` (from `get_my_orders`) or `schedule_id` (stops eve"},{"name":"get_whalewatch_wallet_lists","description":"Curated wallet lists to browse for copy trading, with their slugs. The Find-wallets tab: a 'picks' strip, then one summary per curated list (whale groups, KOL g"},{"name":"get_whalewatch_wallet_list_detail","description":"Ranked wallets in one curated list (slug from the browse lists tool). Pre-ranked. `slug` MUST come from `get_whalewatch_wallet_lists`: an invented or stale slug"},{"name":"search_whalewatch_wallets","description":"Find a public whale or KOL wallet by name or list brand. By KOL name or whale-list brand, NOT by pasted address, and not a token search (`search_tokens`). `disc"},{"name":"discover_wallets_to_follow","description":"Suggested profitable public Solana wallets to follow or copy trade, or search one by name or address. Each row has `is_following`. With `query`: search by name,"},{"name":"get_my_recommended_wallets","description":"Tracked wallets that hold the same tokens as the user. 'For you', in the same shape as `get_whalewatch_wallet_list_detail`. Holding nothing Moby tracks gives `t"},{"name":"follow_wallet","description":"Follow a public Solana wallet so its trades appear in the user's following feed. Moves no money and does not copy trades automatically. Idempotent: following an"},{"name":"unfollow_wallet","description":"Stop following a wallet. Moves no money. Idempotent: a no-op if the user does not follow it. Also clears that wallet from `get_my_following_feed` at once."},{"name":"get_my_followed_wallets","description":"Wallets the user follows, with the follow cap. `max_follows` lets you say 'N of 50' in one call; rows carry list associations and any nickname set with `follow_"},{"name":"get_my_following_feed","description":"Recent trades by the wallets the user follows. Newest first. ⚠️ EMPTY means the user follows nobody or nobody they follow traded lately, NOT 'no whale activity'"},{"name":"get_my_trading_profile","description":"The user's saved trading preferences and onboarding state. Call first on every connect. 🔴 BEFORE ANY OTHER TOOL.\n- `interview_due: true`: show `onboarding_brie"},{"name":"save_trading_profile","description":"Save onboarding answers or a skip. Changes no limit and moves no money. Call it after you played the answers back in TWO lines and the user said yes, or with `s"},{"name":"list_strategies","description":"Moby's ready-made strategies (Large Cap Allocator, Smart Money Confirmed, others) with risk labels. From the Strategies section of AI Trading in the Moby app: e"},{"name":"get_strategy","description":"The full prompt and editable settings for one starter strategy. `prompt` is ready to run: the same text the app copies. Run that prompt as the user's standing i"},{"name":"get_my_active_strategies","description":"Strategies the agent is running for this user. Check before starting one. Saved on Moby so every client and session sees them: `name`, `strategy_id` (the starte"},{"name":"save_active_strategy","description":"Record a strategy start, pause, resume, stop or run heartbeat. Moves no money. So other sessions and clients see what you run:\n- START: omit `active_strategy_id"},{"name":"submit_feedback","description":"Log a bug, wrong data or feature idea for the Moby team. Once per issue; tell the user it was logged, with its id. Not for payments, lost funds or account probl"},{"name":"get_my_feedback","description":"Status and team replies for earlier feedback. Mention a shipped one to the user when relevant. Each has `id`, `kind`, `title`, `status` (new / reviewed / planne"}],"toolCount":79,"toolsHash":"cb45e8ad5eeaac196d7ca1ea1fb2e5e72d9c1281d969193a2b90d6d755b0fae6","serverName":"moby","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-04T17:27:14.756Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":146,"error":null,"detail":{"tools":[{"name":"get_screener_leaderboard","description":"What's trending and moving on Solana right now, ranked by Moby's 24h activity score with whale counts and safety tier. Use for \"what's hot\", \"top gainers\", \"tre"},{"name":"get_degen_leaderboard","description":"Newer, smaller, high-risk Solana memecoins ranked by activity. Say plainly they can lose most of their value fast. Riskier than `get_screener_leaderboard`, and "},{"name":"get_screener_groups","description":"List Moby's token categories and themes on Solana, and their group_id values. Pass a `group_id` to `get_group_leaderboard`. `home_tabs` lists the app's Home boa"},{"name":"get_group_leaderboard","description":"Ranked tokens in one category: majors (`home_majors`), tokenized stocks such as NVDAx, SPYx, GLDx (`home_stocks`), Pulse (`home_pulse`) or a theme from get_scre"},{"name":"get_launchpads","description":"Recently launched Solana tokens grouped by launchpad such as pump.fun. Highest-risk category. Use for 'what launched recently' and 'new pump.fun coins'; pair wi"},{"name":"get_market_movers","description":"What just happened on Solana: sudden price and volume moves, newest first, with smart-money flow. Use for \"what pumped in the last hour\", \"what changed\". Use it"},{"name":"search_tokens","description":"Find a Solana token's mint address by name, ticker, symbol or pasted contract address (CA). Use first whenever the user names a token. For majors and tokenized "},{"name":"get_token_trade_brief","description":"One-call pre-buy research and rug check for a Solana token: safety tier, risk signals (snipers, insiders, bundlers, dev hold, mint/freeze authority), smart-mone"},{"name":"get_token_overview","description":"Price, market cap, FDV, liquidity, volume, holders, safety tier and smart-money read for one Solana token. Use for \"tell me about X\", \"what's the market cap of "},{"name":"get_token_risk_signals","description":"Rug-pull and scam risk for one Solana token: honeypot, buy/sell tax, mint and freeze authority, dev hold, sniper, insider, bundler and fresh-wallet shares. Use "},{"name":"get_token_smart_money","description":"Which tracked whales, KOLs and proven traders are buying or selling one Solana token over 1h, 4h and 24h. Use for \"is smart money in X\", \"are whales buying X\". "},{"name":"get_token_key_holders","description":"Tracked whale, KOL and trader holders of one Solana token, with position size, entry, 30-day win rate and PnL, and concentration. Use for \"who holds X\", \"are th"},{"name":"get_token_live_feed","description":"Newest trades by tracked whales, KOLs and traders in one Solana token, with quick-flip flags. NOT the whole market: only wallets Moby tracks; every tracked trad"},{"name":"get_token_chart","description":"Price history line for one Solana token over a `period` (5m to 365d). Use to describe a trend. Prices are USD; `period` defaults to `1d`. Choosing between the t"},{"name":"get_token_ohlcv","description":"Open/high/low/close/volume candles for one Solana token, for technical analysis (RSI, moving averages, returns). Series is newest-first. Prices are USD. Candle "},{"name":"get_token_price","description":"Current USD price of one Solana token. Cheapest price check. Use `get_token_overview` when you also need market cap, liquidity or volume."},{"name":"get_whalewatch_feed","description":"Buys and sells by tracked Solana whale wallets, filterable by token, wallet, list and time. Newest first. Filter by `token_address`, `wallet_address` (a TRACKED"},{"name":"get_whalewatch_feed_window","description":"Every tracked whale trade in a window up to 48h, one row per swap, cursor paged. Unlike `get_whalewatch_feed`: ONE ROW PER SWAP (`list_id` is one matching list)"},{"name":"get_whalewatch_kol_feed","description":"What crypto influencers (KOLs, callers) are buying and selling on Solana. Same rows as `get_whalewatch_feed`, pre-filtered to KOLs server-side (no `list_ids`). "},{"name":"get_smart_money_pulse","description":"Market-wide whale, KOL and smart-money buying and selling on Solana for 1h, 4h, 24h, with top net-bought and net-sold tokens. Use first for \"what are whales buy"},{"name":"get_whalewatch_lists","description":"Tracked whale, KOL and trader lists and their list_ids, for filtering whale feeds. Pass `list_ids` to `get_whalewatch_feed`. Not the browse-and-follow lists (`g"},{"name":"get_whale_wallet_holdings","description":"Current holdings of one tracked wallet. ⚠️ Somebody else's portfolio, not the user's (that is `get_my_balances`). Take `wallet_address` from a whale feed row; o"},{"name":"get_whale_wallet_wins","description":"Top 5 closed trades by profit for one wallet. Judge a wallet before weighting its trades. ⚠️ Somebody else's track record, not the user's (theirs is `get_my_clo"},{"name":"get_whalewatch_home_feed","description":"The latest headline whale buy on Solana ($10k or more), as the Moby app's home screen shows it. For anything filtered (one token, one wallet, lists, a time wind"},{"name":"get_whalewatch_legend","description":"Static legend for badges on whale feed rows. Static reference data: call it once to explain a marker on a feed row, never poll it. It has no market data and no "},{"name":"get_top_held","description":"Tokens ranked by total USD held by tracked whales (default) or by Moby users. Use for \"what are whales holding most\". Always TOKENS, never a ranking of people. "},{"name":"get_screener_event_filters","description":"Valid event_types, period and market_cap_group values for get_market_movers. Call it BEFORE filtering `get_market_movers`: an invented filter value returns an e"},{"name":"get_token_holdings","description":"Bucketed holder distribution for one Solana token (how supply is spread). For the itemised top holders use `get_token_holders`; for tracked whales and KOLs use "},{"name":"get_token_holders","description":"Every top holder of one Solana token by size, not only tracked wallets. Use for supply concentration (\"does one wallet own 30%\"). `get_token_key_holders` is the"},{"name":"get_token_whale_holders","description":"Tracked whales holding one Solana token, grouped by whale list. `get_token_key_holders` is the same population ungrouped (whales and KOLs together, with win rat"},{"name":"get_kol_top_held","description":"Named crypto influencers (KOLs) holding one Solana token. The KOL-only slice of `get_token_key_holders`. Use for 'which influencers hold X'; their trades are in"},{"name":"get_token_dca_orders","description":"Other people's open on-chain DCA orders on one Solana token (who is accumulating). Not the user's DCAs. ⚠️ The user's own DCAs are `get_my_dca_schedules`; the t"},{"name":"get_token_x_profile","description":"Follower count, age and verification of a Solana token's X (Twitter) account. Paid per lookup; use sparingly. Answers 'is this project's social presence real or"},{"name":"get_whale_wallet_track_record","description":"Win rate, realized PnL, trade count and hold time for one wallet. Prefer the profile tool. Also `backfill_state` (whether Moby finished indexing it). `get_whale"},{"name":"get_whale_wallet_pnl_chart","description":"One wallet's cumulative realized PnL curve (1d, 7d, 30d, 1y). Is the record a steady climb or one lucky trade? ⚠️ Somebody else's equity curve, never the user's"},{"name":"get_whale_wallet_positions","description":"One tracked wallet's positions with cost basis and unrealized PnL. Richer than `get_whale_wallet_holdings` (amount and USD only). ⚠️ Somebody else's positions; "},{"name":"get_whale_wallet_profile","description":"Identity, 7d and 30d win rate and PnL, holdings and recent trades for one public Solana wallet. Use for \"is this wallet any good\". Also whether Moby stopped tra"},{"name":"get_whale_wallet_profiles","description":"Win rate and PnL for up to 20 wallets in one call. Rate 10-20 key holders before a buy; stats only. Pass the `wallet_address` refs from `get_token_key_holders`."},{"name":"get_my_balances","description":"Per-token balances in the Solana agent wallet, with available USDC to size a buy. USDC is your cash (`is_cash: true`). SOL and every other token are positions; "},{"name":"get_my_portfolio","description":"Total value and holdings of the user's agent wallet. Use for \"how am I doing\". Counts the AGENT's wallets only (`scope: agent_wallets`): Copy Trading and manual"},{"name":"get_my_position","description":"Holding, cost basis and unrealized PnL for one token. Use for \"am I up on X\". Quantities come from the CHAIN; cost basis and PnL from Moby's swap ledger, which "},{"name":"get_my_closed_positions","description":"Positions the user fully exited, with realized PnL. `get_my_closed_positions` is exited positions ONLY; what the user holds now is `get_my_balances`. Never say "},{"name":"get_my_activity","description":"The user's recent trades, deposits and transfers timeline. Newest first and CURSOR-paginated: pass the response's `cursor` back; there are no page numbers. Choo"},{"name":"get_my_token_balance","description":"How much of one token the user holds now. Use to size a sell. `balance_token_amount` IS THE ANSWER: the on-chain balance, same as `get_my_balances`; 0 means the"},{"name":"get_my_closed_trades","description":"Each closed buy and sell cycle for one token, with fills and tx hashes. Newest first; each cycle has `fills` (timestamp, side, price_usd, token_amount, usd_amou"},{"name":"get_my_transactions","description":"Raw transaction list, filterable by type (swaps, deposits, withdrawals, transfers, order fills). Newest first, page-numbered. `bridge` rows are inbound deposits"},{"name":"get_my_wallets","description":"The user's Solana agent wallet address, for deposits. AI Trading is Solana only for now: tell the user to deposit to the Solana one. The user's regular app wall"},{"name":"get_my_transaction","description":"One transaction by id. Get the id from `get_my_transactions` first; this tool does not search or list. The row carries the full detail of that one transaction."},{"name":"get_my_watchlists","description":"The user's watchlist names and ids. Pass an id to `get_my_watchlist_tokens` for a list's contents. Start here for 'what's on my watchlist'. A watchlist is token"},{"name":"get_my_watchlist_tokens","description":"Tokens on a watchlist with price, 24h change, market cap and safety tier. One call instead of a `get_token_overview` per token: `price_usd`, `price_change_24hr`"},{"name":"get_my_orders","description":"The user's open and past limit, take-profit, stop-loss orders and DCA schedules. Live orders by default: check before placing one (no duplicates) and to find an"},{"name":"get_my_dca_schedules","description":"The user's recurring DCA buys and sells with progress. The same rows `get_my_orders` returns as `dca_schedules`. `get_my_orders` answers 'what is running' in ON"},{"name":"get_my_guardrails","description":"The user's app-set limits on max per trade, daily buy volume and market-cap range, allowed order types and pause state. Read-only. Use for \"what can my agent sp"},{"name":"get_swap_quote","description":"Price a Solana swap before doing it: output, price impact, fees, slippage, and a quote_id. Moves nothing. Quote `output_amount_ui` and `minimum_output_amount_ui"},{"name":"execute_swap","description":"Execute a quoted swap from the user's agent wallet. Real money. Only after the user approves the quote. Buys are checked against the app-set limits. ⚠️ THIS SPE"},{"name":"quick_buy","description":"Buy a Solana token or tokenized stock with USDC in one step. Real money. Confirm token and amount first. Checked server-side against max per trade, daily buy vo"},{"name":"quick_sell","description":"Sell all or part of a held token to USDC at market. Real money. Full sells also cancel that token's open exits. Quote and execute happen together, so it never f"},{"name":"get_swap_status","description":"Status and fill of a swap by quote_id or signature. Safe to repeat. Moves nothing. Pass `request_id` (the `quote_id`, or a failure message's Reference ID) OR `t"},{"name":"create_order","description":"Place a limit buy or sell, take-profit, stop-loss, bracket (SL + TP), trigger buy or DCA on a Solana token. Real money when it fires. Buy orders are checked aga"},{"name":"cancel_order","description":"Cancel one open order or a whole DCA schedule. Moves no funds; not reversible. Pass EXACTLY ONE of `order_id` (from `get_my_orders`) or `schedule_id` (stops eve"},{"name":"get_whalewatch_wallet_lists","description":"Curated wallet lists to browse for copy trading, with their slugs. The Find-wallets tab: a 'picks' strip, then one summary per curated list (whale groups, KOL g"},{"name":"get_whalewatch_wallet_list_detail","description":"Ranked wallets in one curated list (slug from the browse lists tool). Pre-ranked. `slug` MUST come from `get_whalewatch_wallet_lists`: an invented or stale slug"},{"name":"search_whalewatch_wallets","description":"Find a public whale or KOL wallet by name or list brand. By KOL name or whale-list brand, NOT by pasted address, and not a token search (`search_tokens`). `disc"},{"name":"discover_wallets_to_follow","description":"Suggested profitable public Solana wallets to follow or copy trade, or search one by name or address. Each row has `is_following`. With `query`: search by name,"},{"name":"get_my_recommended_wallets","description":"Tracked wallets that hold the same tokens as the user. 'For you', in the same shape as `get_whalewatch_wallet_list_detail`. Holding nothing Moby tracks gives `t"},{"name":"follow_wallet","description":"Follow a public Solana wallet so its trades appear in the user's following feed. Moves no money and does not copy trades automatically. Idempotent: following an"},{"name":"unfollow_wallet","description":"Stop following a wallet. Moves no money. Idempotent: a no-op if the user does not follow it. Also clears that wallet from `get_my_following_feed` at once."},{"name":"get_my_followed_wallets","description":"Wallets the user follows, with the follow cap. `max_follows` lets you say 'N of 50' in one call; rows carry list associations and any nickname set with `follow_"},{"name":"get_my_following_feed","description":"Recent trades by the wallets the user follows. Newest first. ⚠️ EMPTY means the user follows nobody or nobody they follow traded lately, NOT 'no whale activity'"},{"name":"get_my_trading_profile","description":"The user's saved trading preferences and onboarding state. Call first on every connect. 🔴 BEFORE ANY OTHER TOOL.\n- `interview_due: true`: show `onboarding_brie"},{"name":"save_trading_profile","description":"Save onboarding answers or a skip. Changes no limit and moves no money. Call it after you played the answers back in TWO lines and the user said yes, or with `s"},{"name":"list_strategies","description":"Moby's ready-made strategies (Large Cap Allocator, Smart Money Confirmed, others) with risk labels. From the Strategies section of AI Trading in the Moby app: e"},{"name":"get_strategy","description":"The full prompt and editable settings for one starter strategy. `prompt` is ready to run: the same text the app copies. Run that prompt as the user's standing i"},{"name":"get_my_active_strategies","description":"Strategies the agent is running for this user. Check before starting one. Saved on Moby so every client and session sees them: `name`, `strategy_id` (the starte"},{"name":"save_active_strategy","description":"Record a strategy start, pause, resume, stop or run heartbeat. Moves no money. So other sessions and clients see what you run:\n- START: omit `active_strategy_id"},{"name":"submit_feedback","description":"Log a bug, wrong data or feature idea for the Moby team. Once per issue; tell the user it was logged, with its id. Not for payments, lost funds or account probl"},{"name":"get_my_feedback","description":"Status and team replies for earlier feedback. Mention a shipped one to the user when relevant. Each has `id`, `kind`, `title`, `status` (new / reviewed / planne"}],"toolCount":77,"toolsHash":"5c9701f8b5a3581d9e81e3e313620f26e6698041475fce6d4df5dfc7ec67d587","serverName":"moby","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-11-04T08:28:22.292Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":151,"error":null,"detail":{"tools":[{"name":"get_screener_leaderboard","description":"What's trending and moving on Solana right now, ranked by Moby's 24h activity score with whale counts and safety tier. Use for \"what's hot\", \"top gainers\", \"tre"},{"name":"get_degen_leaderboard","description":"Newer, smaller, high-risk Solana memecoins ranked by activity. Say plainly they can lose most of their value fast. Riskier than `get_screener_leaderboard`, and "},{"name":"get_screener_groups","description":"List Moby's token categories and themes on Solana, and their group_id values. Pass a `group_id` to `get_group_leaderboard`. `home_tabs` lists the app's Home boa"},{"name":"get_group_leaderboard","description":"Ranked tokens in one category: majors (`home_majors`), tokenized stocks such as NVDAx, SPYx, GLDx (`home_stocks`), Pulse (`home_pulse`) or a theme from get_scre"},{"name":"get_launchpads","description":"Recently launched Solana tokens grouped by launchpad such as pump.fun. Highest-risk category. Use for 'what launched recently' and 'new pump.fun coins'; pair wi"},{"name":"get_market_movers","description":"What just happened on Solana: sudden price and volume moves, newest first, with smart-money flow. Use for \"what pumped in the last hour\", \"what changed\". Use it"},{"name":"search_tokens","description":"Find a Solana token's mint address by name, ticker, symbol or pasted contract address (CA). Use first whenever the user names a token. For majors and tokenized "},{"name":"get_token_trade_brief","description":"One-call pre-buy research and rug check for a Solana token: safety tier, risk signals (snipers, insiders, bundlers, dev hold, mint/freeze authority), smart-mone"},{"name":"get_token_overview","description":"Price, market cap, FDV, liquidity, volume, holders, safety tier and smart-money read for one Solana token. Use for \"tell me about X\", \"what's the market cap of "},{"name":"get_token_risk_signals","description":"Rug-pull and scam risk for one Solana token: honeypot, buy/sell tax, mint and freeze authority, dev hold, sniper, insider, bundler and fresh-wallet shares. Use "},{"name":"get_token_smart_money","description":"Which tracked whales, KOLs and proven traders are buying or selling one Solana token over 1h, 4h and 24h. Use for \"is smart money in X\", \"are whales buying X\". "},{"name":"get_token_key_holders","description":"Tracked whale, KOL and trader holders of one Solana token, with position size, entry, 30-day win rate and PnL, and concentration. Use for \"who holds X\", \"are th"},{"name":"get_token_live_feed","description":"Newest trades by tracked whales, KOLs and traders in one Solana token, with quick-flip flags. NOT the whole market: only wallets Moby tracks; every tracked trad"},{"name":"get_token_chart","description":"Price history line for one Solana token over a `period` (5m to 365d). Use to describe a trend. Prices are USD; `period` defaults to `1d`. Choosing between the t"},{"name":"get_token_ohlcv","description":"Open/high/low/close/volume candles for one Solana token, for technical analysis (RSI, moving averages, returns). Series is newest-first. Prices are USD. Candle "},{"name":"get_token_price","description":"Current USD price of one Solana token. Cheapest price check. Use `get_token_overview` when you also need market cap, liquidity or volume."},{"name":"get_whalewatch_feed","description":"Buys and sells by tracked Solana whale wallets, filterable by token, wallet, list and time. Newest first. Filter by `token_address`, `wallet_address` (a TRACKED"},{"name":"get_whalewatch_feed_window","description":"Every tracked whale trade in a window up to 48h, one row per swap, cursor paged. Unlike `get_whalewatch_feed`: ONE ROW PER SWAP (`list_id` is one matching list)"},{"name":"get_whalewatch_kol_feed","description":"What crypto influencers (KOLs, callers) are buying and selling on Solana. Same rows as `get_whalewatch_feed`, pre-filtered to KOLs server-side (no `list_ids`). "},{"name":"get_smart_money_pulse","description":"Market-wide whale, KOL and smart-money buying and selling on Solana for 1h, 4h, 24h, with top net-bought and net-sold tokens. Use first for \"what are whales buy"},{"name":"get_whalewatch_lists","description":"Tracked whale, KOL and trader lists and their list_ids, for filtering whale feeds. Pass `list_ids` to `get_whalewatch_feed`. Not the browse-and-follow lists (`g"},{"name":"get_whale_wallet_holdings","description":"Current holdings of one tracked wallet. ⚠️ Somebody else's portfolio, not the user's (that is `get_my_balances`). Take `wallet_address` from a whale feed row; o"},{"name":"get_whale_wallet_wins","description":"Top 5 closed trades by profit for one wallet. Judge a wallet before weighting its trades. ⚠️ Somebody else's track record, not the user's (theirs is `get_my_clo"},{"name":"get_whalewatch_home_feed","description":"The latest headline whale buy on Solana ($10k or more), as the Moby app's home screen shows it. For anything filtered (one token, one wallet, lists, a time wind"},{"name":"get_whalewatch_legend","description":"Static legend for badges on whale feed rows. Static reference data: call it once to explain a marker on a feed row, never poll it. It has no market data and no "},{"name":"get_top_held","description":"Tokens ranked by total USD held by tracked whales (default) or by Moby users. Use for \"what are whales holding most\". Always TOKENS, never a ranking of people. "},{"name":"get_screener_event_filters","description":"Valid event_types, period and market_cap_group values for get_market_movers. Call it BEFORE filtering `get_market_movers`: an invented filter value returns an e"},{"name":"get_token_holdings","description":"Bucketed holder distribution for one Solana token (how supply is spread). For the itemised top holders use `get_token_holders`; for tracked whales and KOLs use "},{"name":"get_token_holders","description":"Every top holder of one Solana token by size, not only tracked wallets. Use for supply concentration (\"does one wallet own 30%\"). `get_token_key_holders` is the"},{"name":"get_token_whale_holders","description":"Tracked whales holding one Solana token, grouped by whale list. `get_token_key_holders` is the same population ungrouped (whales and KOLs together, with win rat"},{"name":"get_kol_top_held","description":"Named crypto influencers (KOLs) holding one Solana token. The KOL-only slice of `get_token_key_holders`. Use for 'which influencers hold X'; their trades are in"},{"name":"get_token_dca_orders","description":"Other people's open on-chain DCA orders on one Solana token (who is accumulating). Not the user's DCAs. ⚠️ The user's own DCAs are `get_my_dca_schedules`; the t"},{"name":"get_token_x_profile","description":"Follower count, age and verification of a Solana token's X (Twitter) account. Paid per lookup; use sparingly. Answers 'is this project's social presence real or"},{"name":"get_whale_wallet_track_record","description":"Win rate, realized PnL, trade count and hold time for one wallet. Prefer the profile tool. Also `backfill_state` (whether Moby finished indexing it). `get_whale"},{"name":"get_whale_wallet_pnl_chart","description":"One wallet's cumulative realized PnL curve (1d, 7d, 30d, 1y). Is the record a steady climb or one lucky trade? ⚠️ Somebody else's equity curve, never the user's"},{"name":"get_whale_wallet_positions","description":"One tracked wallet's positions with cost basis and unrealized PnL. Richer than `get_whale_wallet_holdings` (amount and USD only). ⚠️ Somebody else's positions; "},{"name":"get_whale_wallet_profile","description":"Identity, 7d and 30d win rate and PnL, holdings and recent trades for one public Solana wallet. Use for \"is this wallet any good\". Also whether Moby stopped tra"},{"name":"get_whale_wallet_profiles","description":"Win rate and PnL for up to 20 wallets in one call. Rate 10-20 key holders before a buy; stats only. Pass the `wallet_address` refs from `get_token_key_holders`."},{"name":"get_my_balances","description":"Per-token balances in the Solana agent wallet, with available USDC to size a buy. USDC is your cash (`is_cash: true`). SOL and every other token are positions; "},{"name":"get_my_portfolio","description":"Total value and holdings of the user's agent wallet. Use for \"how am I doing\". Counts the AGENT's wallets only (`scope: agent_wallets`): Copy Trading and manual"},{"name":"get_my_position","description":"Holding, cost basis and unrealized PnL for one token. Use for \"am I up on X\". Quantities come from the CHAIN; cost basis and PnL from Moby's swap ledger, which "},{"name":"get_my_closed_positions","description":"Positions the user fully exited, with realized PnL. `get_my_closed_positions` is exited positions ONLY; what the user holds now is `get_my_balances`. Never say "},{"name":"get_my_activity","description":"The user's recent trades, deposits and transfers timeline. Newest first and CURSOR-paginated: pass the response's `cursor` back; there are no page numbers. Choo"},{"name":"get_my_token_balance","description":"How much of one token the user holds now. Use to size a sell. `balance_token_amount` IS THE ANSWER: the on-chain balance, same as `get_my_balances`; 0 means the"},{"name":"get_my_closed_trades","description":"Each closed buy and sell cycle for one token, with fills and tx hashes. Newest first; each cycle has `fills` (timestamp, side, price_usd, token_amount, usd_amou"},{"name":"get_my_transactions","description":"Raw transaction list, filterable by type (swaps, deposits, withdrawals, transfers, order fills). Newest first, page-numbered. `bridge` rows are inbound deposits"},{"name":"get_my_wallets","description":"The user's Solana agent wallet address, for deposits. AI Trading is Solana only for now: tell the user to deposit to the Solana one. The user's regular app wall"},{"name":"get_my_transaction","description":"One transaction by id. Get the id from `get_my_transactions` first; this tool does not search or list. The row carries the full detail of that one transaction."},{"name":"get_my_watchlists","description":"The user's watchlist names and ids. Pass an id to `get_my_watchlist_tokens` for a list's contents. Start here for 'what's on my watchlist'. A watchlist is token"},{"name":"get_my_watchlist_tokens","description":"Tokens on a watchlist with price, 24h change, market cap and safety tier. One call instead of a `get_token_overview` per token: `price_usd`, `price_change_24hr`"},{"name":"get_my_orders","description":"The user's open and past limit, take-profit, stop-loss orders and DCA schedules. Live orders by default: check before placing one (no duplicates) and to find an"},{"name":"get_my_dca_schedules","description":"The user's recurring DCA buys and sells with progress. The same rows `get_my_orders` returns as `dca_schedules`. `get_my_orders` answers 'what is running' in ON"},{"name":"get_my_guardrails","description":"The user's app-set limits on max per trade, daily buy volume and market-cap range, allowed order types and pause state. Read-only. Use for \"what can my agent sp"},{"name":"get_swap_quote","description":"Price a Solana swap before doing it: output, price impact, fees, slippage, and a quote_id. Moves nothing. Quote `output_amount_ui` and `minimum_output_amount_ui"},{"name":"execute_swap","description":"Execute a quoted swap from the user's agent wallet. Real money. Only after the user approves the quote. Buys are checked against the app-set limits. ⚠️ THIS SPE"},{"name":"quick_buy","description":"Buy a Solana token or tokenized stock with USDC in one step. Real money. Confirm token and amount first. Checked server-side against max per trade, daily buy vo"},{"name":"quick_sell","description":"Sell all or part of a held token to USDC at market. Real money. Full sells also cancel that token's open exits. Quote and execute happen together, so it never f"},{"name":"get_swap_status","description":"Status and fill of a swap by quote_id or signature. Safe to repeat. Moves nothing. Pass `request_id` (the `quote_id`, or a failure message's Reference ID) OR `t"},{"name":"create_order","description":"Place a limit buy or sell, take-profit, stop-loss, bracket (SL + TP), trigger buy or DCA on a Solana token. Real money when it fires. Buy orders are checked aga"},{"name":"cancel_order","description":"Cancel one open order or a whole DCA schedule. Moves no funds; not reversible. Pass EXACTLY ONE of `order_id` (from `get_my_orders`) or `schedule_id` (stops eve"},{"name":"get_whalewatch_wallet_lists","description":"Curated wallet lists to browse for copy trading, with their slugs. The Find-wallets tab: a 'picks' strip, then one summary per curated list (whale groups, KOL g"},{"name":"get_whalewatch_wallet_list_detail","description":"Ranked wallets in one curated list (slug from the browse lists tool). Pre-ranked. `slug` MUST come from `get_whalewatch_wallet_lists`: an invented or stale slug"},{"name":"search_whalewatch_wallets","description":"Find a public whale or KOL wallet by name or list brand. By KOL name or whale-list brand, NOT by pasted address, and not a token search (`search_tokens`). `disc"},{"name":"discover_wallets_to_follow","description":"Suggested profitable public Solana wallets to follow or copy trade, or search one by name or address. Each row has `is_following`. With `query`: search by name,"},{"name":"get_my_recommended_wallets","description":"Tracked wallets that hold the same tokens as the user. 'For you', in the same shape as `get_whalewatch_wallet_list_detail`. Holding nothing Moby tracks gives `t"},{"name":"follow_wallet","description":"Follow a public Solana wallet so its trades appear in the user's following feed. Moves no money and does not copy trades automatically. Idempotent: following an"},{"name":"unfollow_wallet","description":"Stop following a wallet. Moves no money. Idempotent: a no-op if the user does not follow it. Also clears that wallet from `get_my_following_feed` at once."},{"name":"get_my_followed_wallets","description":"Wallets the user follows, with the follow cap. `max_follows` lets you say 'N of 50' in one call; rows carry list associations and any nickname set with `follow_"},{"name":"get_my_following_feed","description":"Recent trades by the wallets the user follows. Newest first. ⚠️ EMPTY means the user follows nobody or nobody they follow traded lately, NOT 'no whale activity'"},{"name":"get_my_trading_profile","description":"The user's saved trading preferences and onboarding state. Call first on every connect. 🔴 BEFORE ANY OTHER TOOL.\n- `interview_due: true`: show `onboarding_brie"},{"name":"save_trading_profile","description":"Save onboarding answers or a skip. Changes no limit and moves no money. Call it after you played the answers back in TWO lines and the user said yes, or with `s"},{"name":"list_strategies","description":"Moby's ready-made strategies (Large Cap Allocator, Smart Money Confirmed, others) with risk labels. From the Strategies section of AI Trading in the Moby app: e"},{"name":"get_strategy","description":"The full prompt and editable settings for one starter strategy. `prompt` is ready to run: the same text the app copies. Run that prompt as the user's standing i"},{"name":"get_my_active_strategies","description":"Strategies the agent is running for this user. Check before starting one. Saved on Moby so every client and session sees them: `name`, `strategy_id` (the starte"},{"name":"save_active_strategy","description":"Record a strategy start, pause, resume, stop or run heartbeat. Moves no money. So other sessions and clients see what you run:\n- START: omit `active_strategy_id"},{"name":"submit_feedback","description":"Log a bug, wrong data or feature idea for the Moby team. Once per issue; tell the user it was logged, with its id. Not for payments, lost funds or account probl"},{"name":"get_my_feedback","description":"Status and team replies for earlier feedback. Mention a shipped one to the user when relevant. Each has `id`, `kind`, `title`, `status` (new / reviewed / planne"}],"toolCount":77,"toolsHash":"5c9701f8b5a3581d9e81e3e313620f26e6698041475fce6d4df5dfc7ec67d587","serverName":"moby","capabilities":["experimental","prompts","resources","tools"],"serverVersion":"1.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"scan_tokens","description":"THE first call of a scheduled scan: Moby applies a strategy's thresholds server-side and returns only the Solana tokens that pass, already deduplicated for this"},{"name":"get_screener_leaderboard","description":"What's trending and moving on Solana right now, ranked by Moby's 24h activity score with whale counts and safety tier. Use for \"what's hot\", \"top gainers\", \"tre"},{"name":"get_degen_leaderboard","description":"Newer, smaller, high-risk Solana memecoins ranked by activity. Say plainly they can lose most of their value fast. Riskier than `get_screener_leaderboard`, and "},{"name":"get_screener_groups","description":"List Moby's token categories and themes on Solana, and their group_id values. Pass a `group_id` to `get_group_leaderboard`. `home_tabs` lists the app's Home boa"},{"name":"get_group_leaderboard","description":"Ranked tokens in one category: majors (`home_majors`), tokenized stocks such as NVDAx, SPYx, GLDx (`home_stocks`), Pulse (`home_pulse`) or a theme from get_scre"},{"name":"get_launchpads","description":"Recently launched Solana tokens grouped by launchpad such as pump.fun. Highest-risk category. Use for 'what launched recently' and 'new pump.fun coins'; pair wi"},{"name":"get_market_movers","description":"What just happened on Solana: sudden price and volume moves, newest first, with smart-money flow. Use for \"what pumped in the last hour\", \"what changed\". Use it"},{"name":"search_tokens","description":"Find a Solana token's mint address by name, ticker, symbol or pasted contract address (CA). Use first whenever the user names a token. For majors and tokenized "},{"name":"get_token_trade_brief","description":"One-call pre-buy research and rug check for a Solana token: safety tier, risk signals (snipers, insiders, bundlers, dev hold, mint/freeze authority), smart-mone"},{"name":"get_token_overview","description":"Price, market cap, FDV, liquidity, volume, holders, safety tier and smart-money read for one Solana token. Use for \"tell me about X\", \"what's the market cap of "},{"name":"get_token_risk_signals","description":"Rug-pull and scam risk for one Solana token: honeypot, buy/sell tax, mint and freeze authority, dev hold, sniper, insider, bundler and fresh-wallet shares. Use "},{"name":"get_token_smart_money","description":"Which tracked whales, KOLs and proven traders are buying or selling one Solana token over 1h, 4h and 24h. Use for \"is smart money in X\", \"are whales buying X\". "},{"name":"get_token_key_holders","description":"Tracked whale, KOL and trader holders of one Solana token, with position size, entry, 30-day win rate and PnL, and concentration. Use for \"who holds X\", \"are th"},{"name":"get_token_live_feed","description":"Newest trades by tracked whales, KOLs and traders in one Solana token, with quick-flip flags. NOT the whole market: only wallets Moby tracks; every tracked trad"},{"name":"get_token_chart","description":"Price history line for one Solana token over a `period` (5m to 365d). Use to describe a trend. Prices are USD; `period` defaults to `1d`. Choosing between the t"},{"name":"get_token_ohlcv","description":"Open/high/low/close/volume candles for one Solana token, for technical analysis (RSI, moving averages, returns). Series is newest-first. Prices are USD. Candle "},{"name":"get_token_price","description":"Current USD price of one Solana token. Cheapest price check. Use `get_token_overview` when you also need market cap, liquidity or volume."},{"name":"get_whalewatch_feed","description":"Buys and sells by tracked Solana whale wallets, filterable by token, wallet, list and time. Newest first. Filter by `token_address`, `wallet_address` (a TRACKED"},{"name":"get_whalewatch_feed_window","description":"Every tracked whale trade in a window up to 48h, one row per swap, cursor paged. Unlike `get_whalewatch_feed`: ONE ROW PER SWAP (`list_id` is one matching list)"},{"name":"get_whalewatch_kol_feed","description":"What crypto influencers (KOLs) are buying and selling on Solana. Same rows as `get_whalewatch_feed`, pre-filtered to KOLs server-side (no `list_ids`). For one K"},{"name":"get_smart_money_pulse","description":"Market-wide whale, KOL and smart-money buying and selling on Solana for 1h, 4h, 24h, with top net-bought and net-sold tokens. Use first for \"what are whales buy"},{"name":"get_whalewatch_lists","description":"Tracked whale, KOL and trader lists and their list_ids, for filtering whale feeds. Pass `list_ids` to `get_whalewatch_feed`. Not the browse-and-follow lists (`g"},{"name":"get_whale_wallet_holdings","description":"Current holdings of one tracked wallet. ⚠️ Somebody else's portfolio, not the user's (that is `get_my_balances`). Take `wallet_address` from a whale feed row; o"},{"name":"get_whale_wallet_wins","description":"Top 5 closed trades by profit for one wallet. Judge a wallet before weighting its trades. ⚠️ Somebody else's track record, not the user's (theirs is `get_my_clo"},{"name":"get_whalewatch_home_feed","description":"The latest headline whale buy on Solana ($10k or more), as the Moby app's home screen shows it. For anything filtered (one token, one wallet, lists, a time wind"},{"name":"get_whalewatch_legend","description":"Static legend for badges on whale feed rows. Static reference data: call it once to explain a marker on a feed row, never poll it. It has no market data and no "},{"name":"get_top_held","description":"Tokens ranked by total USD held by tracked whales (default) or by Moby users. Use for \"what are whales holding most\". Always TOKENS, never a ranking of people. "},{"name":"get_screener_event_filters","description":"Valid event_types, period and market_cap_group values for get_market_movers. Call it BEFORE filtering `get_market_movers`: an invented filter value returns an e"},{"name":"get_token_holdings","description":"Bucketed holder distribution for one Solana token (how supply is spread). For the itemised top holders use `get_token_holders`; for tracked whales and KOLs use "},{"name":"get_token_holders","description":"Every top holder of one Solana token by size, not only tracked wallets. Use for supply concentration (\"does one wallet own 30%\"). `get_token_key_holders` is the"},{"name":"get_token_whale_holders","description":"Tracked whales holding one Solana token, grouped by whale list. `get_token_key_holders` is the same population ungrouped (whales and KOLs together, with win rat"},{"name":"get_kol_top_held","description":"Named crypto influencers (KOLs) holding one Solana token. The KOL-only slice of `get_token_key_holders`. Use for 'which influencers hold X'; their trades are in"},{"name":"get_token_dca_orders","description":"Other people's open on-chain DCA orders on one Solana token (who is accumulating). Not the user's DCAs. ⚠️ The user's own DCAs are `get_my_dca_schedules`; the t"},{"name":"get_token_x_profile","description":"Follower count, age and verification of a Solana token's X (Twitter) account. Paid per lookup; use sparingly. Answers 'is this project's social presence real or"},{"name":"get_whale_wallet_track_record","description":"Win rate, realized PnL, trade count and hold time for one wallet. Prefer the profile tool. Also `backfill_state` (whether Moby finished indexing it). `get_whale"},{"name":"get_whale_wallet_pnl_chart","description":"One wallet's cumulative realized PnL curve (1d, 7d, 30d, 1y). Is the record a steady climb or one lucky trade? ⚠️ Somebody else's equity curve, never the user's"},{"name":"get_whale_wallet_positions","description":"One tracked wallet's positions with cost basis and unrealized PnL. Richer than `get_whale_wallet_holdings` (amount and USD only). ⚠️ Somebody else's positions; "},{"name":"get_whale_wallet_profile","description":"Identity, 7d and 30d win rate and PnL, holdings and recent trades for one public Solana wallet. Use for \"is this wallet any good\". Also whether Moby stopped tra"},{"name":"get_whale_wallet_profiles","description":"Win rate and PnL for up to 20 wallets in one call. Rate 10-20 key holders before a buy; stats only. Pass the `wallet_address` refs from `get_token_key_holders`."},{"name":"get_my_balances","description":"Per-token balances in the Solana agent wallet, with available USDC to size a buy. USDC is your cash (`is_cash: true`). SOL and every other token are positions; "},{"name":"get_my_portfolio","description":"Total value and holdings of the user's agent wallet. Use for \"how am I doing\". Counts the AGENT's wallets only (`scope: agent_wallets`): Copy Trading and manual"},{"name":"get_my_position","description":"Holding, cost basis and unrealized PnL for one token. Use for \"am I up on X\". Quantities come from the CHAIN; cost basis and PnL from Moby's swap ledger, which "},{"name":"get_my_closed_positions","description":"Positions the user fully exited, with realized PnL. `get_my_closed_positions` is exited positions ONLY; what the user holds now is `get_my_balances`. Never say "},{"name":"get_my_activity","description":"The user's recent trades, deposits and transfers timeline. Newest first and CURSOR-paginated: pass the response's `cursor` back; there are no page numbers. Choo"},{"name":"get_my_token_balance","description":"How much of one token the user holds now. Use to size a sell. `balance_token_amount` IS THE ANSWER: the on-chain balance, same as `get_my_balances`; 0 means the"},{"name":"get_my_closed_trades","description":"Each closed buy and sell cycle for one token, with fills and tx hashes. Newest first; each cycle has `fills` (timestamp, side, price_usd, token_amount, usd_amou"},{"name":"get_my_transactions","description":"Raw transaction list, filterable by type (swaps, deposits, withdrawals, transfers, order fills). Newest first, page-numbered. `bridge` rows are inbound deposits"},{"name":"get_my_wallets","description":"The user's Solana agent wallet address, for deposits. AI Trading is Solana only for now: tell the user to deposit to the Solana one. The user's regular app wall"},{"name":"get_my_transaction","description":"One transaction by id. Get the id from `get_my_transactions` first; this tool does not search or list. The row carries the full detail of that one transaction."},{"name":"get_my_watchlists","description":"The user's watchlist names and ids. Pass an id to `get_my_watchlist_tokens` for a list's contents. Start here for 'what's on my watchlist'. A watchlist is token"},{"name":"get_my_watchlist_tokens","description":"Tokens on a watchlist with price, 24h change, market cap and safety tier. One call instead of a `get_token_overview` per token: `price_usd`, `price_change_24hr`"},{"name":"check_positions","description":"THE first call of every scheduled run, before the scan: what each held position needs now under a strategy's exit rules. One call for position upkeep: for each "},{"name":"get_my_orders","description":"The user's open and past limit, take-profit, stop-loss orders and DCA schedules. Live orders by default: check before placing one (no duplicates) and to find an"},{"name":"get_my_dca_schedules","description":"The user's recurring DCA buys and sells with progress. The same rows `get_my_orders` returns as `dca_schedules`. `get_my_orders` answers 'what is running' in ON"},{"name":"get_my_guardrails","description":"The user's app-set limits on max per trade, daily buy volume and market-cap range, allowed order types and pause state. Read-only. Use for \"what can my agent sp"},{"name":"get_swap_quote","description":"Price a Solana swap before doing it: output, price impact, fees, slippage, and a quote_id. Moves nothing. Quote `output_amount_ui` and `minimum_output_amount_ui"},{"name":"execute_swap","description":"Execute a quoted swap from the user's agent wallet. Real money. Only after the user approves the quote. Buys are checked against the app-set limits. ⚠️ THIS SPE"},{"name":"quick_buy","description":"Buy a Solana token or tokenized stock with USDC in one step. Real money. Confirm token and amount first. Checked server-side against max per trade, daily buy vo"},{"name":"quick_sell","description":"Sell all or part of a held token to USDC at market. Real money. Full sells also cancel that token's open exits. Quote + execute in one call (no expired quotes):"},{"name":"get_swap_status","description":"Status and fill of a swap by quote_id or signature. Safe to repeat. Moves nothing. Pass `quote_id` (from the swap result, or a failure message's Reference ID) O"},{"name":"create_order","description":"Place a limit buy or sell, take-profit, stop-loss, bracket (SL + TP), trigger buy or DCA on a Solana token. Real money when it fires. Buy orders are checked aga"},{"name":"cancel_order","description":"Cancel one open order or a whole DCA schedule. Moves no funds; not reversible. Pass EXACTLY ONE of `order_id` (from `get_my_orders`) or `schedule_id` (stops eve"},{"name":"get_whalewatch_wallet_lists","description":"Curated wallet lists to browse for copy trading, with their slugs. The Find-wallets tab: a 'picks' strip, then one summary per curated list (whale groups, KOL g"},{"name":"get_whalewatch_wallet_list_detail","description":"Ranked wallets in one curated list (slug from the browse lists tool). Pre-ranked. `slug` MUST come from `get_whalewatch_wallet_lists`: an invented or stale slug"},{"name":"search_whalewatch_wallets","description":"Find a public whale or KOL wallet by name or list brand. By KOL name or whale-list brand, NOT by pasted address, and not a token search (`search_tokens`). `disc"},{"name":"discover_wallets_to_follow","description":"Suggested profitable public Solana wallets to follow or copy trade, or search one by name or address. Each row has `is_following`. With `query`: search by name,"},{"name":"get_my_recommended_wallets","description":"Tracked wallets that hold the same tokens as the user. 'For you', in the same shape as `get_whalewatch_wallet_list_detail`. Holding nothing Moby tracks gives `t"},{"name":"follow_wallet","description":"Follow a public Solana wallet so its trades appear in the user's following feed. Moves no money and does not copy trades automatically. Idempotent: following an"},{"name":"unfollow_wallet","description":"Stop following a wallet. Moves no money. Idempotent: a no-op if the user does not follow it. Also clears that wallet from `get_my_following_feed` at once."},{"name":"get_my_followed_wallets","description":"Wallets the user follows, with the follow cap. `max_follows` lets you say 'N of 50' in one call; rows carry list associations and any nickname set with `follow_"},{"name":"get_my_following_feed","description":"Recent trades by the wallets the user follows. Newest first. ⚠️ EMPTY means the user follows nobody or nobody they follow traded lately, NOT 'no whale activity'"},{"name":"get_my_trading_profile","description":"The user's saved trading preferences and onboarding state. Call first on every connect. 🔴 BEFORE ANY OTHER TOOL.\n- `agent`: this key's agent (`name`).\n- `inter"},{"name":"save_trading_profile","description":"Save onboarding answers or a skip. Changes no limit and moves no money. Call it after you played the answers back in TWO lines and the user said yes, or with `s"},{"name":"get_my_invite_codes","description":"The user's AI Trading (AGENT-) invite codes with share links, the friends who redeemed them and the USDC earned from their trading fees. Read-only. Use for \"my "},{"name":"get_my_invite_payouts","description":"The USDC referral payouts swept to the user's agent wallet, paged. Read-only, newest first. Each payout has `amount_usdc`, `status` (pending / success / failure"},{"name":"list_strategies","description":"Moby's ready-made strategies (Large Cap Allocator, Smart Money Confirmed, others) with risk labels. From the Strategies section of AI Trading in the Moby app: e"},{"name":"get_strategy","description":"The full prompt and editable settings for one starter strategy. `prompt` is ready to run: the same text the app copies. Run that prompt as the user's standing i"},{"name":"get_my_active_strategies","description":"Strategies the agent is running for this user. Check before starting one. Saved on Moby so every client and session sees them: `name`, `strategy_id` (the starte"},{"name":"save_active_strategy","description":"Record a strategy start, pause, resume, stop or run heartbeat. Moves no money. So other sessions and clients see what you run:\n- START: omit `active_strategy_id"},{"name":"submit_feedback","description":"Log a bug, wrong data or feature idea for the Moby team. Once per issue; tell the user it was logged, with its id. Not for payments, lost funds or account probl"},{"name":"get_my_feedback","description":"Status and team replies for earlier feedback. Mention a shipped one to the user when relevant. Each has `id`, `kind`, `title`, `status` (new / reviewed / planne"}],"package":null,"toolSurface":{"id":"ts_6sec5zbp9guz","endpointId":"ep_mgzq5ued3r9t","hash":"9ed4ba2fc867a623746780d9460bb4c771ea8f42d3042bb60addbfd5101318cc","toolCount":81,"serverName":"moby","serverVersion":"1.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-11-06T02:28:03.261Z","lastSeenAt":"2026-11-06T02:28:03.261Z","observations":1,"toolNames":["scan_tokens","get_screener_leaderboard","get_degen_leaderboard","get_screener_groups","get_group_leaderboard","get_launchpads","get_market_movers","search_tokens","get_token_trade_brief","get_token_overview","get_token_risk_signals","get_token_smart_money","get_token_key_holders","get_token_live_feed","get_token_chart","get_token_ohlcv","get_token_price","get_whalewatch_feed","get_whalewatch_feed_window","get_whalewatch_kol_feed","get_smart_money_pulse","get_whalewatch_lists","get_whale_wallet_holdings","get_whale_wallet_wins","get_whalewatch_home_feed","get_whalewatch_legend","get_top_held","get_screener_event_filters","get_token_holdings","get_token_holders","get_token_whale_holders","get_kol_top_held","get_token_dca_orders","get_token_x_profile","get_whale_wallet_track_record","get_whale_wallet_pnl_chart","get_whale_wallet_positions","get_whale_wallet_profile","get_whale_wallet_profiles","get_my_balances","get_my_portfolio","get_my_position","get_my_closed_positions","get_my_activity","get_my_token_balance","get_my_closed_trades","get_my_transactions","get_my_wallets","get_my_transaction","get_my_watchlists","get_my_watchlist_tokens","check_positions","get_my_orders","get_my_dca_schedules","get_my_guardrails","get_swap_quote","execute_swap","quick_buy","quick_sell","get_swap_status","create_order","cancel_order","get_whalewatch_wallet_lists","get_whalewatch_wallet_list_detail","search_whalewatch_wallets","discover_wallets_to_follow","get_my_recommended_wallets","follow_wallet","unfollow_wallet","get_my_followed_wallets","get_my_following_feed","get_my_trading_profile","save_trading_profile","get_my_invite_codes","get_my_invite_payouts","list_strategies","get_strategy","get_my_active_strategies","save_active_strategy","submit_feedback","get_my_feedback"],"distinctSurfaces":4},"endpointFacts":[{"id":"ep_mgzq5ued3r9t","url":"https://mcp.moby.win/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-11-04T17:27:14.781Z","auth":{"observedAt":"2026-11-04T17:27:14.926Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-11-04T17:27:14.956Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"moby.win","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-10-06T05:39:56.000Z","validTo":"2027-01-04T06:39:53.000Z","daysToExpiry":59,"sanCount":2,"fingerprint256":"6D:C0:AC:B8:5B:20:8E:88:BF:58:B7:A8:8C:89:35:70:62:80:54:24:24:61:D7:8A:BD:05:1D:17:7B:C9:B1:DE"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"ard_catalog","key":"urn:air:moby.win:mcp:server-card","url":"https://moby.win/.well-known/ai-catalog.json","firstSeenAt":"2026-11-04T06:23:35.790Z","fetchedAt":"2026-11-04T06:23:35.790Z","normalizedAt":"2026-11-04T06:23:35.790Z"},{"source":"mcp_registry","key":"win.moby/moby","url":"https://registry.modelcontextprotocol.io/v0/servers/win.moby%2Fmoby","firstSeenAt":"2026-11-04T06:21:53.567Z","fetchedAt":"2026-11-04T06:21:53.567Z","normalizedAt":"2026-11-04T06:21:53.567Z"}]},"firstSeenAt":"2026-11-04T06:21:53.567Z","updatedAt":"2026-11-06T02:32:17.693Z"}