npm @ironwallet/mcp-serverstdioMITupdated 8d ago
The IronWallet MCP server gives AI agents secure access to a non-custodial wallet. Seed phrases stay encrypted on the host and never leave this machine. Agents can retrieve balances, sign locally, transfer tokens, and swap across 10+ networks.
What can you do with IronWallet?
IronWallet for AI agents
The IronWallet MCP server gives AI agents secure access to a non-custodial wallet. Seed phrases stay encrypted on the host and never leave this machine. Agents can retrieve balances, sign locally, transfer tokens, and swap across 10+ networks.
Seed-compatible with the IronWallet app. There is no per-transaction confirmation UI.
Requirements: Node.js 20+ (npx). Use a dedicated wallet with limited balance.
Product page: ironwallet.io/ai. Machine-readable index: llms.txt.
Opening this repository in Claude Code starts the wallet MCP via .mcp.json. See CLAUDE.md.
Install
Cursor: ironwallet.io/ai
Claude Code:
claude plugin marketplace add ironwallet/ironwallet-agent-kit
claude plugin install ironwallet-mcp@ironwallet
Codex:
codex plugin marketplace add ironwallet/ironwallet-agent-kit
codex plugin add ironwallet-mcp@ironwallet
Grok:
grok plugin marketplace add ironwallet/ironwallet-agent-kit
grok plugin install ironwallet-mcp --trust
Reload so MCP picks up PATH. From a local clone, use . instead of the GitHub repo.
MCP only (no plugin)
Manually installed MCP does not auto-update with the plugin.
{
"mcpServers": {
"ironwallet": {
"command": "npx",
"args": ["-y", "@ironwallet/mcp-server"]
}
}
}
What's included
Skill
| Skill | When to use |
|---|---|
| ironwallet-mcp | Non-custodial wallet: balances, local signing, transfers, swaps, deposit QR. Invoke as /ironwallet-mcp |
Rules
| Rule | What it enforces |
|---|---|
| wallet-transaction-safety | Hot wallet; no extra confirmation UI; poll status on timeout, never resubmit blindly |
| seed-phrase-handling | Recovery phrases and private keys never appear in chat, files, or logs |
| swap-asset-resolution | Networks and tokens come from catalog tools, not model memory |
Agent
| Agent | Purpose |
|---|---|
| ironwallet-operator | Operate the non-custodial wallet: balances, local signing, transfers, swaps, deposit QR |
MCP server
@ironwallet/mcp-server over stdio. Networks: Ethereum, BSC, Polygon, Base, Arbitrum, Optimism, Avalanche, Tron, Bitcoin, Litecoin, Dogecoin, Solana, XRP, TON.
Tools
| Tool | Purpose | Moves funds? |
|---|---|---|
list_wallets |
Names, addresses, and policy |
no |
accept_mcp_consent |
Record chat acceptance of the MCP disclaimer | no |
create_wallets |
New wallets; returns a browser backup_url |
no |
open_wallet_manager |
Local browser UI to import / create / back up | no |
set_wallet_policy |
Replace per-wallet limits (readOnly, maxPerTxUsd, allow-list) |
no |
get_deposit_qr |
PNG QR (try chat; else local qr_url) |
no |
get_balance |
Native or token balance | no |
estimate_transfer |
Fee estimate, no broadcast | no |
send_transfer |
Sign locally and send | yes |
get_operation_status |
Poll a transfer | no |
list_swap_networks |
Networks available for swap | no |
list_swap_assets |
Sell / buy catalog | no |
estimate_swap |
Quote (may expire) | no |
execute_swap |
Fresh quote → sign → swap | yes |
get_swap_status |
Poll a swap | no |
No tool accepts or returns a seed. Import and backup only in the local browser (open_wallet_manager / backup_url).
Configuration
Nothing to paste into MCP config for normal use. On first launch the server writes a relay API key, keystore wrapping secret, and device id under ~/.ironwallet-mcp/ (mode 0600). Override with IW_RELAY_API_KEY / IW_PASSPHRASE / IW_DEVICE_ID only if you must.
The user-facing backup is the recovery phrase in the wallet manager, not those files.
Security
- Seeds are encrypted at rest. They never appear in tool results, agent chat, or backend requests.
- The agent can move funds without asking again. Optional wallet policy (
readOnly,maxPerTxUsd, transfer recipient allow-list — set viaset_wallet_policy) is off by default and applies to both sends and swaps. - Anyone with the keystore and the wrapping secret controls the funds. A leaked seed cannot be revoked.
- Timeout is not always failure: poll status before retrying a send or swap.
- Do not put a main wallet here. Use a small hot wallet.
Details and private disclosure: SECURITY.md.
Contributing
This public tree is a release snapshot. See CONTRIBUTING.md. Please follow the Code of Conduct.
License
Install
Add IronWallet to your client. Pick the one you use.
claude mcp add mcp-server -- npx -y @ironwallet/mcp-servercodex mcp add mcp-server -- npx -y @ironwallet/mcp-serveramp mcp add mcp-server -- npx -y @ironwallet/mcp-server{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@ironwallet/mcp-server"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@ironwallet/mcp-server"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp-server","command":"npx","args":["-y","@ironwallet/mcp-server"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@ironwallet/mcp-server"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@ironwallet/mcp-server"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@ironwallet/mcp-server"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp-server": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@ironwallet/mcp-server"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp-server": {
"command": {
"path": "npx",
"args": [
"-y",
"@ironwallet/mcp-server"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @ironwallet/mcp-serverRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
15 tools
IronWallet exposes 15 tools to a connected agent.
- list_wallets
- Names, addresses, and `policy`
- accept_mcp_consent
- Record chat acceptance of the MCP disclaimer
- create_wallets
- New wallets; returns a browser `backup_url`
- open_wallet_manager
- Local browser UI to import / create / back up
- set_wallet_policy
- Replace per-wallet limits (`readOnly`, `maxPerTxUsd`, allow-list)
- get_deposit_qr
- PNG QR (try chat; else local `qr_url`)
- get_balance
- Native or token balance
- estimate_transfer
- Fee estimate, no broadcast
- send_transfer
- Sign locally and send
- get_operation_status
- Poll a transfer
- list_swap_networks
- Networks available for swap
- list_swap_assets
- Sell / buy catalog
- estimate_swap
- Quote (may expire)
- execute_swap
- Fresh quote → sign → swap
- get_swap_status
- Poll a swap
Score
80 / 100
Excellent
- Documentation25/25
- Maintenance19/25
- Trust16/20
- Capability8/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 0 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 15 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 1.1.0Latest | Aug 28, 2026 |
| 1.0.2 | Aug 27, 2026 |