Skip to main content
Glama
MadeOnSol

mcp-server-robinhood-chain

by MadeOnSol

mcp-server-robinhood-chain

npm version npm downloads MCP License: MIT

๐Ÿ“š API docs ยท ๐Ÿค– Robinhood Chain ยท ๐Ÿ’ฐ Free API key

Robinhood Chain MCP server โ€” EVM-native on-chain trading intelligence for AI agents, chain id 4663.

Give Claude, Cursor, or any MCP client direct access to Robinhood Chain (an Arbitrum Orbit L2) trading data from our self-hosted RHC node: real-time KOL trades plus coordination and first-touch discovery signals, the full Uniswap v2/v3/v4 DEX trade tape, token discovery with launch-bundle + early-buyer-quality detection (single and batch), 1-minute OHLC candles, deployer reputation across 99k+ ranked deployers (leaderboard, alerts, trajectory, per-deployer launch history), and smart-money wallet ranking โ€” plus full CRUD over the RHC rule engines: copy-trade rules, market-cap dip/recovery price alerts, KOL-coordination alerts and first-touch push subscriptions, all with per-chain quotas. Every tool is EVM-native โ€” lowercase 0x addresses, eth_amount, tx_hash, block_number, net_flow_eth. The KOLโ†’EVM mapping is recovered by tracing each Solana KOL's bridge deposits (deBridge / Relay / Mayan / Wormhole), a dataset unique to MadeOnSol.

RHC coverage is bundled into every tier at no extra cost. Get a free API key (200 req/day, no card) at madeonsol.com/pricing.

0.8.1 โ€” version alignment with the wider RHC SDK release: WebSocket stream tokens (POST /api/v1/stream/token) never expire since 2026-08-27 โ€” the same token comes back on every call, expires_at / next_refresh_at are always null, and only an explicit {"rotate": true} replaces one. This MCP server exposes REST tools, not WebSocket channels, and has no stream-token tool, so no tool behavior changed.

0.5.0 โ€” version alignment with the wider RHC SDK release: the stream channel names were corrected in the TS/Python/Rust SDKs (the RHC firehose channel is rhc:dex_trades; the server accepts rhc:trades only as a deprecated alias of it). This MCP server exposes REST tools, not WebSocket channels, so no tool behavior changed โ€” the rhc_trades tool (the GET /rhc/trades tape) is unaffected.

Key-mode only. Authenticate with an msk_ Bearer API key (MADEONSOL_API_KEY). Robinhood Chain does have a keyless x402 pay-per-call rail โ€” a deliberately narrow 6-endpoint subset, documented at madeonsol.com/robinhood/x402 โ€” but it is not part of this server.

