awslabs.eks-mcp-server 0.1.1__py3-none-any.whl → 0.1.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: awslabs.eks-mcp-server
3
- Version: 0.1.1
3
+ Version: 0.1.3
4
4
  Summary: An AWS Labs Model Context Protocol (MCP) server for EKS
5
5
  Project-URL: homepage, https://awslabs.github.io/mcp/
6
6
  Project-URL: docs, https://awslabs.github.io/mcp/servers/eks-mcp-server/
@@ -89,30 +89,36 @@ For read operations, the following permissions are required:
89
89
 
90
90
  ### Write Operations Policy
91
91
 
92
- For write operations, the following permissions are required:
93
-
94
- ```
95
- {
96
- "Version": "2012-10-17",
97
- "Statement": [
98
- {
99
- "Effect": "Allow",
100
- "Action": [
101
- "cloudformation:CreateStack",
102
- "cloudformation:UpdateStack",
103
- "cloudformation:DeleteStack",
104
- "iam:PutRolePolicy"
105
- ],
106
- "Resource": "*",
107
- "Condition": {
108
- "StringEquals": {
109
- "aws:RequestTag/CreatedBy": "EksMcpServer"
110
- }
92
+ For write operations, we recommend the following IAM policies to ensure successful deployment of EKS clusters using the CloudFormation template in `/awslabs/eks_mcp_server/templates/eks-templates/eks-with-vpc.yaml`:
93
+
94
+ * [**IAMFullAccess**](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/IAMFullAccess.html): Enables creation and management of IAM roles and policies required for cluster operation
95
+ * [**AmazonVPCFullAccess**](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonVPCFullAccess.html): Allows creation and configuration of VPC resources including subnets, route tables, internet gateways, and NAT gateways
96
+ * [**AWSCloudFormationFullAccess**](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCloudFormationFullAccess.html): Provides permissions to create, update, and delete CloudFormation stacks that orchestrate the deployment
97
+ * **EKS Full Access (provided below)**: Required for creating and managing EKS clusters, including control plane configuration, node groups, and add-ons
98
+ ```
99
+ {
100
+ "Version": "2012-10-17",
101
+ "Statement": [
102
+ {
103
+ "Effect": "Allow",
104
+ "Action": "eks:*",
105
+ "Resource": "*"
111
106
  }
112
- }
113
- ]
114
- }
115
- ```
107
+ ]
108
+ }
109
+ ```
110
+
111
+
112
+ **Important Security Note**: Users should exercise caution when `--allow-write` and `--allow-sensitive-data-access` modes are enabled with these broad permissions, as this combination grants significant privileges to the MCP server. Only enable these flags when necessary and in trusted environments. For production use, consider creating more restrictive custom policies.
113
+
114
+ ### Kubernetes API Access Requirements
115
+
116
+ All Kubernetes API operations will only work when one of the following conditions is met:
117
+
118
+ 1. The user's principal (IAM role/user) actually created the EKS cluster being accessed
119
+ 2. An EKS Access Entry has been configured for the user's principal
120
+
121
+ If you encounter authorization errors when using Kubernetes API operations, verify that an access entry has been properly configured for your principal.
116
122
 
117
123
  ## Quickstart
118
124
 
@@ -124,6 +130,30 @@ This quickstart guide walks you through the steps to configure the Amazon EKS MC
124
130
  2. Click the gear icon (⚙️) in the top right to open the settings panel, click **MCP**, **Add new global MCP server**.
125
131
  3. Paste your MCP server definition. For example, this example shows how to configure the EKS MCP Server, including enabling mutating actions by adding the `--allow-write` flag to the server arguments:
126
132
 
