Skip to content

AI 代理(MCP) ​

neurochain-mcp 是一个 Model Context Protocol 服务器。它让 AI 助手——Claude Code、Claude Desktop 或任何 MCP 客户端——读取链上数据,并在你设定的限制内对链进行操作。

AI 助手 ⇄ (MCP 经由 stdio) ⇄ neurochain-mcp ⇄ (HTTP) ⇄ gateway :3000 ⇄ 节点 :9933

该服务器是仓库 neurochain-mcp/ 目录下的纯 Node.js 程序(无需构建步骤)。它只与 gateway 的 REST API 通信。

安全保障 ​

  • 写操作使用会话密钥签名,绝不使用钱包的主密钥。会话密钥由你的主密钥授予,带有作用范围、支出上限和有效期,每个验证者都会在共识中强制执行这些限制——参见账户抽象 → 会话密钥。
  • 会话密钥不能管理 Sentinel 信任列表,也不能确认被暂扣的转账。如果 Sentinel 暂扣了一笔有风险的转账,只有你本人才能放行。
  • 质押、委托和治理投票不向代理开放。
  • 没有会话密钥时,服务器以只读模式运行。

配置 ​

1. 安装 ​

bash
cd neurochain-mcp
npm install

2. 创建会话密钥和配置文件 ​

在 Web 钱包中打开 Agent 面板,创建会话密钥——选择它可以转账的目标地址(或 *)、总支出上限以及有效的区块数——然后点击 Export config。你会得到:

json
{
  "node_rpc": "http://localhost:3000",
  "account": "neuro:<15 hex>.human",
  "session_pk": "<会话公钥,hex>",
  "sk_seed_hex": "<会话密钥 seed,hex>",
  "scope": "*"
}
字段含义
node_rpcgateway 的 URL(不是节点的 9933 端口)。钱包会填入当前页面自身的地址;如果 gateway 运行在别处,请修改
account代理所代表的地址
session_pk、sk_seed_hex会话密钥。两者都留空即为只读
scope仅供参考——真正生效的是链上的授权

把文件保存在仓库之外并妥善保管:sk_seed_hex 是机密。

3. 注册服务器 ​

Claude Code:

bash
claude mcp add neurochain \
  --env NEUROCHAIN_MCP_CONFIG=/absolute/path/to/neurochain-mcp.config.json \
  -- node /absolute/path/to/neurochain-mcp/src/index.js

Claude Desktop(claude_desktop_config.json)或项目的 .mcp.json:

json
{
  "mcpServers": {
    "neurochain": {
      "command": "node",
      "args": ["/absolute/path/to/neurochain-mcp/src/index.js"],
      "env": { "NEUROCHAIN_MCP_CONFIG": "/absolute/path/to/neurochain-mcp.config.json" }
    }
  }
}

请使用绝对路径:客户端会从它自己的工作目录启动服务器。

工具 ​

读取 ​

工具参数返回
nc_get_accountaddress(默认:配置的账户)余额、nonce、交易数量
nc_get_txsaddress、limit(1–200)交易历史
nc_gas_estimate—基础费用和费用估算
nc_list_proposalsstatus、limit(1–100)、offset带计票结果的治理提案
nc_list_validators—验证者及其质押和指标
nc_get_contractaddress(.app)所有者、代码哈希、安全分数
nc_analyze_contractbytecode_hexVMGuardian 分析——风险、违规项
nc_get_session_grantsaddress账户的会话密钥,含上限和已花费金额
nc_get_heldaddress被 Sentinel 暂扣的转账

写入(需要会话密钥) ​

工具参数说明
nc_transferto、amount_nro(NRO,可带小数)如果被 Sentinel 暂扣,工具会说明它是会自动放行,还是需要你确认
nc_call_contractto(.app)、function、args、value(uNRO,默认 0)
nc_deploybytecode_hex、name、description、template、init_args与任何部署一样经过 VMGuardian 关卡

每次写操作都会读取下一个 nonce,用会话密钥签名,并发送到 POST /api/v1/transactions。节点在每个验证者上检查授权;例如,超出上限的转账会返回:

Error: POST /api/v1/transactions failed: HTTP 401 — session spend cap exceeded

已验证 ​

在本地测试网络上:读取工具返回实时数据;使用上限为 5 NRO 的会话密钥执行 1 NRO 的 nc_transfer 得到确认,授权中记录为 spent: 1000000;随后一笔 10 NRO 的转账以上述错误被拒绝;未配置会话密钥时,写入工具直接拒绝,不做任何签名。

撤销 ​

在钱包的 Agent 面板中撤销密钥,或用主密钥签名调用 POST /api/v1/session/revoke。从下一个区块起,用该密钥签名的一切操作都会被拒绝。