Skip to main content
Glama

Substrate MCP Server

Integrations
  • 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.

Servidor MCP de sustrato

Un servidor de Protocolo de Contexto de Modelo (MCP) para cadenas de bloques Substrate, desarrollado en Rust. Este proyecto expone operaciones dinámicas de la cadena de bloques Substrate (consultas de saldos, bloques, pallets, almacenamiento, eventos, etc.) mediante el protocolo MCP y es totalmente configurable mediante variables de entorno.

Diseñado para interactuar con la caja subxt .

✨ Características

  • Consultar saldos de cuentas y almacenamiento de forma dinámica
  • Listado de pallets y sus entradas
  • Obtener y filtrar eventos y extrínsecos
  • Enviar y observar transacciones firmadas dinámicas
  • Sistema de acceso y bloquee la información
  • Llamadas RPC personalizadas a nodos de Substrate

🚀 Casos de uso potenciales

  1. Operaciones de blockchain impulsadas por IA
    • Integre con LLM (como Cursor o Claude) para permitir que los usuarios hagan preguntas en lenguaje natural (por ejemplo, "¿Cuál fue la última transferencia de Alice?"), que se traducen en llamadas a herramientas MCP.
    • Cree un chatbot que pueda responder preguntas, obtener saldos o explicar la actividad en cadena utilizando su servidor MCP como backend.
    • Utilice el servidor MCP para proporcionar actualizaciones en vivo de la actividad en cadena, como cambios de saldo o estados de transacciones, a herramientas de desarrollo como VSCode, Cursor, Claude Code, etc.
  2. Paneles de control y monitorización personalizados
    • Cree paneles de control y sistemas de monitoreo personalizados para su cadena de bloques Substrate
    • Muestra datos y análisis en tiempo real sobre tus operaciones de blockchain
    • Configurar alertas y notificaciones para eventos críticos
    • Utilice agentes de IA para detectar actividad sospechosa analizando eventos y factores extrínsecos en tiempo real.

🛠️ Requisitos

  • Óxido
  • Acceso a un punto final del nodo Substrate (WebSocket)
  • Un par de claves de firma válido (en formato hexadecimal)
  • Archivo de metadatos de tiempo de ejecución para su cadena de destino (consulte a continuación el nombre y la ubicación)

📦 Instalación

Clonar el repositorio y compilar:

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

⚙️ Configuración

Cree un archivo .env en la raíz del proyecto con las siguientes 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

Generar un par de claves de firma

Puede generar un par de claves y obtener la semilla secreta en hexadecimal usando la subclave :

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

Utilice el campo secretSeed (elimine el prefijo 0x si está presente) para SIGNING_KEYPAIR_HEX .

Obtención y colocación de metadatos en tiempo de ejecución

Exporte los metadatos de tiempo de ejecución desde su nodo y colóquelos en artifacts/metadata.scale :

subxt metadata -f bytes > artifacts/metadata.scale

Importante: El archivo debe llamarse metadata.scale y estar ubicado en el directorio artifacts/ antes de la compilación. La compilación fallará si este archivo falta o tiene un nombre incorrecto.

▶️ Uso

Para iniciar el servidor MCP:

cargo run --release

El servidor se iniciará y escuchará las solicitudes MCP a través de stdio.

🖇️ Integración con Cursor

Para usar este servidor MCP con Cursor , debe agregarlo a la configuración de Cursor MCP. Esto permite que Cursor detecte e interactúe con su servidor MCP de Substrate.

  1. Construya su servidor en modo de lanzamiento:
    cargo build --release
  2. Localice la ruta al binario compilado (normalmente target/release/substrate-mcp-rs ).
  3. En el archivo .cursor/mcp.json de tu proyecto (o global), añade una entrada para tu servidor. Por ejemplo:
    { "mcpServers": { "substrate-mcp-rs": { "command": "$PROJECT_ROOT_ABSOLUTE_PATH/target/release/substrate-mcp-rs", "args": [] } } }
    • Reemplace la ruta command con la ruta absoluta a su binario creado si es diferente.
  4. Reinicie Cursor. Ahora debería detectar y conectarse a su servidor Substrate MCP, lo que permitirá que sus herramientas estén disponibles.

Para obtener más detalles, consulte la documentación de Cursor o la introducción al Protocolo de contexto de modelo .

🧰 Herramientas disponibles

El servidor expone un conjunto de herramientas para interactuar con una cadena de bloques Substrate, que incluye:

  • query_balance : Obtener el saldo de una cuenta
  • list_pallets : enumera todos los pallets en el tiempo de ejecución
  • list_pallet_entries : enumera todas las entradas de almacenamiento para un palé
  • dynamic_runtime_call : Ejecuta una llamada a la API en tiempo de ejecución
  • send_dynamic_signed_transaction : Construir, firmar y enviar una transacción
  • query_storage : Consulta de almacenamiento por pallet y entrada
  • get_latest_events : Obtener todos los eventos del último bloque
  • find_events : busca eventos específicos por paleta y variante
  • get_latest_block : Obtener detalles sobre el último bloque
  • get_block_by_hash : Obtener detalles del bloque por hash
  • find_extrinsics : Encuentra extrínsecos en el último bloque
  • get_system_info : Obtener información del sistema a través de RPC
  • custom_rpc : Realiza una llamada RPC personalizada

Consulte src/tooling/substrate.rs para obtener detalles completos y parámetros.

🗂️ Estructura del proyecto

  • src/main.rs : Punto de entrada, configura el registro e inicia el servidor MCP
  • src/tooling/ : Contiene la implementación de la herramienta Substrate
  • artifacts/ : Coloque aquí su archivo de metadatos de tiempo de ejecución como metadata.scale (necesario antes de la compilación)

📈 Próximos pasos y objetivos

  • [ ] Agregar pruebas E2E
  • [ ] Agregar pruebas unitarias
  • [ ] Agregar más herramientas

🤝 Contribuyendo

¡Agradecemos sus contribuciones! Abra problemas o solicitudes de incorporación de cambios. Para cambios más importantes, abra primero un problema para discutir su propuesta.

  • Siga las mejores prácticas de Rust y asegúrese de que el código esté documentado
  • Ejecute cargo fmt y cargo clippy antes de enviar
  • Añadir pruebas cuando sea posible

📄 Licencia

Instituto Tecnológico de Massachusetts (MIT)

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