返回市场
底座-mcp-锈钢

底座-mcp-锈钢

作者:ThomasMarches11 星标更新:2025-10-12

项目介绍

Substrate MCP 服务器

MIT 许可证 Rust

信任评分

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

设计用于与 subxt 库交互。

✨ 特性

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

🚀 潜在应用场景

  1. 基于AI的区块链操作

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

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

🛠️ 需求

  • Rust
  • 对 Substrate 节点端点(WebSocket)的访问权限
  • 有效的签名密钥对(十六进制)
  • 目标链的运行时元数据文件(见下文关于命名和放置)

📦 安装

克隆仓库并构建:

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

⚙️ 配置

在项目根目录创建一个 .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 生成密钥对并获取十六进制的私钥种子:

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

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

获取并放置运行时元数据

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

subxt metadata -f bytes > artifacts/metadata.scale

重要: 在构建之前,该文件必须命名为 metadata.scale 并位于 artifacts/ 目录中。如果缺少或命名错误,构建将会失败。

▶️ 使用方法

启动 MCP 服务器:

cargo run --release

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

🖇️ 与 Cursor 集成

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

  1. 以发布模式构建你的服务器:

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

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

    {
      "mcpServers": {
        "substrate-mcp-rs": {
          "command": "$PROJECT_ROOT_ABSOLUTE_PATH/target/release/substrate-mcp-rs",
          "args": []
        }
      }
    }
    
    • 如果路径不同,请替换 command 路径为绝对路径到你的已构建二进制文件。
  4. 重启 Cursor。它现在应该能够检测并连接到你的 Substrate MCP 服务器,使其工具可用。

更多详情,请参阅 Cursor 文档Model Context Protocol 介绍

🧰 可用工具

服务器公开了一组用于与 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