MCP-сервер — API кластеров v1
Это реализация сервера Model Context Protocol (MCP) для API кластеров v1. Он предоставляет конечные точки для аутентификации, управления кластером, регистрации имени и регистрации сообщества.
Зависимости
{
"@modelcontextprotocol/sdk": "^1.7.0",
"dotenv": "^16.4.7",
"zod": "^3.24.2"
}
Related MCP server: Nash MCP Server
Настраивать
Установить зависимости:
Создайте файл .env с: CLUSTERS_API_KEY={CLUSTERS_API_KEY} (необязательно)
Соберите и запустите сервер:
Тестирование конечных точек
Поскольку этот сервер использует StdioServerTransport , вам нужно будет отправлять сообщения JSON-RPC через stdin. Вот примеры команд для тестирования каждой конечной точки:
Конечные точки аутентификации
Получить сообщение
echo '{"jsonrpc":"2.0","id":1,"method":"get_signing_message"}' | node dist/index.js
Получить токен
echo '{"jsonrpc":"2.0","id":1,"method":"get_auth_key","params":{"signature":"0x123","signingDate":"2024-05-07","type":"evm","wallet":"0x123"}}' | node dist/index.js
Проверить токен
echo '{"jsonrpc":"2.0","id":1,"method":"validate_auth_token","params":{"authKey":"your-auth-key"}}' | node dist/index.js
Конечные точки управления кластером
Создать кластер
echo '{"jsonrpc":"2.0","id":1,"method":"create_a_cluster","params":{"authKey":"your-auth-key","testnet":false}}' | node dist/index.js
Получить кластер по идентификатору
echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_by_id","params":{"id":"cluster-id","testnet":false}}' | node dist/index.js
Получить кластер по имени
echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_by_name","params":{"name":"cluster-name","testnet":false}}' | node dist/index.js
Получить идентификатор кластера по адресу
echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_id_by_address","params":{"address":"0x123","testnet":false}}' | node dist/index.js
Добавить кошельки
echo '{"jsonrpc":"2.0","id":1,"method":"add_wallets","params":{"wallets":[{"address":"0x123","name":"new-wallet","isPrivate":false}],"authKey":"your-auth-key","testnet":false}}' | node dist/index.js
Создать кошелек
echo '{"jsonrpc":"2.0","id":1,"method":"generate_wallet","params":{"type":"evm","name":"new-wallet","isPrivate":false,"authKey":"your-auth-key","testnet":false}}' | node dist/index.js
Обновление кошельков
echo '{"jsonrpc":"2.0","id":1,"method":"update_wallets","params":{"wallets":[{"address":"0x123","name":"updated-name"}],"authKey":"your-auth-key","testnet":false}}' | node dist/index.js
Удалить кошельки
echo '{"jsonrpc":"2.0","id":1,"method":"remove_wallets","params":{"addresses":["0x123"],"authKey":"your-auth-key","testnet":false}}' | node dist/index.js
Проверить кошелек
echo '{"jsonrpc":"2.0","id":1,"method":"verify_wallet","params":{"clusterId":"cluster-id","authKey":"your-auth-key","testnet":false}}' | node dist/index.js
Адрес ↔ Конечные точки разрешения имени
Получить имя по адресу
echo '{"jsonrpc":"2.0","id":1,"method":"get_name_by_address","params":{"address":"0x123","testnet":false}}' | node dist/index.js
Получить все имена по адресу
echo '{"jsonrpc":"2.0","id":1,"method":"get_all_names_by_address","params":{"address":"0x123","testnet":false}}' | node dist/index.js
Получить массив данных по адресам
echo '{"jsonrpc":"2.0","id":1,"method":"get_bulk_data_by_addresses","params":{"addresses":["0x123","0x456"],"testnet":false}}' | node dist/index.js
Получить массив данных по именам
echo '{"jsonrpc":"2.0","id":1,"method":"get_bulk_data_by_names","params":{"names":[{"name":"name-1"},{"name":"name-2"}],"testnet":false}}' | node dist/index.js
Конечные точки регистрации
Проверить наличие имени
echo '{"jsonrpc":"2.0","id":1,"method":"check_name_availability","params":{"names":["name-1","name-2"],"testnet":false}}' | node dist/index.js
Получить данные для регистрации
echo '{"jsonrpc":"2.0","id":1,"method":"get_registration_sign_data","params":{"network":"1","sender":"0x123","names":[{"name":"name1","amountWei":"1000000000000000000"}],"referralClusterId":"optional-id","testnet":false}}' | node dist/index.js
Получить статус транзакции
echo '{"jsonrpc":"2.0","id":1,"method":"get_transaction_status","params":{"txHash":"0x123","testnet":false}}' | node dist/index.js
Конечные точки сообщества
Проверить доступность имени сообщества
echo '{"jsonrpc":"2.0","id":1,"method":"check_community_name_availability","params":{"communityName":"community-name","name":"some-name","testnet":false}}' | node dist/index.js
Зарегистрируйте имя сообщества
echo '{"jsonrpc":"2.0","id":1,"method":"register_community_name","params":{"authKey":"your-auth-key","communityName":"some_community","name":"some_name","walletAddress":"your-wallet-address","testnet":false}}' | node dist/index.js
Примечания
Замените значения-заполнители (например, 0x123 , your-auth-key и т. д.) фактическими значениями.
Параметр testnet является необязательным для всех конечных точек.
Все ответы будут в формате JSON-RPC 2.0.
Для аутентифицированных конечных точек обязательно получите и включите действительный authKey
Сервер использует необязательные переменные среды для настройки, убедитесь, что ваш файл .env правильно настроен для их использования.