Skip to main content
Glama

create-pod

Deploys a GPU-enabled container pod on RunPod infrastructure by specifying Docker image, GPU requirements, storage, and network settings to run compute workloads.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cloudTypeNoSECURE or COMMUNITY cloud
containerDiskInGbNoContainer disk size in GB
dataCenterIdsNoList of data centers
envNoEnvironment variables
gpuCountNoNumber of GPUs
gpuTypeIdsNoList of acceptable GPU types
imageNameYesDocker image to use
nameNoName for the pod
portsNoPorts to expose (e.g., '8888/http', '22/tcp')
volumeInGbNoVolume size in GB
volumeMountPathNoPath to mount the volume

Implementation Reference

  • Handler function for 'create-pod' tool that sends POST request to RunPod /pods endpoint with provided parameters and returns JSON response.
    async (params) => { const result = await runpodRequest('/pods', 'POST', params); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }
  • Zod input schema defining parameters for creating a pod, including image, GPUs, volumes, ports, etc.
    { name: z.string().optional().describe('Name for the pod'), imageName: z.string().describe('Docker image to use'), cloudType: z .enum(['SECURE', 'COMMUNITY']) .optional() .describe('SECURE or COMMUNITY cloud'), gpuTypeIds: z .array(z.string()) .optional() .describe('List of acceptable GPU types'), gpuCount: z.number().optional().describe('Number of GPUs'), containerDiskInGb: z .number() .optional() .describe('Container disk size in GB'), volumeInGb: z.number().optional().describe('Volume size in GB'), volumeMountPath: z.string().optional().describe('Path to mount the volume'), ports: z .array(z.string()) .optional() .describe("Ports to expose (e.g., '8888/http', '22/tcp')"), env: z.record(z.string()).optional().describe('Environment variables'), dataCenterIds: z .array(z.string()) .optional() .describe('List of data centers'), },
  • src/index.ts:179-221 (registration)
    Registration of the 'create-pod' tool on the MCP server using server.tool() with inline schema and handler.
    server.tool( 'create-pod', { name: z.string().optional().describe('Name for the pod'), imageName: z.string().describe('Docker image to use'), cloudType: z .enum(['SECURE', 'COMMUNITY']) .optional() .describe('SECURE or COMMUNITY cloud'), gpuTypeIds: z .array(z.string()) .optional() .describe('List of acceptable GPU types'), gpuCount: z.number().optional().describe('Number of GPUs'), containerDiskInGb: z .number() .optional() .describe('Container disk size in GB'), volumeInGb: z.number().optional().describe('Volume size in GB'), volumeMountPath: z.string().optional().describe('Path to mount the volume'), ports: z .array(z.string()) .optional() .describe("Ports to expose (e.g., '8888/http', '22/tcp')"), env: z.record(z.string()).optional().describe('Environment variables'), dataCenterIds: z .array(z.string()) .optional() .describe('List of data centers'), }, async (params) => { const result = await runpodRequest('/pods', 'POST', params); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } );
  • Helper function to make authenticated HTTP requests to the RunPod API, used by the create-pod handler.
    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