RunPod MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| RUNPOD_API_KEY | Yes | Your RunPod API key from the RunPod console |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list-gpu-typesA | List available GPU types with stock/pricing and capability filters (minimum VRAM, secure/community cloud, name search). Use this to discover valid gpuTypeIds before creating a pod or endpoint. On v2 the realtime stock filter is a no-op. |
| list-data-centersA | List Runpod data centers (id, name, region/location). Use this to discover valid dataCenterIds for placing pods, endpoints, or network volumes. |
| list-cpu-typesA | List available CPU flavor types for CPU pods/endpoints. v2-only — returns a 501 notice on the v1 API. |
| get-gpu-typeA | Get details for a single GPU type by id. v2-only — returns a 501 notice on the v1 API (use list-gpu-types there). |
| get-cpu-typeA | Get details for a single CPU flavor type by id. v2-only — returns a 501 notice on the v1 API (use list-cpu-types there). |
| get-data-centerA | Get details for a single data center by id. v2-only — returns a 501 notice on the v1 API (use list-data-centers there). |
| list-podsA | List your pods (running and stopped) with optional filters — compute type, GPU type, data center, name — plus machine/network-volume expansion. Paginated via limit/cursor. |
| get-podA | Get full details for one pod by id, optionally expanding machine and attached network-volume info. |
| create-podA | Create a new GPU/CPU pod on Runpod. Pass gpuTypeIds for a GPU pod, or computeType:"CPU" for a CPU pod (CPU pods are served by the v1 API for now). If the user does not specify an image, recommend the "Runpod Pytorch 2.8.0" image (runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404) as the default — it has the most up-to-date CUDA and PyTorch versions. |
| update-podA | Update a pod's mutable fields (name, image, container disk, volume, ports, env). Only the fields you provide change. |
| start-podA | Start a stopped pod (resumes the same pod and its billing). |
| stop-podA | Stop a running pod. The pod and its disk persist; GPU billing stops. |
| restart-podA | Restart a running pod (single PodAction call). v2-only — on the v1 API returns a 501 notice (stop then start the pod instead). |
| delete-podA | Permanently delete a pod and its data. This cannot be undone. |
| list-endpointsA | List your Serverless endpoints, optionally expanding template and worker details (v1 only). Paginated via limit/cursor. |
| get-endpointA | Get one Serverless endpoint by id, optionally expanding template and worker details (v1 only). |
| create-endpointA | Create a Serverless endpoint. On v2 (default), pass an inline config: imageName + gpuPoolIds (GPU pool names from list-gpu-types — the |
| update-endpointA | Update a Serverless endpoint's config. On v2 you can change image/disk/env/ports/registry/workers/scaling/networkVolumes/timeout/flashboot; on v1, scaling fields (worker min/max, idle timeout, scaler type/value, name). Only provided fields change. |
| delete-endpointA | Permanently delete a Serverless endpoint. This cannot be undone. |
| list-endpoint-workersA | List the workers backing a Serverless endpoint, with their status and an aggregate summary. v2-only — returns a 501 notice on the v1 API. Paginated via limit/cursor. |
| run-endpointA | Submit an asynchronous job to a Serverless endpoint. Returns a job ID immediately — use get-job-status to poll for results. Async results are available for 30 minutes after completion. |
| runsync-endpointA | Submit a synchronous job to a Serverless endpoint and wait for the result. Best for tasks completing within 90 seconds. If processing exceeds 90 seconds, the response returns a job ID to poll with get-job-status. Max payload: 20 MB. Results expire after 1 minute. Use the wait parameter to extend the server-side wait up to 5 minutes (300000 ms). |
| get-job-statusA | Check the status of an asynchronous Serverless job. Returns the current status and output when complete. Job statuses: IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED, CANCELLED, TIMED_OUT. |
| stream-jobA | Retrieve all streaming output from a Serverless job by polling until the job reaches a terminal state. The worker must support streaming output. Polls /stream/{jobId} repeatedly and collects every chunk until status is COMPLETED, FAILED, CANCELLED, or TIMED_OUT. |
| cancel-jobA | Cancel a Serverless job that is queued or in progress. |
| retry-jobA | Retry a failed or timed-out Serverless job. Only works for jobs with FAILED or TIMED_OUT status. The previous output is removed and the job is requeued. |
| endpoint-healthA | Get the health and operational status of a Serverless endpoint, including worker counts and job statistics. |
| purge-endpoint-queueA | Remove all pending jobs from a Serverless endpoint queue. Only affects queued jobs — in-progress jobs continue running. Use this for error recovery or clearing outdated requests. |
| list-templatesA | List available templates. By default returns only the user's own templates. Use includeRunpodTemplates to also include official Runpod templates. The recommended default template for new pods is "Runpod Pytorch 2.8.0" (ID: runpod-torch-v280) — it has the latest CUDA and PyTorch versions. |
| get-templateA | Get one template by id (image, env, ports, disk/volume config). |
| create-templateA | Create a reusable pod/endpoint template (image, ports, env, disk/volume). On v2 a category is required and defaults to NVIDIA. |
| update-templateA | Update a template's mutable fields (name, image, ports, env, readme). Only provided fields change. |
| delete-templateA | Permanently delete a template. This cannot be undone. |
| list-network-volumesA | List your network volumes (persistent storage attachable to pods). Paginated via limit/cursor. |
| get-network-volumeA | Get one network volume by id (name, size, data center). |
| create-network-volumeA | Create a persistent network volume in a data center (size 1–4000 GB) that pods can mount. |
| update-network-volumeA | Update a network volume (rename, or grow size — the new size must exceed the current size). Only provided fields change. |
| delete-network-volumeA | Permanently delete a network volume and its data. This cannot be undone. |
| list-container-registry-authsA | List your saved container-registry credentials (private image-pull auth). Paginated via limit/cursor. |
| get-container-registry-authA | Get one saved container-registry credential by id (the secret/password is not returned). |
| create-container-registry-authA | Save container-registry credentials (username + password/token) so pods and endpoints can pull private images. |
| delete-container-registry-authA | Permanently delete a saved container-registry credential. This cannot be undone. |
| list-tagsA | List your tags (key/value labels on pods, volumes, clusters, and endpoints). v2-only — returns a 501 notice on the v1 API. Paginated via limit/cursor. |
| get-tagA | Get one tag by id, optionally including its attached resources. v2-only — returns a 501 notice on the v1 API. |
| create-tagA | Create a key/value tag, optionally attaching resources at creation. v2-only — returns a 501 notice on the v1 API. |
| update-tagA | Update a tag (rename its key/value, or replace its resource associations). Provide at least one of key, value, or resources. Sending resources:[] removes all associations; omitting resources leaves them unchanged. Replacing resources is NOT atomic — a failed update can leave a partially-applied set, so for small association changes prefer attach-tag/detach-tag. v2-only — returns a 501 notice on the v1 API. |
| delete-tagA | Permanently delete a tag (removes it from all resources it is attached to). This cannot be undone. v2-only — returns a 501 notice on the v1 API. |
| attach-tagA | Attach a tag to a resource (pod, network volume, cluster, or serverless endpoint). Idempotent — attaching an already-associated resource is a no-op. v2-only — returns a 501 notice on the v1 API. |
| detach-tagA | Detach a tag from a resource (removes the association only — the resource and tag are not deleted). Idempotent — detaching a resource that is not associated is a no-op. v2-only — returns a 501 notice on the v1 API. |
| get-billingA | Get time-bucketed Runpod spend history, either aggregated across all resources or broken down by resource type (pods, serverless, endpoints, network volumes, clusters). v2-only — returns a 501 notice on the v1 API. Records are capped via limit/cursor; narrow the window with startTime/endTime or lastN. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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