Skip to main content
Glama
hoodgrow-mcp

hoodgrow-mcp

This package is retired

Status: closed, August 2026. Not maintained. The HoodGrow API it wraps is shut down, so every tool here now fails at the network call — the hosted server at https://www.hoodgrow.com/api/mcp is gone and the npm package is deprecated.

Why

HoodGrow had no paying customers and $0.81 of lifetime revenue. The cause was not this package: almost everything the API served is published free by Robinhood's own registry and readable straight off the chain, so a paid copy was a commodity with a free substitute one HTTP call away. See HoodGrow's README for the full reasoning.

Still worth reading

This is a complete, working MCP server: 14 tools with honest annotations (idempotentHint is false in pay-per-call mode, because a retried call charges again — a detail most servers get wrong), x402 payment, prepaid credits and bearer auth in one client. It was listed in the official MCP registry and passed directory review. If you are building one, the parts here work.

hoodgrow-mcp

M8ven Verified hoodgrow-mcp MCP server

MCP (Model Context Protocol) server for the HoodGrow Robinhood Chain stock token API — live price, corporate-action adjusted supply (ERC-8056, correct through stock splits), Morpho/Uniswap DeFi depth, corporate actions (splits, dividends), holder analytics, trade price-impact/slippage estimates, OHLC price candles for backtesting, market movers, a large-trade ("whale") feed, and a Base mainnet B20 native-equity-token registry, exposed as tools for any MCP client (Claude Desktop, Claude Code, etc). Built on the hoodgrow SDK — pays per call via x402 (USDC on Base) or uses a bearer API key, your choice.

Related MCP server: siftingio-mcp

Fastest: the hosted server (no install, no key)

HoodGrow runs the MCP server for you at https://www.hoodgrow.com/api/mcp. Every tool is read-only, so you can point an assistant at it and start asking with no install, no signup, no key:

claude mcp add --transport http hoodgrow https://www.hoodgrow.com/api/mcp

or in mcp.json / claude_desktop_config.json:

{
  "mcpServers": {
    "hoodgrow": { "type": "http", "url": "https://www.hoodgrow.com/api/mcp" }
  }
}

Then ask your assistant things like:

  • "What's the corporate-action adjusted supply and 24h volume for NVDA on Robinhood Chain?"

  • "Any pending stock splits or dividends in the next week?"

  • "Top gainers and biggest whale trades today."

get_catalog — every listed token with live price, 24h change and adjusted supply — answers anonymously and unmetered, no key at all. The per-symbol tools ask for a free API key or an x402 payment on the first call. Anonymous access is capped at 20 requests/minute per IP, which is abuse shaping rather than billing and applies to the catalog too.

There used to be an anonymous daily budget in front of the per-symbol tools. It is gone: a budget keyed on the caller's IP is a fresh budget per address to anything calling from pooled egress, so it never actually led anyone to the paywall. Prefer running the server yourself, or need x402 pay-per-call? Use the npm package instead:

Run it yourself (npm — your own credentials)

Credentials are optional. With none set, the server starts and works: get_catalog is free and unmetered. Every other tool returns the API's 402 on its first call, as a readable tool error naming the alternatives. Set one of these to get past it:

  • API key, free, self-serve — HOODGROW_API_KEY from hoodgrow.com/profile. A larger daily allowance, and a budget nobody behind the same IP can spend.

  • x402, pay per call, no signup — a wallet private key (HOODGROW_PRIVATE_KEY), funded with USDC on Base. $0.05/call for the paid endpoints; no daily cap.

This package never bundles a shared HoodGrow credential, so you control what gets spent and who's billed.

Claude Desktop / Claude Code

Add to your MCP config (Claude Desktop: claude_desktop_config.json; Claude Code: claude mcp add):

{
  "mcpServers": {
    "hoodgrow": {
      "command": "npx",
      "args": ["-y", "hoodgrow-mcp"],
      "env": {
        "HOODGROW_PRIVATE_KEY": "0x..."
      }
    }
  }
}

