Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Moby

REMOTE · MCP.MOBY.WIN

Bearer agent key. Codex, Claude Code CLI, Gemini CLI (paid key), Grok CLI. ChatGPT: workspace plans.

Available components

63 Trust /100

Last scanned (20 hours ago)

Scores higher than 44% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Crypto and Web3

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security57
Transport & Reachability100
Schema Quality & AI Usability64
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 19792 tokens (~257/item across 77 items; 77 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
  • Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 78 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +3

    We did not load change detail this far back for this component, so this day may have recorded more than is shown.

    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “get_my_guardrails” rewrote its description, which is the text the model reads security
    • Tool “get_my_followed_wallets” rewrote its description, which is the text the model reads security
    • Tool “get_my_closed_positions” rewrote its description, which is the text the model reads security
    • Tool “get_my_position” rewrote its description, which is the text the model reads security
    • Tool “get_whalewatch_feed_window” rewrote its description, which is the text the model reads security
    • Tool “get_screener_groups” rewrote its description, which is the text the model reads security
    • Tool “get_token_holdings” rewrote its description, which is the text the model reads security
    • Tool “search_tokens” rewrote its description, which is the text the model reads security
    • Tool “get_my_following_feed” rewrote its description, which is the text the model reads security
    • Tool “get_my_closed_trades” rewrote its description, which is the text the model reads security
    • Tool “get_my_watchlist_tokens” rewrote its description, which is the text the model reads security
    • Tool “get_token_holders” rewrote its description, which is the text the model reads security
    • Tool “get_my_token_balance” rewrote its description, which is the text the model reads security
    • Tool “get_my_balances” rewrote its description, which is the text the model reads security
    • Tool “get_whalewatch_feed” rewrote its description, which is the text the model reads security
    • Tool “get_top_held” rewrote its description, which is the text the model reads security
    • Tool “get_whalewatch_kol_feed” rewrote its description, which is the text the model reads security
    • Tool “get_token_x_profile” rewrote its description, which is the text the model reads security
    • Tool “get_whale_wallet_pnl_chart” rewrote its description, which is the text the model reads security
    • Tool “get_token_overview” rewrote its description, which is the text the model reads security
    • Tool “get_whalewatch_wallet_lists” rewrote its description, which is the text the model reads security
    • Tool “get_strategy” rewrote its description, which is the text the model reads security
    • Tool “get_token_dca_orders” rewrote its description, which is the text the model reads security
    • Tool “unfollow_wallet” rewrote its description, which is the text the model reads security
    • Tool “save_active_strategy” rewrote its description, which is the text the model reads security
    • Tool “cancel_order” rewrote its description, which is the text the model reads security
    • Tool “list_strategies” rewrote its description, which is the text the model reads security
    • Tool “get_whale_wallet_wins” rewrote its description, which is the text the model reads security
    • Tool “discover_wallets_to_follow” rewrote its description, which is the text the model reads security
    • Tool “get_whale_wallet_positions” rewrote its description, which is the text the model reads security
    • Tool “get_whalewatch_lists” rewrote its description, which is the text the model reads security
    • Tool “get_group_leaderboard” rewrote its description, which is the text the model reads security
    • Tool “get_degen_leaderboard” rewrote its description, which is the text the model reads security
    • Tool “get_whale_wallet_profile” rewrote its description, which is the text the model reads security
    • Tool “get_my_portfolio” rewrote its description, which is the text the model reads security
    • Tool “get_launchpads” rewrote its description, which is the text the model reads security
    • Tool “get_my_watchlists” rewrote its description, which is the text the model reads security
    • Tool “get_token_price” rewrote its description, which is the text the model reads security
    • Tool “get_my_dca_schedules” rewrote its description, which is the text the model reads security
    • Tool “get_kol_top_held” rewrote its description, which is the text the model reads security
    • Tool “get_token_trade_brief” rewrote its description, which is the text the model reads security
    • Tool “get_token_ohlcv” rewrote its description, which is the text the model reads security
    • Tool “save_trading_profile” rewrote its description, which is the text the model reads security
    • Tool “get_my_active_strategies” rewrote its description, which is the text the model reads security
    • Tool “get_my_orders” rewrote its description, which is the text the model reads security
    • Tool “execute_swap” rewrote its description, which is the text the model reads security
    • Tool “get_token_chart” rewrote its description, which is the text the model reads security
    • Tool “get_whale_wallet_profiles” rewrote its description, which is the text the model reads security
    • Tool “get_token_smart_money” rewrote its description, which is the text the model reads security
    • Tool “get_screener_leaderboard” rewrote its description, which is the text the model reads security
    • Tool “get_token_live_feed” rewrote its description, which is the text the model reads security
    • Tool “search_whalewatch_wallets” rewrote its description, which is the text the model reads security
    • Tool “get_my_activity” rewrote its description, which is the text the model reads security
    • Tool “quick_buy” rewrote its description, which is the text the model reads security
    • Tool “get_my_transaction” rewrote its description, which is the text the model reads security
    • Tool “get_swap_status” rewrote its description, which is the text the model reads security
    • Tool “get_token_key_holders” rewrote its description, which is the text the model reads security
    • Tool “quick_sell” rewrote its description, which is the text the model reads security
    • Tool “get_screener_event_filters” rewrote its description, which is the text the model reads security
    • Tool “get_whale_wallet_holdings” rewrote its description, which is the text the model reads security
    • Tool “get_my_feedback” rewrote its description, which is the text the model reads security
    • Tool “get_whalewatch_home_feed” rewrote its description, which is the text the model reads security
    • Tool “get_smart_money_pulse” rewrote its description, which is the text the model reads security
    • Tool “get_token_whale_holders” rewrote its description, which is the text the model reads security
    • Tool “get_my_transactions” rewrote its description, which is the text the model reads security
    • Tool “get_swap_quote” rewrote its description, which is the text the model reads security
    • Tool “create_order” rewrote its description, which is the text the model reads security
    • Tool “submit_feedback” rewrote its description, which is the text the model reads security
    • Tool “get_my_trading_profile” rewrote its description, which is the text the model reads security
    • Tool “get_token_risk_signals” rewrote its description, which is the text the model reads security
    • Tool “get_whalewatch_wallet_list_detail” rewrote its description, which is the text the model reads security
    • Tool “follow_wallet” rewrote its description, which is the text the model reads security
    • Tool “get_my_recommended_wallets” rewrote its description, which is the text the model reads security
    • Tool “get_whalewatch_legend” rewrote its description, which is the text the model reads security
    • Tool “get_market_movers” rewrote its description, which is the text the model reads security
    • Tool “get_my_wallets” rewrote its description, which is the text the model reads security
    • Tool “get_whale_wallet_track_record” rewrote its description, which is the text the model reads security
    • Tool coverage: 62% → 100% ▲ functional
    • Schema quality: 353 → 257 ▲ functional
    • Too many changes on this day to record them all, so 37 were dropped functional
    • Schema quality: good → excellent functional
    • Server version: 1.0.0 → 1.1.0 functional
    • “get_token_live_feed” reworded the description of “token_address” cosmetic
    • “get_token_trade_brief” reworded the description of “token_address” cosmetic
    • “get_token_smart_money” reworded the description of “token_address” cosmetic
    • “search_tokens” reworded the description of “query” cosmetic
    • “get_token_key_holders” reworded the description of “token_address” cosmetic
    • “get_kol_top_held” reworded the description of “token_address” cosmetic
    • “get_my_closed_trades” reworded the description of “include_fills” cosmetic
    • “get_token_dca_orders” reworded the description of “order_direction” cosmetic
    • “get_my_closed_trades” reworded the description of “limit” cosmetic
    • “save_trading_profile” reworded the description of “profile” cosmetic
    • “get_whale_wallet_pnl_chart” reworded the description of “period” cosmetic
    • “get_whalewatch_home_feed” reworded the description of “limit” cosmetic
    • “get_token_whale_holders” reworded the description of “token_address” cosmetic
    • “get_token_chart” reworded the description of “period” cosmetic
    • “get_token_x_profile” reworded the description of “token_address” cosmetic
    • “get_token_price” reworded the description of “token_address” cosmetic
    • “get_token_holdings” reworded the description of “token_address” cosmetic
    • “discover_wallets_to_follow” reworded the description of “wallet_type” cosmetic
    • “get_token_holders” reworded the description of “token_address” cosmetic
    • “get_my_portfolio” reworded the description of “refresh” cosmetic
    • “get_token_chart” reworded the description of “token_address” cosmetic
    • “get_token_ohlcv” reworded the description of “token_address” cosmetic
    • “get_my_token_balance” reworded the description of “token_address” cosmetic
    • “get_token_dca_orders” reworded the description of “token_address” cosmetic
    • “get_token_holders” dropped the optional parameter “network” cosmetic
    • “get_token_chart” dropped the optional parameter “network” cosmetic
    • “get_whale_wallet_profile” dropped the optional parameter “network” cosmetic
    • “get_token_dca_orders” dropped the optional parameter “network” cosmetic
    • “get_token_smart_money” dropped the optional parameter “network” cosmetic
    • “get_token_live_feed” dropped the optional parameter “network” cosmetic
    • “get_whalewatch_feed_window” dropped the optional parameter “network” cosmetic
    • “get_my_transactions” dropped the optional parameter “network” cosmetic
    • “get_token_x_profile” dropped the optional parameter “network” cosmetic
    • “discover_wallets_to_follow” dropped the optional parameter “network” cosmetic
    • “get_my_token_balance” dropped the optional parameter “network” cosmetic
    • “get_group_leaderboard” dropped the optional parameter “network” cosmetic
    • “get_whale_wallet_track_record” dropped the optional parameter “network” cosmetic
    • “get_token_price” dropped the optional parameter “network” cosmetic
    • “get_whalewatch_lists” dropped the optional parameter “network” cosmetic
    • “get_whalewatch_kol_feed” dropped the optional parameter “network” cosmetic
    • “get_whale_wallet_pnl_chart” dropped the optional parameter “network” cosmetic
    • “get_my_position” dropped the optional parameter “network” cosmetic
    • “get_whalewatch_wallet_lists” dropped the optional parameter “network” cosmetic
    • “get_my_activity” dropped the optional parameter “network” cosmetic
    • “get_screener_groups” dropped the optional parameter “network” cosmetic
    • “get_swap_quote” dropped the optional parameter “network” cosmetic
    • “get_whale_wallet_profiles” dropped the optional parameter “network” cosmetic
    • “get_screener_leaderboard” dropped the optional parameter “network” cosmetic
    • “get_my_recommended_wallets” dropped the optional parameter “network” cosmetic
    • “search_whalewatch_wallets” dropped the optional parameter “network” cosmetic
    • “get_token_ohlcv” dropped the optional parameter “network” cosmetic
    • “get_launchpads” dropped the optional parameter “network” cosmetic
    • “get_top_held” dropped the optional parameter “network” cosmetic
    • “get_token_holdings” dropped the optional parameter “network” cosmetic
    • “follow_wallet” dropped the optional parameter “network” cosmetic
    • “quick_buy” dropped the optional parameter “network” cosmetic
    • “get_my_watchlists” dropped the optional parameter “network” cosmetic
    • “get_whale_wallet_positions” dropped the optional parameter “network” cosmetic
    • “get_screener_event_filters” dropped the optional parameter “network” cosmetic
    • “get_my_balances” dropped the optional parameter “network” cosmetic
    • “get_my_dca_schedules” dropped the optional parameter “network” cosmetic
    • “unfollow_wallet” dropped the optional parameter “network” cosmetic
    • “get_whale_wallet_holdings” dropped the optional parameter “network” cosmetic
    • “get_token_overview” dropped the optional parameter “network” cosmetic
    • “quick_sell” dropped the optional parameter “network” cosmetic
    • Tool “get_whalewatch_wallet_lists” changed its title: Find-wallets shell → Wallet lists to browse and follow cosmetic
    • Tool “get_my_orders” changed its title: My orders and order history → My open orders (limit, TP, SL, DCA) cosmetic
    • Tool “get_my_portfolio” changed its title: My whole portfolio → My portfolio value cosmetic
    • Tool “get_whalewatch_home_feed” changed its title: Whale feed highlights → Notable whale trades now cosmetic
    • Tool “create_order” changed its title: Place a trigger order → Place limit, stop-loss, take-profit or DCA order (real money) cosmetic
    • Tool “get_token_holders” changed its title: All token holders → All top holders cosmetic
    • Tool “get_token_live_feed” changed its title: Token trade feed → Live whale trades in a token cosmetic
    • Tool “save_active_strategy” changed its title: Record a running strategy → Save, pause or stop a strategy cosmetic
    • Tool “get_whale_wallet_profile” changed its title: Whale wallet full profile → Wallet profile and track record cosmetic
    • Tool “get_my_recommended_wallets” changed its title: Wallets recommended for me → Wallets similar to my holdings cosmetic
    • Tool “get_whalewatch_wallet_list_detail” changed its title: One find-wallets list → Wallets in a curated list cosmetic
    • Tool “get_token_ohlcv” changed its title: Token candles → Token OHLCV candles cosmetic
    • Tool “quick_sell” changed its title: Quick sell a position → Sell a token to USDC (real money) cosmetic
    • Tool “get_screener_leaderboard” changed its title: Token leaderboard → Trending Solana tokens cosmetic
    • Tool “get_whalewatch_kol_feed” changed its title: KOL transaction feed → KOL and influencer trades cosmetic
    • Tool “get_kol_top_held” changed its title: Tracked KOLs holding a token → KOLs holding a token cosmetic
    • Tool “get_my_watchlist_tokens” changed its title: Tokens on my watchlist → My watchlist tokens cosmetic
    • Tool “search_whalewatch_wallets” changed its title: Search wallets by name or brand → Search whale and KOL wallets cosmetic
    • Tool “get_whale_wallet_track_record” changed its title: Whale wallet track record → Wallet track record cosmetic
    • Tool “get_smart_money_pulse” changed its title: Smart-money pulse → Smart money pulse (whale buys and sells) cosmetic
    • Tool “quick_buy” changed its title: Quick buy a token → Buy a token with USDC (real money) cosmetic
    • Tool “cancel_order” changed its title: Cancel an order → Cancel an order or DCA cosmetic
    • Tool “get_degen_leaderboard” changed its title: Degen leaderboard → Trending memecoins and new tokens (high risk) cosmetic
    • Tool “get_swap_status” changed its title: Check a swap's outcome → Swap status cosmetic
    • Tool “get_my_transaction” changed its title: One of my transactions in full → Transaction detail cosmetic
    • Tool “get_swap_quote” changed its title: Price a swap → Quote a swap cosmetic
    • Tool “list_strategies” changed its title: Starter strategies → Starter trading strategies cosmetic
    • Tool “get_whalewatch_feed” changed its title: Whale transaction feed → Whale trade feed (filterable) cosmetic
    • Tool “get_my_closed_positions” changed its title: My closed positions → My closed positions (realized PnL) cosmetic
    • Tool “get_strategy” changed its title: One starter strategy, ready to run → Get a strategy's instructions cosmetic
    • Tool “get_top_held” changed its title: Top-held tokens leaderboard → Most-held tokens by whales or Moby users cosmetic
    • Tool “get_my_closed_trades” changed its title: My closed trades → My trade history for a token cosmetic
    • Tool “get_token_risk_signals” changed its title: Token risk signals → Token risk check (honeypot, authorities, snipers) cosmetic
    • Tool “get_my_following_feed” changed its title: My following feed → Trades by wallets I follow cosmetic
    • Tool “get_token_whale_holders” changed its title: Tracked whales holding a token → Whales holding a token, by list cosmetic
    • Tool “get_my_feedback” changed its title: My feedback to Moby → My feedback status cosmetic
    • Tool “get_screener_event_filters” changed its title: Market-mover filter values → Market mover filter values cosmetic
    • Tool “get_whale_wallet_positions” changed its title: Whale wallet positions with cost basis → Whale wallet positions with PnL cosmetic
    • Tool “get_token_x_profile” changed its title: Token's X/Twitter profile → Project X account check cosmetic
    • Tool “get_my_position” changed its title: My position in a token → My position and PnL in a token cosmetic
    • Tool “get_market_movers” changed its title: Market events → Market movers and price alerts cosmetic
    • Tool “get_token_dca_orders” changed its title: Token DCA orders → Public DCA orders on a token cosmetic
    • Tool “get_my_guardrails” changed its title: My trading guardrails → My trading limits (guardrails) cosmetic
    • Tool “get_my_trading_profile” changed its title: My trading profile → My trading profile (call first) cosmetic
    • Tool “discover_wallets_to_follow” changed its title: Suggested wallets to follow → Find wallets to copy trade cosmetic
    • Tool “get_launchpads” changed its title: Launchpad activity → New launches by launchpad (pump.fun) cosmetic
    • Tool “save_trading_profile” changed its title: Save my trading profile → Save trading profile cosmetic
    • Tool “execute_swap” changed its title: Execute a swap → Execute quoted swap (real money) cosmetic
    • Tool “get_my_balances” changed its title: My balances → My balances (USDC and tokens) cosmetic
    • Tool “get_whale_wallet_profiles” changed its title: Rate many whale wallets at once → Rate many wallets at once cosmetic
    • Tool “get_whale_wallet_wins” changed its title: Whale wallet wins → Whale wallet best trades cosmetic
  • 2 Nov 26 60

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Probed https://mcp.moby.win/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=moby.win CN=WE1,O=Google Trust Services,C=US 6 Oct 2026 4 Jan 2027 ECDSA 256 ECDSA-SHA256 5fb5b6124e795d7213c772b8d7e5c22d
SANs: moby.win, *.moby.win
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.moby.win. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
win. present 29737 8 Verified
moby.win. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.moby.win/mcp Verified 200
http (plaintext) http://mcp.moby.win/mcp HTTPS enforced 301 https://mcp.moby.win/mcp
MCP tools · 77 exposed · ~17,089 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
cancel_order ~155

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 every remaining DCA slice; filled slices stay filled). A cancelled stop-loss stops protecting the position, and re-placing it gets whatever price is available then. Confirm which order when there are several. Cancels are never blocked by the user's order-type switches.

