Hedera MCP Server

by HGraphPunks

Integrations

  • Supports configuration through environment variables loaded from .env files

  • Supports containerized deployment with Docker and Docker Compose configurations for seamless one-command deployment

  • Exposes a RESTful API for agent operations, connection management, and messaging over HTTP endpoints

Hedera MCP Server (АЛЬФА-ВЕРСИЯ - НАЧАЛЬНАЯ ФУНКЦИОНАЛЬНОСТЬ ВСЕ ЕЩЕ НЕ РАБОТАЕТ)

Обзор

Hedera MCP Server — это готовый к производству модульный сервер Node.js (TypeScript), разработанный для обеспечения децентрализованной связи между агентами ИИ в сети Hedera. Он реализует архитектуру Model-Context-Protocol (MCP) , предоставляя как RESTful API, так и основанный на SSE (Server-Sent Events) интерфейс MCP.

Используя Hedera Agent Kit вместе с Standards Agent Kit , сервер поддерживает несколько стандартов Hedera Consensus Service (HCS):

  • HCS-1 (Управление файлами/данными)
  • HCS-2 (Реестр для обнаружения агентов)
  • HCS-3 (Обработка больших сообщений и рекурсия)
  • HCS-10 (протокол связи агентов)
  • HCS-11 (децентрализованное управление идентификацией/профилем)

Этот сервер специально предназначен для участников хакатона и разработчиков, создающих интегрированные с ИИ децентрализованные приложения на Hedera. Он также совместим с такими инструментами, как Cursor для автономных взаимодействий агентов.


Структура папки

hedera-mcp-server/ ├── src/ │ ├── config/ │ │ └── config.ts # Configuration loader (environment variables, Hedera client) │ ├── services/ │ │ ├── agentService.ts # Agent registration & profile management (HCS-10/HCS-11) │ │ ├── connectionService.ts # Connection request, acceptance & messaging (HCS-10) │ │ ├── fileService.ts # File storage for large messages (HCS-1 & HCS-3) │ │ ├── logger.ts # Logging utility │ │ └── profileUtil.ts # Helper for serializing agent profiles │ ├── routes/ │ │ ├── agentRoutes.ts # API endpoints for agent registration & query │ │ ├── connectionRoutes.ts # API endpoints for connection and messaging │ │ └── index.ts # Route aggregator for the REST API │ ├── mcp/ │ │ └── mcpServer.ts # MCP server (SSE interface) definition using FastMCP and Zod │ └── index.ts # Main entry point to initialize Express and MCP servers ├── test/ │ ├── unit/ │ │ ├── agentService.test.ts # Unit tests for agent logic and profile serialization │ │ ├── connectionService.test.ts # Unit tests for connection and message formatting │ │ └── fileService.test.ts # Unit tests for file chunking and file storage │ ├── integration/ │ │ └── apiEndpoints.test.ts # Integration tests for REST API endpoints │ └── e2e/ │ └── agentCommunication.e2e.ts # End-to-end tests simulating agent registration, connection, and messaging ├── Dockerfile # Docker configuration for building the server image ├── docker-compose.yml # One-command deployment configuration for Docker ├── package.json # Project metadata and scripts └── README.md # This file

Функции

  • Регистрация и профили агентов (HCS-11):
    Создайте новые учетные записи Hedera (или импортируйте существующие) для агентов ИИ. Автоматически настройте входящие/исходящие темы и профили в цепочке.
  • Агент обнаружения (HCS-2):
    Регистрация агентов в централизованной теме реестра. Найдите агентов по имени или возможностям, используя предоставленный API поиска.
  • Безопасная связь (HCS-10):
    Инициировать и принимать запросы на соединение между агентами. Установить выделенные темы соединения, по которым агенты могут безопасно обмениваться сообщениями.
  • Обработка больших сообщений (HCS-1 и HCS-3):
    Разгружайте большой объем содержимого сообщений, сохраняя его в отдельных темах файлов и возвращая ссылку HRL (HCS Resource Locator) в сообщениях.
  • Интерфейс MCP через SSE:
    Предоставьте конечную точку SSE, совместимую с MCP (через FastMCP ), которая позволит инструментам ИИ, таким как Cursor, напрямую вызывать «инструменты» сервера (например, register_agent, send_message).
  • API-интерфейс RESTful:
    Предоставляйте комплексные конечные точки HTTP для операций агентов, управления соединениями и обмена сообщениями с подробными форматами запросов/ответов.
  • Готовое к производству развертывание:
    Поставляется с конфигурациями Docker и Docker Compose для бесперебойного развертывания одной командой.

