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:
cargo build --releaseLocalice la ruta al binario compilado (normalmente
target/release/substrate-mcp-rs).En el archivo
.cursor/mcp.jsonde 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
commandcon la ruta absoluta a su binario creado si es diferente.
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 fmtycargo clippyantes de enviarAñ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
- -security-license-qualityOfficial Substack MCP ServerLast updated -21
- Asecurity-licenseAqualityAlchemy MCP ServerLast updated -115368MIT License
- -security-license-qualitySatellite Tracking MCP ServerLast updated -1MIT License