NameTypeReqDescription
order_id––`order_id` from `get_my_orders`. Omit when cancelling a DCA by `schedule_id`.
schedule_id––`schedule_id` from `get_my_dca_schedules` — cancels that whole DCA.

Structured output declared, but exposes no named fields.

No examples provided.

create_order ~1,153

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 against app-set limits. ⚠️ THIS SPENDS REAL MONEY from the user's agent wallet and cannot be undone. Confirm the exact amount and token with the user and get an explicit yes BEFORE calling it. It can fire while the user is not looking: read back the type, token, amount and every price, and get an explicit yes. Trade limits: SELL orders (TP, SL, limit or DCA sells into USDC) never count toward or get blocked by `maxTradeUsd` / `dailyVolumeUsd`. A BUY order is checked against both and reserves its USD value in the daily volume when placed; the unfilled part comes back if it is cancelled, expires or fails. `order_type` selects what to place, and which price arguments are required: - `limit_buy` — buy when the price falls to `limit_price`. Needs `limit_price`. `amount` is the amount of the FUNDING asset to spend. - `limit_sell` — sell when the price rises to `limit_price`. Needs `limit_price`. `amount` is the amount of the held token to sell. - `tp_only` — take profit: sell when the price rises to `take_profit_price`. Needs `take_profit_price`. - `sl_only` — stop loss: sell when the price falls to `stop_loss_price`. Needs `stop_loss_price`. - `trigger_buy` — buy when the price DROPS to the trigger. The trigger goes in `stop_loss_price`; no other price. `amount` is the FUNDING asset to spend. - `sl_and_tp` — a BRACKET: stop loss AND take profit on one position in ONE call. Needs `stop_loss_price` and `take_profit_price`; `amount` is the held token, and both legs cover it (whichever fires first sells it). It places TWO orders, a stop loss and a take profit: the result says `order_type: "sl_and_tp"` and lists them in `legs` (`order_id` + `order_type` each; also `stop_loss_order_id` / `take_profit_order_id`). When one fills, Moby cancels the other. If ONE leg could not be placed, `failed_leg` says which and `failed_l…

