npm hood-mcpstdioupdated 1mo ago
Model Context Protocol servers for Robinhood Chain (chain ID 4663).
What can you do with hood mcp?
hood-mcp
Model Context Protocol servers for Robinhood Chain (chain ID 4663).
Two servers, one package: a zero-config data server any MCP client can add in one line, and
an explicitly opt-in trading server for wallets that want to act. Built on
hoodchain, the TypeScript SDK for the chain.
Docs: https://nirholas.github.io/robinhood-chain-mcp/
Why
Robinhood Chain has two other MCP servers today, both zero-star, days-old, read-only hobby projects. This is the productized one: a full data surface (Stock Tokens, memecoins, launches, chain stats) plus a guarded trading surface with hard spend caps and a confirm gate — built to the standard three.ws holds its agent tooling to.
60-second install
Claude Code
claude mcp add hood-mcp -- npx -y hood-mcp
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"hood-mcp": {
"command": "npx",
"args": ["-y", "hood-mcp"]
}
}
}
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"hood-mcp": {
"command": "npx",
"args": ["-y", "hood-mcp"]
}
}
}
Any stdio MCP client
npx -y hood-mcp
No API key, no wallet, no config. It talks to the public Robinhood Chain RPC and starts answering tool calls immediately.
Two servers
1. hood-mcp — data server (zero-config, read-only)
stdio by default; pass --http (or HOOD_MCP_TRANSPORT=http) for Streamable HTTP on
HOOD_MCP_PORT (default 8730), serving POST /mcp and GET /health.
| Tool | What it does |
|---|---|
get_chain_stats |
Latest block, gas price, TVL, network totals. |
list_stock_tokens |
The 95-token Stock Token registry (ticker, name, contract, feed). |
get_stock_quote |
Chainlink price + Uniswap DEX price + premium/discount + share price for a ticker. |
get_portfolio |
Multiplier-correct Stock Token portfolio + USDG balance for any address. |
get_coin |
Price/volume/liquidity/holders for any token by address (memecoin or Stock Token). |
list_trending_coins |
The chain's trending pools right now. |
get_recent_launches |
Recent NOXA + The Odyssey launches, scanned from on-chain logs. |
watch_launches |
Watch live for new launches for up to 120s. |
search_token |
Find a token by ticker, name, or address. |
HOOD_MCP_NETWORK=mainnet # or testnet — default mainnet
ALCHEMY_KEY= # optional: private RPC instead of public
2. hood-mcp-trading — wallet server (explicitly opt-in)
Separate binary, stdio only, refuses to start unless both are set:
HOOD_MCP_ENABLE_TRADING=1
ROBINHOOD_CHAIN_PRIVATE_KEY=0x...
{
"mcpServers": {
"hood-mcp-trading": {
"command": "npx",
"args": ["-y", "hood-mcp-trading"],
"env": {
"HOOD_MCP_ENABLE_TRADING": "1",
"ROBINHOOD_CHAIN_PRIVATE_KEY": "0xYOUR_KEY"
}
}
}
}
| Tool | What it does |
|---|---|
get_my_portfolio |
This wallet's ETH, USDG, and Stock Token positions. Read-only. |
get_swap_quote |
Quote a Uniswap swap without signing. Read-only. |
execute_swap |
Guarded. Preview → confirm: true → broadcast. Spend-capped. |
transfer_usdg |
Guarded. Preview → confirm: true → broadcast. Spend-capped. |
See Safety model for the full guard design. Summary:
- Kill switch — the server process itself refuses to start without
HOOD_MCP_ENABLE_TRADING=1. - Eligibility gate — buying a tokenized Stock Token requires
HOOD_MCP_ACKNOWLEDGE_ELIGIBILITY=1(Stock Tokens are barred to US/Canada/UK/Switzerland persons — see below). - Spend caps — every mutating call is valued in USD and checked against
HOOD_MCP_MAX_SPEND_USDG(per-call) andHOOD_MCP_MAX_SESSION_USDG(per-session, in-memory, resets on restart) before anything is signed. - Confirm gate — the first call to
execute_swap/transfer_usdgalways returns a simulation (recipient, amount, token, min-received) and signs nothing. Only a second call withconfirm: trueand identical arguments broadcasts.
HOOD_MCP_MAX_SPEND_USDG=25 # default 25 — per single call
HOOD_MCP_MAX_SESSION_USDG=100 # default 100 — cumulative for the process lifetime
HOOD_MCP_ACKNOWLEDGE_ELIGIBILITY=0 # set to 1 ONLY if eligible to hold Stock Tokens
Stock Tokens are tokenized debt securities (issuer: Robinhood Assets (Jersey) Ltd) and may
not be offered, sold, or delivered to US persons (additional limits: Canada, UK, Switzerland).
The restriction is legal/front-end enforced, not contract-level — execute_swap throws unless
the operator has explicitly acknowledged eligibility. Memecoins are unrestricted.
Environment reference
See .env.example for the full annotated list. Nothing is required for the
data server; the trading server requires the two kill-switch variables above.
x402 monetization (seam, not active)
The HTTP transport has a documented seam (src/x402-seam.ts) to paywall future metered tools
(deep history, firehose) via the sibling hood402 USDG-on-Robinhood-Chain x402
rail once it exists. Every tool this package ships today stays free regardless.
Development
npm install
npm run build # tsup → dist/
npm run dev:data # tsx src/data-server.ts (stdio)
npm run dev:trading # tsx src/trading-server.ts (stdio, needs env)
npm test # hermetic: schema + guard tests (real network reads, no wallet funds)
npm run test:live # live: every data tool against real mainnet 4663 data
npm run test:swap # live, gated: a REAL testnet swap through execute_swap (needs a
# faucet-funded ROBINHOOD_CHAIN_PRIVATE_KEY — see the test file)
Depends on hoodchain from npm; for local development against an unpublished SDK checkout:
npm i ../robinhood-chain-sdk.
Registry submissions (owner action)
Metadata is prepared, not submitted — publishing to a registry is a one-way, attributed action the owner should take:
- modelcontextprotocol registry —
server.jsonin this repo validates against the official schema. Submit with themcp-publisherCLI oncehood-mcpis live on npm. - Smithery — their current flow publishes a running server URL or an
.mcpbbundle (smithery mcp publish <url> -n <org/server>), not a static config file. Deploy the HTTP transport (hood-mcp --http) somewhere public, then runsmithery mcp publish https://your-deployment/mcp -n nirholas/hood-mcp.
License
All rights reserved. See LICENSE.
Install
Add hood mcp to your client. Pick the one you use.
claude mcp add hood-mcp -- npx -y hood-mcpcodex mcp add hood-mcp -- npx -y hood-mcpamp mcp add hood-mcp -- npx -y hood-mcp{
"mcpServers": {
"hood-mcp": {
"command": "npx",
"args": [
"-y",
"hood-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"hood-mcp": {
"command": "npx",
"args": [
"-y",
"hood-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"hood-mcp","command":"npx","args":["-y","hood-mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"hood-mcp": {
"command": "npx",
"args": [
"-y",
"hood-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"hood-mcp": {
"command": "npx",
"args": [
"-y",
"hood-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"hood-mcp": {
"command": "npx",
"args": [
"-y",
"hood-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"hood-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"hood-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"hood-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"hood-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y hood-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance16/25
- Trust6/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 42 days ago
- Has a release history
- Repository is not archived
- No licence detected
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 0.1.1Latest | Jul 20, 2026 |