Требования

  • Node.js ≥ 18 (рекомендуется LTS)
  • npm (входит в состав Node)
  • Docker и Docker Compose (для развертывания контейнеров)
  • Счет Hedera Testnet (или Mainnet) с достаточными средствами для проведения транзакций
    (Установите следующие переменные среды: HEDERA_OPERATOR_ID и HEDERA_OPERATOR_KEY .)

Начиная

1. Клонировать репозиторий

git clone https://github.com/hgraphpunks/hedera-mcp-server.git cd hedera-mcp-server

2. Установка зависимостей

npm install

3. Настройте переменные среды

Создайте файл .env в корне проекта со следующим содержимым (исправьте его, указав свои фактические учетные данные):

# .env HEDERA_NETWORK=testnet HEDERA_OPERATOR_ID=0.0.12345 HEDERA_OPERATOR_KEY=302e0201... REGISTRY_TOPIC_ID= # (optional – if not provided, a new registry topic will be created) PORT=3000 SSE_PORT=3001

4. Создайте проект

Скомпилируйте код TypeScript в JavaScript:

npm run build

5. Запустите сервер локально

Запустите серверы REST API и MCP SSE:

npm start

Вы должны увидеть журналы, указывающие на следующее:

  • REST API прослушивает http://localhost:3000
  • Сервер MCP SSE доступен по адресу http://localhost:3001/sse

6. Режим разработки

Для быстрой разработки с автоматическими перестройками используйте:

npm run dev

API-документация