NameTypeReqDescription
amountnumberyesHow much to SPEND, in whole token units: the funding asset on a buy, the held token on a sell.
interval_seconds––Seconds between DCA slices. Required for `dca_buy` and `dca_sell`.
limit_price––USD limit price. Required for `limit_buy` and `limit_sell`.
order_count––How many DCA slices to split the amount into. Required for `dca_buy` and `dca_sell`.
order_typestringyesWhich kind of order to place. See the tool description for what each one needs.
rationale––Optional. Your 2–4 line thesis: why this coin, why now, who's in it, what breaks it. Stored with the trade and shown to the user; ≤500 chars.
stop_loss_price––USD price at which to stop out. Required for `sl_only` and `sl_and_tp`; for `trigger_buy` it is the price the buy fires at when the price drops to it.
take_profit_price––USD price at which to take profit. Required for `tp_only` and `sl_and_tp`.
token_addressstringyesContract address of the token the order is about.

Structured output declared, but exposes no named fields.

No examples provided.

discover_wallets_to_follow ~162

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, brand or an exact pasted address (followed wallets included). Without: a ranked pool EXCLUDING wallets already followed (`get_my_followed_wallets`). Following shows a wallet's trades in the user's feed; it never copies them automatically.

NameTypeReqDescription
limitinteger–Wallets to return, 1-50. Keep it small.
query––A KOL name, whale-list brand, or exact pasted address. Omit to browse.
wallet_typestring–kol = influencers, trader = proven traders, whale = large wallets, all (default).