Or with an API key instead:

{
  "mcpServers": {
    "hoodgrow": {
      "command": "npx",
      "args": ["-y", "hoodgrow-mcp"],
      "env": {
        "HOODGROW_API_KEY": "..."
      }
    }
  }
}

Never hardcode a real private key in a committed config file — only fund that wallet with what you're willing to spend on this API.

Optionally, once you've bought a credit balance with the buy_credits tool, add "HOODGROW_USE_CREDITS": "true" alongside HOODGROW_PRIVATE_KEY to have every data tool spend that balance (a cheap wallet signature) instead of paying x402 per call. See "Prepaid credits" below.

Tools

Tool

Price (x402)

Description

get_catalog

free

Every listed token: symbol, name, address, price, source, 24h change, corporate-action adjusted supply, plus catalog-wide pending/recent corporate actions. No per-token DeFi — see get_token / get_defi

get_token

$0.05

One token by symbol (e.g. NVDA), same fields plus its DeFi depth

get_corporate_actions

uses get_token/get_catalog above

Pending + recent corporate actions; pass a symbol to scope, omit for every tracked token

get_defi

$0.05

Every Morpho market a token participates in (loan OR collateral role) plus its Uniswap V3 pools — not just the single best-APY figure in get_token

get_holders

$0.05

Holder-count trend, 24h net supply change (real mint/burn), and top-holder concentration (optional limit, 1-50, defaults to 10)

get_slippage

$0.05

How much a USD-sized trade (side: "buy" | "sell") would move the price, per Uniswap V3 pool — includes bestPoolAddress/bestEffectivePrice picking the best one for you

get_ohlc

$0.05

OHLC price candles for backtesting (interval: "1h" | "4h" | "1d", optional from/to/limit, defaults to the last 30 days). Each candle carries volumeUsd/swapCount — USD swap volume across the token's Uniswap V3 pools — null for buckets older than the volume indexer's backfill window

get_base_tokens

$0.05

Base mainnet (chain 8453) B20 native-equity-token registry — a much smaller sibling of get_catalog. Pre-launch: check each token's status before treating it as tradable — "pre_launch" means no price, no DEX liquidity, no holders exist for it yet

get_markets

$0.05

Market movers across the whole catalog: top gainers/losers (24h change), highest 24h swap volume, and deepest Uniswap V3 liquidity (TVL). Optional limit (1-50, default 10); gainers/losers can be empty on a flat market

get_trades

$0.05

Recent large ("whale") trades in the stock-token Uniswap V3 pools, newest first — each with side ("buy" | "sell"), USD size, and txHash. Omit symbol for the global feed; optional limit (1-100, default 20)

list_credit_bundles

free

Current prepaid credit bundle catalog ({id: {priceUsd, creditUsd}}) — no credentials needed

buy_credits

one x402 payment

Pays for one bundle (bundleId arg); requires HOODGROW_PRIVATE_KEY. Balance lands once settlement confirms — check with get_credit_balance

get_credit_balance

free

This wallet's current credit balance; requires HOODGROW_PRIVATE_KEY

register_credit_webhook

free to register, then per delivered event

Register a credit-funded corporate-action webhook (url, optional symbols); requires HOODGROW_PRIVATE_KEY. HoodGrow POSTs each corporate_action.* event to url, signed x-hoodgrow-signature. symbols restricts delivery (and per-event billing) to those tokens — omit for all. Returns webhookSecret (shown once). Builder-subscription webhooks are set from the website instead

Each call returns the API's JSON response as the tool's text content. A failed request (unknown symbol, server error) comes back as an MCP tool error (isError: true) rather than crashing the server.

Prepaid credits

Buy a dollar-denominated credit balance once via x402 (buy_credits), then set HOODGROW_USE_CREDITS=true (alongside HOODGROW_PRIVATE_KEY) and restart the server: every data tool above then spends the balance with a cheap, gas-free wallet signature instead of a fresh on-chain x402 payment per call. list_credit_bundles/get_credit_balance never spend anything; only the metered data tools (get_catalog, get_token, etc.) and buy_credits itself move money.

