Skip to main content
Glama

list-endpoints

Retrieve available RunPod API endpoints with optional details on templates and workers for managing cloud GPU resources.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
includeTemplateNoInclude template information
includeWorkersNoInclude information about workers

Implementation Reference

  • The asynchronous handler function for the 'list-endpoints' MCP tool. It builds query parameters based on input options and calls the shared runpodRequest helper to fetch endpoint data from the RunPod API /endpoints endpoint, returning the JSON response as text content.
    async (params) => { // Construct query parameters const queryParams = new URLSearchParams(); if (params.includeTemplate) queryParams.append('includeTemplate', params.includeTemplate.toString()); if (params.includeWorkers) queryParams.append('includeWorkers', params.includeWorkers.toString()); const queryString = queryParams.toString() ? `?${queryParams.toString()}` : ''; const result = await runpodRequest(`/endpoints${queryString}`); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }
  • Zod input schema for the 'list-endpoints' tool, defining optional boolean parameters to control inclusion of template and workers information in the API response.
    { includeTemplate: z .boolean() .optional() .describe('Include template information'), includeWorkers: z .boolean() .optional() .describe('Include information about workers'), },
  • src/index.ts:320-355 (registration)
    MCP server registration of the 'list-endpoints' tool using server.tool(), specifying the input schema and inline handler function.
    server.tool( 'list-endpoints', { includeTemplate: z .boolean() .optional() .describe('Include template information'), includeWorkers: z .boolean() .optional() .describe('Include information about workers'), }, async (params) => { // Construct query parameters const queryParams = new URLSearchParams(); if (params.includeTemplate) queryParams.append('includeTemplate', params.includeTemplate.toString()); if (params.includeWorkers) queryParams.append('includeWorkers', params.includeWorkers.toString()); const queryString = queryParams.toString() ? `?${queryParams.toString()}` : ''; const result = await runpodRequest(`/endpoints${queryString}`); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } );
  • Shared utility function used by the 'list-endpoints' handler (and other tools) to make authenticated HTTP requests to the RunPod API, handling JSON responses and errors.
    async function runpodRequest( endpoint: string, method: string = 'GET', body?: Record<string, unknown> ) { const url = `${API_BASE_URL}${endpoint}`; const headers = { Authorization: `Bearer ${API_KEY}`, 'Content-Type': 'application/json', }; const options: NodeFetchRequestInit = { 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(`RunPod 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 RunPod API:', error); throw error; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/runpod/runpod-mcp-ts'

If you have feedback or need assistance with the MCP directory API, please join our Discord server