Structured output declared, but exposes no named fields.

No examples provided.

execute_swap ~289

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 SPENDS REAL MONEY from the user's agent wallet and cannot be undone. Confirm the exact amount and token with the user and get an explicit yes BEFORE calling it. Only pass a `quote_id` from `get_swap_quote` in this conversation, after the user saw its numbers and said yes. Never call it to 'check' anything. An expired quote needs a fresh quote, never the old id. When `fill_pending` is true, call `get_swap_status(request_id=quote_id)`. AMOUNTS: quote the `_ui` fields (whole tokens); un-suffixed `output_amount` / `minimum_output_amount` / `filled_*_amount` are the smallest unit. Null = unknown, never zero: `fill_pending: true` = submitted, fill not booked yet; read it from `get_swap_status`. A full sell cancels every resting TP/SL on the token, all lots (`cancelled_order_ids`; `cancel_failed_order_ids` / `cancel_pending_order_ids` + `cancel_note` are retried); a partial sell or a buy leaves them (null).

NameTypeReqDescription
quote_idstringyes`quote_id` from a recent `get_swap_quote` response.

Structured output declared, but exposes no named fields.

No examples provided.

follow_wallet ~119

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 already-followed wallet is a no-op and does not count against `max_follows` (see `get_my_followed_wallets`). Fails when the user is at the cap. Needs no agent wallet.

NameTypeReqDescription
custom_name––Optional nickname for this wallet, max 50 characters.
wallet_addressstringyesPublic wallet ref from a Find-wallets or WhaleWatch tool.

Structured output declared, but exposes no named fields.

No examples provided.

get_degen_leaderboard ~265

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 many are short-lived. Ranked best-first; page 1 is the top. `whale_windows` (any of h1/h4/h8/h24) adds a per-row `whale` block per window: whale_count (distinct tracked wallets that bought OR sold — buyers plus sellers, not buyers alone), whale_buyers_count (distinct buyers only), whale_buys_count, whale_sells_count and whale_net_flow_usd. The row's `whale_count_h24` is the same buyers-plus-sellers count. Null figures mean unknown. `safety_tier`: grey is NOT a red flag; red = caution, and Moby refuses agent buys on red.

NameTypeReqDescription
limitinteger–Tokens per page, 1-100. Keep it small.
pageinteger–1-based page number. Page 1 is the top.
whale_windows––Windows for the optional per-row `whale` block, e.g. ["h1", "h4"]. Omit for the default row.

Structured output declared, but exposes no named fields.

No examples provided.

get_group_leaderboard ~368

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_screener_groups. Source of truth for major and tokenized-stock mint addresses. `group_id` comes from `get_screener_groups` (a group's `group_id` or a `home_tabs` `tab_id`); never invent one. Take `token_address` from the row and never keep your own mint list. Ranked best-first; page 1 is the top. `whale_windows` (any of h1/h4/h8/h24) adds a per-row `whale` block per window: whale_count (distinct tracked wallets that bought OR sold — buyers plus sellers, not buyers alone), whale_buyers_count (distinct buyers only), whale_buys_count, whale_sells_count and whale_net_flow_usd. The row's `whale_count_h24` is the same buyers-plus-sellers count. Null figures mean unknown. `safety_tier`: grey is NOT a red flag; red = caution, and Moby refuses agent buys on red.

NameTypeReqDescription
group_idstringyeshome_majors, home_stocks (tokenized stocks), home_pulse, or a group_id from get_screener_groups
limitinteger–Tokens per page, 1-100. Keep it small.
pageinteger–1-based page number. Page 1 is the top.
whale_windows––Windows for the optional per-row `whale` block, e.g. ["h1", "h4"]. Omit for the default row.

Structured output declared, but exposes no named fields.

No examples provided.

get_kol_top_held ~87

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 `get_whalewatch_kol_feed`.

NameTypeReqDescription
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_launchpads ~63

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 with `get_smart_money_pulse` (`fresh_launch`) to see which launches whales are buying.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_market_movers ~333

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 for what CHANGED, not what ranks highest now. Poll with `after_timestamp`; page back with `before_timestamp`; valid filter values come from `get_screener_event_filters`. Each event has `token_symbol` / `token_address`, `liquidity_usd` and h1/h4 smart-money flow (`smart_money_net_flow_usd`, `smart_money_buys_count`, `smart_money_sells_count`) AS OF NOW, while `market_cap_usd` and `price_usd` are AT THE TIME OF THE EVENT.

NameTypeReqDescription
after_timestamp––Only events after this instant. ISO 8601 UTC, e.g. `2026-08-11T14:30:00Z`.
before_timestamp––Only events before this instant. ISO 8601 UTC, e.g. `2026-08-11T14:30:00Z`.
event_types––Restrict to these event types. Omit for all types.
limitinteger–Events per page, 1-100. Keep it small.
market_cap_group––Market-cap band. `all` or omitted disables the filter.
pageinteger–1-based page number.
period––Time window. `all` or omitted disables the filter.
token_address––Restrict to one token's events. Omit for the whole market.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_active_strategies ~182

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 starter card, null = custom), `settings`, `schedule`, `status` (active / paused; pass `include_stopped=true` for stopped ones too), `started_at`, `last_run_at`. Call it at the start of every session to learn what is already running, and before starting a strategy, so two sessions never run the same one twice. Resume what is `active` on its `schedule`; leave `paused` ones alone unless the user asks. `app_links` are Moby app deep links to hand to the user; they open the Moby app on their phone.

