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
- 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.
- 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:
⚙️ Configuración
Cree un archivo .env
en la raíz del proyecto con las siguientes variables:
Generar un par de claves de firma
Puede generar un par de claves y obtener la semilla secreta en hexadecimal usando la subclave :
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
:
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:
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.
- Construya su servidor en modo de lanzamiento:
- Localice la ruta al binario compilado (normalmente
target/release/substrate-mcp-rs
). - En el archivo
.cursor/mcp.json
de tu proyecto (o global), añade una entrada para tu servidor. Por ejemplo:- Reemplace la ruta
command
con la ruta absoluta a su binario creado si es diferente.
- Reemplace la ruta
- 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 cuentalist_pallets
: enumera todos los pallets en el tiempo de ejecuciónlist_pallet_entries
: enumera todas las entradas de almacenamiento para un palédynamic_runtime_call
: Ejecuta una llamada a la API en tiempo de ejecuciónsend_dynamic_signed_transaction
: Construir, firmar y enviar una transacciónquery_storage
: Consulta de almacenamiento por pallet y entradaget_latest_events
: Obtener todos los eventos del último bloquefind_events
: busca eventos específicos por paleta y varianteget_latest_block
: Obtener detalles sobre el último bloqueget_block_by_hash
: Obtener detalles del bloque por hashfind_extrinsics
: Encuentra extrínsecos en el último bloqueget_system_info
: Obtener información del sistema a través de RPCcustom_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 MCPsrc/tooling/
: Contiene la implementación de la herramienta Substrateartifacts/
: Coloque aquí su archivo de metadatos de tiempo de ejecución comometadata.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
ycargo clippy
antes de enviar - Añadir pruebas cuando sea posible
📄 Licencia
Instituto Tecnológico de Massachusetts (MIT)
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Servidor MCP de sustrato
Related MCP Servers
- JavaScriptMIT License
- Python
- Python
- -securityAlicense-qualityMarineTraffic MCP ServerLast updated -1TypeScriptMIT License