New in 0.8.0 โ€” tokenized equities + the liquidity-removals feed. Two new tools. rhc_equities (GET /rhc/equities, BASIC) lists every official Robinhood tokenized stock and ETF (NVDA, SPY, AAPL, โ€ฆ) with live price / MC / liquidity and 24h trades, ETH volume and buyer-seller split, sortable by volume / trades / market_cap / last_trade / symbol, filterable by exact symbol or substring q. Identity is the issuer beacon, never the name: a token is listed only if its contract is an EIP-1967 beacon proxy on Robinhood's issuer beacon 0xe10b6f6bโ€ฆ151b00, read from our own node โ€” on ship day there were 20 fake "GameStop โ€ข Robinhood Token" contracts and 8 fake NVDAs with the exact official suffix, and none of them appear. rhc_lp_events (GET /rhc/lp-events, PRO+) is the rug signal: Uniswap v2/v3 Burn and v4 ModifyLiquidity with a negative delta on tracked pools, from our node's log subscription, filterable by token / pool / provider / dex and cursor-paginated on next_before. Removals only โ€” adds are not persisted (the response's coverage block says adds_persisted: false), amounts are raw uint256 strings, v4 rows carry liquidity only, and provider_is_token_deployer is the classic rug tell. Data since 2026-08-05.

New in 0.7.0 โ€” holder_growth: who arrived and who left. The rhc_token_holders tool now returns holder_growth on GET /rhc/tokens/{address}/holders: { "1h", "24h", "7d" } ร— { cutoff_block, entered, entered_still_holding, exited, net }. entered = addresses whose first Transfer of the token landed at-or-after the window's cutoff block (any current balance); entered_still_holding = those still non-zero; exited = pre-existing holders whose last movement in the window left them at zero; net โ‰ˆ the change in holder_count. Pools and burn addresses are excluded from every count. This exists because RHC balances are folded from ERC-20 Transfer logs on our own node โ€” the fold keeps first-seen and last-moved blocks per address and retains zero-balance rows โ€” so it is a direct read, not an estimate; the Solana census is a point-in-time ledger scan with no history and cannot answer this. A window is null (never 0) only when the chain had no ingested trades in it; the whole block is null only if the growth read failed. Sanity check from ship day: a token launched that morning showed 593 entered / 560 still holding over 24h, and holder_count was exactly 560.

New in 0.6.0 โ€” wallet intelligence. Ten new operations covering the Robinhood Chain wallet surface, which had no SDK binding at all until now: rhc_wallet, rhc_wallet_pnl, rhc_wallet_positions, rhc_wallet_trades, plus the watchlist tools โ€” rhc_wallet_tracker_list, rhc_wallet_tracker_add, rhc_wallet_tracker_remove, rhc_wallet_tracker_relabel, rhc_wallet_tracker_trades and rhc_wallet_tracker_summary. Everything is ETH-denominated, and cost basis is FIFO over a rolling 90-day window โ€” cost_basis_observable_from names the date the window opens, so a position opened before it reads as a sell with no matching buy. The profile / PnL / positions trio shares ONE snapshot cache server-side, so calling all three on an address costs roughly one computation rather than three; cache_hit says which call paid for it. Watchlist quotas are per chain (PRO 50 / ULTRA 100 / BUSINESS 500 RHC wallets), independent of your Solana list.

Install & configure

Add to your MCP client config (Claude Desktop, Cursor, Claude Code). No install step โ€” npx fetches it on first run:

{
  "mcpServers": {
    "robinhood-chain": {
      "command": "npx",
      "args": ["-y", "mcp-server-robinhood-chain"],
      "env": {
        "MADEONSOL_API_KEY": "msk_your_api_key_here"
      }
    }
  }
}

Then ask your agent things like "What are tracked KOLs buying on Robinhood Chain right now?" or "Score the early-buyer cohort for token 0xโ€ฆ on chain 4663."

Transports

  • stdio (default) โ€” for local clients (Claude Desktop, Cursor, Claude Code).

  • http โ€” set MCP_TRANSPORT=http (+ optional PORT, default 3100) for hosted environments (Smithery, etc.). Exposes /health and /.well-known/mcp/server-card.json.

Related MCP server: Hoodly GMGN Robinhood Research MCP

Tools โ€” all 64 Robinhood Chain routes

Each tool maps 1:1 to a Robinhood Chain v1 API route. 49 are reads (GET, plus the two batch tools which POST an address list only because it is too long for a query string) and 15 genuinely write (POST / PATCH / DELETE on the rule engines, plus the three wallet-watchlist mutations) โ€” those are marked โœ๏ธ / ๐Ÿ—‘๏ธ below and carry non-readOnly MCP annotations, so a well-behaved client will not call them speculatively. Fields are EVM-native.

Reads

Tool

Route

Tier

Description

rhc_kol_feed

/api/v1/rhc/kol/feed

BASIC

KOL trade feed with MC/peak enrichment and mc_multiple_since_trade (real-time on PRO+; 5-min delay on free keys)

rhc_kol_leaderboard

/api/v1/rhc/kol/leaderboard

BASIC

KOLs ranked by trade count then net ETH flow (24h/7d/30d)

rhc_kol_hot_tokens

/api/v1/rhc/kol/hot-tokens

BASIC

Consensus tokens bought by 2+ distinct KOLs in the window

rhc_kol_profile

/api/v1/rhc/kol/{wallet}

BASIC

Single KOL profile โ€” stats over last 200 trades + 50 recent

rhc_kol_coordination

/api/v1/rhc/kol/coordination

BASIC

Tokens bought by min_kols+ distinct KOLs โ€” net ETH, accumulating vs distributing, time_to_consensus_sec, per-KOL breakdown

rhc_kol_first_touches

/api/v1/rhc/kol/first-touches

BASIC

Earliest KOL buy per token (discovery signal) โ€” MC at entry, token age, tx_hash. evm_address on ULTRA only

rhc_trades

/api/v1/rhc/trades

PRO+

DEX trade tape โ€” Uniswap v2/v3/v4 swaps with the effective trader_eoa + MEV fields

rhc_lp_events

/api/v1/rhc/lp-events

PRO+

Liquidity removals feed (the rug signal) โ€” v2/v3 Burn + v4 negative ModifyLiquidity, raw uint256 strings, provider_is_token_deployer. Removals only, adds are not persisted

rhc_tokens

/api/v1/rhc/tokens

PRO+

Token discovery โ€” MC, liquidity, peak MC + drawdown, launchpad, deployer tier

rhc_equities

/api/v1/rhc/equities

BASIC

Tokenized stocks & ETFs (NVDA, SPY, AAPLโ€ฆ) โ€” live price/MC/liquidity + 24h trades / ETH volume / buyer-seller split. Identity = issuer beacon 0xe10bโ€ฆ151b00, never the name

rhc_token

/api/v1/rhc/tokens/{address}

BASIC

Token snapshot โ€” price/MC/FDV, deployer block, KOL activity, pools

rhc_token_batch

POST /api/v1/rhc/token/batch

BASIC

Up to 50 tokens in one call โ€” price/MC/FDV, peak MC, deployer reputation. Unknown addresses echo back as found: false

rhc_token_candles

/api/v1/rhc/tokens/{address}/candles

PRO+

1-minute OHLC candles โ€” price + MC OHLC, volume with buy/sell split

rhc_token_kol_consensus

/api/v1/rhc/tokens/{address}/kol-consensus

PRO+

KOL positioning โ€” buyers/sellers, exit rate, net_flow_eth, median entry MC

rhc_token_buyer_quality

/api/v1/rhc/tokens/{address}/buyer-quality

BASIC

0โ€“100 early-buyer quality with bundle-buyer + dump-cluster legs

rhc_token_batch_buyer_quality

POST /api/v1/rhc/tokens/batch/buyer-quality

BASIC

Buyer quality for up to 20 tokens in one call (cap is 20, not 50 โ€” it's a per-token cohort computation)

rhc_token_bundle

/api/v1/rhc/tokens/{address}/bundle

BASIC

Launch-bundle detection (same_block) + how much the cohort still holds

rhc_token_top_traders

/api/v1/rhc/tokens/{address}/top-traders

PRO+

Top traders by realized ETH flow (net_eth = sell โˆ’ buy, not PnL) + wallet reputation

rhc_token_flow

/api/v1/rhc/tokens/{address}/flow

PRO+

Net buy/sell by mutually-exclusive cohort โ€” positive net_eth means that cohort distributed

rhc_token_peak_history

/api/v1/rhc/tokens/{address}/peak-history

PRO+

Peak MC, drawdown, high-water curve โ€” peak_mc_usd_recorded vs peak_mc_usd_observed

rhc_token_risk

/api/v1/rhc/tokens/{address}/risk

PRO+

EVM-native risk computed live โ€” proxy upgradeability, LP custody, uncached honeypot sell-sim

rhc_token_holders

/api/v1/rhc/tokens/{address}/holders

PRO+

Exact holders + concentration from Transfer-log replay, reconciled against totalSupply(). Check verified first. holder_growth (1h/24h/7d): entered, entered_still_holding, exited, net โ‰ˆ ฮ” holder_count

rhc_deployer_leaderboard

/api/v1/rhc/deployer-hunter/leaderboard

BASIC

99k+ deployers ranked by reputation โ€” graduation_rate ($40K), runner_rate ($100K); tier rides runner_rate

rhc_deployer_profile

/api/v1/rhc/deployer-hunter/{address}

BASIC

Single deployer profile + 50 most recent tokens

rhc_deployer_tokens

/api/v1/rhc/deployer-hunter/{address}/tokens

BASIC

Paginated launch history with live + peak MC (sort=peak_mc_usd is page-scoped)

rhc_deployer_history

/api/v1/rhc/deployer-hunter/{address}/history

PRO+

Deep-paginated deploy history (up to 1000/page) with an exact total

rhc_deployer_trajectory

/api/v1/rhc/deployer-hunter/{address}/trajectory

BASIC

Improving or declining? Streaks, 10-launch rolling success curve, best/worst stretch. Success = $40K graduation

rhc_deployer_best_tokens

/api/v1/rhc/deployer-hunter/best-tokens

BASIC

Highest peak-MC tokens launched by elite/good deployers in the window

rhc_deployer_stats

/api/v1/rhc/deployer-hunter/stats

BASIC

Chain-wide summary โ€” tier populations, spam share, alert volume, active tier_rules

rhc_deployer_alerts

/api/v1/rhc/deployer-hunter/alerts

BASIC

Deployer alerts โ€” tradability-filtered by default, tier resolved at read time (tier_at_alert, tier_is_stale)

rhc_recent_bonds

/api/v1/rhc/deployer-hunter/recent-bonds

BASIC

Tokens that just crossed the $40K peak-MC graduation milestone, newest peak first

rhc_alpha_wallets

/api/v1/rhc/alpha-wallets

PRO+

Smart-money wallets โ€” net_eth, win_rate, memecoin_share, likely_bot

rhc_wallet

/api/v1/rhc/wallet/{address}

PRO+

Wallet 90-day profile โ€” ETH PnL, per-token breakdown, reputation flags (shares one snapshot cache with pnl/positions)

rhc_wallet_pnl

/api/v1/rhc/wallet/{address}/pnl

PRO+

FIFO cost-basis PnL over the rolling 90-day window โ€” curve, closed + open positions; cost_basis_observable_from

rhc_wallet_positions

/api/v1/rhc/wallet/{address}/positions

PRO+

Open positions marked to market โ€” check liquidity_basis

rhc_wallet_trades

/api/v1/rhc/wallet/{address}/trades

PRO+

One wallet's trade tape, keyset-paginated by wallet (not token)

rhc_wallet_tracker_list

/api/v1/rhc/wallet-tracker/watchlist

PRO+

List your RHC watchlist โ€” quota is per chain

โœ๏ธ rhc_wallet_tracker_add

POST /api/v1/rhc/wallet-tracker/watchlist

PRO+

Track a wallet (address lowercased on write); 409 if already tracked, 403 at cap

๐Ÿ—‘๏ธ rhc_wallet_tracker_remove

DELETE /api/v1/rhc/wallet-tracker/watchlist/{address}

PRO+

Untrack a wallet, freeing a quota slot

โœ๏ธ rhc_wallet_tracker_relabel

PATCH /api/v1/rhc/wallet-tracker/watchlist/{address}

PRO+

Relabel a tracked wallet; null clears the label

rhc_wallet_tracker_trades

/api/v1/rhc/wallet-tracker/trades

PRO+

Merged trade feed across your tracked wallets, label-tagged

rhc_wallet_tracker_summary

/api/v1/rhc/wallet-tracker/summary

PRO+

Per-wallet rollup from rhc_trades โ€” full history, not capture-log scoped

rhc_copytrade_list

/api/v1/rhc/copytrade/subscriptions

PRO+

List your copy-trade rules

rhc_copytrade_get

/api/v1/rhc/copytrade/subscriptions/{id}

PRO+

One copy-trade rule by numeric id

rhc_copytrade_signals

/api/v1/rhc/copytrade/signals

PRO+

Fire history, 7-day retention โ€” the catch-up path after a missed webhook

rhc_price_alerts_list

/api/v1/rhc/price-alerts

PRO+

List your market-cap dip/recovery alerts

rhc_price_alerts_get

/api/v1/rhc/price-alerts/{id}

PRO+

One price alert by numeric id, with its captured baseline_mc_usd

rhc_price_alerts_events

/api/v1/rhc/price-alerts/events

PRO+

dip / recovery fire history, 30-day retention

rhc_coordination_alerts_list

/api/v1/rhc/kol/coordination/alerts

PRO+

List your KOL-coordination alert rules

rhc_coordination_alerts_get

/api/v1/rhc/kol/coordination/alerts/{id}

PRO+

One coordination rule by UUID

rhc_first_touch_subscriptions_list

/api/v1/rhc/kol/first-touches/subscriptions

ULTRA+

List your first-touch push subscriptions

rhc_first_touch_subscriptions_get

/api/v1/rhc/kol/first-touches/subscriptions/{id}

ULTRA+

One first-touch subscription by UUID

Writes โ€” rule engines

These mutate server state, consume per-tier quota and fire webhooks. They are annotated readOnlyHint: false; the deletes additionally carry destructiveHint: true. Creates are not idempotent โ€” calling one twice makes two rules and can hit the cap with a 409.

Tool

Route

Tier

Description

โœ๏ธ rhc_copytrade_create

POST /api/v1/rhc/copytrade/subscriptions

PRO+

Create a copy-trade rule. Returns webhook_secret once

โœ๏ธ rhc_copytrade_update

PATCH /api/v1/rhc/copytrade/subscriptions/{id}

PRO+

Patch a rule; source_wallets is a whole-list replace, re-checked against the tier cap

๐Ÿ—‘๏ธ rhc_copytrade_delete

DELETE /api/v1/rhc/copytrade/subscriptions/{id}

PRO+

Permanent. Use is_active: false to pause instead

โœ๏ธ rhc_price_alerts_create

POST /api/v1/rhc/price-alerts

PRO+

Create an MC dip (+ optional recovery) alert. Baseline is captured now

โœ๏ธ rhc_price_alerts_update

PATCH /api/v1/rhc/price-alerts/{id}

PRO+

Only name / delivery_mode / webhook_url / is_active โ€” thresholds are immutable

๐Ÿ—‘๏ธ rhc_price_alerts_delete

DELETE /api/v1/rhc/price-alerts/{id}

PRO+

Permanent. Recreating re-captures the baseline, so delete+recreate is not a no-op

โœ๏ธ rhc_coordination_alerts_create

POST /api/v1/rhc/kol/coordination/alerts

PRO+

Fire when min_kols+ KOLs buy the same token inside window_minutes

โœ๏ธ rhc_coordination_alerts_update

PATCH /api/v1/rhc/kol/coordination/alerts/{id}

PRO+

Patch thresholds, MC band, delivery, is_active

๐Ÿ—‘๏ธ rhc_coordination_alerts_delete

DELETE /api/v1/rhc/kol/coordination/alerts/{id}

PRO+

Permanent

โœ๏ธ rhc_first_touch_subscriptions_create

POST /api/v1/rhc/kol/first-touches/subscriptions

ULTRA+

Push on a token's first tracked-KOL buy. Unknown filter keys are rejected

โœ๏ธ rhc_first_touch_subscriptions_update

PATCH /api/v1/rhc/kol/first-touches/subscriptions/{id}

ULTRA+

filters replaces the stored object wholesale โ€” omitted keys are dropped

๐Ÿ—‘๏ธ rhc_first_touch_subscriptions_delete

DELETE /api/v1/rhc/kol/first-touches/subscriptions/{id}

ULTRA+

Permanent

Rule-engine quotas are PER CHAIN. A full set of Solana copy-trade rules, price alerts, coordination rules or first-touch subscriptions does not consume your RHC allowance, and vice versa.

Engine

PRO

ULTRA

BUSINESS

Copy-trade rules (source wallets each)

3 (5)

20 (50)

100 (250)

Price alerts (active)

5

25

125

Coordination rules

5

20

100

First-touch subscriptions

โ€”

10

50

BASIC works with any valid key. PRO+ tools return HTTP 403 on a BASIC key โ€” upgrade at madeonsol.com/pricing.

Five things agents get wrong

  • RHC price alerts are polled, not pushed. Evaluation is a ~15 second poll of the RHC price table โ€” the RHC price writer emits no pg_notify, so there is nothing to react to. Effective latency is that interval plus the token's own price-update cadence. Do not promise parity with the Solana price alerts, which are sub-second. fired_at on an event is the poll tick that observed the move, not the on-chain moment.

  • RHC copy-trade has no market-cap band. There is no min_mc_usd / max_mc_usd on a copy-trade rule, unlike the Solana engine, because the RHC KOL trade event carries no market cap โ€” the filter would need a per-event DB read on a ~3.3M-trades/day chain, or it would silently never match. Filter on min_trade_eth and only_action instead.

  • trader_eoa is not simply tx.from. It is the effective trading account: tx.from on an ordinary transaction, but the ERC-4337 userOp sender (UserOperationEvent) when the trade was bundled โ€” never the bundler that relayed the batch, and never the router. It is still an EOA either way; on Robinhood Chain a userOp sender is an ordinary EOA carrying an EIP-7702 delegation, not a smart-contract wallet. Attribute trades and rank wallets on trader_eoa; the separate trader field is only the swap-log recipient, which is the router on aggregated swaps.

  • rhc_deployer_alerts filters for tradability by default. Alerts on tokens with liquidity_usd under $100 (including unknown liquidity) are dropped โ€” a $45K-MC alert on a drained $68 pool is not a signal. Pass include_untradeable: true for the raw tape; the response always echoes the active tradability_filter. The alert's tier is resolved from the live reputation view at read time, so it can never advertise a reputation the deployer has since lost โ€” the snapshot taken when the alert fired is returned separately as tier_at_alert, with tier_is_stale flagging the drift.

  • graduation_rate no longer sets the tier. It still means the $40K peak-MC bar and is still returned everywhere, but elite/good are earned on runner_rate ($100K) plus 24h of deployer history. Ranking deployers by graduation_rate is ranking them on a metric the tier ignores.

Why Robinhood Chain

Robinhood Chain is dual-natured โ€” launchpad memecoins (pons / flap / clanker / hood.fun / virtuals) alongside tokenized stocks and stablecoins. Most launchpads are direct-to-DEX (no bonding curve), so "graduation" is a market-cap milestone: graduation_rate = share of a deployer's tokens that reached a $40K+ peak MC, runner_rate = share that reached $100K+. The elite/good tier rides runner_rate and requires 24h of deployer history (elite = 5+ tokens, 24h+ old, runner_rate >= 0.50; good = >= 0.25) โ€” graduation_rate is still reported but no longer sets the tier, since the $40K bar proved farmable; only spammer still keys off it (20+ tokens, graduation_rate < 0.05). Because it's an Arbitrum Orbit L2 with no atomic multi-signer transaction, a detected launch bundle is same_block (there is no atomic_tx).

License

MIT ยฉ MadeOnSol

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Read-only MCP server for Robinhood chain launchpad discovery and token due diligence using GMGN data.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server providing x402-paid tools for tokenized stock data on EVM chains, including premium/discount, liquidity, whale activity, and a guarded trading wrapper for Robinhood Chain.
    1
    MIT