NameTypeReqDescription
include_stoppedboolean–True also returns stopped strategies.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_activity ~248

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. Choosing between the two history feeds: `get_my_activity` is the merged, human-readable timeline the app shows, cursor-paginated. `get_my_transactions` is the raw transaction list, page-numbered and filterable by transaction type. Prefer activity for 'what have I been doing'; use transactions when you need a specific type such as deposits.

NameTypeReqDescription
category––Restrict to one activity category. Omit (or `all`) for everything. ⚠️ `buys`, `sells` and `closed_trades` REQUIRE `token_address` — without one the call is rejected, deliberately: 'bought' means 'thi…
cursor––Opaque cursor from the previous response. Omit for the first page.
limitinteger–Items per page. Keep it small.
token_address––Restrict to activity involving one token. Omit for all.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_balances ~327

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; sell with quick_sell to raise USDC. `tokens` is EVERYTHING held, SOL (`is_native`) and USDC (`is_quote`) included; empty means the wallet is empty. `native_token` / `usd_token` repeat those two as fixed slots: never add them to the total. Quantities are read on the CHAIN (`balance_source: "chain"`; `"ledger"` = a stale snapshot, say so; `ledger_disagrees: true` = the snapshot was wrong). `swap_user_tokens` is the ledger: cost and PnL, not amounts held. `get_my_closed_positions` is exited positions ONLY; what the user holds now is `get_my_balances`. Never say they hold nothing from an empty closed list. `available_usdc` is spendable now; `reserved_usdc` is held by resting DCAs and buy orders (`reserved_breakdown`) until `cancel_order`; not the guardrails' `daily_volume_reserved_usd`. One wallet: the total is `get_my_portfolio`. `app_links.deposit` adds funds. `interview_due: true` = onboarding was skipped: go back to `get_my_trading_profile` and the 5-question interview (onboarding FIRST) before acting on these numbers.

NameTypeReqDescription
refreshboolean–true only right after an outside deposit that is not showing; slow.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_closed_positions ~193

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 they hold nothing from an empty closed list. An empty result says nothing about what they hold today. Choosing between the two history tools: `get_my_closed_positions` is the POSITION-level rollup — one entry per token the user entered and fully exited, with total realised PnL. `get_my_closed_trades` is the individual TRADES underneath, one entry per fill. Use positions for 'how did I do on X', trades for 'show me every trade'.

NameTypeReqDescription
limitinteger–Positions per page, 1-100. Keep it small.
pageinteger–1-based page number.
token_address––Restrict to closed positions in one token. Omit for all.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_closed_trades ~276

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_amount, tx_hash; `include_fills=false` skips them) and your `rationale`. ONE TOKEN AT A TIME: `token_address` is required; for the whole history use `get_my_closed_positions`. Choosing between the two history tools: `get_my_closed_positions` is the POSITION-level rollup — one entry per token the user entered and fully exited, with total realised PnL. `get_my_closed_trades` is the individual TRADES underneath, one entry per fill. Use positions for 'how did I do on X', trades for 'show me every trade'. `get_my_closed_positions` is exited positions ONLY; what the user holds now is `get_my_balances`. Never say they hold nothing from an empty closed list.

NameTypeReqDescription
include_fillsboolean–Attach every buy/sell leg (`fills`, with tx hashes). Default true.
limitinteger–Closed cycles per page, 1-100.
pageinteger–1-based page number.
token_addressstringyesContract address of the ONE token to show trades for. Required.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_dca_schedules ~185

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 ONE call: `orders` (limit, TP, SL) plus `dca_schedules` (one row per DCA; slices never appear in `orders`). `get_my_dca_schedules` is the DCA rows alone. A null `dca_schedules` means the DCA read failed (`dca_schedules_error`): call `get_my_dca_schedules` before saying there is none. `include_terminal` adds finished and cancelled ones. Pass a `schedule_id` to `cancel_order` to stop the whole DCA.

NameTypeReqDescription
include_terminalboolean–True also returns completed and cancelled schedules. Default: live only.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_feedback ~92

Status and team replies for earlier feedback. Mention a shipped one to the user when relevant. Each has `id`, `kind`, `title`, `status` (new / reviewed / planned / shipped / wont_fix) and the team's `reply` when there is one, newest first.

