Субстратный MCP-сервер
Сервер Model Context Protocol (MCP) для блокчейнов Substrate, написанный на Rust. Этот проект предоставляет динамические операции блокчейна Substrate (запрос балансов, блоков, поддонов, хранилищ, событий и т. д.) через протокол MCP и полностью настраивается через переменные среды.
Разработан для взаимодействия с ящиком subxt .
✨ Особенности
Динамический запрос остатков на счетах и хранилищ
Список поддонов и их записей
Извлечение и фильтрация событий и внешних данных
Отправка и просмотр динамически подписанных транзакций
Система доступа и блокировка информации
Пользовательские вызовы RPC к узлам Substrate
🚀 Возможные варианты использования
Операции блокчейна на основе искусственного интеллекта
Интеграция с LLM (например, Cursor или Claude), чтобы позволить пользователям задавать вопросы на естественном языке (например, «Какой был последний перевод от Алисы?»), которые преобразуются в вызовы инструментов MCP.
Создайте чат-бота, который сможет отвечать на вопросы, получать балансы или объяснять активность в цепочке, используя ваш сервер MCP в качестве бэкэнда.
Используйте сервер MCP для предоставления оперативных обновлений активности в цепочке, например, изменений баланса или статусов транзакций, для инструментов разработки, таких как VSCode, Cursor, Claude Code и т. д.
Пользовательские панели мониторинга и мониторинга
Создавайте индивидуальные панели мониторинга и системы мониторинга для вашего блокчейна Substrate
Отображение данных и аналитики в реальном времени по вашим блокчейн-операциям
Настройте оповещения и уведомления о критических событиях
Используйте агентов ИИ для обнаружения подозрительной активности путем анализа событий и внешних факторов в режиме реального времени.
🛠️ Требования
Ржавчина
Доступ к конечной точке узла Substrate (WebSocket)
Действительная пара ключей подписи (в шестнадцатеричном формате)
Файл метаданных времени выполнения для вашей целевой цепочки (наименование и размещение см. ниже)
📦 Установка
Клонируйте репозиторий и соберите:
⚙️ Конфигурация
Создайте файл .env в корне проекта со следующими переменными:
Создание пары ключей подписи
Вы можете сгенерировать пару ключей и получить секретное начальное число в шестнадцатеричном формате, используя подключ :
Используйте поле secretSeed (удалив префикс 0x, если он есть) для SIGNING_KEYPAIR_HEX .
Получение и размещение метаданных времени выполнения
Экспортируйте метаданные времени выполнения из вашего узла и поместите их в artifacts/metadata.scale :
Важно: Файл должен называться metadata.scale и располагаться в каталоге artifacts/ перед сборкой. Сборка завершится ошибкой, если этот файл отсутствует или имеет неправильное имя.
▶️ Использование
Чтобы запустить сервер MCP:
Сервер запустится и будет прослушивать запросы MCP через stdio.
🖇️ Интеграция с курсором
Чтобы использовать этот сервер MCP с Cursor , вам нужно добавить его в конфигурацию Cursor MCP. Это позволяет Cursor обнаруживать и взаимодействовать с вашим сервером Substrate MCP.
Соберите свой сервер в режиме релиза:
cargo build --releaseНайдите путь к собранному двоичному файлу (обычно
target/release/substrate-mcp-rs).В вашем проекте (или глобальном) файле
.cursor/mcp.jsonдобавьте запись для вашего сервера. Например:{ "mcpServers": { "substrate-mcp-rs": { "command": "$PROJECT_ROOT_ABSOLUTE_PATH/target/release/substrate-mcp-rs", "args": [] } } }Замените путь
commandна абсолютный путь к собранному вами двоичному файлу, если он отличается.
Перезапустите курсор. Теперь он должен обнаружить и подключиться к вашему серверу Substrate MCP, сделав его инструменты доступными для использования.
Более подробную информацию см. в документации по курсору или во введении к протоколу контекста модели .
🧰 Доступные инструменты
Сервер предоставляет набор инструментов для взаимодействия с блокчейном 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: Получить информацию о системе через RPCcustom_rpc: сделать пользовательский вызов RPC
Полную информацию и параметры см. на сайте src/tooling/substrate.rs
🗂️ Структура проекта
src/main.rs: точка входа, настраивает ведение журнала и запускает сервер MCPsrc/tooling/: Содержит реализацию инструмента Substrateartifacts/: Поместите здесь файл метаданных времени выполнения как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.
Субстрат MCP-сервер
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