{"_id":"@alphagrid/local-wallet-mcp","_rev":"4-1792bd1ec7b8a132291418ba0e8127c7","name":"@alphagrid/local-wallet-mcp","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@alphagrid/local-wallet-mcp","version":"0.1.0","keywords":["mcp","agentkit","wallet","alphagrid","coinbase","viem"],"license":"MIT","_id":"@alphagrid/local-wallet-mcp@0.1.0","maintainers":[{"name":"artiffine","email":"delivery@artiffine.com"}],"homepage":"https://github.com/alphagrid-capital/protocol-monorepo#readme","bugs":{"url":"https://github.com/alphagrid-capital/protocol-monorepo/issues"},"bin":{"local-wallet-mcp":"build/index.js"},"dist":{"shasum":"a33987f2743f39ec4b8d3e9512f80808c8c5d5f1","tarball":"https://registry.npmjs.org/@alphagrid/local-wallet-mcp/-/local-wallet-mcp-0.1.0.tgz","fileCount":5,"integrity":"sha512-kEMzYKvzRA1BYYlptRuAnXt+u+oQgDQxN7qUnDbTBgEoX7nBGb/+CZ2tqDy/MN8i5ZDp0CHREZzcMQ4KReO/XA==","signatures":[{"sig":"MEYCIQC64TryOgGs0G1S7ba11LgcxEIfgWg+wGdySYEa+NeFgwIhAPGfvWgEcIwN9w8t1RTuJJ3rBfAFly/8tC1hucq6U9X7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11765},"main":"build/index.js","type":"module","engines":{"node":">=24"},"gitHead":"78b65d5e331848dc7bb188d1812f4c635ebbd5af","scripts":{"dev":"node --env-file-if-exists=.env --import tsx src/index.ts","build":"tsup && node -e \"require('fs').chmodSync('build/index.js', '755')\"","clean":"rm -rf build","format":"prettier --write .","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"artiffine","email":"delivery@artiffine.com"},"repository":{"url":"git+https://github.com/alphagrid-capital/protocol-monorepo.git","type":"git","directory":"agents/wallet-mcp"},"_npmVersion":"11.13.0","description":"Local stdio MCP server (AgentKit wallet + on-chain tools) for AlphaGrid dev/testing","directories":{},"_nodeVersion":"24.16.0","dependencies":{"bs58":"^6.0.0","viem":"^2.24.1","graphql":"^16.14.1","@solana/web3.js":"^1.98.0","@coinbase/agentkit":"^0.10.4","@modelcontextprotocol/sdk":"^1.6.1","@coinbase/agentkit-model-context-protocol":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"tsx":"^4.19.3","tsup":"^8.4.0","prettier":"^3.8.3","typescript":"^5.8.2","@types/node":"^22.13.9"},"_npmOperationalInternal":{"tmp":"tmp/local-wallet-mcp_0.1.0_1781076900693_0.07886012061762604","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@alphagrid/local-wallet-mcp","version":"0.1.1","keywords":["mcp","agentkit","wallet","alphagrid","coinbase","viem"],"license":"MIT","_id":"@alphagrid/local-wallet-mcp@0.1.1","maintainers":[{"name":"artiffine","email":"delivery@artiffine.com"}],"homepage":"https://github.com/alphagrid-capital/protocol-monorepo#readme","bugs":{"url":"https://github.com/alphagrid-capital/protocol-monorepo/issues"},"bin":{"local-wallet-mcp":"build/index.js"},"dist":{"shasum":"ebaa776b6339add94c3632e23a6975d9baf15c6d","tarball":"https://registry.npmjs.org/@alphagrid/local-wallet-mcp/-/local-wallet-mcp-0.1.1.tgz","fileCount":5,"integrity":"sha512-S7JKMiGxjO7/uzMsYQ3Tazc3OWWpdxEaQowoMRUFUXggatGlZQSzbkR6qPOy8+T1Z/phys7AZXKDqPKXuAxcGA==","signatures":[{"sig":"MEQCIBtsZLB7tESw5+E4TxGl6uF+sg4FgtSRVLlij/Q/DguOAiB7nMVny2FlkM+snre1K0yXMTsX4i9z+EU2ADO0RknrzA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphagrid%2flocal-wallet-mcp@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13421},"main":"build/index.js","type":"module","engines":{"node":">=24"},"gitHead":"6d0d29c68005c0fd31f99595ce1b00870d7cb8ba","scripts":{"dev":"node --env-file-if-exists=.env --import tsx src/index.ts","build":"tsup && node -e \"require('fs').chmodSync('build/index.js', '755')\"","clean":"rm -rf build","format":"prettier --write .","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c4e07a0-7bb9-454e-bc16-92804911333f"}},"repository":{"url":"git+https://github.com/alphagrid-capital/protocol-monorepo.git","type":"git","directory":"agents/wallet-mcp"},"_npmVersion":"11.13.0","description":"Local stdio MCP server (AgentKit wallet + on-chain tools) for AlphaGrid dev/testing","directories":{},"_nodeVersion":"24.16.0","dependencies":{"bs58":"^6.0.0","viem":"^2.24.1","graphql":"^16.14.1","@solana/web3.js":"^1.98.0","@coinbase/agentkit":"^0.10.4","@modelcontextprotocol/sdk":"^1.6.1","@coinbase/agentkit-model-context-protocol":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"tsx":"^4.19.3","tsup":"^8.4.0","prettier":"^3.8.3","typescript":"^5.8.2","@types/node":"^22.13.9"},"_npmOperationalInternal":{"tmp":"tmp/local-wallet-mcp_0.1.1_1781079003098_0.9655901927386092","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@alphagrid/local-wallet-mcp","version":"0.1.2","keywords":["mcp","agentkit","wallet","alphagrid","coinbase","viem"],"license":"MIT","_id":"@alphagrid/local-wallet-mcp@0.1.2","maintainers":[{"name":"artiffine","email":"delivery@artiffine.com"}],"homepage":"https://github.com/alphagrid-capital/protocol-monorepo#readme","bugs":{"url":"https://github.com/alphagrid-capital/protocol-monorepo/issues"},"bin":{"local-wallet-mcp":"build/index.js"},"dist":{"shasum":"6b7777657dd114471bbfffb0ba1936e3e1a63285","tarball":"https://registry.npmjs.org/@alphagrid/local-wallet-mcp/-/local-wallet-mcp-0.1.2.tgz","fileCount":5,"integrity":"sha512-/Qnf6qYt82Snyswikk+AipGqFhWYbviWZpmxGh5Lm4daJCJu0/2G0v32Bbf6rPZhboSpqowtKFtLDbDM5ddEtw==","signatures":[{"sig":"MEQCIAGOzcYn9TGplewotN10UbRkz6YGgcFRaRWu1VwIwcZrAiBBdjJIX7nbAKngDLLLeHskC8042njck6ZJxB63yXcWkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphagrid%2flocal-wallet-mcp@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":14613},"main":"build/index.js","type":"module","engines":{"node":">=24"},"gitHead":"83de0b0bd0a566b2d03bc67679446b324014c488","scripts":{"dev":"node --env-file-if-exists=.env --import tsx src/index.ts","build":"tsup && node -e \"require('fs').chmodSync('build/index.js', '755')\"","clean":"rm -rf build","format":"prettier --write .","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c4e07a0-7bb9-454e-bc16-92804911333f"}},"repository":{"url":"git+https://github.com/alphagrid-capital/protocol-monorepo.git","type":"git","directory":"agents/wallet-mcp"},"_npmVersion":"11.13.0","description":"Local stdio MCP server (AgentKit wallet + on-chain tools) for AlphaGrid dev/testing","directories":{},"_nodeVersion":"24.16.0","dependencies":{"bs58":"^6.0.0","viem":"^2.24.1","graphql":"^16.14.1","@solana/web3.js":"^1.98.0","@coinbase/agentkit":"^0.10.4","@modelcontextprotocol/sdk":"^1.6.1","@coinbase/agentkit-model-context-protocol":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"tsx":"^4.19.3","tsup":"^8.4.0","prettier":"^3.8.3","typescript":"^5.8.2","@types/node":"^22.13.9"},"_npmOperationalInternal":{"tmp":"tmp/local-wallet-mcp_0.1.2_1781189827913_0.3519778310531867","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@alphagrid/local-wallet-mcp","version":"0.2.0","description":"Local stdio MCP server (AgentKit wallet + on-chain tools) for AlphaGrid dev/testing","license":"MIT","main":"build/index.js","type":"module","packageManager":"yarn@1.22.22","engines":{"node":">=24"},"repository":{"type":"git","url":"git+https://github.com/alphagrid-capital/protocol-monorepo.git","directory":"agents/wallet-mcp"},"keywords":["mcp","agentkit","wallet","alphagrid","coinbase","viem"],"publishConfig":{"access":"public"},"bin":{"local-wallet-mcp":"build/index.js"},"scripts":{"build":"tsup && node -e \"require('fs').chmodSync('build/index.js', '755')\"","clean":"rm -rf build","prepublishOnly":"yarn build","dev":"node --env-file-if-exists=.env --import tsx src/index.ts","format":"prettier --write .","type-check":"tsc --noEmit"},"dependencies":{"@coinbase/agentkit":"^0.10.4","@coinbase/agentkit-model-context-protocol":"^0.2.0","@modelcontextprotocol/sdk":"^1.6.1","@solana/web3.js":"^1.98.0","bs58":"^6.0.0","graphql":"^16.14.1","viem":"^2.24.1"},"devDependencies":{"@types/node":"^22.13.9","prettier":"^3.8.3","tsup":"^8.4.0","tsx":"^4.19.3","typescript":"^5.8.2"},"gitHead":"3fc822b01f66bb0e71a8fd7d012b698730724237","_id":"@alphagrid/local-wallet-mcp@0.2.0","bugs":{"url":"https://github.com/alphagrid-capital/protocol-monorepo/issues"},"homepage":"https://github.com/alphagrid-capital/protocol-monorepo#readme","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-cjRn/Q8PATy47ywDZYctfYQB+b7d2RNxBEf9FdGSJgQsxaidg4iE6iOgKKiUtghXaOfIpUEQAizhawimiXbUGQ==","shasum":"5bbc486fd318924b8dfe3aae5218814a387a441e","tarball":"https://registry.npmjs.org/@alphagrid/local-wallet-mcp/-/local-wallet-mcp-0.2.0.tgz","fileCount":12,"unpackedSize":26345,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@alphagrid%2flocal-wallet-mcp@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCNkhTnu4VjRJgGfkE4ydOeLGCAZasD9SwVtrN8IamaYAIhANzMpO0JJujXhT46oziRYv/o48PdVbqDIjVC4Y47zNPf"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3c4e07a0-7bb9-454e-bc16-92804911333f"}},"directories":{},"maintainers":[{"name":"artiffine","email":"delivery@artiffine.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/local-wallet-mcp_0.2.0_1781292286135_0.0035876104251735264"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-10T07:35:00.565Z","modified":"2026-06-12T19:24:46.885Z","0.1.0":"2026-06-10T07:35:00.830Z","0.1.1":"2026-06-10T08:10:03.235Z","0.1.2":"2026-06-11T14:57:08.034Z","0.2.0":"2026-06-12T19:24:46.297Z"},"bugs":{"url":"https://github.com/alphagrid-capital/protocol-monorepo/issues"},"license":"MIT","homepage":"https://github.com/alphagrid-capital/protocol-monorepo#readme","keywords":["mcp","agentkit","wallet","alphagrid","coinbase","viem"],"repository":{"type":"git","url":"git+https://github.com/alphagrid-capital/protocol-monorepo.git","directory":"agents/wallet-mcp"},"description":"Local stdio MCP server (AgentKit wallet + on-chain tools) for AlphaGrid dev/testing","maintainers":[{"name":"artiffine","email":"delivery@artiffine.com"}],"readme":"# AlphaGrid Local Wallet MCP\n\nLocal [Model Context Protocol](https://modelcontextprotocol.io/quickstart/server) server that exposes [AgentKit](https://github.com/coinbase/agentkit) wallet and on-chain tools to MCP clients (Claude Desktop, Cursor, etc.).\n\nPublished on npm as [`@alphagrid/local-wallet-mcp`](https://www.npmjs.com/package/@alphagrid/local-wallet-mcp).\n\nThis is not a trading agent. It is a **local MCP wallet** — a stdio MCP server you run on your machine so AI clients can read balances, transfer tokens, and call on-chain actions through a wallet you control. Other agents and assistants attach to it via MCP; nothing is hosted remotely unless you choose the CDP smart-wallet provider.\n\n**Not for production.** Use your own key management or a third-party agent wallet for agents holding real capital. Private keys and API secrets are set in your MCP client config (`env`), never in the package.\n\n## Install (recommended)\n\nNo global install required. Merge `mcp.config.example.json` into your MCP client config:\n\n**Cursor** — `.cursor/mcp.json` in your project or user settings.\n\n**Claude Desktop** — `~/Library/Application Support/Claude/claude_desktop_config.json`\n\n### Local private key (`viem`)\n\n**Why choose this:**\n\n- No Coinbase Developer Platform account — fastest setup for local testing with a testnet key.\n- Supports custom chains (e.g. `robinhood-testnet`) that CDP smart wallets do not.\n\n```json\n{\n  \"mcpServers\": {\n    \"alphagrid-local-wallet-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alphagrid/local-wallet-mcp\"],\n      \"env\": {\n        \"WALLET_PROVIDER\": \"viem\",\n        \"NETWORK_ID\": \"arbitrum-sepolia\",\n        \"PRIVATE_KEY\": \"0x...\"\n      }\n    }\n  }\n}\n```\n\nOptional: add `CDP_API_KEY_ID` and `CDP_API_KEY_SECRET` to unlock faucet and x402 tools while staying on `viem`.\n\n### CDP smart wallet (`cdp`)\n\n**Why choose this:**\n\n- No raw private key in MCP config — signing uses CDP API credentials and a wallet secret.\n- Smart-wallet features on supported networks: gas sponsorship (`PAYMASTER_URL`), faucet, and x402 without extra setup.\n\n```json\n{\n  \"mcpServers\": {\n    \"alphagrid-local-wallet-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@alphagrid/local-wallet-mcp\"],\n      \"env\": {\n        \"WALLET_PROVIDER\": \"cdp\",\n        \"NETWORK_ID\": \"arbitrum-sepolia\",\n        \"CDP_API_KEY_ID\": \"...\",\n        \"CDP_API_KEY_SECRET\": \"...\",\n        \"CDP_WALLET_SECRET\": \"...\"\n      }\n    }\n  }\n}\n```\n\nSet `NETWORK_ID` (see options below). Restart the MCP server in your client after changing config.\n\n## Wallet providers\n\nSet `WALLET_PROVIDER` in env:\n\n| Value            | Description                                                                            |\n| ---------------- | -------------------------------------------------------------------------------------- |\n| `viem` (default) | Local key via viem; optional CDP API actions if API keys are set                       |\n| `cdp`            | CDP smart wallet; requires `CDP_API_KEY_ID`, `CDP_API_KEY_SECRET`, `CDP_WALLET_SECRET` |\n\n### `NETWORK_ID`\n\nRequired for `viem`. Defaults to `arbitrum-sepolia` for `cdp`.\n\n| `NETWORK_ID`        | Chain                   |\n| ------------------- | ----------------------- |\n| `ethereum-mainnet`  | Ethereum                |\n| `ethereum-sepolia`  | Ethereum Sepolia        |\n| `polygon-mainnet`   | Polygon                 |\n| `polygon-mumbai`    | Polygon Mumbai          |\n| `base-mainnet`      | Base                    |\n| `base-sepolia`      | Base Sepolia            |\n| `arbitrum-mainnet`  | Arbitrum One            |\n| `arbitrum-sepolia`  | Arbitrum Sepolia        |\n| `optimism-mainnet`  | Optimism                |\n| `optimism-sepolia`  | Optimism Sepolia        |\n| `robinhood-testnet` | Robinhood Chain Testnet |\n\nConfiguration lives in `src/getAgentKit.ts` and `src/wallets/`. MCP server wiring is in `src/index.ts`.\n\n## Tools exposed\n\n| Category         | Tool                                              | Purpose                                             |\n| ---------------- | ------------------------------------------------- | --------------------------------------------------- |\n| Wallet           | `WalletActionProvider_get_wallet_details`         | Address, network, native ETH/SOL balance            |\n| Wallet           | `WalletActionProvider_native_transfer`            | Send native ETH (or SOL on Solana)                  |\n| ERC20            | `ERC20ActionProvider_get_balance`                 | Token balance (defaults to your wallet)             |\n| ERC20            | `ERC20ActionProvider_transfer`                    | Send ERC20 (e.g. USDC)                              |\n| ERC20            | `ERC20ActionProvider_approve`                     | Approve a spender                                   |\n| ERC20            | `ERC20ActionProvider_get_allowance`               | Check allowance for a spender                       |\n| ERC20            | `ERC20ActionProvider_get_erc20_token_address`     | Resolve symbol → contract address                   |\n| Faucet           | `CdpApiActionProvider_request_faucet_funds`       | Test ETH/USDC/etc. on base-sepolia or solana-devnet |\n| WETH             | `WethActionProvider_wrap_eth`                     | Wrap ETH → WETH                                     |\n| WETH             | `WethActionProvider_unwrap_eth`                   | Unwrap WETH → ETH                                   |\n| Pyth             | `PythActionProvider_fetch_price_feed`             | Symbol → Pyth price feed ID                         |\n| Pyth             | `PythActionProvider_fetch_price`                  | Price for a feed ID                                 |\n| x402 (paid HTTP) | `X402ActionProvider_make_http_request`            | HTTP call; returns 402 payment details if needed    |\n| x402 (paid HTTP) | `X402ActionProvider_retry_http_request_with_x402` | Retry with payment after 402                        |\n| x402 (paid HTTP) | `X402ActionProvider_make_http_request_with_x402`  | One-step paid request (no confirmation)             |\n| x402 (paid HTTP) | `X402ActionProvider_discover_x402_services`       | List x402 APIs on the current network               |\n\n### AlphaGrid EIP-712 signing (`viem` + `PRIVATE_KEY`)\n\nPair with **AlphaGrid protocol MCP** for quotes and submit. Pass fields from each quote (`nonce`, `deadline`, `tradeRouter` / `agentRegistry`, `chainId`, `token`, `vault`, `exits`).\n\n| Tool                                              | EIP-712 type       | Use with                                                  |\n| ------------------------------------------------- | ------------------ | --------------------------------------------------------- |\n| `AlphagridActionProvider_sign_self_register`      | `SelfRegister`     | `alphagrid_register_agent` / x402 `POST /agents/register` |\n| `AlphagridActionProvider_sign_open_position`      | `OpenPosition`     | `alphagrid_submit_trade_intent`                           |\n| `AlphagridActionProvider_sign_add_position`       | `AddToPosition`    | `alphagrid_submit_add_intent`                             |\n| `AlphagridActionProvider_sign_reduce_position`    | `ReducePosition`   | `alphagrid_submit_reduce_intent`                          |\n| `AlphagridActionProvider_sign_update_exit_ladder` | `UpdateExitLadder` | `alphagrid_submit_exit_ladder_intent`                     |\n\nRequires `WALLET_PROVIDER=viem` and `PRIVATE_KEY` in MCP env (not available on `cdp` smart wallet). Returns JSON: `signer`, `signature`, `deadline`, `nonce` (and `exitsHash` when applicable).\n\nOptional dev CLIs (same signing logic): `node build/cli/sign-self-register.js`, `sign-open-position.js`, `sign-reduce-position.js` with a JSON argument string.\n\nFaucet, x402, and some CDP actions require `CDP_API_KEY_ID` and `CDP_API_KEY_SECRET` (available with `viem` or required for `cdp`).\n\n### Arbitrum x402 (AlphaGrid)\n\nStock AgentKit only registers x402 tools on Base and Solana. This server patches AgentKit at startup (`src/agentkit/extendArbitrumX402.ts`) so x402 works on **`arbitrum-sepolia`** and **`arbitrum-mainnet`** (`eip155:421614` / `eip155:42161`), matching AlphaGrid API registration. It also maps **USDC** on Arbitrum Sepolia to the AlphaGrid mock token (`0x54A4…60FA`).\n\nUse `NETWORK_ID=arbitrum-sepolia` with CDP API keys, rebuild (`yarn build`), and restart the MCP server in Cursor.\n\n## Development and publishing\n\nFrom this directory:\n\n```sh\nyarn install\nyarn build\n```\n\nFor local iteration without publishing, point `args` at `build/index.js` with `\"command\": \"node\"` instead of `npx`.\n\n### Releases\n\n1. Bump, commit, and tag (tag must match `package.json` version):\n\n   ```sh\n   chmod +x scripts/bump-and-tag.sh   # once\n   ./scripts/bump-and-tag.sh minor    # or patch | major | 0.2.1\n   ./scripts/bump-and-tag.sh minor --push\n   ```\n\n   Creates annotated tag `local-wallet-mcp-vX.Y.Z` and runs `yarn type-check` + `yarn build`.\n\n2. Push the tag — CI publishes via `.github/workflows/wallet-mcp.yml` (requires repo secret **`NPM_TOKEN`**).\n\n### Manual publish\n\n```sh\nyarn install --frozen-lockfile\nyarn build\nnpm publish --access public\n```\n\n## Learn more\n\n- [AgentKit](https://docs.cdp.coinbase.com/agentkit/docs/welcome)\n- [CDP](https://docs.cdp.coinbase.com/)\n- [AlphaGrid docs — Local wallet MCP](https://docs.alphagrid.capital/agents/register#agent-signer)\n","readmeFilename":"README.md"}