NameTypeReqDescription
limitinteger–How many to return (1-50).
status––Only submissions in this status.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_followed_wallets ~54

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_wallet`.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_following_feed ~156

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'; the market-wide feed is `get_whalewatch_feed`. Same filters as that tool, minus lists.

NameTypeReqDescription
limitinteger–Trades per page, 1-100. Keep it small.
pageinteger–1-based page number.
token_address––Restrict to trades in one token. Omit for every token.
transaction_types––`buy` and/or `sell`. Omit for both.
wallet_addresses––Restrict to specific FOLLOWED wallets. Omit for all followed wallets.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_guardrails ~315

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 spend", "what are my limits". READ-ONLY: you cannot change them; only the user can, in the app. Read them before planning instead of learning by refusal. - `maxTradeUsd` / `dailyVolumeUsd`: per-trade and rolling-24h limits (null = uncapped). `maxTradeUsd` caps BUYS only. Sells into USDC (swaps and TP/SL/limit sells) never count or get blocked; other swaps count when placed or filled. A resting buy order reserves its value (`dailyVolumeReservedUsd`) until it fills or is cancelled. Room left = `dailyVolumeUsd - dailyVolumeUsedUsd`. - `defaults_applied`: Moby's defaults, not the user's; say so. - `minCapUsd` / `maxCapUsd`: market-cap range for BUYS (null = no bound). Red safety tier buys are always refused. - `orderTypes`: what you may place (`market` = swaps, `quick_buy`, `quick_sell`); cancels are never blocked. `paused: true` = every trade is refused. - `platform_limits`: Moby's rate limits for this key (per minute and daily; 0 = off). Read once per session and pace polling to it. `app_links`: settings and deposit links.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_orders ~519

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 `order_id` for `cancel_order`. History: `status="terminal"` (with `since` / `until`), paged by `limit` / `page`. Filled rows carry `filled_price`, `fill_tx_hash`, `slippage_vs_trigger_pct`; cancelled rows `cancel_reason` (`sibling_filled` = the other exit sold the position). `input_*` is what the user SPENDS and `token_*` the subject token: name an order by `token_symbol`. A row with `data_warning` contradicts itself: call its state unclear. `origin: agent` = yours; `agent_auto_exit` = an older Moby-attached exit, still live. DCA rows: `schedule_id` (what `cancel_order` takes), progress `filled_order_count` / `order_count`. `get_my_orders` answers 'what is running' in ONE call: `orders` (limit, TP, SL) plus `dca_schedules` (one row per DCA; slices never appear in `orders`). `get_my_dca_schedules` is the DCA rows alone. A null `dca_schedules` means the DCA read failed (`dca_schedules_error`): call `get_my_dca_schedules` before saying there is none.

NameTypeReqDescription
limitinteger–History only: rows per page, newest first (max 200).
pageinteger–History only: 1-based page number.
since––ISO 8601 time, e.g. `2026-10-23T00:00:00Z`. Only orders whose last state change (fill, else cancel/update) is at or after this.
status––Omit for LIVE orders only. `terminal` = every finished order (filled, cancelled, expired, failed) — the history; `all` = live and finished; or one status / a list of statuses. A resting, unfilled ord…
token_address––Contract address: only orders on this token, whether it is the token being sold (TP/SL) or bought (limit buy). Omit for every token.
until––ISO 8601 upper bound, same clock as `since`.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_portfolio ~196

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 wallets are left out (`excluded_wallets`); never add them back. Quote `summary.hero_usd`, the agent's equity; `summary.wallets` breaks it down (do not re-add it), `holdings.items` is every position, `trading_balances.items` the funding balances. USDC is your cash; SOL and every other token are positions. Per-token detail and the affordability check: `get_my_balances`. `interview_due: true` = onboarding was skipped: go back to `get_my_trading_profile` and the 5-question interview (onboarding FIRST) before acting on these numbers.

NameTypeReqDescription
refreshboolean–true only right after an outside deposit that is not showing; slow.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_position ~324

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 only sees Moby swaps. Never size a sell from a ledger quantity. - `balance_token_amount` / `balance_usd`: held ON CHAIN now ('how much do I have'). - `cost_basis_usd` / `current_pnl_usd` / `current_pnl_pct`: UNREALISED, over `basis_known_token_amount` only; when that is below the balance, the rest has no known cost: say so. - `invested_usd` / `sold_usd`: LIFETIME totals; `balance_usd + sold_usd - invested_usd` will NOT equal `current_pnl_usd`, and both are right. - `realized_total_usd`: realised PnL including partial sells (`closed_trades_count` can be 0). - `ledger_present: false`: no swap history, so every money field is unknown. A null profit field is UNKNOWN, never zero. `take_profit_orders_count` / `stop_loss_set` include your `create_order` legs. `closed_cycles`: the last 5 closed cycles (fills: get_my_closed_trades(token_address)). `rationale`: your thesis on the open cycle.

NameTypeReqDescription
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_recommended_wallets ~67

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 `total: 0, rows: []`, a real answer, not an error.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_token_balance ~202

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 they do not hold it. `ledger_balance_token_amount` and `cost_basis_usd` are the ledger's, for cost context only: check `ledger_present` first (false = both unknown, and `ledger_disagrees: false` then means nothing to compare). A disagreeing ledger is normal after transfers; never average the two or sell the larger. Quantities come from the CHAIN; cost basis and PnL from Moby's swap ledger, which only sees Moby swaps. Never size a sell from a ledger quantity. Use `get_my_position` for unrealised PnL.

NameTypeReqDescription
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_trading_profile ~305

The user's saved trading preferences and onboarding state. Call first on every connect. 🔴 BEFORE ANY OTHER TOOL. - `interview_due: true`: show `onboarding_brief` verbatim, then run the skippable 5-question interview in `interview_questions`, then its closing step (TWO-line playback, `save_trading_profile`, strategy offer). The scan schedule is kept on the agent's side, never saved to Moby: keep it in your own memory or as a recurring task in your own app, and recreate it at the start of each session. - `access_state` / `access_expires_at`: the user's AI Trading invite. `unlocked` = a code was redeemed but the agent wallet isn't funded; access is LOST at `access_expires_at` unless USDC is deposited. Warn the user once, with the deposit address. `active` = kept for good; null = unknown. - `recommended_strategies`: the live starter-strategy ids matching the user's assets; offer one or two of them (names from `list_strategies`) in the closing step. - `status`: `missing` / `saved` (use it) / `skipped` (do not re-ask unless `interview_due`). - The profile is INTENT: `guardrail_conflicts` lists wishes above an app cap; Moby enforces the cap (`get_my_guardrails`).

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_transaction ~58

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.

NameTypeReqDescription
transaction_idstringyesTransaction id from get_my_transactions.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_transactions ~238

Raw transaction list, filterable by type (swaps, deposits, withdrawals, transfers, order fills). Newest first, page-numbered. `bridge` rows are inbound deposits only; there is no bridge tool. Choosing between the two history feeds: `get_my_activity` is the merged, human-readable timeline the app shows, cursor-paginated. `get_my_transactions` is the raw transaction list, page-numbered and filterable by transaction type. Prefer activity for 'what have I been doing'; use transactions when you need a specific type such as deposits.

NameTypeReqDescription
limitinteger–Transactions per page, 1-100. Keep it small.
pageinteger–1-based page number.
token_address––Restrict to transactions involving one token. Omit for all.
transaction_type––Restrict to one movement type. Omit for every type. `trigger_order_placed` and `trigger_order_cancelled` are an order's LIFECYCLE rather than money moving — the description used to list only six of t…

Structured output declared, but exposes no named fields.

No examples provided.

get_my_wallets ~64

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 wallets are NOT here; every `get_my_*` tool reads one of these agent wallets.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_watchlist_tokens ~173

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` (no 1h figure), `market_cap`, `liquidity_usd`, `whale_count`, `key_holder_count` and `token` (address, symbol, `safety_tier`). `safety_tier`: grey is NOT a red flag; red = caution, and Moby refuses agent buys on red. Omit `watchlist_id` for the default list, or pass an id from `get_my_watchlists`. Read-only.

NameTypeReqDescription
watchlist_id––Watchlist id from get_my_watchlists. Omit for the default list.

Structured output declared, but exposes no named fields.

No examples provided.

