基板MCP

@ThomasMarches/substrate-mcp-rs
0 Stars 14 次浏览 ThomasMarches 更新于 2026-08-23

语言类型:英语 翻译结果:基板MCP服务器

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "substrate-mcp-rs": {
      "args": [],
      "command": "$PROJECT_ROOT_ABSOLUTE_PATH/target/release/substrate-mcp-rs"
    }
  }
}

该服务需要配置环境变量:RPC_URL、SIGNING_KEYPAIR_HEX

服务介绍

Substrate MCP 服务器

MIT License
Rust
Subxt

这是一个用 Rust 编写的用于 Substrate 区块链的 Model Context Protocol (MCP) 服务器。该项目通过 MCP 协议暴露动态的 Substrate 区块链操作(如查询余额、区块、模块、存储、事件等),并且可以通过环境变量完全配置。

设计用于与 subxt 库接口。

✨ 特性

  • 动态查询账户余额和存储
  • 列出模块及其条目
  • 获取并过滤事件和外部调用
  • 提交并监视动态签名交易
  • 访问系统和区块信息
  • 自定义 RPC 调用到 Substrate 节点

🚀 潜在用例

  1. AI 驱动的区块链操作

    • 与 LLMs(如 Cursor 或 Claude)集成,允许用户使用自然语言提问(例如,“Alice 最后一次转账是什么?”),并将这些问题转换为 MCP 工具调用。
    • 构建一个聊天机器人,可以回答问题、获取余额或解释链上活动,使用您的 MCP 服务器作为后端。
    • 使用 MCP 服务器为开发工具(如 VSCode、Cursor、Claude Code 等)提供链上活动的实时更新,例如余额变化或交易状态。
  2. 自定义仪表板和监控

    • 为您的 Substrate 区块链创建自定义仪表板和监控系统
    • 显示区块链操作的实时数据和分析
    • 设置关键事件的警报和通知
    • 使用 AI 代理通过实时分析事件和外部调用来检测可疑活动。

🛠️ 要求

  • Rust
  • 访问 Substrate 节点端点(WebSocket)
  • 有效的签名密钥对(十六进制格式)
  • 目标链的运行时元数据文件(请参阅下方的命名和放置说明)

📦 安装

克隆仓库并构建:

sh
git clone https://github.com/ThomasMarches/substrate-mcp-rs.git
cd substrate-mcp-rs
cargo build --release

⚙️ 配置

在项目根目录中创建一个 .env 文件,并包含以下变量:

env

Substrate 节点的 WebSocket 端点

RPC_URL=wss://your-node-url.example.com

作为十六进制的签名密钥对(32 字节,例如 subkey inspect-key --scheme Sr25519 的输出)

SIGNING_KEYPAIR_HEX=your_signing_keypair_hex_here

生成签名密钥对

您可以使用 subkey 生成密钥对并获取十六进制的秘密种子:

sh
subkey generate --scheme Sr25519 --output-type Json

使用 secretSeed 字段(如果存在则去掉 0x 前缀)作为 SIGNING_KEYPAIR_HEX

获取并放置运行时元数据

从您的节点导出运行时元数据,并将其放置在 artifacts/metadata.scale 中:

sh
subxt metadata -f bytes > artifacts/metadata.scale

重要提示: 该文件必须命名为 metadata.scale 并位于 artifacts/ 目录中,否则构建将失败。

▶️ 使用

启动 MCP 服务器:

sh
cargo run --release

服务器将启动并通过标准输入输出监听 MCP 请求。

🖇️ 与 Cursor 集成

要将此 MCP 服务器与 Cursor 一起使用,您需要将其添加到您的 Cursor MCP 配置中。这允许 Cursor 发现并与您的 Substrate MCP 服务器交互。

  1. 在发布模式下构建您的服务器:

    sh
    cargo build --release

  2. 找到构建后的二进制文件路径(通常是 target/release/substrate-mcp-rs)。

  3. 在您的项目(或全局).cursor/mcp.json 文件中,为您的服务器添加一个条目。例如:

    json
    {
    "mcpServers": {
    "substrate-mcp-rs": {
    "command": "$PROJECT_ROOT_ABSOLUTE_PATH/target/release/substrate-mcp-rs",
    "args": []
    }
    }
    }- 将 command 路径替换为您的构建二进制文件的绝对路径(如果不同)。

  4. 重启 Cursor。它现在应该能够检测并连接到您的 Substrate MCP 服务器,使工具可用。

有关更多详细信息,请参阅 Cursor 文档模型上下文协议介绍

🧰 可用工具

服务器提供了一组用于与 Substrate 区块链交互的工具,包括:

  • query_balance: 获取账户余额
  • list_pallets: 列出运行时中的所有模块
  • list_pallet_entries: 列出某个模块的所有存储项
  • dynamic_runtime_call: 执行运行时 API 调用
  • send_dynamic_signed_transaction: 构建、签名并发送交易
  • query_storage: 按模块和条目查询存储
  • get_latest_events: 获取最新区块中的所有事件
  • find_events: 按模块和变体查找特定事件
  • get_latest_block: 获取最新区块的详细信息
  • get_block_by_hash: 按哈希获取区块详细信息
  • find_extrinsics: 查找最新区块中的外部调用
  • get_system_info: 通过 RPC 获取系统信息
  • custom_rpc: 发起自定义 RPC 调用

请参阅 src/tooling/substrate.rs 以获取完整详细信息和参数。

🗂️ 项目结构

  • src/main.rs: 入口点,设置日志记录并启动 MCP 服务器
  • src/tooling/: 包含 Substrate 工具实现
  • artifacts/: 在此放置您的运行时元数据文件 metadata.scale(在构建前需要)

📈 下一步和目标

  • 添加端到端测试
  • 添加单元测试
  • 添加更多工具

🤝 贡献

欢迎贡献!请提出问题或拉取请求。对于较大的更改,请先提出问题讨论您的提案。

  • 遵循 Rust 最佳实践,并确保代码有文档
  • 提交前运行 cargo fmtcargo clippy
  • 尽可能添加测试

📄 许可证

MIT

相关 MCP 服务