Kubernetes Ephemeral Job

io.github.inhuman/mcp-k8s-ephemeral-job

Runs a command in a throwaway Kubernetes pod and returns exit code, output and artifacts.

Connect this server

Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.

{
  "mcpServers": {
    "mcp-k8s-ephemeral-job": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "docker.io/idconstruct/mcp-k8s-ephemeral-job:v0.7.1"
      ],
      "env": {
        "MCP_K8S_ALLOWED_IMAGES": "<your MCP_K8S_ALLOWED_IMAGES>",
        "MCP_K8S_KUBECONFIG": "/kube/config",
        "MCP_K8S_NAMESPACE": "mcp-ephemeral",
        "MCP_K8S_TRANSPORT": "stdio",
        "MCP_K8S_DEFAULT_TIMEOUT_S": "60",
        "MCP_K8S_MAX_TIMEOUT_S": "600",
        "MCP_K8S_MAX_OUTPUT_BYTES": "1048576",
        "MCP_K8S_MAX_ARTIFACT_BYTES": "10485760",
        "MCP_K8S_MAX_CONCURRENT": "10",
        "MCP_K8S_DEFAULT_CPU": "1",
        "MCP_K8S_DEFAULT_MEMORY": "512Mi",
        "MCP_K8S_SIDECAR_IMAGE": "busybox:1.36",
        "MCP_K8S_CLONE_SECRET": "<your MCP_K8S_CLONE_SECRET>",
        "MCP_K8S_AUTH_TOKEN": "<your MCP_K8S_AUTH_TOKEN>"
      }
    }
  }
}
Environment variables
  • MCP_K8S_ALLOWED_IMAGESrequiredStrict image allowlist (CSV). Empty means every call is rejected, so this must be set.
  • MCP_K8S_KUBECONFIGPath to the kubeconfig inside the container. Empty = use in-cluster credentials.
  • MCP_K8S_NAMESPACENamespace the ephemeral pods are created in. Needs a Role/RoleBinding for jobs and pods.
  • MCP_K8S_TRANSPORTMCP transport: stdio | http | sse. Must be 'stdio' for direct docker/stdio use.
  • MCP_K8S_DEFAULT_TIMEOUT_SDefault wall-clock timeout per job, seconds.
  • MCP_K8S_MAX_TIMEOUT_SMaximum wall-clock timeout a caller may request, seconds.
  • MCP_K8S_MAX_OUTPUT_BYTESCap on combined stdout/stderr before truncation.
  • MCP_K8S_MAX_ARTIFACT_BYTESCap on the total size of returned artifacts.
  • MCP_K8S_MAX_CONCURRENTMaximum ephemeral pods running at the same time.
  • MCP_K8S_DEFAULT_CPUPod CPU request; limits come from the caller or the namespace LimitRange.
  • MCP_K8S_DEFAULT_MEMORYPod memory request; limits come from the caller or the namespace LimitRange.
  • MCP_K8S_SIDECAR_IMAGEHelper image used to inject input files and collect artifacts.
  • MCP_K8S_CLONE_SECRETsecretSecret with git tokens, mounted only on the cloner. Empty disables the clone field.
  • MCP_K8S_AUTH_TOKENsecretOptional X-MCP-AUTH token required on every request (http/sse transports only).

A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.

Category
Developer Tools
Version
0.7.1
Registry
active
Published
7/20/2026
Browse all Developer Tools →

Add the badge to your site

Show visitors that Kubernetes Ephemeral Job is listed here — it’s also the link we check for a free listing.

Kubernetes Ephemeral Job — listed on Serverdex

HTML — for your website

<a href="https://serverdex.io/server/io-github-inhuman-mcp-k8s-ephemeral-job?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="Kubernetes Ephemeral Job — listed on Serverdex" width="123" height="40" loading="lazy"></a>

Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.

Markdown — for your README

[![Kubernetes Ephemeral Job — listed on Serverdex](https://serverdex.io/brand/badge.svg)](https://serverdex.io/server/io-github-inhuman-mcp-k8s-ephemeral-job?utm_source=badge)

Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.