🔒 Monero MCP服务器
世界上第一台Monero的MCP服务器。给任何AI代理一个私人钱包。
______________________________________________________________________
这是什么?
这是AI代理和Monero网络之间的桥梁。它让任何AI代理—— OpenClaw、Agent Zero、Claude或任何与MCP兼容的框架——检查平衡, 通过简单的工具界面接收付款和发送XMR。
可以这样想:你的人工智能代理获得了自己的门罗币钱包。
等等,什么是MCP?
MCP(模型上下文协议)是Anthropic创建的一个标准,允许AI助手使用外部工具。人工智能不仅可以生成文本,还可以调用真正的函数——读取文件、查询数据库,或者在这种情况下,与门罗币钱包进行交互。
如果你曾经希望你的AI代理能够自主接收和发送XMR—— 无论是运行服务的OpenClaw代理,还是agent Zero实例 管理自己的预算,或者只是克劳德检查你的余额——这就是它的作用。
为什么选择门罗币?为什么不是以太坊或比特币?
因为人工智能代理比人类更需要隐私。
当一个人进行交易时,会有自然的噪音——你随机买咖啡,不定期支付租金,你的模式很混乱。AI代理是不同的。每一笔交易都遵循逻辑。在透明的区块链上,任何人都可以观察代理的链上行为,并对其策略、触发器以及如何利用它进行逆向工程。
Monero的默认隐私设计意味着代理人的交易历史、余额和交易对手都是隐藏的。这不是一件好事——这是任何处理真正价值的自主代理的安全要求。
隐私不是人工智能代理的功能。这是基础设施。
特性
12工具 涵盖AI代理所需的一切:
| 类别 | 工具 |
|---|---|
| 余额和信息 | get_balance, get_address, get_height, get_version |
| 交易记录 | get_transfers, get_transfer_by_txid |
| 接收 | create_address, make_integrated_address |
| 发送 | transfer, sweep_all, confirm_transfer |
| 验证 | validate_address |
| 可选(选择加入) | get_exchange_rate (XMR/USD,XMR/EUR;套 MONERO_ENABLE_PRICE_FEED=true) |
默认情况下为只读。 发送XMR需要通过环境变量显式选择加入。
安全:为敌对世界而建
该服务器假设AI代理将遇到即时注入攻击——旨在诱骗AI向攻击者发送资金的恶意文本。人工智能不是我们的安全边界。MCP服务器是。
五个防御层,全部可配置:
🛡️ 地址允许列表 –仅锁定传输到已知地址。即时注射无法发送到未知钱包。
🛡️ 两步确认 –转账返回预览+一次性代币。必须致电 confirm_transfer 执行。攻击者无法预测令牌。
🛡️ 速率限制 –转账之间的冷却+每日XMR限额。即使其他一切都失败了,也能限制损害。
🛡️ 审计日志 –每个工具调用都记录为JSONL。被拒绝的转账也会被记录下来——这些都是有趣的。
🛡️ 输入消毒 在任何东西到达RPC之前,都要进行严格的base58验证。
这是一个可以转移真钱的工具。我们为这一现实建立了安全保障。
快速启动(5分钟)
在不下载区块链的情况下,获取主网接收地址并验证MCP服务器:
git clone && cd monero-mcp
npm install && npm run build
docker compose up -d
./test-connection.sh你会看到你的 主网接收地址.向其发送XMR。要测试MCP握手(stdio):
node test-mcp-stdio.mjs可选:运行完整的MCP测试脚本(build+stdio测试;运行 npm install 如果需要):
./test-mcp.shClaude桌面集成
添加到您的Claude桌面配置 (~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"monero": {
"command": "npx",
"args": ["-y", "monero-mcp@latest"],
"env": {
"MONERO_RPC_HOST": "127.0.0.1",
"MONERO_RPC_PORT": "18082",
"MONERO_NETWORK": "mainnet",
"MONERO_ALLOW_TRANSFERS": "false"
}
}
}
}重新启动克劳德桌面。问:“我的门罗币余额是多少?”以进行验证。
Cursor/Claude代码集成
增添 .cursor/mcp.json 或克劳德代码MCP配置:
{
"mcpServers": {
"monero": {
"command": "npx",
"args": ["-y", "monero-mcp@latest"],
"env": {
"MONERO_RPC_HOST": "127.0.0.1",
"MONERO_RPC_PORT": "18082",
"MONERO_NETWORK": "stagenet",
"MONERO_ALLOW_TRANSFERS": "false"
}
}
}
}码头工人
docker run -e MONERO_RPC_HOST=host.docker.internal \
-e MONERO_RPC_PORT=18082 \
-e MONERO_NETWORK=stagenet \
ghcr.io/baltsar/monero-mcp:latest______________________________________________________________________
Agent Zero集成
使用此MCP服务器 零号特工 在Docker中:
- 看 **** 用于容器运行命令和卷装载。
- 钱包持久性: 如果重新创建容器,钱包可能会丢失,除非它在主机上运行或使用持久卷。要获得最稳健的设置,请运行
monero-wallet-rpc在主机上,将MCP指向host.docker.internal:18083.详细信息和备份步骤: . - 验证(Agent Zero+Docker): 在依赖您的钱包之前:(1)确认钱包rpc是 不 在Agent Zero容器内运行。(2)确认主机上存在钱包文件(例如。
~/monero-wallet/)或者你使用这个仓库docker compose(钱包住在wallet-data体积)。完整检查表: → 验证。 - 在Agent Zero中→ 设置→ MCP,添加服务器:
| 字段 | 值 |
|---|---|
| 姓名 | monero |
| 指挥部 | node |
| Args | /monero-mcp/build/index.js |
环境: MONERO_RPC_HOST=host.docker.internal, MONERO_RPC_PORT=18083, MONERO_NETWORK=mainnet, MONERO_ALLOW_TRANSFERS=false (只读)。
复制粘贴配置和故障排除: .
______________________________________________________________________
远程节点
默认堆栈使用 远程节点 (无本地区块链同步)。中的默认守护进程 docker-compose.yml:
- 违约:
rucknium.me:18081
如果你得到“没有连接到守护进程”,请更改 --daemon-address 在 docker-compose.yml 到其中一个并重新创建 wallet-rpc:
xmr-node.cakewallet.com:18081node.moneroworld.com:18089
要运行自己的节点并下载链: docker compose --profile local-node up -d.
______________________________________________________________________
故障排除
| 问题 | 该怎么办 |
|---|---|
| “未连接到守护进程” | 在中切换远程节点 docker-compose.yml (请参阅上面的远程节点)并运行 docker compose up -d --force-recreate wallet-rpc. |
| 容器重新创建后钱包消失 | 在主机上运行钱包rpc,或使用持久卷作为钱包目录,永远不要运行 docker compose down -v。参见 → 钱包持久性。 |
| 测试连接.sh中的地址为空 | 安装 jq 为了实现可靠的JSON解析,或者使用脚本内置的grep回退(确保钱包rpc已启动并有一个打开的钱包)。 |
| 钱包rpc无法启动 | 检查一下 entrypoint-wallet.sh 不添加 --rpc-bind-ip (作曲已经通过了)。你一定有 --confirm-external-bind 在绑定到0.0.0.0的入口点。 |
| test-mcp.sh:“tsc:找不到命令” | 快跑 npm install 回购优先;如果满足以下条件,脚本也会自动运行它 node_modules 不见了。 |
______________________________________________________________________
手动设置(无Docker)
先决条件
你需要跑步 monero-wallet-rpc 例子如果你只是在测试:
# Download Monero CLI from https://getmonero.org/downloads
# Start the daemon on stagenet (test network, no real money)
monerod --stagenet --detach
# Start wallet RPC on stagenet
monero-wallet-rpc --stagenet \
--rpc-bind-port 38082 \
--wallet-dir ./wallets \
--disable-rpc-login安装和构建
# From this repo root:
npm install
npm run build配置
复制 .env.example 并编辑:
cp .env.example .envMONERO_RPC_HOST=127.0.0.1
MONERO_RPC_PORT=38082
MONERO_NETWORK=stagenet
# Safety defaults – read only
MONERO_ALLOW_TRANSFERS=false
MONERO_REQUIRE_CONFIRMATION=true
MONERO_TRANSFER_COOLDOWN_SECONDS=60
MONERO_AUDIT_LOG_FILE=./monero-mcp-audit.jsonl连接到您的代理
这是一个使用stdio传输的标准MCP服务器。 将其连接到任何兼容MCP的代理或框架。
示例–手动启动服务器:
node build/index.js服务器使用JSON-RPC(MCP协议)通过stdin/stdout进行通信。 将代理框架的MCP客户端配置指向二进制文件,就可以了。
与OpenClaw、Agent Zero、Claude Code、Cursor、, 任何支持MCP的本地LLM设置——无论您运行什么。
使用MCP检查员进行测试
npx @modelcontextprotocol/inspectorMCP文件
- 协议: 模型上下文协议
- TypeScript SDK: 模型上下文协议/类型脚本sdk
配置参考
| 变量 | 默认值 | 描述 |
|---|---|---|
MONERO_RPC_HOST | 127.0.0.1 | 钱包RPC主机 |
MONERO_RPC_PORT | 18082 | 钱包RPC端口 |
MONERO_RPC_USER | – | RPC用户名(摘要身份验证) |
MONERO_RPC_PASS | – | RPC密码(摘要身份验证) |
MONERO_NETWORK | mainnet | mainnet, stagenet,或 testnet |
MONERO_ALLOW_TRANSFERS | false | 启用发送操作 |
MONERO_MAX_TRANSFER_AMOUNT | – | 每次转账的最大XMR |
MONERO_DAILY_LIMIT_XMR | – | 每滚动24小时发送的最大XMR |
MONERO_TRANSFER_COOLDOWN_SECONDS | 0 | 传输之间的最小秒数 |
MONERO_ALLOWED_ADDRESSES | – | 逗号分隔的地址列表 |
MONERO_REQUIRE_CONFIRMATION | true | 两步转账确认 |
MONERO_AUDIT_LOG_FILE | – | JSONL审核日志的路径 |
MONERO_ENABLE_PRICE_FEED | false | 启用 get_exchange_rate (外部API;请参见.env.example中的隐私说明) |
推荐生产配置
MONERO_ALLOW_TRANSFERS=true
MONERO_ALLOWED_ADDRESSES=4YourTrustedAddress1,4YourTrustedAddress2
MONERO_REQUIRE_CONFIRMATION=true
MONERO_DAILY_LIMIT_XMR=1.0
MONERO_TRANSFER_COOLDOWN_SECONDS=300
MONERO_AUDIT_LOG_FILE=./audit.jsonl网络
| 网络 | 守护程序端口 | 钱包RPC端口 | 地址前缀 | 真钱? |
|---|---|---|---|---|
| 主网 | 18081 | 18082 | 4 / 8 | ✅ 是的 |
| 舞台布景 | 38081 | 38082 | 5 / 7 | ❌ 否-将其用于测试 |
| 测试网 | 28081 | 28082 | 9 / B | ❌ 没有 |
⚠️ 状态:早期Alpha
这是v0.1——在前往Monerotopia之前的一个晚上建造的。
它可以编译,安全层已经到位,但尚未经过审核。 不要使用你无法承受损失的主网资金。
如果你是Monero开发人员或安全研究人员:把它拆开。 这就是我们如何使其为生产做好准备。
⚠️ 重要警告
此软件未经审核。 它是早期的开源软件 与真钱互动。使用风险自负。
你的种子短语是你的责任。 把它写下来。离线存储。 如果你失去了它,你的资金就会永久消失。没人能帮你。
AI代理可以被操纵。 此服务器中的安全层(地址 allowlists、两步确认、速率限制、审计日志)降低风险 但不要消除它。在生产中始终使用所有可用的保护措施。
不要用你无法承受损失的资金。
从stagenet开始。 在接近主网之前,测试那里的所有内容。自由 测试XMR可通过水龙头获得。
看 免责声明.md 了解全部细节。
贡献
我们需要帮助。这是v0.1,有很多事情要做 贡献.md 了解详情。
好的第一个问题:
- 针对常见RPC故障的更好的错误消息
- 交易备忘录/备注支持
- 多目的地转账
需要帮助:
- RPC连接的Tor代理支持
- Multisig钱包操作
- 冷签名工作流程
- 通过RPC集成硬件钱包
- 带有stagenet的集成测试套件
许可证
麻省理工学院——随心所欲。
致谢
出于对门罗币社区的热爱而建造。
受...启发 货币乌托邦2026 以及一个简单的想法,即如果人工智能代理要处理资金,他们应该私下处理。
______________________________________________________________________
*如果你觉得这很有用,可以考虑捐赠XMR来支持开发:*
45CGtczedKaT6gLHUd2FDebFjGpzio3FzB2AKtx82NxWPF99cfTMeJcCs1XhF9zJTLNVmd6chvMHSNb2symioZkp2f24nfK