133
+ **For Mac/Linux:**
134
+
135
+ ```
136
+ {
137
+ "mcpServers": {
138
+ "awslabs.eks-mcp-server": {
139
+ "autoApprove": [],
140
+ "disabled": false,
141
+ "command": "uvx",
142
+ "args": [
143
+ "awslabs.eks-mcp-server@latest",
144
+ "--allow-write"
145
+ ],
146
+ "env": {
147
+ "FASTMCP_LOG_LEVEL": "ERROR"
148
+ },
149
+ "transportType": "stdio"
150
+ }
151
+ }
152
+ }
153
+ ```
154
+
155
+ **For Windows:**
156
+
127
157
  ```
128
158
  {
129
159
  "mcpServers": {
@@ -132,7 +162,9 @@ This quickstart guide walks you through the steps to configure the Amazon EKS MC
132
162
  "disabled": false,
133
163
  "command": "uvx",
134
164
  "args": [
165
+ "--from",
135
166
  "awslabs.eks-mcp-server@latest",
167
+ "awslabs.eks-mcp-server.exe",
136
168
  "--allow-write"
137
169
  ],
138
170
  "env": {
@@ -153,6 +185,8 @@ This quickstart guide walks you through the steps to configure the Amazon EKS MC
153
185
  1. Install the [Amazon Q Developer CLI](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html) .
154
186
  2. The Q Developer CLI supports MCP servers for tools and prompts out-of-the-box. Edit your Q developer CLI's MCP configuration file named mcp.json following [these instructions](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-configuration.html). For example:
155
187
 
188
+ **For Mac/Linux:**
189
+
156
190
  ```
