pion-mcp · v0.4 · reads Pi Mainnet + Testnet github · npm

Pion.

A Model Context Protocol server for Pi Network

unofficial community project · not affiliated with Pi Network

Abstract

Pion connects AI agents — Claude, Cursor, and any MCP-compatible client — to the Pi Network blockchain. Out of the box it exposes read-only tools for wallet balances, payment history, transaction verification, and identity: no API keys, no wallet secrets, nothing that can move value. The chain reads run against either Pi network, and every result names which one it came from. App-to-User payments are a different matter: they exist behind a four-condition arming gate, are testnet-only because Pi restricts them there, and are deliberately off by default. It is a step toward agents that can transact on Pi safely, with humans holding the leash.

Fig. 1 — In particle physics, the pion is the π meson, and pion decays are studied in searches for MCPs (millicharged particles). A π particle producing MCPs: we found the name irresistible.

1.Tools

A default install can look, verify, and reason about on-chain state — it cannot spend, sign, or hold anything. The spend tool is not merely disabled when unarmed: it is never registered, so an agent cannot see that the capability exists.

ToolWhat the agent gets
get_wallet_balancePi and token balances for any wallet address — mainnet or testnet
get_account_paymentsPayment history for an account
query_transactionDetails and verification of a specific transaction
verify_userValidates a Pi access token, returning uid and username
send_paymentApp-to-User payment — off unless armed, testnet only

Arming send_payment takes four separate acts: an explicit switch, a mandatory per-payment ceiling, both credentials, and Pi Testnet as the selected network. Selecting mainnet does not merely discourage payments — it makes arming impossible, and the server does not advertise a spending tool at all. Holding the credentials is deliberately not sufficient. The realistic failure mode is not a stolen key — it is an agent talked into spending by instructions sitting in data it just read, and the ceiling is what makes that bounded rather than fatal.

2.Quickstart

Add Pion to your MCP client's configuration — for Claude Desktop, that's claude_desktop_config.json:

{
  "mcpServers": {
    "pion": {
      "command": "npx",
      "args": ["-y", "pion-mcp"]
    }
  }
}

Restart the client and ask your agent for a testnet wallet balance. The read tools need no keys or configuration; the payment tool is optional and off by default.

3.Status

send_payment is honestly experimental. The success path is verified; so are the two stranded-payment branches, which were induced on purpose rather than waited for. What that exercise found — that a Pi payment record cannot distinguish "never sent" from "sent but unreported" — is written up with the primary evidence in FINDINGS.md, alongside three other undocumented behaviours the build turned up.

4.References

  1. Pion source repository — Apache-2.0, contributions welcome.
  2. pion-mcp on npm
  3. Model Context Protocol — the open standard Pion implements.
  4. Pi Platform documentation