Uses .env files for configuration, allowing easy setup of node endpoints, signing keypairs, and other environment-specific settings.
Enables interaction with Substrate/Polkadot blockchain networks, including querying account balances, listing pallets, sending transactions, accessing blockchain storage, and monitoring events and extrinsics.
Built with Rust and integrates with the Subxt crate to provide comprehensive access to Substrate blockchain operations and data.
Substrate MCP 服务器
一个用 Rust 编写的用于 Substrate 区块链的模型上下文协议(MCP)服务器。该项目通过 MCP 协议公开动态 Substrate 区块链操作(查询余额、区块、模块、存储、事件等),并且可以通过环境变量进行完全配置。
设计用于与subxt板条箱接口。
✨ 特点
- 动态查询账户余额和存储
- 列出托盘及其条目
- 获取并过滤事件和外部信息
- 提交并查看动态签名交易
- 访问系统和阻止信息
- 对 Substrate 节点的自定义 RPC 调用
🚀 潜在用例
- 人工智能驱动的区块链运营
- 与 LLM(如 Cursor 或 Claude)集成,允许用户以自然语言提问(例如,“Alice 的最后一次转账是什么?”),然后将其转换为 MCP 工具调用。
- 构建一个聊天机器人,它可以回答问题、获取余额或使用 MCP 服务器作为后端解释链上活动。
- 使用 MCP 服务器向 VSCode、Cursor、Claude Code 等开发工具提供实时更新的链上活动,例如余额变化或交易状态。
- 自定义仪表板和监控
- 为您的 Substrate 区块链创建自定义仪表板和监控系统
- 显示区块链操作的实时数据和分析
- 为关键事件设置警报和通知
- 使用人工智能代理通过实时分析事件和外部因素来检测可疑活动。
🛠️ 要求
- 锈
- 访问 Substrate 节点端点 (WebSocket)
- 有效的签名密钥对(十六进制)
- 目标链的运行时元数据文件(请参阅下文了解命名和位置)
📦安装
克隆存储库并构建:
⚙️ 配置
在项目根目录中创建一个.env
文件,其中包含以下变量:
生成签名密钥对
您可以生成密钥对并使用子密钥获取十六进制的秘密种子:
对SIGNING_KEYPAIR_HEX
使用secretSeed
字段(如果存在,则删除 0x 前缀)。
获取和放置运行时元数据
从节点导出运行时元数据并将其放置在artifacts/metadata.scale
:
**重要提示:**该文件必须命名为metadata.scale
,并在构建前位于artifacts/
目录中。如果该文件缺失或命名错误,构建将失败。
▶️ 使用方法
要启动 MCP 服务器:
服务器将启动并通过 stdio 监听 MCP 请求。
🖇️ 与 Cursor 集成
要将此 MCP 服务器与Cursor一起使用,您需要将其添加到您的 Cursor MCP 配置中。这样,Cursor 就可以发现您的 Substrate MCP 服务器并与其交互。
- 在发布模式下构建您的服务器:
- 找到构建二进制文件的路径(通常为
target/release/substrate-mcp-rs
)。 - 在你的项目(或全局)
.cursor/mcp.json
文件中,添加一个服务器条目。例如:- 如果
command
路径不同,请将其替换为构建的二进制文件的绝对路径。
- 如果
- 重启 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 fmt
和cargo clippy
- 尽可能添加测试
📄 许可证
麻省理工学院
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Substrate MCP 服务器
Related MCP Servers
- JavaScriptMIT License
- Python
- Python
- -securityAlicense-qualityMarineTraffic MCP ServerLast updated -1TypeScriptMIT License