get_my_watchlists ~76

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 tokens the user chose to follow, NOT what they hold (`get_my_balances`). Read-only: no adding or removing tokens.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_screener_event_filters ~54

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 empty list that reads as 'no events found'.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_screener_groups ~82

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 boards by `tab_id` (`home_majors`, `home_stocks`, `home_pulse`), also valid `group_id`s.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_screener_leaderboard ~280

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", "trending coins". Page 1 is the top of the board; for 'what is hot right now' the default page is the whole answer. `whale_windows` (any of h1/h4/h8/h24) adds a per-row `whale` block per window: whale_count (distinct tracked wallets that bought OR sold — buyers plus sellers, not buyers alone), whale_buyers_count (distinct buyers only), whale_buys_count, whale_sells_count and whale_net_flow_usd. The row's `whale_count_h24` is the same buyers-plus-sellers count. Null figures mean unknown. `safety_tier`: grey is NOT a red flag; red = caution, and Moby refuses agent buys on red.

NameTypeReqDescription
limitinteger–Tokens per page, 1-100. Keep it small.
pageinteger–1-based page number. Page 1 is the top.
whale_windows––Windows for the optional per-row `whale` block, e.g. ["h1", "h4"]. Omit for the default row.

Structured output declared, but exposes no named fields.

No examples provided.

get_smart_money_pulse ~225

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 buying today". Tells 'whales are dumping everything' from 'this one coin is weak' before you read a single token. Each window (`h1`, `h4`, `h24`) has `totals`, `by_wallet_type` (whale / kol / smart_money, overlapping), `fresh_launch` (`under_24h` / `under_1h`) and the top 5 `top_net_buy` / `top_net_sell` tokens. Every slice has trades, tokens, buys, sells, buy/sell volume, net_flow_usd, distinct buyers and sellers, dump_sells (sold half or more), dump_wallets and first_buys. Swaps under `min_trade_usd` are left out. Refreshed every ~2 minutes (`data_as_of`).

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_strategy ~199

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 instructions for this session. Before starting: confirm the editable numbers (`chips`: amounts, exits, schedule) with the user, and check `get_my_active_strategies` so you never run one twice. Once the user says go, record it with `save_active_strategy` (pass `strategy_id`). `ask_before_every_trade=true` adds the 'ask me before every trade' line, on cards that support it (`ask_line_supported`). `app_links` are Moby app deep links to hand to the user; they open the Moby app on their phone.

NameTypeReqDescription
ask_before_every_tradeboolean–True adds the 'ask me before every trade' line to the prompt.
strategy_idstringyesA card `id` from list_strategies.

Structured output declared, but exposes no named fields.

No examples provided.

