get-pod
Retrieve a specific RunPod pod's configuration and status by its pod ID. Optionally include machine and network volume details.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| podId | Yes | ID of the pod to retrieve | |
| includeMachine | No | Include information about the machine | |
| includeNetworkVolume | No | Include information about attached network volumes |
Implementation Reference
- src/index.ts:389-428 (registration)Registers the 'get-pod' tool on the MCP server using server.tool()
server.tool( 'get-pod', { podId: z.string().describe('ID of the pod to retrieve'), includeMachine: z .boolean() .optional() .describe('Include information about the machine'), includeNetworkVolume: z .boolean() .optional() .describe('Include information about attached network volumes'), }, async (params) => { // Construct query parameters const queryParams = new URLSearchParams(); if (params.includeMachine) queryParams.append('includeMachine', params.includeMachine.toString()); if (params.includeNetworkVolume) queryParams.append( 'includeNetworkVolume', params.includeNetworkVolume.toString() ); const queryString = queryParams.toString() ? `?${queryParams.toString()}` : ''; const result = await runpodRequest(`/pods/${params.podId}${queryString}`); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } ); - src/index.ts:391-400 (schema)Input schema for the get-pod tool: podId (required), includeMachine (optional bool), includeNetworkVolume (optional bool)
{ podId: z.string().describe('ID of the pod to retrieve'), includeMachine: z .boolean() .optional() .describe('Include information about the machine'), includeNetworkVolume: z .boolean() .optional() .describe('Include information about attached network volumes'), - src/index.ts:402-427 (handler)Handler function that constructs query parameters, calls runpodRequest('/pods/{podId}') and returns JSON response
async (params) => { // Construct query parameters const queryParams = new URLSearchParams(); if (params.includeMachine) queryParams.append('includeMachine', params.includeMachine.toString()); if (params.includeNetworkVolume) queryParams.append( 'includeNetworkVolume', params.includeNetworkVolume.toString() ); const queryString = queryParams.toString() ? `?${queryParams.toString()}` : ''; const result = await runpodRequest(`/pods/${params.podId}${queryString}`); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } - src/index.ts:60-99 (helper)Helper function that makes authenticated HTTP requests to the RunPod REST API, used by get-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; } }