Skip to main content
Glama

update-pod

Modify an existing RunPod pod by updating its configuration, including Docker image, disk size, environment variables, ports, and volume settings.

Input Schema

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

Implementation Reference

  • Handler for 'update-pod' tool: destructures podId, makes PATCH request to RunPod API via helper, returns JSON response as text.
    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 input schema defining parameters for updating a pod, including podId (required) and 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:224-255 (registration)
    Registration of the 'update-pod' tool on the MCP server using server.tool(name, inputSchema, handler).
    server.tool( '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), }, ], }; } );
  • Shared helper function that makes authenticated API requests to RunPod, used by the update-pod handler and other tools.
    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'

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