MCP stdio Robinhood Chain v0.2.0

The Pons
launchpad, wired
to your agent.

Twenty-nine tools with 1:1 parity against the live Pons v2 contracts. Sixteen reads always on. Thirteen writes, opt-in, dry-run until you confirm twice.

Precision analog gauge with a phosphor-green needle tracing a rising curve.
Read tools16always registered
Write tools13key required
Launch fee0.0005ETH, live on-chain
Graduation4.2ETH native default
01 / Why

Chain state is the spec.
The docs come second.

pons-mcp is a Model Context Protocol server for the Pons launchpad on Robinhood Chain (chainId 4663). An agent can inspect launches, quote the bonding curve, graduate a token, and swap the Uniswap V4 pool — without a web3 framework in the process.

Every selector and event topic is recomputed from its canonical signature at startup and asserted against a hardcoded constant. A mismatch crashes the server rather than serving stale calldata.

Reads are eth_call, eth_getLogs, eth_blockNumber, eth_chainId, and eth_gasPrice only. No key, no write tools, no code path that can spend funds. Robinhood Chain has no archive node, so every read is at latest.

Where documentation and the chain disagree, chain wins. The live snipe-tax window is 3 seconds, not the 5 the docs once claimed. The server follows the chain.

02 / Surface

Three things an agent
can actually do.

01

Inspect

Protocol parameters, a token’s 26 curve views, creator history, recent launches and graduations, live snipe tax, pending owner fee-recipient changes.

02

Quote

Bonding-curve buy and sell math ported from the contract, then cross-checked on-chain. Graduated tokens quote through the V4 quoter, hook fees included.

03

Act

Launch, buy, sell, graduate, sweep fees, swap V4. Every write dry-runs by default. Broadcast needs dryRun=false and confirm=true.

03 / Lifecycle

Curve, then pool.
Nothing in between is guessed.

phase 0

NotGraduated

Trading on the per-token bonding curve. Buys and sells, 1% curve fee, decaying 99% snipe tax for three seconds.

phase 1

Swept

Anyone may call graduate. The curve drains into the factory. Sells are already blocked once the threshold is met.

phase 2

PoolCreated

A Uniswap V4 pool is seeded behind the Pons meme hook. The position is locked. Trading continues on V4.

phase 3

Rescued

Owner rescue after a failed graduation, past the seven-day delay. The server surfaces the phase; it does not invent one.

04 / Safety

Read-only until you
hand it a key.

default

No key, no writes

Unset PONS_PRIVATE_KEY and the 13 write tools are not registered. An MCP client cannot see them, let alone invoke them. Worst case is wrong data, not lost funds.

opt-in

Two locks to broadcast

With a key, every write still dry-runs: full eth_call simulation, gas, calldata. Nothing is signed. Broadcast requires both dryRun=false and confirm=true.

Threat model

05 / Internals

No web3 framework.
On purpose.

Raw JSON-RPC over fetch. Hand-rolled ABI codec and RLP. BigInt throughout. secp256k1 via @noble/curves. keccak-256 via @noble/hashes — Node’s sha3-256 is not keccak, and is never used.

viem 2.56.3 silently dropped topic filters on this chain. Every eth_getLogs result is re-filtered client-side: address and every topic position must match, or the log is dropped.

Dry-runs simulate with state-diff overrides so an unfunded signer still exercises real contract logic. Permit2 signatures are created only at broadcast. Transaction hashes returned by the node are checked against the locally computed hash of the signed payload.

Runtime deps: MCP SDK, zod, noble hashes, noble curves. Nothing else. Node 20+.

Point an MCP client at it.
Ask about a curve.