157
191
  {
158
192
  "mcpServers": {
@@ -169,6 +203,24 @@ This quickstart guide walks you through the steps to configure the Amazon EKS MC
169
203
  }
170
204
  ```
171
205
 
206
+ **For Windows:**
207
+
208
+ ```
209
+ {
210
+ "mcpServers": {
211
+ "awslabs.eks-mcp-server": {
212
+ "command": "uvx",
213
+ "args": ["--from", "awslabs.eks-mcp-server@latest", "awslabs.eks-mcp-server.exe"],
214
+ "env": {
215
+ "FASTMCP_LOG_LEVEL": "ERROR"
216
+ },
217
+ "autoApprove": [],
218
+ "disabled": false
219
+ }
220
+ }
221
+ }
222
+ ```
223
+
172
224
  3. Verify your setup by running the `/tools` command in the Q Developer CLI to see the available EKS MCP tools.
173
225
 
174
226
  Note that this is a basic quickstart. You can enable additional capabilities, such as [running MCP servers in containers](https://github.com/awslabs/mcp?tab=readme-ov-file#running-mcp-servers-in-containers) or combining more MCP servers like the [AWS Documentation MCP Server](https://awslabs.github.io/mcp/servers/aws-documentation-mcp-server/) into a single MCP server definition. To view an example, see the [Installation and Setup](https://github.com/awslabs/mcp?tab=readme-ov-file#installation-and-setup) guide in AWS MCP Servers on GitHub. To view a real-world implementation with application code in context with an MCP server, see the [Server Developer](https://modelcontextprotocol.io/quickstart/server) guide in Anthropic documentation.
@@ -179,13 +231,36 @@ Note that this is a basic quickstart. You can enable additional capabilities, su
179
231
 
180
232
  The `args` field in the MCP server definition specifies the command-line arguments passed to the server when it starts. These arguments control how the server is executed and configured. For example:
181
233
 
234
+ **For Mac/Linux:**
235
+ ```
236
+ {
237
+ "mcpServers": {
238
+ "awslabs.eks-mcp-server": {
239
+ "command": "uvx",
240
+ "args": [
241
+ "awslabs.eks-mcp-server@latest",
242
+ "--allow-write",
243
+ "--allow-sensitive-data-access"
244
+ ],
245
+ "env": {
246
+ "AWS_PROFILE": "your-profile",
247
+ "AWS_REGION": "us-east-1"
248
+ }
249
+ }
250
+ }
251
+ }
252
+ ```
253
+
254
+ **For Windows:**
182
255
  ```
183
256
  {
184
257
  "mcpServers": {
185
258
  "awslabs.eks-mcp-server": {
186
259
  "command": "uvx",
187
260
  "args": [
261
+ "--from",
188
262
  "awslabs.eks-mcp-server@latest",
263
+ "awslabs.eks-mcp-server.exe",
189
264
  "--allow-write",
190
265
  "--allow-sensitive-data-access"
191
266
  ],
@@ -198,11 +273,17 @@ The `args` field in the MCP server definition specifies the command-line argumen
198
273
  }
199
274
  ```
200
275
 
201
- #### `awslabs.eks-mcp-server@latest` (required)
276
+ #### Command Format
277
+
278
+ The command format differs between operating systems:
202
279
 
203
- Specifies the latest package/version specifier for the MCP client config.
280
+ **For Mac/Linux:**
281
+ * `awslabs.eks-mcp-server@latest` - Specifies the latest package/version specifier for the MCP client config.
204
282
 
205
- * Enables MCP server startup and tool registration.
283
+ **For Windows:**
284
+ * `--from awslabs.eks-mcp-server@latest awslabs.eks-mcp-server.exe` - Windows requires the `--from` flag to specify the package and the `.exe` extension.
285
+
286
+ Both formats enable MCP server startup and tool registration.
206
287
 
207
288
  #### `--allow-write` (optional)
208
289
 
@@ -396,24 +477,45 @@ Features:
396
477
  Parameters:
397
478
 
398
479
  * cluster_name, log_type (application, host, performance, control-plane, custom), resource_type (pod, node, container, cluster),
399
- resource_name, minutes (optional), start_time (optional), end_time (optional), limit (optional), filter_pattern (optional), fields (optional)
480
+ resource_name (optional), minutes (optional), start_time (optional), end_time (optional), limit (optional), filter_pattern (optional), fields (optional)
400
481
 
401
482
  #### `get_cloudwatch_metrics`
402
483
 
403
- Retrieves metrics from CloudWatch for a specific EKS cluster resource.
484
+ Retrieves metrics from CloudWatch for Kubernetes resources.
404
485
 
405
486
  Features:
406
487
 
407
- * Fetches metrics based on resource type (pod, node, container, cluster), resource name, and metric name.
408
- * Allows specification of CloudWatch namespace, Kubernetes namespace, and time range.
488
+ * Fetches metrics based on metric name and dimensions.
489
+ * Allows specification of CloudWatch namespace and time range.
409
490
  * Configurable period, statistic (Average, Sum, etc.), and limit for data points.
410
491
  * Supports providing custom dimensions for fine-grained metric querying.
411
492
 
412
493
  Parameters:
413
494
 
414
- * cluster_name, metric_name, resource_type (pod, node, container, cluster), resource_name, namespace (optional), k8s_namespace
415
- (optional), minutes (optional), start_time (optional), end_time (optional), limit (optional), stat (optional), period (optional), custom_dimensions
416
- (optional)
495
+ * cluster_name, metric_name, namespace, dimensions, minutes (optional), start_time (optional), end_time (optional), limit (optional), stat (optional), period (optional)
496
+
497
+ #### `get_eks_metrics_guidance`
498
+
499
+ Provides guidance on available CloudWatch metrics for different resource types in EKS clusters.
500
+
501
+ Features:
502
+
503
+ * Returns a list of available Container Insights metrics for the specified resource type, including metric names, dimensions, and descriptions.
504
+ * Helps determine the correct dimensions to use with the `get_cloudwatch_metrics` tool.
505
+ * Supports the following resource types:
506
+ * `cluster`: Metrics for EKS clusters (e.g., cluster_node_count, cluster_failed_node_count)
507
+ * `node`: Metrics for EKS nodes (e.g., node_cpu_utilization, node_memory_utilization, node_network_total_bytes)
508
+ * `pod`: Metrics for Kubernetes pods (e.g., pod_cpu_utilization, pod_memory_utilization, pod_network_rx_bytes)
509
+ * `namespace`: Metrics for Kubernetes namespaces (e.g., namespace_number_of_running_pods)
510
+ * `service`: Metrics for Kubernetes services (e.g., service_number_of_running_pods)
511
+
512
+ Parameters:
513
+
514
+ * resource_type
515
+
516
+ Implementation:
517
+
518
+ The data in `/awslabs/eks_mcp_server/data/eks_cloudwatch_metrics_guidance.json` is generated by a Python script (`/awslabs/eks_mcp_server/scripts/update_eks_cloudwatch_metrics_guidance.py`) that scrapes the [Container Insights metrics table](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html) from AWS documentation. Running the script requires installing BeautifulSoup (used for parsing HTML content) with uv: `uv pip install bs4`.
417
519
 
418
520
  ### IAM Integration
419
521
 
@@ -500,6 +602,7 @@ The EKS MCP Server can be used for production environments with proper security
500
602
 
501
603
  An array within the MCP server definition that lists tool names to be automatically approved by the EKS MCP Server client, bypassing user confirmation for those specific tools. For example:
502
604
 
605
+ **For Mac/Linux:**
503
606
  ```
504
607
  {
505
608
  "mcpServers": {
@@ -530,6 +633,39 @@ An array within the MCP server definition that lists tool names to be automatica
530
633
  }
531
634
  ```
532
635
 
636
+ **For Windows:**
637
+ ```
638
+ {
639
+ "mcpServers": {
640
+ "awslabs.eks-mcp-server": {
641
+ "command": "uvx",
642
+ "args": [
643
+ "--from",
644
+ "awslabs.eks-mcp-server@latest",
645
+ "awslabs.eks-mcp-server.exe"
646
+ ],
647
+ "env": {
648
+ "AWS_PROFILE": "eks-mcp-readonly-profile",
649
+ "AWS_REGION": "us-east-1",
650
+ "FASTMCP_LOG_LEVEL": "INFO"
651
+ },
652
+ "autoApprove": [
653
+ "manage_eks_stacks",
654
+ "manage_k8s_resource",
655
+ "list_k8s_resources",
656
+ "get_pod_logs",
657
+ "get_k8s_events",
658
+ "get_cloudwatch_logs",
659
+ "get_cloudwatch_metrics",
660
+ "get_policies_for_role",
661
+ "search_eks_troubleshoot_guide",
662
+ "list_api_versions"
663
+ ]
664
+ }
665
+ }
666
+ }
667
+ ```
668
+
533
669
  ### IAM Permissions Management
534
670
 
535
671
  When the `--allow-write` flag is enabled, the EKS MCP Server can create missing IAM permissions for EKS resources through the `add_inline_policy` tool. This tool enables the following:
@@ -0,0 +1,26 @@
1
+ awslabs/__init__.py,sha256=WuqxdDgUZylWNmVoPKiK7qGsTB_G4UmuXIrJ-VBwDew,731
2
+ awslabs/eks_mcp_server/__init__.py,sha256=ghJqbcPKp3-jM8LmEQzU_KRSbVm6yKQFg7C0ZwxAdeA,668
3
+ awslabs/eks_mcp_server/aws_helper.py,sha256=uiH-CSJPo_L903EzmV8HZB6xg_F4Jm_-BmJk_3AAH4g,2850
4
+ awslabs/eks_mcp_server/cloudwatch_handler.py,sha256=k3GsORIFswOknxYM0reCBsCHXn--gSwl7WVtxkUTyzg,28853
5
+ awslabs/eks_mcp_server/cloudwatch_metrics_guidance_handler.py,sha256=b0fFMvsGX98HKK4kVFI1YbhZqZC623lZ6TNXs3EiRSI,5283
6
+ awslabs/eks_mcp_server/consts.py,sha256=XBat-KcMckueQQpDeLkD_Nv_9G9kX0_d48sMEHtZ5HQ,1380
7
+ awslabs/eks_mcp_server/eks_kb_handler.py,sha256=5UvzCub7BVZsl9eTXEw3BeyTiqmj6Bcr4mT2yTF0cXE,3546
8
+ awslabs/eks_mcp_server/eks_stack_handler.py,sha256=gbZizqaumsAz5x-fLM-VJlmUCzTp7TwtbOGn8u6_omc,29721
9
+ awslabs/eks_mcp_server/iam_handler.py,sha256=t2QIJVP61lAVTiTB9VCko9RDXjAtz8nuXr_MRdKG9pw,14586
10
+ awslabs/eks_mcp_server/k8s_apis.py,sha256=YRx29w-7n3LX3DsniPgULuxNx_6Mkw-Jzh-PGetZDag,20448
11
+ awslabs/eks_mcp_server/k8s_client_cache.py,sha256=Nh8V6IXvWltQwiBhFk8KgDUggmf9dqQ-sR3kENBnecM,5871
12
+ awslabs/eks_mcp_server/k8s_handler.py,sha256=vA08ONRDky7S5hINif8hxe_Y1KAArQDzOao1YLf4Uck,49447
13
+ awslabs/eks_mcp_server/logging_helper.py,sha256=hr8xZhAZOKyR7dkwc7bhqkDVuSDI3BRK3-UzllQkWgE,1854
14
+ awslabs/eks_mcp_server/models.py,sha256=UtMmZaRJNjV8I9A8jCD9vzU66tXYOLna8RzaMNQPddE,11930
15
+ awslabs/eks_mcp_server/server.py,sha256=UHKhCEgR7D5pXpH1xnpMyOfRLZ9o9d327n5c311erGI,6704
16
+ awslabs/eks_mcp_server/data/eks_cloudwatch_metrics_guidance.json,sha256=a4tzVdwpF_0kZGwOJCDEQskScp5rjRU89M7ONp3HpdA,9304
17
+ awslabs/eks_mcp_server/scripts/update_eks_cloudwatch_metrics_guidance.py,sha256=Y1OvU85wc3WIviUbabbGCCO-DvJwtP2UU9ABuEMSNyY,10099
18
+ awslabs/eks_mcp_server/templates/eks-templates/eks-with-vpc.yaml,sha256=_Lxk2MEXNA7N0-kvXckxwBamDEagjGvC6-Z5uxhVO5s,10774
19
+ awslabs/eks_mcp_server/templates/k8s-templates/deployment.yaml,sha256=J2efYFISlT3sTvf8_BJV3p0_m51cltqiRhXdBXb9YJs,2343
20
+ awslabs/eks_mcp_server/templates/k8s-templates/service.yaml,sha256=DA0Db_5yjUZmnnYy5Bljcv3hj7D6YvFFWFRB6GiIstY,414
21
+ awslabs_eks_mcp_server-0.1.3.dist-info/METADATA,sha256=Tvrfj5dp0sXJiaTwSh8FcV2bdv_lvayYEojCGtwS7hY,29163
22
+ awslabs_eks_mcp_server-0.1.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
+ awslabs_eks_mcp_server-0.1.3.dist-info/entry_points.txt,sha256=VydotfOJYck8o4TPsaF6Pjmc8Bp_doacYXSE_71qH4c,78
24
+ awslabs_eks_mcp_server-0.1.3.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
25
+ awslabs_eks_mcp_server-0.1.3.dist-info/licenses/NOTICE,sha256=gnCtD34qTDnb2Lykm9kNFYkqZIvqJHGuq1ZJBkl6EgE,90
26
+ awslabs_eks_mcp_server-0.1.3.dist-info/RECORD,,
@@ -1,23 +0,0 @@
1
- awslabs/__init__.py,sha256=47wJeKcStxEJwX7SVVV2pnAWYR8FxcaYoT3YTmZ5Plg,674
2
- awslabs/eks_mcp_server/__init__.py,sha256=ClxsTrvClkBctqdiivFNI1oYee4M8mHm0E2jlQxmw_Y,611
3
- awslabs/eks_mcp_server/aws_helper.py,sha256=Ozn0xl5Qup7vQ2HEcIsMJSXZOv74eHA5yeiptKuZVhM,2733
4
- awslabs/eks_mcp_server/cloudwatch_handler.py,sha256=ZwWsym2zn4a9ounIXVrB4Xsw9I4TbzkHk5a9eotO-so,28874
5
- awslabs/eks_mcp_server/consts.py,sha256=tYxCxyDQy_Y1W__U6BeyBsB0Rcz3cTj-meWdJtIzPeE,1323
6
- awslabs/eks_mcp_server/eks_kb_handler.py,sha256=h5xEo_-X_lMt7ifZmfJm9PiEOkR_85j5BsS5ivskv88,3489
7
- awslabs/eks_mcp_server/eks_stack_handler.py,sha256=hjl5S3T-9iIIS8-Zkm-IIxLeAr3XeGlwTtTfQaDWEJk,28345
8
- awslabs/eks_mcp_server/iam_handler.py,sha256=hRF_YUwjHP-QAQkJOoutjsvTJungBCY0ouMAznXdPug,14266
9
- awslabs/eks_mcp_server/k8s_apis.py,sha256=VoF9KCD_eEUqqY2bcd2-hTXm02DVAHOTtKwMOEpPdzc,20170
10
- awslabs/eks_mcp_server/k8s_client_cache.py,sha256=KFlDt6_tq1PjhGhOy1Q4EOMyK0NkPu6xKzZf4ciGFvI,5814
11
- awslabs/eks_mcp_server/k8s_handler.py,sha256=Sa3-UwDFa8iELlMpRkM21UpoTvjwpRwfnVmv3LHMESo,47641
12
- awslabs/eks_mcp_server/logging_helper.py,sha256=p_7SbWclTIVQNcQvPf5jP7OSFEJNOFbSq9b1U4v6Cxw,1797
13
- awslabs/eks_mcp_server/models.py,sha256=YlTuQeweBlqt0aBPfK27_OFWhq4XFD023BBjbTPJWnY,11575
14
- awslabs/eks_mcp_server/server.py,sha256=PDoyTTkhYs_Saqp4uo1M-4jVT6H7ZWvw7MTLIIl7P_E,6247
15
- awslabs/eks_mcp_server/templates/eks-templates/eks-with-vpc.yaml,sha256=_Lxk2MEXNA7N0-kvXckxwBamDEagjGvC6-Z5uxhVO5s,10774
16
- awslabs/eks_mcp_server/templates/k8s-templates/deployment.yaml,sha256=J2efYFISlT3sTvf8_BJV3p0_m51cltqiRhXdBXb9YJs,2343
17
- awslabs/eks_mcp_server/templates/k8s-templates/service.yaml,sha256=DA0Db_5yjUZmnnYy5Bljcv3hj7D6YvFFWFRB6GiIstY,414
18
- awslabs_eks_mcp_server-0.1.1.dist-info/METADATA,sha256=l7ux4WDJae7sZx4ZOMR6hmpdETdGkgcA0Q1C-tJZllo,24126
19
- awslabs_eks_mcp_server-0.1.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
20
- awslabs_eks_mcp_server-0.1.1.dist-info/entry_points.txt,sha256=VydotfOJYck8o4TPsaF6Pjmc8Bp_doacYXSE_71qH4c,78
21
- awslabs_eks_mcp_server-0.1.1.dist-info/licenses/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
22
- awslabs_eks_mcp_server-0.1.1.dist-info/licenses/NOTICE,sha256=gnCtD34qTDnb2Lykm9kNFYkqZIvqJHGuq1ZJBkl6EgE,90
23
- awslabs_eks_mcp_server-0.1.1.dist-info/RECORD,,