Субстратный 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.
- Соберите свой сервер в режиме релиза:
- Найдите путь к собранному двоичному файлу (обычно
target/release/substrate-mcp-rs
). - В вашем проекте (или глобальном) файле
.cursor/mcp.json
добавьте запись для вашего сервера. Например:- Замените путь
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
- Python
- -securityFlicense-qualityOfficial Substack MCP ServerLast updated -3Python
- AsecurityAlicenseAqualityAlchemy MCP ServerLast updated -93,42253TypeScriptMIT License
- -securityAlicense-qualitySatellite Tracking MCP ServerLast updated -TypeScriptMIT License