Payment safety

x402 payments are real money and are not idempotent — a retried timed-out call can pay twice. HoodGrow's paywall only ever asks for USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913) on Base mainnet (eip155:8453), paid to 0x8520B3693a2Cf3c2bEa3a505Af3A9c1b093954c7, capped at $0.05/call — the underlying hoodgrow/@x402 dependencies handle protocol-level verification, but you're responsible for how much you fund the signing wallet with.

Rate limits

30 requests/minute per IP by default for pay-per-call use.

With no credentials at all, get_catalog still answers — it is free and unmetered — and every other tool returns a 402 on the first call.

With a free API key, the daily allowance is 40 units:

Call

Units

Free-tier calls/day

get_catalog (every token in one response)

0

unmetered — it is free

Any single-symbol tool

1

40

Liveness check

0

unmetered

Still prefer get_token over get_catalog when you want one symbol — not because it is cheaper now, but because it returns far less to parse and carries that token's DeFi depth, which the catalog does not.

x402 pay-per-call has no daily cap at all ($0.05 per paid endpoint; the catalog is free either way), and Builder removes the cap and raises the per-minute limit to 300 — see docs.hoodgrow.com.

Development

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (mocked fetch + real in-memory MCP client/server, no network)

License

MIT

Available Tools

14 tools
buy_creditsBuy a HoodGrow prepaid credit bundleA
Destructive
Inspect

Pays for one prepaid credit bundle via x402 (see list_credit_bundles for ids/prices) — a REAL, irreversible USDC payment on Base mainnet. Requires HOODGROW_PRIVATE_KEY to be configured (a bearer-key setup is already free and has no use for credits). The balance lands once settlement confirms; call get_credit_balance to verify. To actually start spending it instead of paying x402 per call, set HOODGROW_USE_CREDITS=true and restart this server.

Inputs: bundleId (required).

get_base_tokensGet HoodGrow Base B20 token registryA
Read-onlyIdempotent
Inspect

Base mainnet (chain 8453) B20 native-equity-token registry — verified on-chain metadata (symbol, name, decimals) for a fixed set of known tokens, plus a liveness signal. PRE-LAUNCH: every token currently has zero minted supply — no price, no DEX liquidity, no holders exist yet. status flips to "live" automatically once totalSupply() > 0 on-chain; do not treat a pre_launch entry as tradable. $0.05 via x402, or 1 daily unit with a free API key. Read directly from the token contracts on Base (chain 8453) and refreshed every 4 hours; status reflects on-chain totalSupply().

Inputs: no named parameters.

get_catalogGet HoodGrow token catalogA
Read-onlyIdempotent
Inspect

Free catalog and live price feed for all Robinhood Chain stock tokens. Use for token discovery, spot prices, and tracking market movers. Returns symbol, name, contract address, live price, price source, 24h change and corporate-action adjusted supply for every listed token, plus pending and recent corporate actions. No API key, no payment, and it spends none of a key's daily units. Carries no per-token DeFi depth — use get_token or get_defi for that. Prices are read from Chainlink feeds on-chain, not relayed from an off-chain aggregator, and refreshed every 15 minutes — each response is that snapshot, with observedAt giving its exact age. priceSource says which tokens resolved a feed and which fell back. Supply is corporate-action adjusted (totalSupply x ERC-8056 uiMultiplier), not raw. Detected from the token contract's own ERC-8056 state every minute, ahead of the official registry's cache, which is mirrored alongside for history.

Inputs: no named parameters.

get_corporate_actionsGet HoodGrow corporate actionsA
Read-onlyIdempotent
Inspect

Pending (on-chain staged) and recent (official Robinhood ledger) corporate actions — splits, dividends, name changes. Pass a symbol to scope to one token (cheaper); omit it for every tracked token's corporate actions. Detected from the token contract's own ERC-8056 state every minute, ahead of the official registry's cache, which is mirrored alongside for history.

