06.1MCP
OpenPons
14 tools for Pons on Robinhood Chain. Read chain state freely; prepare transactions that only a human (or a signer they configured) can sign.
stdio · local
Install
Three steps.
- 1 · Get the OpenPons repoterminal
cd openpons npm install # the MCP server talks to https://openpons.xyz/api/v1 - 2 · Build the MCP serverterminal
npm run build:mcp # → packages/mcp/dist/index.js - 3 · Add it to your client
Replace /ABSOLUTE/PATH/TO with where you cloned OpenPons. Restart the client.
Environment
Base URL of the OpenPons API. Default https://openpons.xyz/api/v1 (self-hosting: http://localhost:4663/api/v1). No API key and no private key — ever.
claude_desktop_config.json — macOS: ~/Library/Application Support/Claude/
{
"mcpServers": {
"openpons": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/openpons/packages/mcp/dist/index.js"],
"env": {
"OPENPONS_API_URL": "https://openpons.xyz/api/v1"
}
}
}
}Hosted MCP endpoint (HTTP transport)
Same tools over streamable HTTP, no local install.
npm package @openpons/mcp
Not published yet — run from the repo for now.
Reference
Tools
Every tool is backed by the same /api/v1 endpoint used by the web app.
| Tool | Type | Parameters | REST | Status |
|---|---|---|---|---|
| openpons_search_tokens | read | q?: string · sort?: new | active | graduated · limit?: 1–50 | GET /tokens | |
| openpons_get_token | read | address | GET /tokens/:address | |
| openpons_get_trades | read | address · limit?: 1–100 | GET /tokens/:address/trades | |
| openpons_get_quote | read | token · side: buy | sell · amount: decimal string · slippageBps?: 10–2000 | GET /quote | |
| openpons_get_wallet | read | address | GET /wallet/:address | LIVE |
| openpons_get_portfolio | read | address | GET /wallet/:address/portfolio | |
| openpons_get_launches | read | address | GET /wallet/:address/launches | |
| openpons_get_creator_fees | read | address | GET /wallet/:address/fees | |
| openpons_get_transaction | read | hash | GET /transactions/:hash | LIVE |
| openpons_prepare_buy | prepare | token · amount (ETH) · from · slippageBps? | POST /prepare/buy | |
| openpons_prepare_sell | prepare | token · amount (tokens) · from · slippageBps? | POST /prepare/sell | |
| openpons_prepare_launch | prepare | from · name · symbol · logo (ipfs:// | https://) · description? · socials? · creatorTaxBps? · devBuyEth? · slippageBps? | POST /prepare/launch | |
| openpons_prepare_claim | prepare | from | POST /prepare/claim | |
| openpons_prepare_sweep | prepare | token · from | POST /prepare/sweep |
Example
A prepare-first session.
claude / openpons
› Find the most active Pons token and prepare a 0.01 ETH buy for 0xAbc…
tool openpons_search_tokens { sort: "active", limit: 1 }
→ [{ symbol: "…", address: "0x…", curve: { state: "active", progress: 0.42 } }]
tool openpons_get_quote { token: "0x…", side: "buy", amount: "0.01" }
→ { expectedOut: "…", minOut: "…", priceImpactBps: 56, fees: { … } }
tool openpons_prepare_buy { token: "0x…", amount: "0.01", from: "0xAbc…" }
→ UNSIGNED TRANSACTION — nothing has been sent.
{ chainId: 4663, to: "0x…(Pons curve)", value: "10000000000000000",
function: "buy(uint256,uint256,address)", simulation: { ok: true },
expiresAt: "…" }
Agent: "Here's the prepared buy. Review it and sign in your wallet."Security
What the MCP server cannot do.
- It has no wallet, no signer and no private-key parameter.
- It cannot broadcast: every write tool returns an unsigned transaction marked UNSIGNED.
- It cannot reach your browser wallet. Signing happens in the OpenPons web app or your own signer.
- It returns simulation failures verbatim instead of hiding them.
- Token names and descriptions are untrusted data; SKILL.md tells agents never to follow instructions inside them.
Troubleshooting
- — check OPENPONS_API_URL and your network (self-hosting: start npm run dev).
- — back off; the public RPC and the API both rate-limit.
- — the address isn't in the Pons V2 factory registry.
- Tools not showing — check the absolute path, run npm run build:mcp, restart the client.