Skip to main content
Glama

Substrate MCP Server

Substrate MCP 服务器

一个用 Rust 编写的用于 Substrate 区块链的模型上下文协议(MCP)服务器。该项目通过 MCP 协议公开动态 Substrate 区块链操作(查询余额、区块、模块、存储、事件等),并且可以通过环境变量进行完全配置。

设计用于与subxt板条箱接口。

✨ 特点

  • 动态查询账户余额和存储
  • 列出托盘及其条目
  • 获取并过滤事件和外部信息
  • 提交并查看动态签名交易
  • 访问系统和阻止信息
  • 对 Substrate 节点的自定义 RPC 调用

🚀 潜在用例

  1. 人工智能驱动的区块链运营
    • 与 LLM(如 Cursor 或 Claude)集成,允许用户以自然语言提问(例如,“Alice 的最后一次转账是什么?”),然后将其转换为 MCP 工具调用。
    • 构建一个聊天机器人,它可以回答问题、获取余额或使用 MCP 服务器作为后端解释链上活动。
    • 使用 MCP 服务器向 VSCode、Cursor、Claude Code 等开发工具提供实时更新的链上活动,例如余额变化或交易状态。
  2. 自定义仪表板和监控
    • 为您的 Substrate 区块链创建自定义仪表板和监控系统
    • 显示区块链操作的实时数据和分析
    • 为关键事件设置警报和通知
    • 使用人工智能代理通过实时分析事件和外部因素来检测可疑活动。

🛠️ 要求

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

📦安装

克隆存储库并构建:

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

⚙️ 配置

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

# WebSocket endpoint for the Substrate node RPC_URL=wss://your-node-url.example.com # Signing keypair as hex (32 bytes, e.g. output of subkey inspect-key --scheme Sr25519) SIGNING_KEYPAIR_HEX=your_signing_keypair_hex_here

生成签名密钥对

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

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

SIGNING_KEYPAIR_HEX使用secretSeed字段(如果存在,则删除 0x 前缀)。

获取和放置运行时元数据

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

subxt metadata -f bytes > artifacts/metadata.scale

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

▶️ 使用方法

要启动 MCP 服务器:

cargo run --release

服务器将启动并通过 stdio 监听 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 (构建前必需)

📈 后续步骤和目标

  • [ ] 添加 E2E 测试
  • [ ] 添加单元测试
  • [ ] 添加更多工具

🤝 贡献

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

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

📄 许可证

麻省理工学院

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Substrate MCP 服务器

  1. ✨ 特点
    1. 🚀 潜在用例
      1. 🛠️ 要求
        1. 📦安装
          1. ⚙️ 配置
            1. 生成签名密钥对
            2. 获取和放置运行时元数据
          2. ▶️ 使用方法
            1. 🖇️ 与 Cursor 集成
              1. 🧰 可用工具
                1. 🗂️ 项目结构
                  1. 📈 后续步骤和目标
                    1. 🤝 贡献
                      1. 📄 许可证

                        Related MCP Servers

                        View all related MCP servers

                        MCP directory API

                        We provide all the information about MCP servers via our MCP API.

                        curl -X GET 'https://glama.ai/api/mcp/v1/servers/ThomasMarches/substrate-mcp-rs'

                        If you have feedback or need assistance with the MCP directory API, please join our Discord server