Skip to main content
Glama

update-endpoint

Modify RunPod endpoint configurations including worker scaling, idle timeout, and scaler settings to optimize performance and resource allocation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endpointIdYesID of the endpoint to update
nameNoNew name for the endpoint
workersMinNoNew minimum number of workers
workersMaxNoNew maximum number of workers
idleTimeoutNoNew idle timeout in seconds
scalerTypeNoScaler type
scalerValueNoScaler value

Implementation Reference

  • The handler function for the 'update-endpoint' tool. It destructures the endpointId from params, calls the RunPod API with a PATCH request to `/endpoints/{endpointId}` using the shared runpodRequest helper, and returns the JSON response as text content.
    async (params) => { const { endpointId, ...updateParams } = params; const result = await runpodRequest( `/endpoints/${endpointId}`, 'PATCH', updateParams ); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } );
  • Zod input schema defining the parameters for the update-endpoint tool, including required endpointId and optional update fields.
    { endpointId: z.string().describe('ID of the endpoint to update'), name: z.string().optional().describe('New name for the endpoint'), workersMin: z.number().optional().describe('New minimum number of workers'), workersMax: z.number().optional().describe('New maximum number of workers'), idleTimeout: z.number().optional().describe('New idle timeout in seconds'), scalerType: z .enum(['QUEUE_DELAY', 'REQUEST_COUNT']) .optional() .describe('Scaler type'), scalerValue: z.number().optional().describe('Scaler value'), },
  • src/index.ts:435-466 (registration)
    The server.tool registration call for 'update-endpoint', including schema and inline handler function.
    server.tool( 'update-endpoint', { endpointId: z.string().describe('ID of the endpoint to update'), name: z.string().optional().describe('New name for the endpoint'), workersMin: z.number().optional().describe('New minimum number of workers'), workersMax: z.number().optional().describe('New maximum number of workers'), idleTimeout: z.number().optional().describe('New idle timeout in seconds'), scalerType: z .enum(['QUEUE_DELAY', 'REQUEST_COUNT']) .optional() .describe('Scaler type'), scalerValue: z.number().optional().describe('Scaler value'), }, async (params) => { const { endpointId, ...updateParams } = params; const result = await runpodRequest( `/endpoints/${endpointId}`, 'PATCH', updateParams ); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } );
  • Shared helper function runpodRequest used by the update-endpoint handler (and other tools) to make authenticated HTTP requests to the RunPod API.
    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