mcpField
I
IronWallet

IronWallet

本地服务
ironwallet.io金融数据07 周前更新

关于 IronWallet

IronWallet 是面向 AI Agent 的本地 MCP 服务,用于查询和操作非托管加密货币钱包。助记词加密保存在主机上,交易在本地签名,并支持多条网络上的余额查询、转账和兑换。

主要功能

  1. 01本地加密密钥库与签名
  2. 02查询原生币和代币余额
  3. 03估算转账费用并发送
  4. 04获取兑换报价并执行兑换
  5. 05按钱包设置操作限制

适用场景

  1. 01查看钱包余额与交易记录
  2. 02发送加密货币前估算费用
  3. 03在支持的网络间兑换代币
  4. 04通过钱包策略限制转账和兑换

MCP 相关

通过 stdio 向 MCP 客户端提供钱包管理、余额、历史记录、转账和兑换工具。签名在本地进行,工具输入和输出不会暴露助记词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"io-ironwallet": {
"command": "npx",
"args": [
"-y",
"@ironwallet/mcp-server"
],
"env": {
"IW_READ_ONLY": "<IW_READ_ONLY>"
}
}
}
}
启动命令npx -y @ironwallet/mcp-server
需要配置的环境变量
IW_READ_ONLYSet to true to disable send_transfer and execute_swap for the whole server. Balances, estimates, and lists still work.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@ironwallet/mcp-server1.2.1

工具

18

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

@ironwallet/mcp-server

适用于 IronWallet 的本地 MCP 服务(ironwallet-mcp 可执行文件)。

IronWallet MCP 服务可让 AI Agent 安全地访问非托管钱包。助记词会加密保存在主机上,绝不会离开这台机器,也不会经过 Agent。Agent 可以查询余额、在本地签名、转移代币,并在 10 多个网络上兑换。

与 IronWallet 应用兼容同一种助记词。

每笔交易都不会弹出确认界面。

仅限热钱包。 请使用余额有限的专用钱包。参见安全性。

产品页面:ironwallet.io/ai

要求: Node.js 20+(npx)。


安装

npx -y @ironwallet/mcp-server

也可以添加到 MCP 配置中(Cursor:.cursor/mcp.json 或全局配置):

{
  "mcpServers": {
    "ironwallet": {
      "command": "npx",
      "args": ["-y", "@ironwallet/mcp-server"]
    }
  }
}

npx 会拉取最新发布的构建版本。首次启动时,依赖项安装可能需要约 30 秒。如果 MCP 客户端超时,请先在终端中运行一次相同的命令以预热缓存,然后重新连接。

在 ironwallet.io/ai 上安装插件会自动完成配置。


工作原理

MCP client  →  ironwallet-mcp (stdio)
                    ├── encrypted keystore on disk
                    ├── signs on this machine
                    └── HTTPS to IronWallet backends

助记词绝不会出现在工具的输入/输出、供 Agent 查看日志,或发送到后端、大模型或 MCP 客户端云端的请求中。


功能

领域功能
网络Ethereum、BSC、Polygon、Base、Arbitrum、Optimism、Avalanche、Tron、Bitcoin、Litecoin、Dogecoin、Solana、XRP、TON
钱包创建、导入、列出、存款二维码和备份(机密信息使用本地浏览器)
余额原生币和代币
转账通过 IronWallet 的转账中继估算费用并发送
兑换通过 IronWallet 获取报价并执行兑换
策略可选的单钱包限额(readOnly、maxPerTxUsd、转账收款方允许列表),通过 set_wallet_policy 设置。适用于 send_transfer 和 execute_swap。

工具

工具用途会转移资金吗?
get_runtime_info正在运行的版本与已发布的 npm 软件包版本对比否
prepare_update暂存 npm 更新,供下次重启时应用否
list_wallets名称、地址和 policy否
accept_mcp_consent记录聊天中对 MCP 免责声明的接受情况否
create_wallets创建新钱包;返回浏览器 backup_url否
open_wallet_manager本地浏览器界面,可用于导入/创建/备份/删除否
set_wallet_policy替换单钱包限额(readOnly、maxPerTxUsd、允许列表)否
get_deposit_qrPNG 二维码(优先尝试在聊天中显示;否则使用本地 qr_url)否
get_balance原生币或代币余额否
get_transaction_history从公开区块浏览器获取近期交易(分页)否
estimate_transfer估算费用,不广播交易否
send_transfer在本地签名并发送是
get_operation_status查询转账状态否
list_swap_networks可用于兑换的网络否
list_swap_assets卖出/买入目录否
estimate_swap获取报价(可能过期)否
execute_swap获取最新报价 → 签名 → 兑换是
get_swap_status查询兑换状态否

没有任何工具会接受或返回助记词。只能在本地浏览器中导入、备份和删除(open_wallet_manager / backup_url)。

钱包
  • 创建: create_wallets — Agent 会获取名称和地址;在浏览器中打开 backup_url,即可查看并备份恢复短语。
  • 导入 / 备份: open_wallet_manager — 仅限环回地址访问的页面;短语只会在浏览器中输入或显示。
  • 删除: 管理器中的“删除”按钮。单独的确认页面会要求用户重新输入钱包名称;从未备份的钱包还需要明确确认其恢复短语将被销毁。资金不会转移。没有对应的 MCP 工具。
  • 列表: list_wallets
  • 存款二维码: get_deposit_qr — PNG(即时生成)和 qr_url。如果宿主能渲染图片,请在聊天中显示;否则打开 qr_url。传入 network 可指定单条链。钱包管理器中每个地址旁也有二维码按钮。

