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: MCP Boilerplate
Aufstellen
Installieren Sie Abhängigkeiten:
npm installErstellen Sie eine
.envDatei mit: CLUSTERS_API_KEY={CLUSTERS_API_KEY} (optional)Erstellen und starten Sie den Server:
npm run devTestendpunkte
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.jsToken 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.jsToken validieren
echo '{"jsonrpc":"2.0","id":1,"method":"validate_auth_token","params":{"authKey":"your-auth-key"}}' | node dist/index.jsCluster-Management-Endpunkte
Cluster erstellen
echo '{"jsonrpc":"2.0","id":1,"method":"create_a_cluster","params":{"authKey":"your-auth-key","testnet":false}}' | node dist/index.jsCluster nach ID abrufen
echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_by_id","params":{"id":"cluster-id","testnet":false}}' | node dist/index.jsCluster nach Namen abrufen
echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_by_name","params":{"name":"cluster-name","testnet":false}}' | node dist/index.jsCluster-ID nach Adresse abrufen
echo '{"jsonrpc":"2.0","id":1,"method":"get_cluster_id_by_address","params":{"address":"0x123","testnet":false}}' | node dist/index.jsGeldbö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.jsWallet 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.jsBrieftaschen 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.jsWallets entfernen
echo '{"jsonrpc":"2.0","id":1,"method":"remove_wallets","params":{"addresses":["0x123"],"authKey":"your-auth-key","testnet":false}}' | node dist/index.jsWallet verifizieren
echo '{"jsonrpc":"2.0","id":1,"method":"verify_wallet","params":{"clusterId":"cluster-id","authKey":"your-auth-key","testnet":false}}' | node dist/index.jsAdress-↔ 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.jsAlle Namen nach Adresse abrufen
echo '{"jsonrpc":"2.0","id":1,"method":"get_all_names_by_address","params":{"address":"0x123","testnet":false}}' | node dist/index.jsAbrufen 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.jsAbrufen 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.jsRegistrierungsendpunkte
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.jsRegistrierungszeichendaten abrufen
Dieser Endpunkt ist derzeit nicht betriebsbereit.
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.jsTransaktionsstatus abrufen
echo '{"jsonrpc":"2.0","id":1,"method":"get_transaction_status","params":{"txHash":"0x123","testnet":false}}' | node dist/index.jsCommunity-Endpunkte
Verfügbarkeit von Community-Namen prüfen
echo '{"jsonrpc":"2.0","id":1,"method":"check_community_name_availability","params":{"communityName":"community-name","name":"some-name","testnet":false}}' | node dist/index.jsCommunity-Namen registrieren
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.jsHinweise
Ersetzen Sie Platzhalterwerte (wie
0x123,your-auth-keyusw.) durch tatsächliche WerteDer
testnet-Parameter ist für alle Endpunkte optionalAlle Antworten werden im JSON-RPC 2.0-Format sein
Stellen Sie für authentifizierte Endpunkte sicher, dass Sie einen gültigen
authKeyerhalten und einschließenDer Server verwendet optionale Umgebungsvariablen für die Konfiguration. Stellen Sie sicher, dass Ihre
.envDatei für die Verwendung dieser Variablen richtig eingerichtet ist.