MCP-Server – Cluster-API v1
Dies ist eine Model Context Protocol (MCP)-Serverimplementierung für die Clusters API v1. Sie bietet Endpunkte für Authentifizierung, Clusterverwaltung, Namensregistrierung und Community-Registrierungen.
Abhängigkeiten
{
"@modelcontextprotocol/sdk": "^1.7.0",
"dotenv": "^16.4.7",
"zod": "^3.24.2"
}
Related MCP server: Nash MCP Server
Aufstellen
Installieren Sie Abhängigkeiten:
Erstellen Sie eine .env Datei mit: CLUSTERS_API_KEY={CLUSTERS_API_KEY} (optional)
Erstellen und starten Sie den Server:
Testendpunkte
Da dieser Server StdioServerTransport verwendet, müssen Sie JSON-RPC-Nachrichten über stdin senden. Hier sind Beispielbefehle zum Testen der einzelnen Endpunkte:
Authentifizierungsendpunkte
Nachricht erhalten
echo '{"jsonrpc":"2.0","id":1,"method":"get_signing_message"}' | node dist/index.js
Token abrufen
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
Token validieren
echo '{"jsonrpc":"2.0","id":1,"method":"validate_auth_token","params":{"authKey":"your-auth-key"}}' | node dist/index.js
Cluster-Management-Endpunkte
Cluster erstellen
echo '{"jsonrpc":"2.0","id":1,"method":"create_a_cluster","params":{"authKey":"your-auth-key","testnet":false}}' | node dist/index.js
Cluster nach ID abrufen
echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_by_id","params":{"id":"cluster-id","testnet":false}}' | node dist/index.js
Cluster nach Namen abrufen
echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_by_name","params":{"name":"cluster-name","testnet":false}}' | node dist/index.js
Cluster-ID nach Adresse abrufen
echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_id_by_address","params":{"address":"0x123","testnet":false}}' | node dist/index.js
Geldbörsen hinzufügen
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
Wallet generieren
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
Brieftaschen aktualisieren
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
Wallets entfernen
echo '{"jsonrpc":"2.0","id":1,"method":"remove_wallets","params":{"addresses":["0x123"],"authKey":"your-auth-key","testnet":false}}' | node dist/index.js
Wallet verifizieren
echo '{"jsonrpc":"2.0","id":1,"method":"verify_wallet","params":{"clusterId":"cluster-id","authKey":"your-auth-key","testnet":false}}' | node dist/index.js
Adress-↔ Namensauflösungsendpunkte
Namen anhand der Adresse ermitteln
echo '{"jsonrpc":"2.0","id":1,"method":"get_name_by_address","params":{"address":"0x123","testnet":false}}' | node dist/index.js
Alle Namen nach Adresse abrufen
echo '{"jsonrpc":"2.0","id":1,"method":"get_all_names_by_address","params":{"address":"0x123","testnet":false}}' | node dist/index.js
Abrufen von Massendaten nach Adressen
echo '{"jsonrpc":"2.0","id":1,"method":"get_bulk_data_by_addresses","params":{"addresses":["0x123","0x456"],"testnet":false}}' | node dist/index.js
Abrufen von Massendaten nach Namen
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
Registrierungsendpunkte
Verfügbarkeit des Namens prüfen
echo '{"jsonrpc":"2.0","id":1,"method":"check_name_availability","params":{"names":["name-1","name-2"],"testnet":false}}' | node dist/index.js
Registrierungszeichendaten abrufen
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
Transaktionsstatus abrufen
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
Hinweise
Ersetzen Sie Platzhalterwerte (wie 0x123 , your-auth-key usw.) durch tatsächliche Werte
Der testnet -Parameter ist für alle Endpunkte optional
Alle Antworten werden im JSON-RPC 2.0-Format sein
Stellen Sie für authentifizierte Endpunkte sicher, dass Sie einen gültigen authKey erhalten und einschließen
Der Server verwendet optionale Umgebungsvariablen für die Konfiguration. Stellen Sie sicher, dass Ihre .env Datei für die Verwendung dieser Variablen richtig eingerichtet ist.