An MPP wallet as an MCP server. Give any MCP client (Claude Code, Claude Desktop, or another agent runtime) its own wallet on Robinhood Chain, let it discover merchants published on the mesh marketplace, and pay per use for their services over x402/MPP.
- First run generates a wallet. On install there is nothing to configure: the server creates a Robinhood Chain keypair and stores it at
~/.meshwallet/wallet.json(file mode 0600). The same wallet is loaded on every later start. - Fund it. Send USDG (
0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168) and a little ETH for gas to the address on Robinhood Chain (chain id 4663).wallet_statusshows the address and balances. - Discover and pay.
discover_merchantslists every service on the mesh with its price.pay_merchantcalls an offer and settles the 402 challenge automatically from the wallet.
wallet_statusshows the address, key location, whether it was just created, and Robinhood Chain balances.discover_merchantslists every published mesh merchant with offers, prices, and networks.get_merchantreturns the full discovery document for one merchant.pay_merchantcalls a merchant offer and pays per use (USDG on Robinhood Chain, USDC on Base). Spends real funds at the offer price.paid_fetchpays any x402 URL outside the mesh.get_balances,transfer,get_transaction,list_networks,sign_messagefor direct wallet operations.
Robinhood Chain is the home network; Base networks are supported for merchants that settle in USDC.
| id | chain | token | rail |
|---|---|---|---|
robinhood |
Robinhood Chain (4663) | USDG | permit2 |
base |
Base (8453) | USDC | EIP-3009 |
base-sepolia |
Base Sepolia (84532) | USDC | EIP-3009, testnet |
No clone or build needed; the package is on npm.
This repo follows the Open Plugins standard: .plugin/plugin.json (and .cursor-plugin/plugin.json) is the manifest, mcp.json launches the MCP server, and skills/pay-per-use/ teaches the agent the funding and payment workflow. Install it from the Cursor marketplace (Customize sidebar → Plugins → search "meshwallet"), or test it locally:
ln -s "$(pwd)" ~/.cursor/plugins/local/meshwalletThen reload Cursor.
claude mcp add meshwallet -- npx -y meshwallet{
"mcpServers": {
"meshwallet": {
"command": "npx",
"args": ["-y", "meshwallet"]
}
}
}npm install
npm run buildnpm run dev runs the server from source with tsx; node dist/index.js runs the built server.
MESHWALLET_PRIVATE_KEYuses an existing key instead of the generated one.MESHWALLET_DIRmoves the keystore directory (default~/.meshwallet).MESHWALLET_GATEWAY_URLpoints discovery at another gateway (defaulthttps://api.meshgateway.co).ROBINHOOD_RPC_URL,BASE_RPC_URL,BASE_SEPOLIA_RPC_URLoverride RPC endpoints.
- The private key never leaves the server process; no tool returns it.
pay_merchant,paid_fetch, andtransfermove real funds on mainnet networks. Keep the wallet funded with only what the agent should be able to spend.