list-clusters
Use this tool to retrieve and display all clusters managed by Novita MCP Server, enabling efficient resource monitoring and management for GPU instances on the Novita AI platform.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools.ts:17-27 (registration)Registers the list-clusters tool. The inline handler fetches the list of clusters from the Novita API endpoint '/clusters' and returns the result as a formatted JSON text block.server.tool("list-clusters", {}, async () => { const result = await novitaRequest("/clusters"); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; });
- src/utils.ts:15-55 (helper)Helper utility function novitaRequest used by the list-clusters handler to make authenticated GET request to the Novita API.export async function novitaRequest( endpoint: string, method: string = "GET", body: any = null ) { // Base URL for Novita AI API const API_BASE_URL = "https://api.novita.ai/gpu-instance/openapi/v1"; // Get API key from environment variable const API_KEY = process.env.NOVITA_API_KEY; const url = `${API_BASE_URL}${endpoint}`; const headers = { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json", }; const options: any = { method, headers, }; if (body && (method === "POST" || method === "PATCH")) { options.body = JSON.stringify(body); } try { const response = await fetch(url, options); if (!response.ok) { const errorText = await response.text(); throw new Error(`Novita AI API Error: ${response.status} - ${errorText}`); } // Some endpoints might not return JSON const contentType = response.headers.get("content-type"); if (contentType && contentType.includes("application/json")) { return await response.json(); } return { success: true, status: response.status }; } catch (error) { console.error("Error calling Novita AI API:", error); throw error; } }
- src/tools.ts:16-28 (registration)The registerClusterTools function that contains the registration of list-clusters.function registerClusterTools(server: McpServer) { server.tool("list-clusters", {}, async () => { const result = await novitaRequest("/clusters"); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }); }
- src/tools.ts:7-14 (registration)registerAllTools function called from index.ts, which invokes registerClusterTools to register the tool.export function registerAllTools(server: McpServer) { registerClusterTools(server); registerProductTools(server); registerGPUInstanceTools(server); registerNetworkStorageTools(server); registerRegistryAuthTools(server); registerTemplateTools(server); }
- src/index.ts:23-23 (registration)Ultimate registration point where all tools including list-clusters are registered by calling registerAllTools.registerAllTools(server);