MCP Clusters API Server

Integrations

  • Used for loading environment variables from a .env file to configure the MCP server with API keys.

  • Provides schema validation for the MCP server's request and response data, ensuring type safety for the Clusters API.

Servidor MCP - API de clústeres v1

Esta es una implementación de servidor del Protocolo de Contexto de Modelo (MCP) para la API de Clústeres v1. Proporciona puntos finales para autenticación, gestión de clústeres, registro de nombres y más.

Dependencias

{ "@modelcontextprotocol/sdk": "^1.7.0", "dotenv": "^16.4.7", "zod": "^3.24.2" }

Configuración

  1. Instalar dependencias:
npm install
  1. Cree un archivo .env con: CLUSTERS_API_KEY={CLUSTERS_API_KEY}
  2. Construya e inicie el servidor:
npm run dev

Prueba de puntos finales

Dado que este servidor usa StdioServerTransport , deberá enviar mensajes JSON-RPC a través de la entrada estándar. A continuación, se muestran comandos de ejemplo para probar cada punto final:

Puntos finales de autenticación

Recibir mensaje

echo '{"jsonrpc":"2.0","id":1,"method":"auth_get_message","params":{"address":"0x123...","chainId":1,"nonce":"abc123"}}' | node dist/index.js

Obtener token

echo '{"jsonrpc":"2.0","id":1,"method":"auth_get_token","params":{"signature":"0x123...","signingDate":"2024-03-21","type":"evm","wallet":"0x123..."}}' | node dist/index.js

Validar token

echo '{"jsonrpc":"2.0","id":1,"method":"auth_validate_token","params":{"authKey":"your-auth-key"}}' | node dist/index.js

Puntos finales de administración de clústeres

Crear clúster

echo '{"jsonrpc":"2.0","id":1,"method":"create_cluster","params":{"wallets":[{"address":"0x123...","name":"MyWallet","isPrivate":false}],"authKey":"your-auth-key","testnet":false}}' | node dist/index.js

Obtener clúster por ID

echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_by_id","params":{"id":"cluster-id","testnet":false}}' | node dist/index.js

Obtener clúster por nombre

echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_by_name","params":{"name":"cluster-name","testnet":false}}' | node dist/index.js

Obtener el ID del clúster por dirección

echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_id_by_address","params":{"address":"0x123...","testnet":false}}' | node dist/index.js

Agregar billeteras

echo '{"jsonrpc":"2.0","id":1,"method":"add_wallets","params":{"wallets":[{"address":"0x123...","name":"NewWallet","isPrivate":false}],"authKey":"your-auth-key","testnet":false}}' | node dist/index.js

Generar billetera

echo '{"jsonrpc":"2.0","id":1,"method":"generate_wallet","params":{"type":"evm","name":"NewWallet","isPrivate":false,"authKey":"your-auth-key","testnet":false}}' | node dist/index.js

Actualizar billeteras

echo '{"jsonrpc":"2.0","id":1,"method":"update_wallets","params":{"wallets":[{"address":"0x123...","name":"UpdatedName"}],"authKey":"your-auth-key","testnet":false}}' | node dist/index.js

Eliminar carteras

echo '{"jsonrpc":"2.0","id":1,"method":"remove_wallets","params":{"addresses":["0x123..."],"authKey":"your-auth-key","testnet":false}}' | node dist/index.js

Verificar billetera

echo '{"jsonrpc":"2.0","id":1,"method":"verify_wallet","params":{"clusterId":"cluster-id","authKey":"your-auth-key","testnet":false}}' | node dist/index.js

Dirección ↔ Puntos finales de resolución de nombres

Obtener datos por dirección

echo '{"jsonrpc":"2.0","id":1,"method":"get_data_by_address","params":{"address":"0x123...","testnet":false}}' | node dist/index.js

Obtener datos masivos por direcciones

echo '{"jsonrpc":"2.0","id":1,"method":"get_bulk_data_by_addresses","params":{"addresses":["0x123...","0x456..."],"testnet":false}}' | node dist/index.js

Obtener datos masivos por nombres

echo '{"jsonrpc":"2.0","id":1,"method":"get_bulk_data_by_names","params":{"names":[{"name":"name1"}],"testnet":false}}' | node dist/index.js

Puntos finales de registro

Comprobar disponibilidad de nombre

echo '{"jsonrpc":"2.0","id":1,"method":"check_name_availability","params":{"names":["name1","name2"]}}' | node dist/index.js

Obtener datos de la señal de registro

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

Obtener el estado de la transacción

echo '{"jsonrpc":"2.0","id":1,"method":"get_transaction_status","params":{"txHash":"0x123..."}}' | node dist/index.js

Notas

  1. Reemplace los valores de marcador de posición (como 0x123... , your-auth-key , etc.) con valores reales
  2. El parámetro testnet es opcional para la mayoría de los puntos finales
  3. Todas las respuestas tendrán formato JSON-RPC 2.0
  4. Para los puntos finales autenticados, asegúrese de obtener e incluir una authKey válida
  5. El servidor utiliza variables de entorno para la configuración, asegúrese de que su archivo .env esté configurado correctamente

Método de prueba alternativo

Para facilitar las pruebas, podrías modificar el servidor para que use el transporte HTTP en lugar de stdio. Esto te permitiría usar comandos curl en lugar de canales de eco. Avísame si quieres cambiar al transporte HTTP.

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Una implementación de servidor de protocolo de contexto de modelo que proporciona puntos finales para autenticación basada en billetera, administración de clústeres y servicios de registro de nombres.

  1. Dependencies
    1. Setup
      1. Testing Endpoints
        1. Authentication Endpoints
        2. Cluster Management Endpoints
        3. Address ↔ Name Resolution Endpoints
        4. Registration Endpoints
      2. Notes
        1. Alternative Testing Method
          ID: 5wgvkpscux