Skip to main content
Glama

update-pod

Modify an existing pod's configuration by updating its name, Docker image, disk size, volume settings, ports, or environment variables.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
podIdYesID of the pod to update
nameNoNew name for the pod
imageNameNoNew Docker image
containerDiskInGbNoNew container disk size in GB
volumeInGbNoNew volume size in GB
volumeMountPathNoNew path to mount the volume
portsNoNew ports to expose
envNoNew environment variables

Implementation Reference

  • The handler function for the update-pod tool. It destructures the podId from params, makes a PATCH request to the RunPod /pods/{podId} endpoint using the runpodRequest helper with the remaining parameters, and returns the API response as text content with JSON.stringify.
    async (params) => { const { podId, ...updateParams } = params; const result = await runpodRequest(`/pods/${podId}`, 'PATCH', updateParams); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } );
  • Zod schema defining the input parameters for the update-pod tool, including required podId and various optional update fields.
    podId: z.string().describe('ID of the pod to update'), name: z.string().optional().describe('New name for the pod'), imageName: z.string().optional().describe('New Docker image'), containerDiskInGb: z .number() .optional() .describe('New container disk size in GB'), volumeInGb: z.number().optional().describe('New volume size in GB'), volumeMountPath: z .string() .optional() .describe('New path to mount the volume'), ports: z.array(z.string()).optional().describe('New ports to expose'), env: z.record(z.string()).optional().describe('New environment variables'), },
  • src/index.ts:225-255 (registration)
    Registration of the update-pod tool on the MCP server using server.tool(name, inputSchema, handler). Includes schema and handler inline.
    'update-pod', { podId: z.string().describe('ID of the pod to update'), name: z.string().optional().describe('New name for the pod'), imageName: z.string().optional().describe('New Docker image'), containerDiskInGb: z .number() .optional() .describe('New container disk size in GB'), volumeInGb: z.number().optional().describe('New volume size in GB'), volumeMountPath: z .string() .optional() .describe('New path to mount the volume'), ports: z.array(z.string()).optional().describe('New ports to expose'), env: z.record(z.string()).optional().describe('New environment variables'), }, async (params) => { const { podId, ...updateParams } = params; const result = await runpodRequest(`/pods/${podId}`, 'PATCH', updateParams); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } );
  • Helper function used by update-pod (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