
Amazon EKS MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude and Cursor create EKS clusters, deploy apps, read pod logs and troubleshoot Kubernetes on Amazon EKS.
This is the AWS Labs server for Amazon EKS. It manages clusters and Kubernetes resources, reads pod logs, events and CloudWatch data, and searches the EKS troubleshooting guide. It runs on your computer with your AWS credentials or kubeconfig. It starts read-only, and changes and log access each need a separate setting.
Good for
- Platform engineers who run Amazon EKS clusters
- Developers deploying containerized apps to Kubernetes on AWS
- On-call engineers who need logs, events and metrics fast
- Teams using OIDC or kubeconfig logins instead of AWS keys
Works in
12 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Client does not support this transport.
Client does not support this transport.
Install Amazon EKS MCP
Claude Code
- 1
Copy this prompt.
Add the Amazon EKS MCP server to Claude Code. Run this command: claude mcp add amazon-eks -- uvx awslabs.eks-mcp-server Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires uv (Python).
Built from the package data we hold. Not yet tested by us.
Tools
Lists Kubernetes resources in a cluster
Lists resources of one kind, such as pods or deployments, in an EKS cluster. You can filter by namespace, labels and fields.
Try: “List all pods in the production namespace of my cluster demo.”
Network ·
list_k8s_resourcesReads logs from a pod or container
Retrieves pod logs and can limit them by time, line count and size, or read a single container. It only works when the sensitive-data option is on.
Try: “Show the last 100 log lines from the api pod in the default namespace.”
Network ·
get_pod_logsShows Kubernetes events for a resource
Returns events for a resource with time, count, message, reason and type. It only works when the sensitive-data option is on.
Try: “Why is my checkout deployment failing? Show its recent events.”
Network ·
get_k8s_eventsShows EKS insights on misconfigurations and upgrade blockers
Lists EKS insights for a cluster, split into misconfiguration and upgrade readiness, or details one insight with recommendations. It only works when the sensitive-data option is on.
Try: “Is my cluster ready to upgrade? Check the EKS insights.”
Network ·
get_eks_insightsSearches the EKS troubleshooting guide
Searches the EKS troubleshooting guide and returns symptoms and short and long-term fixes, including for EKS Auto Mode node and controller problems.
Try: “Search the EKS troubleshooting guide for nodes stuck in NotReady.”
Network ·
search_eks_troubleshoot_guidePulls CloudWatch logs for a cluster resource
Fetches logs for a pod, node, container or the cluster, with time range, filter pattern and entry limit. It only works when the sensitive-data option is on.
Try: “Get control-plane logs from the last 30 minutes that mention "error".”
Network ·
get_cloudwatch_logsPulls CloudWatch metrics for cluster resources
Fetches metrics by name and dimensions over a time range, with a chosen statistic and period.
Try: “Show average node CPU utilization for my cluster over the last hour.”
Network ·
get_cloudwatch_metricsLists which metrics exist for each resource type
Returns the Container Insights metrics available for clusters, nodes, pods, namespaces and services, so the assistant picks the right names and dimensions.
Try: “Which metrics can I check for pods in an EKS cluster?”
Read ·
get_eks_metrics_guidanceShows the VPC setup behind a cluster
Returns CIDR blocks, route tables and subnets, covers hybrid node setups, checks subnet capacity and flags subnets in availability zones EKS cannot use. It only works when the sensitive-data option is on.
Try: “Check the VPC and subnets for my cluster demo for problems.”
Network ·
get_eks_vpc_configLists the API versions a cluster supports
Lists the core and grouped API versions available on the cluster, so the assistant uses the right apiVersion when it manages resources.
Try: “Which API versions does my cluster support?”
Network ·
list_api_versionsShows the policies attached to an IAM role
Returns the assume-role policy plus the managed and inline policies of a role, with their documents.
Try: “What policies are attached to the role my nodes use?”
Network ·
get_policies_for_roleWrites Kubernetes deployment and service files
Generates a deployment and service YAML from your app name, image and settings such as port, replicas, CPU, memory and load balancer type, and saves it to a folder you choose. It needs write mode on.
Try: “Create Kubernetes manifests for image my-app:1.2 with 3 replicas, saved to ./k8s.”
Write ·
generate_app_manifestApplies Kubernetes YAML files to a cluster
Applies a multi-document YAML file to a namespace in the cluster and can update resources that already exist when forced. It relies on Kubernetes to validate the YAML. It needs write mode on.
Try: “Apply ./k8s/deployment.yaml to the staging namespace of my cluster.”
Write ·
apply_yamlCreates, reads, patches or deletes one Kubernetes resource
Runs one operation (create, replace, patch, delete or read) on a single resource, namespaced or not. Writes and deletes need write mode on. Reading Secrets needs the sensitive-data option.
Try: “Scale the checkout deployment to 5 replicas.”
Delete ·
manage_k8s_resourceCreates or deletes EKS clusters through CloudFormation
Generates a template, deploys, describes or deletes an EKS cluster and its VPC, subnets, NAT gateways, roles and node pools. It only changes stacks that it created. A new cluster takes about 15 to 20 minutes. Deploy and delete need write mode on.
Try: “Generate a CloudFormation template for a new EKS cluster named demo.”
Delete ·
manage_eks_stacksAdds a new inline policy to an IAM role
Creates and attaches a new inline policy to a role. It refuses to change a policy that already exists. It needs write mode on.
Try: “Add an inline policy so the node role can read from my S3 bucket.”
Write ·
add_inline_policy
Read from the source code
Permissions
low risk · 5 things to watch
Low risk
It can create and delete clusters and Kubernetes resources once write mode is on. Leave write mode off, and run it under a narrow IAM role.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
Opt-in write mode can delete clusters and resources
Write mode lets it delete CloudFormation stacks it created and any Kubernetes resource. Keep --allow-write off unless you need it, and use a separate role for writes. github.com
Opt-in write mode asks for very broad AWS permissions
The README suggests IAMFullAccess, VPC and CloudFormation full access, and eks:*. It also says to prefer narrower custom policies for production. github.com
Opt-in write mode can add IAM policies to roles
In write mode it can attach new inline policies to a role, although it never edits existing ones. Scope the role it runs as. github.com
Opt-in sensitive-data mode exposes logs and Secrets
It unlocks pod logs, events, CloudWatch logs and reading Kubernetes Secrets, and that content goes to your AI provider. Turn it on only when needed. github.com
Keep secrets out of prompts and YAML
The README says not to put secrets in prompts, YAML files or templates. Store them in AWS Secrets Manager or Parameter Store instead. github.com
Security advisories
No published security advisories as of Nov 2, 2026.
Technical details
| Turning on read-only | Read-only is the default. Writes need --allow-write, and logs, events, CloudWatch logs, VPC config, insights and Kubernetes Secrets need --allow-sensitive-data-access (the server source enforces both). |
|---|---|
| Talks to | AWS APIs in your account. Your cluster's Kubernetes API server |
| Sign-in and keys | Uses your AWS profile or credentials from the environment. In kubeconfig mode it uses the credentials in your kubeconfig file. |
| Scopes |
|
Questions
Can it change my cluster?
Not by default. It starts read-only. Changes need the --allow-write option in the server arguments, and logs, events and Kubernetes Secrets need --allow-sensitive-data-access.
What AWS permissions does it need?
For reading, a policy that allows describing clusters, insights, VPCs and stacks, running CloudWatch queries and reading IAM roles. For writes, the README recommends full access to IAM, VPC and CloudFormation plus eks:*, and says to prefer narrower custom policies in production.
Can I use it without AWS credentials?
Partly. Set the auth mode to kubeconfig and it uses your kubeconfig, such as OIDC logins. The AWS-specific tools are not available then, including stack management, CloudWatch, VPC, insights, IAM and the troubleshooting guide.
Why do I get Kubernetes authorization errors?
In the default IAM mode it works only if your AWS user or role created the cluster or has an EKS access entry. Add an access entry for your principal.
Does it work on Windows?
Yes. The README gives a separate Windows launch line that runs the package with --from and the server's .exe name. Use it if the command in the install box fails.
Is there a hosted version from AWS?
Yes. AWS also runs a managed EKS MCP server, which is in preview. This page covers the AWS Labs server that runs on your computer.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
awslabs.eks-mcp-server- Registry
- PyPI
- Transport
- stdio
- Auth
- token in env
- License
- Apache-2.0
- Last commit
- Oct 30, 2026
Other AWS MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 2Hide
- Amazon EKS MCP Server README · github.com
- github.com · github.com