06.1MCP

OpenPons
MCP server.

14 tools for Pons on Robinhood Chain. Read chain state freely; prepare transactions that only a human (or a signer they configured) can sign.

BETAstdio · local
Install

Three steps.

  1. 1 · Get the OpenPons repo
    terminal
    cd openpons
    npm install          # the MCP server talks to https://openpons.xyz/api/v1
  2. 2 · Build the MCP server
    terminal
    npm run build:mcp    # → packages/mcp/dist/index.js
  3. 3 · Add it to your client

    Replace /ABSOLUTE/PATH/TO with where you cloned OpenPons. Restart the client.

Environment
OPENPONS_API_URL
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.
COMING SOON
npm package @openpons/mcp
Not published yet — run from the repo for now.
COMING SOON
Reference

Tools

Every tool is backed by the same /api/v1 endpoint used by the web app.

ToolTypeParametersRESTStatus
openpons_search_tokensreadq?: string · sort?: new | active | graduated · limit?: 1–50GET /tokensBETA
openpons_get_tokenreadaddressGET /tokens/:addressBETA
openpons_get_tradesreadaddress · limit?: 1–100GET /tokens/:address/tradesBETA
openpons_get_quotereadtoken · side: buy | sell · amount: decimal string · slippageBps?: 10–2000GET /quoteBETA
openpons_get_walletreadaddressGET /wallet/:addressLIVE
openpons_get_portfolioreadaddressGET /wallet/:address/portfolioBETA
openpons_get_launchesreadaddressGET /wallet/:address/launchesBETA
openpons_get_creator_feesreadaddressGET /wallet/:address/feesBETA
openpons_get_transactionreadhashGET /transactions/:hashLIVE
openpons_prepare_buypreparetoken · amount (ETH) · from · slippageBps?POST /prepare/buyBETA
openpons_prepare_sellpreparetoken · amount (tokens) · from · slippageBps?POST /prepare/sellBETA
openpons_prepare_launchpreparefrom · name · symbol · logo (ipfs:// | https://) · description? · socials? · creatorTaxBps? · devBuyEth? · slippageBps?POST /prepare/launchBETA
openpons_prepare_claimpreparefromPOST /prepare/claimBETA
openpons_prepare_sweeppreparetoken · fromPOST /prepare/sweepBETA
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
  • fetch failed — check OPENPONS_API_URL and your network (self-hosting: start npm run dev).
  • RATE_LIMITED — back off; the public RPC and the API both rate-limit.
  • NOT_A_PONS_TOKEN — 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.