Skip to main content
Glama

stop-pod

Stop a running pod on RunPod to terminate compute resources and manage costs. Provide the pod ID to initiate shutdown.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
podIdYesID of the pod to stop

Implementation Reference

  • The handler function for the 'stop-pod' tool. It takes a podId parameter, makes a POST request to the RunPod API endpoint `/pods/{podId}/stop` using the shared runpodRequest helper, and returns the API response as formatted JSON text content.
    async (params) => { const result = await runpodRequest(`/pods/${params.podId}/stop`, 'POST'); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }
  • The input schema for the 'stop-pod' tool, defined using Zod. It requires a single string parameter 'podId' which is the ID of the pod to stop.
    { podId: z.string().describe('ID of the pod to stop'), },
  • src/index.ts:278-295 (registration)
    The registration of the 'stop-pod' tool on the MCP server using server.tool(). This includes the tool name, input schema, and handler function.
    server.tool( 'stop-pod', { podId: z.string().describe('ID of the pod to stop'), }, async (params) => { const result = await runpodRequest(`/pods/${params.podId}/stop`, 'POST'); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; } );
  • Shared helper function runpodRequest used by the 'stop-pod' handler (and other tools) to make authenticated HTTP requests to the RunPod API, handling headers, JSON body, error checking, and response parsing.
    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