
Standard MCP
Standard MCP is an MCP server for The Standard Reserve on Robinhood Chain (chain id 4663). Anyone can connect and read markets: King of the Markets standings, token data, prices, leaderboards. With an MCP key, the same server also acts for an agent account: a contract you own, which your agent can trade from but never withdraw from.
The endpoint is https://www.standarmcp.dev/mcp. It speaks Streamable HTTP, for both the 2026-07-28 protocol and 2025-era clients.
Quickstart
- Open the app → and connect your wallet. Sign the sign-in message (no transaction, no gas).
- Set daily limits and the actions the agent may take, then create the account. One transaction.
- Create an MCP key and paste the config for your client. The key is shown once.
- Top up the account with USDG and a little ETH, then ask your agent: “What's my Standard balance?”
Clients

Replace <YOUR_KEY> with your MCP key. Without the header, the server lists only the read tools.
claude mcp add --transport http standard https://www.standarmcp.dev/mcp \ --header "Authorization: Bearer <YOUR_KEY>"
Claude Desktop: macOS ~/Library/Application Support/Claude/claude_desktop_config.json · Windows %APPDATA%\Claude\claude_desktop_config.json. Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project.
Read tools
Available to everyone, with or without a key. They read Robinhood Chain and the public Standard Reserve API.
get_season
Read-onlyThe current King of the Markets season: each team's points, volume and traders, the leader, the scoring rules and when the closing bell rings.
No parameters.
{ "name": "get_season", "arguments": {} }
get_prices
Read-onlyLive prices of ETH and the three Reserve stock tokens (SPCX, BABA, SKHY) in USD, read from their Uniswap v4 pools on Robinhood Chain, with each stock pool's current swap fee.
No parameters.
{ "name": "get_prices", "arguments": {} }
search_tokens
Read-onlyFinds STANDARD launchpad tokens by name, symbol or address. Returns price, market cap, 24h volume, stage (curve or graduated pool) and team. An empty query lists recent and active tokens.
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | yes | Name, symbol or address. Empty for a general list. |
| limit | integer | no | Default 15. |
{ "name": "search_tokens", "arguments": { "query": "…" } }
get_token
Read-onlyEverything about one launchpad token: market data, links, its team, whether it still trades on its bonding curve or in its graduated pool, and the points it has scored.
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | address | yes | The token's address. |
{ "name": "get_token", "arguments": { "token": "0x…" } }
get_token_trades
Read-onlyThe latest buys and sells of a launchpad token, with size in USD, price and trader.
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | address | yes | |
| limit | integer | no | Default 20. |
{ "name": "get_token_trades", "arguments": { "token": "0x…" } }
get_token_holders
Read-onlyThe largest holders of a launchpad token and their share of supply. The pool and curve contracts appear as holders too.
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | address | yes | |
| limit | integer | no |
{ "name": "get_token_holders", "arguments": { "token": "0x…" } }
get_price_history
Read-onlyCandles of a token's market cap in USD over a window, with volume and trade counts per candle.
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | address | yes | |
| window | "1h" | "4h" | "1d" | "7d" | "30d" | no | Default 1d. |
{ "name": "get_price_history", "arguments": { "token": "0x…" } }
get_leaderboard
Read-onlyThe top wallets of the King of the Markets season by points, overall or for one team.
| Parameter | Type | Required | Description |
|---|---|---|---|
| team | "US" | "CN" | "KR" | "ETH" | no | |
| limit | integer | no | Default 10. |
{ "name": "get_leaderboard", "arguments": {} }
get_wallet
Read-onlyAny wallet's King of the Markets points, rank and team breakdown, with the launchpad tokens it holds.
| Parameter | Type | Required | Description |
|---|---|---|---|
| wallet | address | yes |
{ "name": "get_wallet", "arguments": { "wallet": "0x…" } }
Agent tools
Listed only with a valid key. Tools that move funds simulate first, check your balance, today's limit and the allowed actions, then send one transaction from the agent key and wait for it. Errors come back as plain sentences the agent can relay.
Your agent account: USDG and ETH balances, today's spending against the owner's daily limits, whether you are paused, your gas, your King of the Markets points, the tokens you hold and your liquidity positions. Check this before trading.
No parameters.
{ "name": "get_account", "arguments": {} }
How many tokens a buy would get right now, simulated against the chain without sending anything.
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | address | yes | |
| amount | string | yes | How much to spend, in pay_with units. |
| pay_with | "USDG" | "ETH" | no | Default USDG. |
{ "name": "quote_buy", "arguments": { "token": "0x…", "amount": "…" } }
Buys a launchpad token with USDG or ETH from the account. Routes automatically: the bonding curve before graduation, the token's Uniswap v4 pool after. Counts against today's limit. Scores points for the token's team.
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | address | yes | |
| amount | string | yes | How much to spend, in pay_with units. |
| pay_with | "USDG" | "ETH" | no | Default USDG. |
| max_slippage_pct | number | no | Largest price move to accept, in percent. Default 3. |
{ "name": "buy_token", "arguments": { "token": "0x…", "amount": "…" } }
What selling some or all of a token would pay right now, simulated without sending anything.
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | address | yes | |
| amount | string | no | Tokens to sell. Give this or percent. |
| percent | number | no | Share of the holding to sell. |
| receive | "USDG" | "ETH" | no | Graduated tokens can pay USDG or ETH. Curve sales pay ETH for ETH tokens and USDG otherwise. |
{ "name": "quote_sell", "arguments": { "token": "0x…" } }
Sells some or all of a launchpad token the account holds. The proceeds stay in the account. Selling never uses the daily limit.
| Parameter | Type | Required | Description |
|---|---|---|---|
| token | address | yes | |
| amount | string | no | Tokens to sell. Give this or percent. |
| percent | number | no | Share of the holding to sell, 100 for all. |
| receive | "USDG" | "ETH" | no | |
| max_slippage_pct | number | no | Largest price move to accept, in percent. Default 3. |
{ "name": "sell_token", "arguments": { "token": "0x…" } }
Buys a stock token (SPCX for SpaceX, BABA for Alibaba, SKHY for SK hynix) with USDG, or sells it for USDG, in its Reserve pool. Buying spends from today's USDG limit.
| Parameter | Type | Required | Description |
|---|---|---|---|
| stock | "SPCX" | "BABA" | "SKHY" | yes | |
| side | "buy" | "sell" | yes | |
| amount | string | yes | USDG to spend when buying, stock tokens to sell when selling. |
| max_slippage_pct | number | no | Largest price move to accept, in percent. Default 3. |
{ "name": "trade_stock", "arguments": { "stock": "SPCX", "side": "buy", "amount": "…" } }
Launches a new token on the STANDARD launchpad for a team: US (paired with SPCX), CN (BABA), KR (SKHY) or ETH. Costs a small ETH launch fee, plus an optional first buy. The account is the creator and earns the creator's share of fees; the token's trades score points for its team. Ask the user before launching.
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | |
| symbol | string | yes | Ticker without $, up to 10 bytes. |
| team | "US" | "CN" | "KR" | "ETH" | yes | |
| description | string | no | |
| image_url | url | no | An https image for the token. |
| website | url | no | |
| string | no | X handle or link. | |
| telegram | string | no | |
| first_buy | string | no | Optional first buy, in pay_with units. |
| pay_with | "USDG" | "ETH" | no | Default ETH for the ETH team, USDG otherwise. |
| metadata_uri | string | no | Only when running without a host: your own metadata JSON URL. |
{ "name": "launch_token", "arguments": { "name": "…", "symbol": "…", "team": "US" } }
Deposits USDG into a Reserve stock pool (SPCX, BABA or SKHY against USDG) through Standard Pour, full range, in one transaction. The position earns a share of every swap fee. If the stock moves, the position's mix shifts toward the side that fell. Spends from today's USDG limit.
| Parameter | Type | Required | Description |
|---|---|---|---|
| stock | "SPCX" | "BABA" | "SKHY" | yes | |
| usdg_amount | string | yes | |
| max_slippage_pct | number | no | Largest price move to accept, in percent. Default 3. |
{ "name": "add_liquidity", "arguments": { "stock": "SPCX", "usdg_amount": "…" } }
The account's liquidity positions in the stock pools with their current value.
No parameters.
{ "name": "list_positions", "arguments": {} }
Collects the swap fees a liquidity position has earned into the account, leaving the position open.
| Parameter | Type | Required | Description |
|---|---|---|---|
| position_id | string | yes |
{ "name": "collect_fees", "arguments": { "position_id": "…" } }
Takes some or all of a liquidity position out, with its fees, back into the account as USDG and the stock token. 100 closes it.
| Parameter | Type | Required | Description |
|---|---|---|---|
| position_id | string | yes | |
| percent | number | no | Default 100. |
{ "name": "remove_liquidity", "arguments": { "position_id": "…" } }
Stops this agent from making any further trade until the owner resumes it. Use it if something looks wrong or the user asks you to stop.
No parameters.
{ "name": "pause_agent", "arguments": {} }
The account's recent agent actions, including refused ones, newest first.
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | no |
{ "name": "get_activity", "arguments": {} }
Security model

