kaspa节点mcp
MCP服务器,用于与任何 生锈的卡斯帕 通过WebSocket上的wRPC Borsh连接节点。
赋予人工智能代理(Claude Code、OpenClaw等)查询Kaspa区块链、管理钱包和提交交易的能力,包括锚定和验证链上的KPM有效载荷。
特性
- 任何网络:主网、测试网-10、测试网-11、测试网-12、开发网
- 满钱包:BIP39助记符生成、BIP44推导、加密持久性
- 交易:通过WASM生成器构建、签署和提交(符合KIP-9标准)
- KPM意识:自动解析KPM锚点有效载荷(
KPM1 || mode || hash) - 加密钱包:AES-256-GCM,带加密KDF,存储在
~/.kaspa-mcp/wallet.enc - 两次运输:stdio(克劳德代码)或HTTP(OpenClaw/remote)
- 延迟连接:服务器立即启动,在第一次工具调用时连接到节点
工具
只读区块链查询
| 工具 | 目的 |
|---|---|
kaspa_get_info | 节点健康状况(同步状态、内存池、版本) |
kaspa_get_server_info | 网络ID、RPC版本、DAA得分 |
kaspa_get_block_dag_info | DAG状态(提示、难度、块数) |
kaspa_get_block | 使用可选事务按哈希值获取块 |
kaspa_get_balance | sompi和KAS中的地址平衡 |
kaspa_get_utxos | UTXO最多可设置100个地址 |
kaspa_find_transaction_in_block | 查找并解析特定块中的tx |
kaspa_search_blocks_for_transaction | BFS按ID搜索最近的交易块 |
kaspa_verify_kpm_anchor | 验证链条上的KPM锚有效载荷 |
kaspa_get_coin_supply | 循环和最大供应 |
钱包管理
| 工具 | 目的 |
|---|---|
kaspa_generate_mnemonic | 生成BIP39助记词,自动激活钱包 |
kaspa_get_my_address | 显示活动钱包地址和网络 |
kaspa_save_wallet | 将助记符加密为 ~/.kaspa-mcp/wallet.enc |
kaspa_load_wallet | 解密并激活会话钱包 |
kaspa_estimate_fee | 连接节点的费用估算 |
交易
| 工具 | 目的 |
|---|---|
kaspa_send_transaction | 构建、签署、提交KAS传输(带可选有效载荷) |
先决条件
- Node.js 20+
- 启用了wRPC Borsh的正在运行的生锈的kaspa节点
# Testnet-12
supertypo/rusty-kaspad --testnet --netsuffix=12 --utxoindex
# Mainnet
kaspad --utxoindex安装
git clone https://github.com/27inator/Kaspa-node-mcp.git
cd kaspa-node-mcp
npm install
npm run build用法
使用克劳德代码(stdio)
添加到您的Claude Code MCP设置中:
{
"mcpServers": {
"kaspa-node": {
"command": "node",
"args": ["/path/to/kaspa-node-mcp/dist/index.js"],
"env": {
"KASPA_ENDPOINT": "ws://localhost:17210"
}
}
}
}使用OpenClaw(HTTP)
KASPA_ENDPOINT=ws://localhost:17210 TRANSPORT=http PORT=3001 node dist/index.js然后在OpenClaw中注册为MCP端点 http://localhost:3001/mcp.
钱包设置
第一次
1. Use kaspa_generate_mnemonic → wallet auto-activates, shows address
2. Use kaspa_save_wallet(password) → encrypted to ~/.kaspa-mcp/wallet.enc
3. Fund the address with testnet KAS每次会议之后
Server starts → "Encrypted wallet found. Use kaspa_load_wallet to unlock."
1. Use kaspa_load_wallet(password) → wallet unlocked, ready to use不需要环境变量。助记符在静止时用AES-256-GCM加密(密码密钥推导,N=65536,r=8,p=1)。文件权限: 0600.
备选方案:环境变量
如果你更喜欢env变量而不是加密文件:
KASPA_MNEMONIC="your 24 word mnemonic phrase here"
# or
KASPA_PRIVATE_KEY="hex_private_key"环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
KASPA_ENDPOINT | ws://localhost:17210 | wRPC Borsh WebSocket URL |
KASPA_NETWORK | *(自动检测)* | 网络:主网、测试网-10、测试网-11、测试网-12 |
KASPA_MNEMONIC | BIP39助记短语(如果使用加密钱包,则可选) | |
KASPA_PRIVATE_KEY | 十六进制私钥,助记符的替代品 | |
KASPA_ACCOUNT_INDEX | 0 | BIP44账户索引 |
TRANSPORT | stdio | 运输: stdio 或 http |
PORT | 3000 | HTTP端口(仅限HTTP传输) |
按网络列出的默认端口
| 网络 | wRPC Borsh | wRPC JSON |
|---|---|---|
| 主网 | 17110 | 18110 |
| 测试网-10 | 17210 | 18210 |
| 测试网-11 | 17310 | 18310 |
| 测试网-12 | 17210 | 18210 |
此服务器使用 wRPC波什 (17xxx端口),而不是JSON。
KPM锚验证
这 kaspa_verify_kpm_anchor 该工具解析KPM的链上有效载荷格式:
Bytes: "KPM1" (4 bytes) || modeByte (1 byte) || hash (32 bytes)
Total: 37 bytes
modeByte 0x01 = INDIVIDUAL (single event hash)
modeByte 0x02 = MERKLE (Merkle root)验证流程:
- KPM使用txid T将数据锚定在块B中
- 呼叫
kaspa_verify_kpm_anchorblockHash=B,transactionId=T,expectedHash=X - 工具获取块,找到tx,解析KPM有效载荷
- 退货
verified: true如果链上哈希匹配
发展
npm run dev # Watch mode (tsc --watch)
npm run build # Compile to dist/
npm start # Run server测试
node test-wallet-store.mjs # Encrypted wallet: 34 assertions
node test-full-workflow.mjs # End-to-end: generate → save → load
node test-smoke.mjs # Node integration (requires running TN12 node)许可证
麻省理工学院
