Skip to content

Connectors · Developer & infrastructure

Kubernetes MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Kubernetes and the rest of your systems. It gives your agent 578 Kubernetes actions (177 reads, 289 writes and 112 that wait for a confirmation) and holds the Kubernetes credential itself, so the agent never does. It paces Kubernetes's limits and records every call.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "kubernetes.core.nodes_list",  intent: "check which Kubernetes account is connected"}# List nodes · read · 1 upstream call
  • 578actionsin one signed file
  • 177readlook, never change
  • 289writecreate and update
  • 112wait for a yesdestructive, confirmed first

Set up

Connect Kubernetes in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect Kubernetes.

    Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • tokenBearer token from the kubeconfig `users[].user.token` — a service account token or a cloud-issued cluster token
    • hostWhere your Kubernetes lives: your host
    account { op: "connections.requirements", service: "kubernetes" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "kubernetes.core.nodes_list" }# list nodes · read · 1 upstream callcheck { action: "kubernetes.batch.jobs_create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Kubernetes at a glance

Sign-in
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
token
Setup fields
host
Limits we pace to
600 calls a minute, per connection
API covered
Kubernetes API v1.36, at your Kubernetes instance's API base URL, which you enter when connecting
Built from
Kubernetes's documentation, read 22 September 2026OpenAPI spec (GitHub)
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
174 of 177 reads, for up to an hour; a write clears what it affects
Shared entities
7, so ask can line Kubernetes up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Kubernetes.

578 actions in 21 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 177readlook, never change
  • 289writecreate and update
  • 112destructivewait for a confirmation
  1. Core

    169

    55 read · 84 write · 30 destructive

    List nodes · List services across all namespaces · List namespaces · List pods across all namespaces

  2. Apps

    66

    22 read · 34 write · 10 destructive

    List deployments across all namespaces · List deployments in a namespace · Create a deployment · Get a deployment

  3. Storage

    52

    14 read · 26 write · 12 destructive

    List storage classes · Create a csi driver · List csi drivers · Create a csi node

  4. Admission

    51

    13 read · 26 write · 12 destructive

    Create a mutating admission policy · List mutating admission policies · Create a mutating admission policy binding · List mutating admission policy bindings

  5. Networking

    48

    14 read · 24 write · 10 destructive

    List ingresses across all namespaces · Create an ingress · List ingresses in a namespace · List ip addresses

  6. Rbac

    34

    10 read · 14 write · 10 destructive

    List cluster role bindings · List cluster roles · List role bindings in a namespace · List role bindings across all namespaces

  7. Batch

    24

    8 read · 12 write · 4 destructive

    List jobs across all namespaces · List cron jobs across all namespaces · List jobs in a namespace · Create a job

  8. Flowcontrol

    22

    6 read · 12 write · 4 destructive

    Create a flow schema · List flow schemas · Create a priority level configuration · List priority level configurations

13 more areas · 112 actions
  • Certificates 14
  • Autoscaling 12
  • Policy 12
  • Apiextensions 11
  • Apiregistration 11
  • Coordination 9
  • Discovery 9
  • Events 8
  • Node 8
  • Scheduling 8
  • Authorization 4
  • Meta 4
  • Authentication 2

Top actions

The Kubernetes API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 94 of Kubernetes's 332 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
kubernetes.core.nodes_listList nodesList nodesreadinfra.instance.list18 connectors
kubernetes.batch.jobs_list_allList jobs across all namespacesList jobs across all namespacesreadinfra.job.list12 connectors
kubernetes.core.services_list_allList services across all namespacesList services across all namespacesreadinfra.container_service.list11 connectors
kubernetes.apps.deployments_list_allList deployments across all namespacesList deployments across all namespacesreadinfra.deployment.list8 connectors
kubernetes.batch.cron_jobs_list_allList cron jobs across all namespacesList cron jobs across all namespacesreadinfra.cron_job.list4 connectors
kubernetes.core.pods_list_allList pods across all namespacesList pods across all namespacesreadinfra.container.list3 connectors
kubernetes.core.namespaces_listList namespacesList namespacesreadinfra.namespace.list3 connectors
kubernetes.networking.ingresses_list_allList ingresses across all namespacesList ingresses across all namespacesreadinfra.ingress.list2 connectors
kubernetes.batch.jobs_createCreate a jobCreate a jobwriteinfra.job.create10 connectors
kubernetes.core.nodes_createCreate a nodeCreate a nodewriteinfra.instance.create10 connectors
kubernetes.core.services_createCreate a serviceCreate a servicewriteinfra.container_service.create8 connectors
kubernetes.core.nodes_deleteDelete a nodeDelete a nodedestructiveinfra.instance.delete13 connectors

Try it

Prompts to paste into Claude.

