A Model Context Protocol (MCP) server for Substrate blockchains, written in Rust. This project exposes dynamic Substrate blockchain operations (querying balances, blocks, pallets, storage, events, and more) via the MCP protocol, and is fully configurable via environment variables. Designed to interface with the subxt crate. - Query account balances and storage dynamically - List pallets and their
Add this skill
npx mdskills install ThomasMarches/substrate-mcp-rsWell-documented MCP server providing comprehensive Substrate blockchain tools with clear setup
A Model Context Protocol (MCP) server for Substrate blockchains, written in Rust. This project exposes dynamic Substrate blockchain operations (querying balances, blocks, pallets, storage, events, and more) via the MCP protocol, and is fully configurable via environment variables.
Designed to interface with the subxt crate.
AI-Driven Blockchain Operations
Custom Dashboards and Monitoring
Clone the repository and build:
git clone https://github.com/ThomasMarches/substrate-mcp-rs.git
cd substrate-mcp-rs
cargo build --release
Create a .env file in the project root with the following variables:
# 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
You can generate a keypair and get the secret seed in hex using subkey:
subkey generate --scheme Sr25519 --output-type Json
Use the secretSeed field (strip the 0x prefix if present) for SIGNING_KEYPAIR_HEX.
Export the runtime metadata from your node and place it at artifacts/metadata.scale:
subxt metadata -f bytes > artifacts/metadata.scale
Important: The file must be named metadata.scale and located in the artifacts/ directory before building. The build will fail if this file is missing or misnamed.
To start the MCP server:
cargo run --release
The server will start and listen for MCP requests via stdio.
To use this MCP server with Cursor, you need to add it to your Cursor MCP configuration. This allows Cursor to discover and interact with your Substrate MCP server.
Build your server in release mode:
cargo build --release
Locate the path to the built binary (typically target/release/substrate-mcp-rs).
In your project (or global) .cursor/mcp.json file, add an entry for your server. For example:
{
"mcpServers": {
"substrate-mcp-rs": {
"command": "$PROJECT_ROOT_ABSOLUTE_PATH/target/release/substrate-mcp-rs",
"args": []
}
}
}
command path with the absolute path to your built binary if it differs.Restart Cursor. It should now detect and connect to your Substrate MCP server, making its tools available for use.
For more details, see the Cursor documentation or the Model Context Protocol introduction.
The server exposes a set of tools for interacting with a Substrate blockchain, including:
query_balance: Fetch the balance of an accountlist_pallets: List all pallets in the runtimelist_pallet_entries: List all storage entries for a palletdynamic_runtime_call: Execute a runtime API callsend_dynamic_signed_transaction: Construct, sign, and send a transactionquery_storage: Query storage by pallet and entryget_latest_events: Get all events from the latest blockfind_events: Find specific events by pallet and variantget_latest_block: Get details about the latest blockget_block_by_hash: Get block details by hashfind_extrinsics: Find extrinsics in the latest blockget_system_info: Get system info via RPCcustom_rpc: Make a custom RPC callSee src/tooling/substrate.rs for full details and parameters.
src/main.rs: Entry point, sets up logging and starts the MCP serversrc/tooling/: Contains the Substrate tool implementationartifacts/: Place your runtime metadata file here as metadata.scale (required before building)Contributions are welcome! Please open issues or pull requests. For larger changes, open an issue first to discuss your proposal.
cargo fmt and cargo clippy before submittingMIT
Install via CLI
npx mdskills install ThomasMarches/substrate-mcp-rsSubstrate MCP Server is a free, open-source AI agent skill. A Model Context Protocol (MCP) server for Substrate blockchains, written in Rust. This project exposes dynamic Substrate blockchain operations (querying balances, blocks, pallets, storage, events, and more) via the MCP protocol, and is fully configurable via environment variables. Designed to interface with the subxt crate. - Query account balances and storage dynamically - List pallets and their
Install Substrate MCP Server with a single command:
npx mdskills install ThomasMarches/substrate-mcp-rsThis downloads the skill files into your project and your AI agent picks them up automatically.
Substrate MCP Server works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Codex, Gemini Cli, Amp, Roo Code, Goose, Opencode, Trae, Qodo, Command Code. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.