Your agent account is an AgentAccount contract, a minimal clone created by the factory for your wallet. It has two roles. The owner (your wallet) can do anything: withdraw, change limits, switch actions on or off, replace the agent key, pause and resume, and make any call from the account. The agent key can only call typed trading functions.
- Every agent action pays out to the account itself. No function the agent can call takes a recipient.
- Swaps only route through Standard Reserve pools: the three stock pools, launchpad pools and the ETH/USDG pool. Any other pool is refused, so the agent can't trade into a pool someone set up to drain it.
- Trades must start or end in USDG or ETH, so the spending limits always apply.
- The only value the agent can move out is ETH to its own key for gas, capped per day.
- No admin, no upgrade path, no fee. The contracts are not audited.
Limits and actions
The contract measures the account's USDG and ETH (with WETH) before and after every agent action. Whatever went out counts against today's limit; if an action would pass it, the whole transaction reverts. Sales and withdrawn liquidity bring funds back and never use the allowance. Limits reset at 00:00 UTC.
| Setting | What it caps |
|---|---|
| USDG per day | USDG leaving the account through agent actions |
| ETH per day | ETH and WETH leaving the account, launch fees included |
| Gas per day | ETH the agent may move to its own key to pay for transactions |
| Actions | Trade (buy, sell, swap), Launch, Liquidity: each can be switched off |
| Pause | Stops every agent action until you resume. The agent can pause itself too. |
Keys
There are two kinds of keys. MCP keys (smcp_live_…) let a client use the server for your account. We store only their SHA-256 hash; revoking one takes effect on the next request. The agent key is the Ethereum key that signs the agent's transactions. It is generated on our server and stored encrypted (AES-256-GCM); it never leaves the server and is never shown.
If a key leaks, the worst case is trading inside today's limits until you act. Revoke the MCP key, or pause the agent and replace the agent key from the dashboard: one setAgent transaction and the old key can no longer do anything.
Points and rewards
King of the Markets credits a trade's points to the wallet that signs it, which is your agent key. A trade scores for the team of the stock it routes through: SPCX for the USA, BABA for China, SKHY for Korea, WETH pairs for ETH. Tokens your agent launches are created by the account, which earns the creator's share of trading fees. USDG paid to the agent key can be swept into the account from the dashboard.
Contracts
Robinhood Chain · chain id 4663 · robin.etherscan.io ↗
| Contract | Address | Note |
|---|---|---|
| AgentAccountFactory | 0x6C9b85c36c64d9bA6D566e9900821D46D4f4F273 | Creates accounts; deploys the AgentAccount implementation |
| Standard Pour LiquidZap | 0x428a17dF15ED650eE08594332E8aC5413Cee9460 | One-transaction deposits into the stock pools |
| Launchpad factory | 0x3D69104Da2518f4833D71444D6611310F2D685f2 | STANDARD launchpad, current version |
| Launchpad router | 0x3c7476e8Be0efd5b9667421448a99E217B806E80 | Curve buys and sells |
| Launchpad hook | 0x963fE3e549308734048E42Dbe751150eF1C425cC | Graduated pools |
| Earlier launchpad factory | 0x3D6Ea4e97B8AB9E1A1B4943fEBfFe22D8c920091 | Tokens from the first launchpad |
| Earlier launchpad router | 0x190B452D16e12e3bEeDd76a030EA991fE3856c33 | |
| Earlier launchpad hook | 0x048F2DC8a71A0321B5e119Cd577c56d0190920cc | |
| Reserve stock pool hook | 0xC15b155a3094934171A15625d1a80Aba267B6080 | Sets stock pool fees from the US market session |
| Uniswap v4 PoolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 | |
| Uniswap v4 PositionManager | 0x58daec3116aae6D93017bAAea7749052E8a04fA7 | Liquidity position NFTs |
| USDG | 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168 | Dollar stablecoin, 6 decimals |
| WETH | 0x0Bd7D308f8E1639FAb988df18A8011f41EAcAD73 | Pair asset of ETH-team tokens |
| SPCX (SpaceX) | 0x4a0E65A3EcceC6dBe60AE065F2e7bb85Fae35eEa | Stock token, team US |
| BABA (Alibaba) | 0xad25Ac6C84D497db898fa1E8387bf6Af3532a1c4 | Stock token, team CN |
| SKHY (SK hynix) | 0x84CAb63bc87912E71ad199ff14A0bA45de68FeF8 | Stock token, team KR |
Run it yourself
The same tools run locally over stdio with your own agent key: create an account whose agent is a key you hold, then point your client at the stdio server. The key never leaves your machine.
claude mcp add standard \ -e AGENT_PRIVATE_KEY=0x... \ -e AGENT_ACCOUNT=0x... \ -- npx tsx packages/mcp/src/stdio.ts