Inputs: symbol.

get_credit_balanceGet HoodGrow prepaid credit balanceA
Read-onlyIdempotent
Inspect

This wallet's current prepaid credit balance — free (no x402 charge, no credit spend). Requires HOODGROW_PRIVATE_KEY to be configured.

Inputs: no named parameters.

get_defiGet HoodGrow token DeFi detailA
Read-onlyIdempotent
Inspect

Every Morpho lending market (as loan asset OR collateral, both roles labeled) and Uniswap V3 pool involving one token — the full picture for comparing yield/ borrow options, not just the single best-APY figure in get_token. $0.05 via x402, or 1 daily unit with a free API key. Fails for an unknown symbol. Morpho market and Uniswap V3 pool state, read on-chain and snapshotted every 15 minutes.

Inputs: symbol (required).

get_holdersGet HoodGrow token holder analyticsA
Read-onlyIdempotent
Inspect

Holder-count trend, 24h net total_supply change (real mint/burn — creation/ redemption of the underlying tokenized shares, distinct from a corporate-action multiplier change), and top-holder concentration for one token. $0.05 via x402, or 1 daily unit with a free API key. Fails for an unknown symbol. Explorer-sourced, refreshed every 4 hours; supply changes derived from on-chain supply snapshots.

Inputs: symbol (required), limit.

get_marketsGet HoodGrow market moversA
Read-onlyIdempotent
Inspect

Market movers across the Robinhood Chain stock-token catalog: top gainers and losers by 24h price change, highest 24h swap volume, and deepest Uniswap V3 liquidity (TVL). limit caps each list (1-50, default 10); gainers/losers can be empty when the market is flat (e.g. weekends). $0.05 via x402, or 1 daily unit with a free API key. Prices are read from Chainlink feeds on-chain, not relayed from an off-chain aggregator, and refreshed every 15 minutes — each response is that snapshot, with observedAt giving its exact age. priceSource says which tokens resolved a feed and which fell back. Morpho market and Uniswap V3 pool state, read on-chain and snapshotted every 15 minutes.

Inputs: limit.

get_ohlcGet HoodGrow OHLC price candlesA
Read-onlyIdempotent
Inspect

OHLC price candles for backtesting, bucketed from price history already collected every ~15 min. Each candle also carries volumeUsd/swapCount — USD swap volume across the token's Uniswap V3 pools, null for buckets older than the volume indexer's backfill window. Defaults to the last 30 days if from/to are omitted; window capped at 730 days. $0.05 via x402, or 1 daily unit with a free API key. Fails for an unknown symbol. Prices are read from Chainlink feeds on-chain, not relayed from an off-chain aggregator, and refreshed every 15 minutes — each response is that snapshot, with observedAt giving its exact age. priceSource says which tokens resolved a feed and which fell back.

Inputs: symbol (required), interval (required), to, from, +1 more.

get_slippageGet HoodGrow trade price-impact estimateA
Read-onlyIdempotent
Inspect

How much a USD-sized trade would move the price, per Uniswap V3 pool this token trades on — plus bestPoolAddress/bestEffectivePrice picking the best of them for you. Per-pool estimate, not an optimal multi-pool route/split. Exact within each pool's currently active tick range; a likelyCrossesTick flag on a result means the trade is probably large enough that this may understate real slippage — consider splitting into smaller tranches (TWAP) instead. $0.05 via x402, or 1 daily unit with a free API key. Fails for an unknown symbol. Computed per pool from the most recent Uniswap V3 pool snapshot (refreshed every 15 minutes, not read live at request time) — an estimate derived from reserves, not a quoted or executable price.

Inputs: side (required), symbol (required), amountUsd (required).

get_tokenGet one HoodGrow tokenA
Read-onlyIdempotent
Inspect