Each one names the Kubernetes actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    List nodes in Kubernetes and tell me what stands out.

    callskubernetes.core.nodes_list

  2. Writewrite

    Create a job in Kubernetes. Show me exactly what you will send before you save it.

    callskubernetes.batch.jobs_create

Governance for Kubernetes

Destructive actions wait for a yes.

112 Kubernetes actions are destructive. The first 10:

  • Delete a nodekubernetes.core.nodes_delete
  • Delete nodes matching a selectorkubernetes.core.nodes_delete_collection
  • Delete a servicekubernetes.core.services_delete
  • Delete services matching a selectorkubernetes.core.services_delete_collection
  • Delete a jobkubernetes.batch.jobs_delete
  • Delete jobs matching a selectorkubernetes.batch.jobs_delete_collection
  • Delete a deploymentkubernetes.apps.deployments_delete
  • Delete deployments matching a selectorkubernetes.apps.deployments_delete_collection
  • Delete a podkubernetes.core.pods_delete
  • Delete a cron jobkubernetes.batch.cron_jobs_delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

dokubernetes.core.nodes_deleteconfirm_policy: human

Delete a node?

intent: the user asked me to delete a node

run suspended · waiting for a named person · key kubernetes-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "kubernetes-agent",  allowed_actions: ["kubernetes.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "kubernetes.core.nodes_delete", approver: "[email protected]" },    { match: "kubernetes.core.nodes_delete_collection", approver: "[email protected]" },    { match: "kubernetes.core.services_delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Kubernetes only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Kubernetes costs on actionlake.

Every Kubernetes action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Kubernetes refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 578 Kubernetes actions
  • 578actions pageeach page of a long list is one call
  • 174reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Kubernetes action.

578 actions by area: the id your agent calls, what it does, and its effect.

Core169
  • kubernetes.core.namespaces_listList namespacesread
  • kubernetes.core.nodes_listList nodesread
  • kubernetes.core.pods_list_allList pods across all namespacesread
  • kubernetes.core.services_list_allList services across all namespacesread
  • kubernetes.core.bindings_createCreate a bindingwrite
  • kubernetes.core.component_statuses_getGet a component statusread
  • and 163 more in this area
Apps66
  • kubernetes.apps.deployments_createCreate a deploymentwrite
  • kubernetes.apps.deployments_getGet a deploymentread
  • kubernetes.apps.deployments_listList deployments in a namespaceread
  • kubernetes.apps.deployments_list_allList deployments across all namespacesread
  • kubernetes.apps.controller_revisions_applyApply a controller revision (server-side apply, like kubectl apply)write
  • kubernetes.apps.controller_revisions_createCreate a controller revisionwrite
  • and 60 more in this area
Storage52
  • kubernetes.storage.csi_drivers_createCreate a csi driverwrite
  • kubernetes.storage.csi_drivers_listList csi driversread
  • kubernetes.storage.csi_nodes_createCreate a csi nodewrite
  • kubernetes.storage.storage_classes_listList storage classesread
  • kubernetes.storage.csi_drivers_applyApply a csi driver (server-side apply, like kubectl apply)write
  • kubernetes.storage.csi_drivers_deleteDelete a csi driverdestructive
  • and 46 more in this area
Admission51
  • kubernetes.admission.mutating_admission_policies_createCreate a mutating admission policywrite
  • kubernetes.admission.mutating_admission_policies_listList mutating admission policiesread
  • kubernetes.admission.mutating_admission_policy_bindings_createCreate a mutating admission policy bindingwrite
  • kubernetes.admission.mutating_admission_policy_bindings_listList mutating admission policy bindingsread
  • kubernetes.admission.mutating_admission_policies_applyApply a mutating admission policy (server-side apply, like kubectl apply)write
  • kubernetes.admission.mutating_admission_policies_deleteDelete a mutating admission policydestructive
  • and 45 more in this area
Networking48
  • kubernetes.networking.ingresses_createCreate an ingresswrite
  • kubernetes.networking.ingresses_listList ingresses in a namespaceread
  • kubernetes.networking.ingresses_list_allList ingresses across all namespacesread
  • kubernetes.networking.ip_addresses_listList ip addressesread
  • kubernetes.networking.ingress_classes_applyApply an ingress class (server-side apply, like kubectl apply)write
  • kubernetes.networking.ingress_classes_createCreate an ingress classwrite
  • and 42 more in this area
Rbac34
  • kubernetes.rbac.cluster_role_bindings_listList cluster role bindingsread
  • kubernetes.rbac.cluster_roles_listList cluster rolesread
  • kubernetes.rbac.role_bindings_listList role bindings in a namespaceread
  • kubernetes.rbac.role_bindings_list_allList role bindings across all namespacesread
  • kubernetes.rbac.cluster_role_bindings_applyApply a cluster role binding (server-side apply, like kubectl apply)write
  • kubernetes.rbac.cluster_role_bindings_createCreate a cluster role bindingdestructive
  • and 28 more in this area
Batch24
  • kubernetes.batch.cron_jobs_list_allList cron jobs across all namespacesread
  • kubernetes.batch.jobs_createCreate a jobwrite
  • kubernetes.batch.jobs_listList jobs in a namespaceread
  • kubernetes.batch.jobs_list_allList jobs across all namespacesread
  • kubernetes.batch.cron_jobs_applyApply a cron job (server-side apply, like kubectl apply)write
  • kubernetes.batch.cron_jobs_createCreate a cron jobwrite
  • and 18 more in this area
Flowcontrol22
  • kubernetes.flowcontrol.flow_schemas_createCreate a flow schemawrite
  • kubernetes.flowcontrol.flow_schemas_listList flow schemasread
  • kubernetes.flowcontrol.priority_level_configurations_createCreate a priority level configurationwrite
  • kubernetes.flowcontrol.priority_level_configurations_listList priority level configurationsread
  • kubernetes.flowcontrol.flow_schemas_applyApply a flow schema (server-side apply, like kubectl apply)write
  • kubernetes.flowcontrol.flow_schemas_deleteDelete a flow schemadestructive
  • and 16 more in this area
Certificates14
  • kubernetes.certificates.certificate_signing_requests_approval_getGet the approval of a certificate signing requestread
  • kubernetes.certificates.certificate_signing_requests_approval_patchPatch the approval of a certificate signing requestwrite
  • kubernetes.certificates.certificate_signing_requests_createCreate a certificate signing requestwrite
  • kubernetes.certificates.certificate_signing_requests_listList certificate signing requestsread
  • kubernetes.certificates.certificate_signing_requests_applyApply a certificate signing request (server-side apply, like kubectl apply)write
  • kubernetes.certificates.certificate_signing_requests_approval_replaceReplace the approval of a certificate signing requestwrite
  • and 8 more in this area
Autoscaling12
  • kubernetes.autoscaling.horizontal_pod_autoscalers_createCreate a horizontal pod autoscalerwrite
  • kubernetes.autoscaling.horizontal_pod_autoscalers_getGet a horizontal pod autoscalerread
  • kubernetes.autoscaling.horizontal_pod_autoscalers_listList horizontal pod autoscalers in a namespaceread
  • kubernetes.autoscaling.horizontal_pod_autoscalers_list_allList horizontal pod autoscalers across all namespacesread
  • kubernetes.autoscaling.horizontal_pod_autoscalers_applyApply a horizontal pod autoscaler (server-side apply, like kubectl apply)write
  • kubernetes.autoscaling.horizontal_pod_autoscalers_deleteDelete a horizontal pod autoscalerdestructive
  • and 6 more in this area
Policy12
  • kubernetes.policy.pod_disruption_budgets_createCreate a pod disruption budgetwrite
  • kubernetes.policy.pod_disruption_budgets_getGet a pod disruption budgetread
  • kubernetes.policy.pod_disruption_budgets_listList pod disruption budgets in a namespaceread
  • kubernetes.policy.pod_disruption_budgets_list_allList pod disruption budgets across all namespacesread
  • kubernetes.policy.pod_disruption_budgets_applyApply a pod disruption budget (server-side apply, like kubectl apply)write
  • kubernetes.policy.pod_disruption_budgets_deleteDelete a pod disruption budgetdestructive
  • and 6 more in this area
Apiextensions11
  • kubernetes.apiextensions.custom_resource_definitions_createCreate a custom resource definitionwrite
  • kubernetes.apiextensions.custom_resource_definitions_getGet a custom resource definitionread
  • kubernetes.apiextensions.custom_resource_definitions_listList custom resource definitionsread
  • kubernetes.apiextensions.custom_resource_definitions_patchPatch a custom resource definitionwrite
  • kubernetes.apiextensions.custom_resource_definitions_applyApply a custom resource definition (server-side apply, like kubectl apply)write
  • kubernetes.apiextensions.custom_resource_definitions_deleteDelete a custom resource definitiondestructive
  • and 5 more in this area
Apiregistration11
  • kubernetes.apiregistration.api_services_createCreate an api servicewrite
  • kubernetes.apiregistration.api_services_getGet an api serviceread
  • kubernetes.apiregistration.api_services_listList api servicesread
  • kubernetes.apiregistration.api_services_patchPatch an api servicewrite
  • kubernetes.apiregistration.api_services_applyApply an api service (server-side apply, like kubectl apply)write
  • kubernetes.apiregistration.api_services_deleteDelete an api servicedestructive
  • and 5 more in this area
Coordination9
  • kubernetes.coordination.leases_createCreate a leasewrite
  • kubernetes.coordination.leases_getGet a leaseread
  • kubernetes.coordination.leases_listList leases in a namespaceread
  • kubernetes.coordination.leases_list_allList leases across all namespacesread
  • kubernetes.coordination.leases_applyApply a lease (server-side apply, like kubectl apply)write
  • kubernetes.coordination.leases_deleteDelete a leasedestructive
  • and 3 more in this area
Discovery9
  • kubernetes.discovery.endpoint_slices_createCreate an endpoint slicewrite
  • kubernetes.discovery.endpoint_slices_getGet an endpoint sliceread
  • kubernetes.discovery.endpoint_slices_listList endpoint slices in a namespaceread
  • kubernetes.discovery.endpoint_slices_list_allList endpoint slices across all namespacesread
  • kubernetes.discovery.endpoint_slices_applyApply an endpoint slice (server-side apply, like kubectl apply)write
  • kubernetes.discovery.endpoint_slices_deleteDelete an endpoint slicedestructive
  • and 3 more in this area
Events8
  • kubernetes.events.events_createCreate an event (events.k8s.io)write
  • kubernetes.events.events_getGet an event (events.k8s.io)read
  • kubernetes.events.events_listList events in a namespace (events.k8s.io)read
  • kubernetes.events.events_list_allList events across all namespaces (events.k8s.io)read
  • kubernetes.events.events_deleteDelete an event (events.k8s.io)destructive
  • kubernetes.events.events_delete_collectionDelete events matching a selector (events.k8s.io)destructive
  • and 2 more in this area
Node8
  • kubernetes.node.runtime_classes_createCreate a runtime classwrite
  • kubernetes.node.runtime_classes_getGet a runtime classread
  • kubernetes.node.runtime_classes_listList runtime classesread
  • kubernetes.node.runtime_classes_patchPatch a runtime classwrite
  • kubernetes.node.runtime_classes_applyApply a runtime class (server-side apply, like kubectl apply)write
  • kubernetes.node.runtime_classes_deleteDelete a runtime classdestructive
  • and 2 more in this area
Scheduling8
  • kubernetes.scheduling.priority_classes_createCreate a priority classwrite
  • kubernetes.scheduling.priority_classes_getGet a priority classread
  • kubernetes.scheduling.priority_classes_listList priority classesread
  • kubernetes.scheduling.priority_classes_patchPatch a priority classwrite
  • kubernetes.scheduling.priority_classes_applyApply a priority class (server-side apply, like kubectl apply)write
  • kubernetes.scheduling.priority_classes_deleteDelete a priority classdestructive
  • and 2 more in this area
Authorization4
  • kubernetes.authorization.local_subject_access_reviews_createCreate a local subject access reviewwrite
  • kubernetes.authorization.self_subject_access_reviews_createCreate a self subject access reviewwrite
  • kubernetes.authorization.self_subject_rules_reviews_createCreate a self subject rules reviewwrite
  • kubernetes.authorization.subject_access_reviews_createCreate a subject access reviewwrite
Meta4
  • kubernetes.meta.api_groupsList the API groups the cluster servesread
  • kubernetes.meta.core_resourcesList the resources in the core APIread
  • kubernetes.meta.group_resourcesList the resources an API group version servesread
  • kubernetes.meta.versionGet the cluster's Kubernetes versionread
Authentication2
  • kubernetes.authentication.self_subject_reviews_createCreate a self subject reviewwrite
  • kubernetes.authentication.token_reviews_createCreate a token reviewwrite

This index shows a sample of each area. All 578 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.

Questions

The Kubernetes MCP server, answered.

Is there a Kubernetes MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 578 Kubernetes actions across core, apps, storage and admission, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Kubernetes.

What do I need to connect Kubernetes?

Bearer token from the kubeconfig `users[].user.token` — a service account token or a cloud-issued cluster token. Plus your host. The free call account { op: "connections.requirements", service: "kubernetes" } lists exactly what to paste.

Can an AI agent delete or change things in Kubernetes?

Only if its key allows it, and only with an explicit confirmation. 112 Kubernetes actions are destructive, including delete a node, delete nodes matching a selector and delete a service. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my Kubernetes API limit?

actionlake paces every call to the limits in the Kubernetes service file: 600 calls a minute per connection. Repeated reads are answered from cache (174 Kubernetes actions can be), which never reaches Kubernetes.

What does a Kubernetes action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (578 Kubernetes actions page). Cache hits, searches, dry runs and calls Kubernetes refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which Kubernetes API does it cover?

The Kubernetes API v1.36 at your Kubernetes instance's API base URL, which you enter when connecting. It is built from Kubernetes's documentation as read on 22 September 2026. 578 actions in 21 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Kubernetes data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Kubernetes credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent Kubernetes today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.