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/mcpdo { 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.
- 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 - 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 tokenhostWhere your Kubernetes lives: your host
account { op: "connections.requirements", service: "kubernetes" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates 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
Core
16955 read · 84 write · 30 destructive
List nodes · List services across all namespaces · List namespaces · List pods across all namespaces
Apps
6622 read · 34 write · 10 destructive
List deployments across all namespaces · List deployments in a namespace · Create a deployment · Get a deployment
Storage
5214 read · 26 write · 12 destructive
List storage classes · Create a csi driver · List csi drivers · Create a csi node
Admission
5113 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
Networking
4814 read · 24 write · 10 destructive
List ingresses across all namespaces · Create an ingress · List ingresses in a namespace · List ip addresses
Rbac
3410 read · 14 write · 10 destructive
List cluster role bindings · List cluster roles · List role bindings in a namespace · List role bindings across all namespaces
Batch
248 read · 12 write · 4 destructive
List jobs across all namespaces · List cron jobs across all namespaces · List jobs in a namespace · Create a job
Flowcontrol
226 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.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
kubernetes.core.nodes_listList nodes | List nodes | read | infra.instance.list18 connectors |
kubernetes.batch.jobs_list_allList jobs across all namespaces | List jobs across all namespaces | read | infra.job.list12 connectors |
kubernetes.core.services_list_allList services across all namespaces | List services across all namespaces | read | infra.container_service.list11 connectors |
kubernetes.apps.deployments_list_allList deployments across all namespaces | List deployments across all namespaces | read | infra.deployment.list8 connectors |
kubernetes.batch.cron_jobs_list_allList cron jobs across all namespaces | List cron jobs across all namespaces | read | infra.cron_job.list4 connectors |
kubernetes.core.pods_list_allList pods across all namespaces | List pods across all namespaces | read | infra.container.list3 connectors |
kubernetes.core.namespaces_listList namespaces | List namespaces | read | infra.namespace.list3 connectors |
kubernetes.networking.ingresses_list_allList ingresses across all namespaces | List ingresses across all namespaces | read | infra.ingress.list2 connectors |
kubernetes.batch.jobs_createCreate a job | Create a job | write | infra.job.create10 connectors |
kubernetes.core.nodes_createCreate a node | Create a node | write | infra.instance.create10 connectors |
kubernetes.core.services_createCreate a service | Create a service | write | infra.container_service.create8 connectors |
kubernetes.core.nodes_deleteDelete a node | Delete a node | destructive | infra.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.
- Readread
List nodes in Kubernetes and tell me what stands out.
calls
kubernetes.core.nodes_list - Writewrite
Create a job in Kubernetes. Show me exactly what you will send before you save it.
calls
kubernetes.batch.jobs_create
Governance for Kubernetes
Destructive actions wait for a yes.
112 Kubernetes actions are destructive. The first 10:
- Delete a node
kubernetes.core.nodes_delete - Delete nodes matching a selector
kubernetes.core.nodes_delete_collection - Delete a service
kubernetes.core.services_delete - Delete services matching a selector
kubernetes.core.services_delete_collection - Delete a job
kubernetes.batch.jobs_delete - Delete jobs matching a selector
kubernetes.batch.jobs_delete_collection - Delete a deployment
kubernetes.apps.deployments_delete - Delete deployments matching a selector
kubernetes.apps.deployments_delete_collection - Delete a pod
kubernetes.core.pods_delete - Delete a cron job
kubernetes.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.
Delete a node?
intent: the user asked me to delete a node
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]" } ]}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
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 namespacesreadkubernetes.core.nodes_listList nodesreadkubernetes.core.pods_list_allList pods across all namespacesreadkubernetes.core.services_list_allList services across all namespacesreadkubernetes.core.bindings_createCreate a bindingwritekubernetes.core.component_statuses_getGet a component statusread- and 163 more in this area
Apps66
kubernetes.apps.deployments_createCreate a deploymentwritekubernetes.apps.deployments_getGet a deploymentreadkubernetes.apps.deployments_listList deployments in a namespacereadkubernetes.apps.deployments_list_allList deployments across all namespacesreadkubernetes.apps.controller_revisions_applyApply a controller revision (server-side apply, like kubectl apply)writekubernetes.apps.controller_revisions_createCreate a controller revisionwrite- and 60 more in this area
Storage52
kubernetes.storage.csi_drivers_createCreate a csi driverwritekubernetes.storage.csi_drivers_listList csi driversreadkubernetes.storage.csi_nodes_createCreate a csi nodewritekubernetes.storage.storage_classes_listList storage classesreadkubernetes.storage.csi_drivers_applyApply a csi driver (server-side apply, like kubectl apply)writekubernetes.storage.csi_drivers_deleteDelete a csi driverdestructive- and 46 more in this area
Admission51
kubernetes.admission.mutating_admission_policies_createCreate a mutating admission policywritekubernetes.admission.mutating_admission_policies_listList mutating admission policiesreadkubernetes.admission.mutating_admission_policy_bindings_createCreate a mutating admission policy bindingwritekubernetes.admission.mutating_admission_policy_bindings_listList mutating admission policy bindingsreadkubernetes.admission.mutating_admission_policies_applyApply a mutating admission policy (server-side apply, like kubectl apply)writekubernetes.admission.mutating_admission_policies_deleteDelete a mutating admission policydestructive- and 45 more in this area
Networking48
kubernetes.networking.ingresses_createCreate an ingresswritekubernetes.networking.ingresses_listList ingresses in a namespacereadkubernetes.networking.ingresses_list_allList ingresses across all namespacesreadkubernetes.networking.ip_addresses_listList ip addressesreadkubernetes.networking.ingress_classes_applyApply an ingress class (server-side apply, like kubectl apply)writekubernetes.networking.ingress_classes_createCreate an ingress classwrite- and 42 more in this area
Rbac34
kubernetes.rbac.cluster_role_bindings_listList cluster role bindingsreadkubernetes.rbac.cluster_roles_listList cluster rolesreadkubernetes.rbac.role_bindings_listList role bindings in a namespacereadkubernetes.rbac.role_bindings_list_allList role bindings across all namespacesreadkubernetes.rbac.cluster_role_bindings_applyApply a cluster role binding (server-side apply, like kubectl apply)writekubernetes.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 namespacesreadkubernetes.batch.jobs_createCreate a jobwritekubernetes.batch.jobs_listList jobs in a namespacereadkubernetes.batch.jobs_list_allList jobs across all namespacesreadkubernetes.batch.cron_jobs_applyApply a cron job (server-side apply, like kubectl apply)writekubernetes.batch.cron_jobs_createCreate a cron jobwrite- and 18 more in this area
Flowcontrol22
kubernetes.flowcontrol.flow_schemas_createCreate a flow schemawritekubernetes.flowcontrol.flow_schemas_listList flow schemasreadkubernetes.flowcontrol.priority_level_configurations_createCreate a priority level configurationwritekubernetes.flowcontrol.priority_level_configurations_listList priority level configurationsreadkubernetes.flowcontrol.flow_schemas_applyApply a flow schema (server-side apply, like kubectl apply)writekubernetes.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 requestreadkubernetes.certificates.certificate_signing_requests_approval_patchPatch the approval of a certificate signing requestwritekubernetes.certificates.certificate_signing_requests_createCreate a certificate signing requestwritekubernetes.certificates.certificate_signing_requests_listList certificate signing requestsreadkubernetes.certificates.certificate_signing_requests_applyApply a certificate signing request (server-side apply, like kubectl apply)writekubernetes.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 autoscalerwritekubernetes.autoscaling.horizontal_pod_autoscalers_getGet a horizontal pod autoscalerreadkubernetes.autoscaling.horizontal_pod_autoscalers_listList horizontal pod autoscalers in a namespacereadkubernetes.autoscaling.horizontal_pod_autoscalers_list_allList horizontal pod autoscalers across all namespacesreadkubernetes.autoscaling.horizontal_pod_autoscalers_applyApply a horizontal pod autoscaler (server-side apply, like kubectl apply)writekubernetes.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 budgetwritekubernetes.policy.pod_disruption_budgets_getGet a pod disruption budgetreadkubernetes.policy.pod_disruption_budgets_listList pod disruption budgets in a namespacereadkubernetes.policy.pod_disruption_budgets_list_allList pod disruption budgets across all namespacesreadkubernetes.policy.pod_disruption_budgets_applyApply a pod disruption budget (server-side apply, like kubectl apply)writekubernetes.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 definitionwritekubernetes.apiextensions.custom_resource_definitions_getGet a custom resource definitionreadkubernetes.apiextensions.custom_resource_definitions_listList custom resource definitionsreadkubernetes.apiextensions.custom_resource_definitions_patchPatch a custom resource definitionwritekubernetes.apiextensions.custom_resource_definitions_applyApply a custom resource definition (server-side apply, like kubectl apply)writekubernetes.apiextensions.custom_resource_definitions_deleteDelete a custom resource definitiondestructive- and 5 more in this area
Apiregistration11
kubernetes.apiregistration.api_services_createCreate an api servicewritekubernetes.apiregistration.api_services_getGet an api servicereadkubernetes.apiregistration.api_services_listList api servicesreadkubernetes.apiregistration.api_services_patchPatch an api servicewritekubernetes.apiregistration.api_services_applyApply an api service (server-side apply, like kubectl apply)writekubernetes.apiregistration.api_services_deleteDelete an api servicedestructive- and 5 more in this area
Coordination9
kubernetes.coordination.leases_createCreate a leasewritekubernetes.coordination.leases_getGet a leasereadkubernetes.coordination.leases_listList leases in a namespacereadkubernetes.coordination.leases_list_allList leases across all namespacesreadkubernetes.coordination.leases_applyApply a lease (server-side apply, like kubectl apply)writekubernetes.coordination.leases_deleteDelete a leasedestructive- and 3 more in this area
Discovery9
kubernetes.discovery.endpoint_slices_createCreate an endpoint slicewritekubernetes.discovery.endpoint_slices_getGet an endpoint slicereadkubernetes.discovery.endpoint_slices_listList endpoint slices in a namespacereadkubernetes.discovery.endpoint_slices_list_allList endpoint slices across all namespacesreadkubernetes.discovery.endpoint_slices_applyApply an endpoint slice (server-side apply, like kubectl apply)writekubernetes.discovery.endpoint_slices_deleteDelete an endpoint slicedestructive- and 3 more in this area
Events8
kubernetes.events.events_createCreate an event (events.k8s.io)writekubernetes.events.events_getGet an event (events.k8s.io)readkubernetes.events.events_listList events in a namespace (events.k8s.io)readkubernetes.events.events_list_allList events across all namespaces (events.k8s.io)readkubernetes.events.events_deleteDelete an event (events.k8s.io)destructivekubernetes.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 classwritekubernetes.node.runtime_classes_getGet a runtime classreadkubernetes.node.runtime_classes_listList runtime classesreadkubernetes.node.runtime_classes_patchPatch a runtime classwritekubernetes.node.runtime_classes_applyApply a runtime class (server-side apply, like kubectl apply)writekubernetes.node.runtime_classes_deleteDelete a runtime classdestructive- and 2 more in this area
Scheduling8
kubernetes.scheduling.priority_classes_createCreate a priority classwritekubernetes.scheduling.priority_classes_getGet a priority classreadkubernetes.scheduling.priority_classes_listList priority classesreadkubernetes.scheduling.priority_classes_patchPatch a priority classwritekubernetes.scheduling.priority_classes_applyApply a priority class (server-side apply, like kubectl apply)writekubernetes.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 reviewwritekubernetes.authorization.self_subject_access_reviews_createCreate a self subject access reviewwritekubernetes.authorization.self_subject_rules_reviews_createCreate a self subject rules reviewwritekubernetes.authorization.subject_access_reviews_createCreate a subject access reviewwrite
Meta4
kubernetes.meta.api_groupsList the API groups the cluster servesreadkubernetes.meta.core_resourcesList the resources in the core APIreadkubernetes.meta.group_resourcesList the resources an API group version servesreadkubernetes.meta.versionGet the cluster's Kubernetes versionread
Authentication2
kubernetes.authentication.self_subject_reviews_createCreate a self subject reviewwritekubernetes.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.