One Robinhood Chain stock token by symbol (e.g. NVDA): live price, corporate-action adjusted supply, DeFi depth, and pending/recent corporate actions. Unlike the free catalog this carries the token's DeFi depth ($0.05 via x402, or 1 of the 40 daily units with a free API key). Fails for an unknown symbol. Prices are read from Chainlink feeds on-chain, not relayed from an off-chain aggregator, and refreshed every 15 minutes — each response is that snapshot, with observedAt giving its exact age. priceSource says which tokens resolved a feed and which fell back. Supply is corporate-action adjusted (totalSupply x ERC-8056 uiMultiplier), not raw. Detected from the token contract's own ERC-8056 state every minute, ahead of the official registry's cache, which is mirrored alongside for history.

Inputs: symbol (required).

get_tradesGet HoodGrow recent large tradesA
Read-onlyIdempotent
Inspect

Recent large (whale) trades in Robinhood Chain stock-token Uniswap V3 pools, newest first — each with a buy/sell side, USD size, and transaction hash. Omit symbol for the global feed. limit caps the list (1-100, default 20). $0.05 via x402, or 1 daily unit with a free API key. Indexed from Uniswap V3 Swap events on-chain; side and USD size are derived from the USDG leg of each swap.

Inputs: limit, symbol.

list_credit_bundlesList HoodGrow prepaid credit bundlesA
Read-onlyIdempotent
Inspect

Current prepaid credit bundle catalog ({id: {priceUsd, creditUsd}}) — free, no credentials required. A bundle is paid once via x402 (buy_credits) and spent down over many calls afterward via a cheap wallet signature instead of a fresh on-chain payment per call — see HOODGROW_USE_CREDITS.

Inputs: no named parameters.

register_credit_webhookRegister a HoodGrow corporate-action webhookA
Idempotent
Inspect

Register (or update) a credit-funded corporate-action webhook for this wallet: HoodGrow then POSTs each matching corporate_action.* event to your url, signed x-hoodgrow-signature (verify it before trusting the body). Requires HOODGROW_PRIVATE_KEY. Registering is FREE — no payment here; each delivered event is billed per-event against your prepaid credit balance (buy_credits/get_credit_balance), so an idle webhook costs nothing. symbols restricts delivery — and, since billing is per delivered event, what you're charged for — to just those tokens; omit for every token's events. Returns webhookSecret (shown once — store it). This is the credit-funded path; a Builder-subscription webhook is set from the website instead.

Inputs: url (required), symbols.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.4/5.0

    Scored across 14 tools

    Disambiguation4/5

    Most get_* tools target clearly distinct data slices—price, DeFi, holders, slippage, OHLC, trades, markets—and descriptions explicitly cross-reference when to use one over another. However, get_catalog and get_markets both advertise market movers, and get_catalog/get_token overlap on price, supply, and corporate actions, so a small amount of selection ambiguity remains.

    Naming Consistency4/5

    The data tools follow a consistent get_<resource> snake_case pattern, and the credit tools use sensible action verbs like list, buy, and register. The mixed verbs are a minor deviation from a uniform verb_noun style, but the naming is still predictable and readable.

    Tool Count5/5

    14 tools is well within the ideal range and each tool serves a genuine purpose: token analytics, corporate actions, market movers, DeFi details, holders, slippage, OHLC, trades, and the credit-bundle billing flow. The count feels appropriately scoped for the server's dual analytics-plus-payment mission.

    Completeness4/5

    The analytics surface is broad and covers discovery, pricing, corporate actions, DeFi, holders, slippage, historical candles, market movers, and whale trades. A notable gap is the webhook lifecycle: you can register or update a webhook but cannot delete or list configured webhooks, which leaves a minor administrative dead end.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      A read-only MCP server for Robinhood portfolio research. Wraps robin_stocks to give AI assistants access to your portfolio data for analysis.
      13
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      MCP server that provides access to SiftingIO market data, including live prices, SEC filings, OHLCV bars, 13F holdings, market status, and economic calendar tools for AI assistants.
      36
      46 npm
      1
      MIT
    • 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