浏览器页面会绑定到 127.0.0.1 下一个不可猜测的路径,并在闲置 15 分钟后关闭。

转账
  1. list_wallets / get_balance
  2. estimate_transfer(可选)
  3. send_transfer
  4. 需要等待操作完成时,调用 get_operation_status

send_transfer 可能会略微减少转账金额,以确保余额足以支付手续费;如果发生这种情况,响应中会说明。

兑换

兑换与转账是独立的流程。

  1. list_swap_networks
  2. list_swap_assets(先使用 direction=from,再使用所选卖出资产调用 direction=to)
  3. 将目录中的 network、symbol、address、decimals 复制到 estimate_swap / execute_swap 中(尤其是代币)
  4. 调用 estimate_swap 预览,或直接调用 execute_swap
  5. 使用 execute_swap 返回的 operationId 调用 get_swap_status 轮询(estimate_swap 是报价,没有状态)

实用选项

  • maxMode: true — 尽可能多地卖出余额,具体金额由服务决定(手续费由服务器端计算)。设置 maxMode 后可省略 amount。
  • 只有原生币可以省略 address。对于代币,请始终传入 list_swap_assets 返回的 address(最好也传入 decimals)。

操作说明

  • 报价会过期。优先使用 execute_swap(获取最新报价)。如果执行超时,请先轮询状态再重试——不要盲目地再次执行。
  • 钱包策略:readOnly 会阻止发送和兑换。maxPerTxUsd 会在操作时通过 IronWallet 后端汇率将转账金额(或修正后的兑换卖出金额)折算为美元;如果没有可用汇率,操作会被拒绝(失败时默认关闭)。收款方允许列表适用于 send_transfer。set_wallet_policy 会替换整个策略——请先读取 list_wallets.policy。

配置

正常使用时,无需在 MCP 配置中粘贴任何内容。首次启动时,服务会在 ~/.ironwallet-mcp/ 下写入中继 API 密钥、密钥库包装密钥和设备 ID(keystore-passphrase、relay-api-key、device-id;POSIX 系统上仅所有者可访问,权限为 0600;Windows 上使用 NTFS ACL)。仅在需要覆盖这些值时设置环境变量。

面向用户的备份是钱包管理器中的恢复短语,而不是这些文件。

变量默认值说明
IW_PASSPHRASE本地生成覆盖密钥库包装密钥
IW_READ_ONLYfalse进程级设置:拒绝 send_transfer 和 execute_swap。设为 true/1 启用;设为 false/0/off/no 禁用。与钱包级的 policy.readOnly 不同。
IW_RELAY_API_KEY生成的 UUID覆盖 x-api-key
IW_DEVICE_ID生成的 UUID覆盖设备 UUID(在同一密钥库目录下保持稳定)。发送时使用 X-Device-Id: web:<uuid>;如果值已带有 platform: 前缀,则按原样发送
IW_KEYSTORE_DIR~/.ironwallet-mcp密钥库目录
IW_RATES_API_URL内置配置文件用于计算 maxPerTxUsd 限额的汇率后端。若配置文件中未设置,则拒绝 USD 限额(默认拒绝)
IW_STATIC_RESOURCES_URL内置配置文件静态资产目录(代币 → 汇率 ID)
IW_HTTP_TIMEOUT_MS15000常规 HTTP 超时(1s–120s)
IW_HTTP_FORWARD_TIMEOUT_MS60000广播类调用的较长超时时间。客户端超时不一定表示操作失败——请检查状态
IW_HTTP_RETRIES2对安全/幂等调用进行重试;不会自动重试广播
IW_HISTORY_APIS内置配置文件JSON { "<network>": [{ "kind", "url"? }, …] } — get_transaction_history 每个网络的历史索引器链,按顺序尝试。类型:etherscan、nodereal、tronscan、trongrid、esplora、blockcypher、solana-rpc、toncenter、tonapi、xrp-rpc
IW_TON_API_KEY未设置TonCenter API 密钥。不带密钥的 TonCenter 每个 IP 约为 1 次请求/秒(同一 NAT 后的所有进程共享此限制)
IW_TONAPI_KEY未设置用于 tonapi 历史回退的 tonapi.io Bearer 令牌;不带密钥时每个 IP 约为 1 次请求/秒
IW_LOG_ENABLED1将 JSONL 诊断信息写入日志文件(设为 0 可禁用)
IW_LOG_FILE{keystoreDir}/logs/iw-mcp-YYYY-MM-DD.jsonl日志路径
IW_LOG_LEVELinfodebug / info / warn / error
IW_LOG_STDERR0将日志镜像输出到 stderr(stdout 保留给 MCP)

安全

  • 种子会加密存储。它们绝不会出现在工具结果、Agent 聊天内容或后端请求中。
  • Agent 无需再次询问即可转移资金。可选的钱包策略(readOnly、maxPerTxUsd、转账收款方允许列表——通过 set_wallet_policy 设置)默认关闭,并同时适用于 send_transfer 和 execute_swap。
  • 任何同时持有密钥库和包装密钥的人都能控制资金。泄露的种子无法撤销。
  • 超时不一定代表失败:重试发送或兑换前,请先轮询状态。
  • 仅支持桌面端 / stdio。手机或远程 Agent 需要采用一种让签名留在可信设备上的设计。
  • 不要在此处存放主钱包。请使用小额热钱包。

详情及私下披露方式:SECURITY.md。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。