Конечные точки агента

  • POST /api/agents/register
    Регистрирует нового агента.
    Текст запроса:
    { "name": "AliceAgent", "accountId": "0.0.ABCDE", // optional – leave empty to generate a new account "privateKey": "302e0201...", // optional – required if accountId is provided "capabilities": [0, 4], "model": "gpt-4", "creator": "Alice" }
    Ответ (201 создано):
    { "accountId": "0.0.789123", "privateKey": "302e0201... (if new)", "profile": { "name": "AliceAgent", "inboundTopicId": "0.0.444444", "outboundTopicId": "0.0.444445", "type": 1, "capabilities": [0, 4], "model": "gpt-4", "creator": "Alice" } }
  • ПОЛУЧИТЬ /api/agents/{accountId}
    Извлекает профиль агента по идентификатору учетной записи.
    Ответ (200 ОК):
    { "name": "AliceAgent", "inboundTopicId": "0.0.444444", "outboundTopicId": "0.0.444445", "type": 1, "capabilities": [0, 4], "model": "gpt-4", "creator": "Alice" }
  • GET /api/agents?name=Алиса&capability=0
    Поиск агентов по имени и/или возможностям.
    Ответ (200 ОК):
    [ { "name": "AliceAgent", "inboundTopicId": "0.0.444444", "outboundTopicId": "0.0.444445", "type": 1, "capabilities": [0, 4], "model": "gpt-4", "creator": "Alice" } ]

Конечные точки соединения

  • POST /api/connections/запрос
    Инициирует запрос на подключение к другому агенту.
    Текст запроса:
    { "fromAccount": "0.0.AAAAA", "fromPrivateKey": "302e0201...", "toAccount": "0.0.BBBBB" }
    Ответ (200 ОК):
    { "requestSequenceNumber": 42 }
  • POST /api/connections/принять
    Принимает запрос на подключение и создает специальную тему подключения.
    Текст запроса:
    { "fromAccount": "0.0.BBBBB", "fromPrivateKey": "302e0201...", "requesterAccount": "0.0.AAAAA" }
    Ответ (200 ОК):
    { "connectionTopicId": "0.0.CCCCC" }
  • ПОЛУЧИТЬ /api/connections?accountId=0.0.AAAAA
    Перечисляет все активные соединения для данного агента.
    Ответ (200 ОК):
    [ { "peer": "0.0.BBBBB", "connectionTopicId": "0.0.CCCCC" } ]

Конечные точки обмена сообщениями

  • ОТПРАВИТЬ /api/сообщения/отправить
    Отправляет сообщение по установленному соединению.
    Текст запроса:
    { "senderAccount": "0.0.AAAAA", "senderKey": "302e0201...", "connectionTopicId": "0.0.CCCCC", "message": "Hello, AgentB!" }
    Ответ (200 ОК):
    { "sequenceNumber": 7 }
  • ПОЛУЧИТЬ /api/messages?connectionTopicId=0.0.CCCCC&limit=10
    Извлекает последние сообщения из темы подключения.
    Ответ (200 ОК):
    { "messages": [ "{\"p\":\"hcs-10\",\"op\":\"message\",\"operator_id\":\"0.0.444444@0.0.AAAAA\",\"data\":\"Hello, AgentB!\",\"m\":\"Message from agent.\"}" ] }

Интерфейс MCP SSE

Сервер предоставляет интерфейс MCP через SSE (Server-Sent Events) на базе FastMCP . Этот интерфейс доступен по адресу:

http://localhost:3001/sse

Интеграция с курсором

  1. Запустите сервер:
    Убедитесь, что сервер MCP SSE запущен (по умолчанию на порту 3001). Используйте npm start или Docker, как описано ниже.
  2. Настроить в курсоре:
    В настройках MCP курсора добавьте новый сервер MCP с URL-адресом:
    http://localhost:3001/sse
    Курсор автоматически извлечет список доступных инструментов (например, register_agent , request_connection , send_message и т. д.).
  3. Использование:
    Вы можете поручить ИИ Курсора выполнять действия с помощью этих инструментов. Например, подсказка:

    «Зарегистрируйте нового агента с именем AliceAgent и соедините меня с BobAgent».
    Курсор вызовет соответствующие инструменты MCP, определенные в интерфейсе SSE.


Развертывание Docker

Проект поставляется с файлами Dockerfile и docker-compose.yml для простого развертывания одной командой.

Использование Docker Compose

  1. Убедитесь, что переменные среды:
    Задайте переменные среды в файле .env в корне проекта (как показано выше).
  2. Сборка и запуск:
    docker-compose up --build -d
    Эта команда создает образ Docker и запускает контейнеры в отсоединенном режиме. REST API будет доступен на порту 3000, а сервер MCP SSE — на порту 3001.
  3. Проверка развертывания:
    Откройте браузер или используйте curl , чтобы проверить:
    • Проверка работоспособности: http://localhost:3000/
    • Конечная точка MCP SSE: http://localhost:3001/sse

Тестирование

Запуск тестового набора

Проект использует Jest для тестирования. Тесты организованы в модульные, интеграционные и сквозные наборы.

Запустите все тесты с помощью:

npm test

Тесты включают в себя:

  • Модульные тесты: проверка логики в отдельных службах (например, разбиение файлов на фрагменты в fileService.test.ts ).
  • Интеграционные тесты: тестируйте конечные точки REST API с помощью Supertest, чтобы гарантировать правильные ответы.
  • Сквозные тесты: смоделируйте полный поток коммуникации агентов (регистрация агентов, подключение и обмен сообщениями) в тестовой сети Hedera.

Примечание: Тесты будут выполнять живые операции на Hedera Testnet. Убедитесь, что в вашей тестовой среде достаточно средств и что вы знаете о минимальном потреблении HBAR.


Техническое обслуживание и оптимизация

  • Регистрация и мониторинг:
    Сервер включает в себя базовый регистратор. В производстве рассмотрите возможность интеграции более надежного решения для регистрации (например, Winston или Pino) и настройки ротации журналов и мониторинга панелей.
  • Кэширование:
    Профили агентов и списки подключений кэшируются в памяти. Для сценариев с высокой нагрузкой рассмотрите возможность замены их на постоянное хранилище (например, Redis или базу данных).
  • Масштабирование:
    Сервер не имеет состояния, за исключением кэшей в памяти. Он может быть горизонтально масштабирован за балансировщиком нагрузки. Для нескольких экземпляров убедитесь, что они используют одну и ту же конфигурацию реестра, чтобы все агенты отображались в глобальном реестре.
  • Соображения безопасности:
    • Защитите файл .env и никогда не раскрывайте закрытые ключи.
    • Для производства реализуйте надлежащую аутентификацию/авторизацию для конечных точек API.
    • Рассмотрите возможность использования HTTPS и других методов безопасной связи.
  • Обновления соответствия стандартам:
    Следите за обновлениями Hedera Agent Kit и Standards Agent Kit. Обновление зависимостей может потребовать минимальных корректировок, если вводятся новые поля или протоколы.

Внося вклад

Вклады приветствуются! Пожалуйста, разветвите репозиторий и откройте запросы на извлечение с вашими улучшениями. Для крупных изменений, пожалуйста, сначала откройте вопрос, чтобы обсудить, что вы хотели бы изменить.


Лицензия

Данный проект лицензирован по лицензии MIT.

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Готовый к использованию сервер Node.js, который обеспечивает децентрализованную связь между агентами ИИ в сети Hedera, реализуя архитектуру «модель-контекст-протокол» с поддержкой нескольких стандартов службы консенсуса Hedera.

  1. Обзор
    1. Структура папки
      1. Функции
        1. Требования
          1. Начиная
            1. 1. Клонировать репозиторий
            2. 2. Установка зависимостей
            3. 3. Настройте переменные среды
            4. 4. Создайте проект
            5. 5. Запустите сервер локально
            6. 6. Режим разработки
          2. API-документация
            1. Конечные точки агента
            2. Конечные точки соединения
            3. Конечные точки обмена сообщениями
          3. Интерфейс MCP SSE
            1. Интеграция с курсором
          4. Развертывание Docker
            1. Использование Docker Compose
          5. Тестирование
            1. Запуск тестового набора
          6. Техническое обслуживание и оптимизация
            1. Внося вклад
              1. Лицензия

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  A comprehensive Model Context Protocol server that provides advanced Node.js development tooling for automating project creation, component generation, package management, and documentation with AI-powered assistance.
                  Last updated -
                  7
                  2
                  JavaScript
                  MIT License
                • -
                  security
                  A
                  license
                  -
                  quality
                  A server that allows AI assistants to access, view, run, and manage Hex projects through a standardized interface.
                  Last updated -
                  Python
                  AGPL 3.0
                  • Linux
                  • Apple
                • A
                  security
                  A
                  license
                  A
                  quality
                  A Model Context Protocol server that enables AI agents to interact with 30+ Ethereum-compatible blockchain networks, providing services like token transfers, contract interactions, and ENS resolution through a unified interface.
                  Last updated -
                  28
                  94
                  146
                  TypeScript
                  MIT License
                • -
                  security
                  A
                  license
                  -
                  quality
                  A production-ready Model Context Protocol server implementation that connects AI assistants to the TON blockchain, allowing them to query wallet balances, transaction details, smart contracts, and other blockchain data.
                  Last updated -
                  TypeScript
                  MIT License

                View all related MCP servers

                ID: zh30sz1a3u