get_swap_quote ~211

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` (the least the route delivers) to the user; `output_amount` is the smallest unit. `pricing_basis` says what produced it. This only prices the trade. It does not move funds and nothing is submitted on-chain. `execute_swap` takes the `quote_id`. Quotes go stale in seconds: show the numbers, get an answer, re-quote if the user hesitates. If `execute_swap` returns `pending` or `fill_pending`, only `get_swap_status` can confirm it.

NameTypeReqDescription
amountnumberyesHow much of `input_token` to spend, in whole token units (not the smallest unit).
input_tokenstringyesContract address of the token being SPENT.
output_tokenstringyesContract address of the token being RECEIVED.

Structured output declared, but exposes no named fields.

No examples provided.

get_swap_status ~293

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 `transaction_signature`. `status`: `not_executed` (quoted, never executed, nothing traded; executable until `quote_expires_at`), `expired` (never executed, too old), `pending`, `confirmed`, `failed`. Once booked, `filled_input_amount_ui` / `filled_output_amount_ui` are what was spent and received, `effective_slippage_bps` the gap to the quote. `failed` carries `failure_details` (`stage`, `error_class`: `slippage_exceeded`, `insufficient_funds` / `insufficient_lamports`, `program_error`, `unknown_revert`; `dropped_tx_blockhash_expired` = never landed). A `confirmed` sell lists `resting_order_ids`. 🔴 Call this whenever `execute_swap` or `quick_buy` returned a `next_step`: until it says `confirmed`, never tell the user tokens arrived, and never re-execute to find out (that trades twice).

NameTypeReqDescription
request_id––The `quote_id` of the swap you executed. Give this OR `transaction_signature`.
transaction_signature––The `transaction_signature` the swap returned. Give this OR `request_id`.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_chart ~178

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 two price tools: `get_token_chart` returns a ready-to-read price line for describing a trend; `get_token_ohlcv` returns raw open/high/low/close/volume candles for calculation and technical analysis. Prefer the chart unless you need per-candle numbers.

NameTypeReqDescription
periodstring–Window of history: 5m, 15m, 1h, 1d (default), 7d, 30d, 90d or 365d.
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_dca_orders ~126

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 two datasets are unrelated.

NameTypeReqDescription
order_bystring–Sort field. Default amount.
order_directionstring–asc or desc (default).
sizeinteger–Max rows to scan, 1-500.
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_holders ~120

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 tracked whale and KOL subset of this population, with win rates.

NameTypeReqDescription
limitinteger–Holders per page, 1-100. Keep it small.
pageinteger–1-based page number.
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_holdings ~79

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 `get_token_key_holders`.

NameTypeReqDescription
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_key_holders ~536

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 the holders good wallets". ⚠️ OTHER people's wallets, not the user's position (that is `get_my_position`). State high concentration as a risk. `whale_count` / `trader_count` / `kol_count` (and `tag_count`) are true totals; rows and counts include positions >= `min_position_usd` (default $100). Rows carry 30-day `win_rate` / `realized_pnl_30d_usd` and `days_since_prev_trade`. `position` = the wallet's tracked buys / sells of THIS token: `bought_usd`, `sold_usd`, `realized_pnl_usd`, `buys_count`, `sells_count`, `pct_of_peak_held`, `first_buy_at`, `entry_known`; sells can exceed buys. With `entry_known` false, P/L and `pct_of_peak_held` are null (unknown, not 0). An untagged KOL's `platform` is `unknown` with `platform_reason` `not_tagged`; `distinct_kol_platforms` has `unknown` excluded. Wallet quality: use get_whale_wallet_track_record(wallet_address) for a wallet's win rate and PnL.

NameTypeReqDescription
limitinteger–Holders per page, 1-100. Keep it small.
min_position_usd––Minimum live USD position to list or count a holder (whales, traders and KOLs). Omit for the default $100; raise it (e.g. 500) for conviction-only counts. Ignored when `tag` is set.
pageinteger–1-based page number.
sortstring–Row order: value (default, largest position first) / newest (most recent first tracked buy first) / oldest (earliest first buy first) / recent_trade (latest tracked buy or sell first).
tag––Claim filter behind the expanded Smart Money read: one of the four exclusive tags (holding / bought / trimming / closed) or one of the read's own claims (never_sold / exited_24h / new_24h / left_7d /…
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_live_feed ~325

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 trade (no $ floor), one row per swap (`identities`, `is_whale`, `is_kol`), from when Moby began tracking the token's traders. Pass `next_cursor` back as `cursor` until null. `wallet.win_rate` / `wallet.realized_pnl_30d_usd` are 30-day quality. Each row's `days_since_prev_trade` / `prev_trade_at` say how long the wallet was quiet before the trade (any token; null = no earlier trade on record). Rows sort by `timestamp`, then `sequence` (ingest order), so trades by one wallet in the same second stay in order. Rows carry `wallet_list_type` (whale, trader, kol); SELL rows carry `held_seconds` and `quick_flip: true` when sold within 15 minutes of the first buy: check it before reading that wallet's buy as conviction.

NameTypeReqDescription
cursor––`next_cursor` from the previous response. Wins over `page`; no gaps or duplicates.
limitinteger–Trades per page, 1-100. Keep it small.
pageinteger–1-based page number. Ignored when `cursor` is given.
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_ohlcv ~550

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 size: `interval` (`1m`, `5m`, `15m`, `1h`, `4h`, `1d`; wins over `timeframe` / `aggregate`; default 15m). An unsupported size is rejected; the response echoes `interval` and `candle_seconds`. `t` is Unix MILLISECONDS; time arguments take seconds or milliseconds. 🔴 NEWEST-FIRST, unlike TradingView: `c[0]` is the LATEST close and `c[-1]` the OLDEST, so a return is `(c[0] - c[-1]) / c[-1]` (the other way round flips the sign; `order` says so). Every candle is CLOSED: the forming one is dropped unless `include_in_progress_candle` is true (then it is index 0). Choosing between the two price tools: `get_token_chart` returns a ready-to-read price line for describing a trend; `get_token_ohlcv` returns raw open/high/low/close/volume candles for calculation and technical analysis. Prefer the chart unless you need per-candle numbers.

NameTypeReqDescription
aggregate––How many `timeframe` units per candle. 1 when only `timeframe` is given.
before_timestamp––Return candles before this Unix timestamp, in seconds or milliseconds. Use to page further back in history — a `t` value from a previous response can be passed straight back.
include_in_progress_candleboolean–True keeps the current, still-forming candle at index 0. Leave false for any calculation — its close is not a close.
interval––Candle size. Wins over `timeframe`/`aggregate`. Omit all three for 15m.
limitinteger–How many candles to return.
time_from––Window start, Unix timestamp in SECONDS or MILLISECONDS — either is accepted. Requires `time_to` as well.
time_to––Window end, Unix timestamp in SECONDS or MILLISECONDS — either is accepted. Requires `time_from` as well.
timeframe––Candle unit. Candle size is `aggregate` × this (`aggregate` defaults to 1 when only this is given). Only the sizes listed under `interval` are served; anything else is rejected.
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_overview ~366

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 X". `liquidity_source`: `bonding_curve` (`liquidity` = curve reserve) or `dex_pool`. `market_cap` is circulating (`market_cap_basis` is `circulating`), else the FDV (`fully_diluted`). `fdv` = price x total supply; `ath_market_cap` (alias `ath_mc`) shares `market_cap`'s basis and `ath_fdv` pairs with `fdv`: never compare `market_cap` with `ath_fdv`. `safety_tier`: grey is NOT a red flag; red = caution, and Moby refuses agent buys on red. `stats.untouched_pct` equals the `detail.tags` Untouched cell (one window, one denominator). `smart_money_read_v2`: `tier`/`label`/`verdict` grade the LAST HOUR of tracked flow; `text`/`bullets`/`stats` describe the 7-DAY holder base. They can disagree: say both, gate entries on `tier`. `stats.left_*` = every tracked wallet that sold out; `stats.exited_*` = the entry-known subset. `concentration.flagged` or `tier_cap_reason: concentration` = one wallet carries the read. `data_notes` lists fields Moby lacks or knows only in part; verify those on the web before quoting them.

NameTypeReqDescription
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_price ~66

Current USD price of one Solana token. Cheapest price check. Use `get_token_overview` when you also need market cap, liquidity or volume.

NameTypeReqDescription
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_risk_signals ~165

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 for "is this a honeypot", "check mint authority". Same fields and rules as the app's Risk Signals block. `status`: `ok`, `pending` (retry in a few seconds), `unavailable` / `unsupported` (no data; do not hammer). Nulls mean no data, not zero; early buyers stay `unavailable`. `fetched_at` says how fresh the read is.

NameTypeReqDescription
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_smart_money ~150

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". These are OTHER people's wallets. Each window (`h1`, `h4`, `h24`) has `last_buy_at` / `last_sell_at`; `data_as_of` is when the windows were rolled up. A net that flips with no newer `last_sell_at` means older buys aged out, not new selling.

NameTypeReqDescription
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

get_token_trade_brief ~348

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-money flow, top holders and recent trades by winning wallets. Use for "should I buy X", "is X a rug", "research this coin". Sections: `about` (socials, age, launchpad, `liquidity_source`, `graduation_pct`), `safety`, `smart_money_flow` (h1/h4/h24 net $, buys vs sells, `last_buy_at` / `last_sell_at`), `smart_money_read` (`tier` over the last hour, `concentration`, `tier_cap_reason`), `risk_signals` (`status`), `key_holders` (top 10 positions >= $100: entry MC, `position`, 30-day `win_rate`), `recent_quality_trades` (by wallets with win_rate >= 0.5 and positive 30-day P/L) and `market` (`fdv`, `ath_market_cap`, `ath_fdv`, `pct_from_ath` on the `market_cap_basis` pair). A failed section is null with its reason in `errors`. Cached 15 s. Go deeper with `get_token_key_holders`, `get_token_live_feed` and `get_whale_wallet_profiles`. `data_notes` lists fields Moby lacks or knows only in part; verify those on the web before quoting them.

NameTypeReqDescription
token_addressstringyesSolana token mint address (base58). Get it from search_tokens or a leaderboard row.

Structured output declared, but exposes no named fields.

No examples provided.

Install

How do I install the Moby MCP server?

Moby is a hosted endpoint at https://mcp.moby.win/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.moby.win

# add to Claude Code
claude mcp add --transport http win-moby-moby 'https://mcp.moby.win/mcp'
Common questions

What is the Moby MCP server?

Moby is an MCP server listed in the public MCP registry as win.moby/moby. Bearer agent key. Codex, Claude Code CLI, Gemini CLI (paid key), Grok CLI. ChatGPT: workspace plans. This page covers its hosted endpoint (https://mcp.moby.win/mcp).

Is the Moby MCP server safe to use?

Moby scores 63 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Moby MCP server expose?

Moby exposes 77 tools: get_screener_leaderboard, get_degen_leaderboard, get_screener_groups, get_group_leaderboard, get_launchpads, and 72 more. Their descriptions and schemas cost roughly 17,089 tokens of context every time the server is loaded.

Does the Moby MCP server require authentication?

No. We connected to Moby without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the Moby MCP server still maintained?

Moby is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.