

 **帮助改进此页面** 

要帮助改进本用户指南，请选择位于每个页面右侧窗格中的**在 GitHub 上编辑此页面**链接。

# Amazon EKS 模型上下文协议（MCP）服务器
模型上下文协议（MCP）

Amazon EKS MCP 服务器是一项完全托管的服务，可为开发与运维工作提供人工智能驱动的使用体验。[模型上下文协议（MCP）](https://modelcontextprotocol.io/docs/getting-started/intro)提供了一套标准化接口，可为人工智能代理及应用程序赋予 EKS 集群与 Kubernetes 资源的实时上下文感知能力，从而在应用程序的全生命周期内（从初始部署、生产环境优化到问题排查的各个阶段），助力实现更精准的上下文感知型响应，以及人工智能驱动的工作流。

**注意**  
Amazon EKS MCP 服务器在 Amazon EKS 中为预览版，且功能可能会发生变化。

## 概述


EKS MCP 服务器可轻松与任何兼容 MCP 协议的人工智能代码助手集成，以此优化开发工作流程，例如 [Kiro](https://kiro.dev/?trk=4e1f440a-99e0-4ad0-9a9c-6b04723ec916&sc_channel=ps&ef_id=CjwKCAiAwqHIBhAEEiwAx9cTecSJYyUgoD93aVmUNglC8epCwc2HOHHTH-dtL6FbZJaD0xmrNjN1uxoCnaUQAvD_BwE:G:s&s_kwcid=AL!4422!3!773515754057!e!!g!!aws%20kiro!23000458260!188935657567&gad_source=1&gad_campaignid=23000458260&gclid=CjwKCAiAwqHIBhAEEiwAx9cTecSJYyUgoD93aVmUNglC8epCwc2HOHHTH-dtL6FbZJaD0xmrNjN1uxoCnaUQAvD_BwE)、[Amazon Q 开发者版](https://docs.amazonaws.cn/amazonq/latest/qdeveloper-ug/command-line.html) CLI，或是 [Cursor](https://cursor.com/)、[Cline](https://cline.bot/) 等第三方工具。在初始化阶段，EKS MCP 服务器会引导您完成集群创建流程，自动预置各项先决条件，并应用 Amazon 最佳实践方案。在开发阶段，其通过提供面向应用部署与集群管理的高阶工作流程，简化 EKS 与 Kubernetes 的操作流程。在调试与问题排查阶段，该服务器借助集成在 EKS 控制台及常用人工智能助手中的问题排查工具与知识库访问能力，加快问题解决效率。这些功能均支持通过自然语言交互调用，让您能够更直观、高效地执行复杂的 Kubernetes 操作。

完全托管的 Amazon EKS MCP 服务器部署在 Amazon 云端，无需进行本地安装与维护。其具备企业级功能特性，包括自动更新与补丁管理、基于 Amazon IAM 集成的集中式安全管控、借助 Amazon CloudTrail 实现的全面审计日志记录，以及依托 Amazon 构建的成熟可扩展性、可靠性与技术支持体系。部署于 Amazon 云端的完全托管的 EKS MCP 服务器具备以下核心优势：
+  **无需安装与维护：**由于 EKS MCP 服务器部署在 Amazon 云端，您无需再管理版本更新，也不必排查本地服务器问题。只需将您的人工智能助手配置为连接至到云端托管的 EKS MCP 服务器端点，即可开始操作 EKS 集群。
+  **集中式访问管理：**EKS MCP 服务器与 [IAM](https://www.amazonaws.cn/iam/) 深度集成，提供了一种集中且安全的服务器访问控制方式。所有请求均通过轻量级代理，采用 [Amazon SigV4](https://docs.amazonaws.cn/IAM/latest/UserGuide/reference_sigv.html) 协议进行签名，可与您现有的 Amazon 凭证及 IAM 策略无缝对接。
+  **增强型监控与可视化能力：**借助 Amazon CloudTrail 的集成功能，可捕获通过该托管服务发起的初始化操作及全权限工具调用请求，从而生成详尽的审计跟踪记录与合规性报告。
+  **始终保持最新状态：**无需更新本地部署环境，即可自动获取新工具、新功能与漏洞修复补丁。该托管服务会基于用户反馈与 Amazon 最佳实践，持续进行迭代优化。

## 集成示例


EKS MCP 服务器提供了若干可用于执行以下操作的工具：
+  **集群管理**：遵循自动化最佳实践，创建、配置并管理 EKS 集群。
+  **Kubernetes 资源管理**：部署应用程序、管理 Kubernetes 资源并检查集群状态。
+  **集群问题排查**：借助集成的问题排查工具与运行手册知识库，诊断各类问题
+  **文档查询**：基于上下文检索并获取相关的 EKS 文档内容。

### 探索集群


```
Show me all EKS clusters and their status
What insights does EKS have about my production-cluster?
Show me the VPC configuration for my staging cluster
```

### 检查 Kubernetes 资源


```
List all deployments in the production namespace
Show me pods that are not in Running state
Get the logs from the api-server pod in the last 30 minutes
```

### 排查问题


```
Why is my nginx-ingress-controller pod failing to start?
Search the EKS troubleshooting guide for pod networking issues
Show me events related to the failed deployment in the staging namespace
```

### 创建资源（若启用了“写入”模式）


```
Create a new EKS cluster named demo-cluster with VPC and Auto Mode
Deploy my containerized app from ECR to the production namespace with 3 replicas
Generate a Kubernetes deployment YAML for my Node.js app running on port 3000
```

## 开始使用


要开始使用，请参阅[Amazon EKS MCP 服务器入门](eks-mcp-getting-started.md)。

# Amazon EKS MCP 服务器入门
开始使用

本指南将指导您完成通过人工智能代码助手设置和使用 EKS MCP 服务器的步骤。您将了解如何配置环境、连接到服务器以及通过自然语言交互开始管理 EKS 集群。

**注意**  
Amazon EKS MCP 服务器在 Amazon EKS 中为预览版，且功能可能会发生变化。

## 先决条件


开始之前，请确保您已执行以下任务：
+  [创建有权访问 Amazon EKS 的 Amazon 账户](https://www.amazonaws.cn/resources/create-account/) 
+  [使用凭证安装并配置 Amazon CLI](https://docs.amazonaws.cn/cli/latest/userguide/cli-chap-configure.html) 
+  [安装 Python 3.10\$1](https://www.python.org/downloads/release/python-3100/) 
+  [安装 `uv`](https://docs.astral.sh/uv/getting-started/installation/) 

## 设置


### 1. 验证 先决条件


```
# Check that your Python version is 3.10 or higher
python3 --version

# Check uv installation
uv --version

# Verify CLI configuration
aws configure list
```

### 2. 设置 IAM 权限


若要连接到 EKS MCP 服务器，您的 [IAM 角色](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_roles.html)必须附加以下策略：**`eks-mcp:InvokeMcp`**（初始化及获取可用工具相关信息所需的权限），**`eks-mcp:CallReadOnlyTool`**（使用只读工具所需的权限），**`eks-mcp:CallPrivilegedTool`** [使用完全访问权限（写入）工具所需的权限]。上述这些 `eks-mcp` 权限，均已包含在下文所列的只读型与完全访问型 Amazon 托管策略中。
+ 打开 [IAM 控制台](https://console.amazonaws.cn/iam/)。
+ 在左侧导航窗格中，根据要附加策略的身份类型，选择**用户**、**用户组**或**角色**，随后选中对应的具体用户、用户组或角色名称。
+ 选择**权限**选项卡。
+ 选择**附加策略**（若为第一次，则选择**添加权限**）。
+ 在策略列表中，搜索并选择要附加的托管策略：
+  **只读操作**：AmazonEKSMCPReadOnlyAccess
+ 选择**附加策略**（或选择**下一步**，再选择**添加权限**进行确认）。

执行此操作后，策略即被附加，相关权限会立即生效。您可以为同一个身份附加多个策略，且每个策略均可包含多种权限。要了解有关这些政策的更多信息，请参阅 [ Amazon Elastic Kubernetes Service 的 Amazon 托管策略](https://docs.amazonaws.cn/eks/latest/userguide/security-iam-awsmanpol.html)。

### 3. 选择人工智能助手


选择以下任一兼容 MCP 的人工智能助手，或其他任意兼容 MCP 的工具：
+  [安装 Amazon Q 开发者版 CLI](https://docs.amazonaws.cn/amazonq/latest/qdeveloper-ug/command-line-installing.html) 
+  [安装 Kiro](https://kiro.dev/docs/getting-started/installation/) 
+  [安装 Cursor](https://cursor.com/download) 
+  [安装 Cline VS Code 扩展](https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev) 

## 步骤 1：配置人工智能助手


从以下任一选项中选择，完成人工智能代码助手配置。完成此步骤后，人工智能代码助手将通过适用于 Amazon 的 MCP 代理运行，而该代理是安全、经过身份验证访问 Amazon EKS MCP 服务器的必要组件。此过程需要添加或编辑 MCP 配置文件（例如，适用于 Amazon Q 开发者版 CLI 的配置文件路径为 `~/.aws/amazonq/mcp.json`）。该代理充当客户端侧的桥接组件，会利用本地的 Amazon 凭证执行 Amazon SigV4 身份验证，同时支持动态工具发现功能，以此实现与后端 Amazon MCP 服务器（如 EKS MCP 服务器）的交互。要了解更多信息，请参阅 [https://github.com/aws/mcp-proxy-for-aws](https://github.com/aws/mcp-proxy-for-aws)。

### 选项 A：Amazon Q 开发者版 CLI


Q 开发者版 CLI 提供了与 EKS MCP 服务器集成度最高的体验。

#### 1. 找到 MCP 配置文件

+  **macOS/Linux**：`~/.aws/q/mcp.json`
+  **Windows**：`%USERPROFILE%\.aws\q\mcp.json`

#### 2. 添加 MCP 服务器配置


若配置文件尚不存在，则新建该文件。务必将区域 (`{region}`) 占位符替换为需要的区域。

 **对于 Mac/Linux：**

```
{
  "mcpServers": {
    "eks-mcp": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "default",
        "--region",
        "{region}"
      ]
    }
  }
}
```

 **对于 Windows：**

```
{
  "mcpServers": {
    "eks-mcp": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "mcp-proxy-for-aws@latest",
        "mcp-proxy-for-aws.exe",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "default",
        "--region",
        "{region}"
      ]
    }
  }
}
```

 **安全说明**：可通过 `--read-only` 参数限制工具仅执行只读操作。

#### 3. 验证配置


重启 Q 开发者版 CLI，然后查看可用工具：

```
q /tools
```

### 选项 B：Kiro IDE


Kiro 是一款原生支持人工智能的编码工作区，内置 [MCP 支持](https://kiro.dev/docs/mcp/)功能。

#### 1. 打开 Kiro 设置

+ 打开 Kiro
+ 前往 **Kiro** → **设置**，搜索“MCP Config”
+ 或者按下 `Cmd+Shift+P,`（Mac）或 `Ctrl+Shift+P,`（Windows/Linux），搜索“MCP Config”

#### 2. 添加 MCP 服务器配置

+ 单击“打开工作区 MCP 配置”或“打开用户 MCP 配置”，直接编辑 MCP 配置文件。

务必将区域 (`{region}`) 占位符替换为需要的区域。

 **对于 Mac/Linux：**

```
{
  "mcpServers": {
    "eks-mcp": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "default",
        "--region",
        "{region}"
      ]
    }
  }
}
```

 **对于 Windows：**

```
{
  "mcpServers": {
    "eks-mcp": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "mcp-proxy-for-aws@latest",
        "mcp-proxy-for-aws.exe",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "default",
        "--region",
        "{region}"
      ]
    }
  }
}
```

 **安全说明**：可通过 `--read-only` 参数限制工具仅执行只读操作。

### 选项 C：Cursor IDE


Cursor 通过图形配置界面提供内置 MCP 支持功能。

#### 1. 打开 Cursor 设置

+ 打开 Cursor
+ 前往**设置** → **Cursor 设置** → **工具和 MCP** 
+ 或者按下 `Cmd+Shift+P`（Mac）或 `Ctrl+Shift+P`（Windows），搜索“MCP”

#### 2. 添加 MCP 服务器配置

+ 单击“新建 MCP 服务器”

若配置文件尚不存在，则新建该文件。务必将区域 (`{region}`) 占位符替换为需要的区域。

 **对于 Mac/Linux：**

```
{
  "mcpServers": {
    "eks-mcp": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "default",
        "--region",
        "{region}"
      ]
    }
  }
}
```

 **对于 Windows：**

```
{
  "mcpServers": {
    "eks-mcp": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "mcp-proxy-for-aws@latest",
        "mcp-proxy-for-aws.exe",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "default",
        "--region",
        "{region}"
      ]
    }
  }
}
```

 **安全说明**：可通过 `--read-only` 参数限制工具仅执行只读操作。

#### 3. 重新启动 Cursor


关闭并重新打开 Cursor，使更改生效。

#### 4. 在 Cursor 对话中验证


打开对话面板，尝试输入以下内容：

```
What EKS MCP tools are available?
```

此时应该会看到一份可用的 EKS 管理工具列表。

### 选项 D：Cline（VS Code 扩展）


Cline 是一款热门的 VS Code 扩展程序，可直接在编辑器中提供人工智能助手功能。

#### 1. 打开 Cline设置

+ 打开 Cline
+ 按下 `Cmd+Shift+P`（Mac）或 `Ctrl+Shift+P`（Windows），搜索“MCP”

#### 2. 添加 MCP 服务器配置

+ 单击“添加服务器”
+ 单击“打开用户配置”

若配置文件尚不存在，则新建该文件。务必将区域 (`{region}`) 占位符替换为需要的区域。

 **对于 Mac/Linux：**

```
{
  "mcpServers": {
    "eks-mcp": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "default",
        "--region",
        "{region}"
      ]
    }
  }
}
```

 **对于 Windows：**

```
{
  "mcpServers": {
    "eks-mcp": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "mcp-proxy-for-aws@latest",
        "mcp-proxy-for-aws.exe",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "default",
        "--region",
        "{region}"
      ]
    }
  }
}
```

 **安全说明**：可通过 `--read-only` 参数限制工具仅执行只读操作。

#### 2. 重新启动 VS Code


按下 `Cmd+Shift+P`/`Ctrl+Shift+P`，选择“开发者：重新加载窗口”

#### 3. 验证配置


打开 Cline，询问：

```
List the available MCP tools for EKS
```

## 步骤 2：（可选）创建“写入”策略


您也可以选择创建一个[客户管理型 IAM 策略](https://docs.amazonaws.cn/privateca/latest/userguide/auth-CustManagedPolicies.html)，取得对 Amazon EKS MCP 服务器的完全访问权限。该策略授予使用 EKS MCP 服务器中所有工具的权限，包括可能涉及写入操作的特权工具以及只读工具。请注意，此策略包含高风险权限（所有以 Delete\$1 开头的权限，或不受限制的 IAM 资源权限），因为这些权限是 **manage\$1eks\$1stacks** 工具中集群资源部署与拆除操作所必需的。

```
aws iam create-policy \
 --policy-name EKSMcpWriteManagementPolicy \
 --policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"eks:DescribeCluster\", \"eks:ListClusters\", \"eks:DescribeNodegroup\", \"eks:ListNodegroups\", \"eks:DescribeAddon\", \"eks:ListAddons\", \"eks:DescribeAccessEntry\", \"eks:ListAccessEntries\", \"eks:DescribeInsight\", \"eks:ListInsights\", \"eks:AccessKubernetesApi\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"eks:CreateCluster\", \"eks:DeleteCluster\", \"eks:CreateAccessEntry\", \"eks:TagResource\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"iam:GetRole\", \"iam:ListRolePolicies\", \"iam:ListAttachedRolePolicies\", \"iam:GetRolePolicy\", \"iam:GetPolicy\", \"iam:GetPolicyVersion\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"iam:TagRole\", \"iam:CreateRole\", \"iam:AttachRolePolicy\", \"iam:PutRolePolicy\", \"iam:DetachRolePolicy\", \"iam:DeleteRole\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"iam:PassRole\"], \"Resource\": \"*\", \"Condition\": {\"StringEquals\": {\"iam:PassedToService\": [\"eks.amazonaws.com\", \"ec2.amazonaws.com\"]}}}, {\"Effect\": \"Allow\", \"Action\": [\"ec2:CreateVpc\", \"ec2:CreateSubnet\", \"ec2:CreateRouteTable\", \"ec2:CreateRoute\", \"ec2:CreateInternetGateway\", \"ec2:CreateNatGateway\", \"ec2:CreateSecurityGroup\", \"ec2:AttachInternetGateway\", \"ec2:AssociateRouteTable\", \"ec2:ModifyVpcAttribute\", \"ec2:ModifySubnetAttribute\", \"ec2:AllocateAddress\", \"ec2:CreateTags\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"ec2:DeleteVpc\", \"ec2:DeleteSubnet\", \"ec2:DisassociateRouteTable\", \"ec2:DeleteRouteTable\", \"ec2:DeleteRoute\", \"ec2:DetachInternetGateway\", \"ec2:DeleteInternetGateway\", \"ec2:DeleteNatGateway\", \"ec2:ReleaseAddress\", \"ec2:DeleteSecurityGroup\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"ec2:DescribeVpcs\", \"ec2:DescribeSubnets\", \"ec2:DescribeRouteTables\", \"ec2:DescribeInternetGateways\", \"ec2:DescribeNatGateways\", \"ec2:DescribeAddresses\", \"ec2:DescribeSecurityGroups\", \"ec2:DescribeAvailabilityZones\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"cloudformation:CreateStack\", \"cloudformation:UpdateStack\", \"cloudformation:DeleteStack\", \"cloudformation:DescribeStacks\", \"cloudformation:TagResource\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"sts:GetCallerIdentity\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"logs:StartQuery\", \"logs:GetQueryResults\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"cloudwatch:GetMetricData\"], \"Resource\": \"*\"}, {\"Effect\": \"Allow\", \"Action\": [\"eks-mcp:*\"], \"Resource\": \"*\"}]}"
```

## 步骤 3：验证设置


### 测试连接


向您的 AI 助手提一个简单问题来验证连接：

```
List all EKS clusters in my {aws} account
```

此时应该会看到一份 EKS 集群列表。

## 步骤 4：运行第首批任务


### 示例 1：探索集群


```
Show me all EKS clusters and their status
What insights does EKS have about my production-cluster?
Show me the VPC configuration for my staging cluster
```

### 示例 2：检查 Kubernetes 资源


```
Get the details of all the kubernetes resources deployed in my EKS cluster
Show me pods that are not in Running state or pods with any restarts
Get the logs from the aws-node daemonset in the last 30 minutes
```

### 示例 3：问题排查


```
Why is my nginx-ingress-controller pod failing to start?
Search the EKS troubleshooting guide for pod networking issues
Show me events related to the failed deployment in the staging namespace
```

### 示例 4：创建资源（若启用了“写入”模式）


```
Create a new EKS cluster named demo-cluster with VPC and Auto Mode
Deploy my containerized app from ECR to the production namespace with 3 replicas
Generate a Kubernetes deployment YAML for my Node.js app running on port 3000
```

## 通用配置


### 场景 1：多个 Amazon 配置文件


如果您使用多个 Amazon 账户，请创建单独的 MCP 服务器配置。

 **对于 Mac/Linux：**

```
{
  "mcpServers": {
    "eks-mcp-prod": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "production",
        "--region",
        "us-west-2"
      ]
    },
    "eks-mcp-dev": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "development",
        "--region",
        "us-east-1"
      ]
    }
  }
}
```

 **对于 Windows：**

```
{
  "mcpServers": {
    "eks-mcp-prod": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "mcp-proxy-for-aws@latest",
        "mcp-proxy-for-aws.exe",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "production",
        "--region",
        "us-west-2"
      ]
    },
    "eks-mcp-dev": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "mcp-proxy-for-aws@latest",
        "mcp-proxy-for-aws.exe",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "development",
        "--region",
        "us-east-1"
      ]
    }
  }
}
```

### 场景 2：生产环境只读模式


为生产环境创建只读配置。

 **对于 Mac/Linux：**

```
{
  "mcpServers": {
    "eks-mcp-prod-readonly": {
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "production",
        "--region",
        "us-west-2",
        "--read-only"
      ],
      "autoApprove": [
        "list_k8s_resources",
        "get_pod_logs",
        "get_k8s_events"
      ]
    }
  }
}
```

 **对于 Windows：**

```
{
  "mcpServers": {
    "eks-mcp-prod-readonly": {
      "command": "uvx",
      "args": [
        "--from",
        "mcp-proxy-for-aws@latest",
        "mcp-proxy-for-aws.exe",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "production",
        "--region",
        "us-west-2",
        "--read-only"
      ],
      "autoApprove": [
        "list_k8s_resources",
        "get_pod_logs",
        "get_k8s_events"
      ]
    }
  }
}
```

### 场景 3：全权限开发模式


适用于具备完整写入权限的开发环境。

 **对于 Mac/Linux：**

```
{
  "mcpServers": {
    "eks-mcp-dev-full": {
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "development",
        "--region",
        "us-east-1"
      ]
    }
  }
}
```

 **对于 Windows：**

```
{
  "mcpServers": {
    "eks-mcp-dev-full": {
      "command": "uvx",
      "args": [
        "--from",
        "mcp-proxy-for-aws@latest",
        "mcp-proxy-for-aws.exe",
        "https://eks-mcp.{region}.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "development",
        "--region",
        "us-east-1"
      ]
    }
  }
}
```

## 注意事项


### 安全性


请勿通过允许的输入机制传递密钥或敏感信息：
+ 请勿在通过 apply\$1yaml 执行的 YAML 文件中包含密钥或凭证。
+ 请勿在提交给模型的提示词中直接传递敏感信息。
+ 请勿在 CloudFormation 模板或应用程序清单中包含密钥。
+ 避免使用 MCP 工具创建 Kubernetes 密钥，因为此操作需要向模型提供密钥数据。
+ 避免在 Kubernetes 容器组（pod）的应用程序日志中记录敏感信息。

YAML 内容安全：
+ 仅使用来源可信的 YAML 文件。
+ 服务器依赖 Kubernetes API 对 YAML 内容进行验证，自身不执行验证操作。
+ 在将 YAML 文件应用到集群前，需先对其进行审核。

替代 MCP 传递密钥的方案：
+ 使用 [Amazon Secrets Manager](https://docs.amazonaws.cn/secretsmanager/latest/userguide/intro.html) 或 [Parameter Store](https://docs.amazonaws.cn/systems-manager/latest/userguide/systems-manager-parameter-store.html) 存储敏感信息。
+ 为服务账户配置合规的 Kubernetes RBAC 权限。
+ 对于容器组（pod）访问 Amazon 服务的场景，采用基于服务账户的 IAM 角色（IRSA）机制。

敏感数据的脱敏：
+ EKS MCP 服务器会自动对工具响应中与安全令牌、证书及其他敏感信息相关的常见模式脱敏。
+ 为了避免意外将数据暴露给模型，将脱敏的值替换为 `HIDDEN_FOR_SECURITY_REASONS`。
+ 此脱敏操作适用于所有工具响应，包括日志、资源描述和配置数据。

## 后续步骤


有关配置选项，请参阅 [Amazon EKS MCP 服务器配置参考](eks-mcp-tool-configurations.md)。有关工具的完整列表，请参阅 [Amazon EKS MCP 服务器工具参考](eks-mcp-tools.md)。

# Amazon EKS MCP 服务器配置参考
配置

本指南详细列出了 [https://github.com/aws/mcp-proxy-for-aws](https://github.com/aws/mcp-proxy-for-aws) 客户端工具的所有可用配置项。通过该工具，您可以从 IDE 连接到完全托管的 Amazon EKS MCP 服务器。

**注意**  
Amazon EKS MCP 服务器在 Amazon EKS 中为预览版，且功能可能会发生变化。

## 示例


```
{
  "mcpServers": {
    "eks-mcp": {
      "disabled": false,
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://eks-mcp.us-west-2.api.aws/mcp",
        "--service",
        "eks-mcp",
        "--profile",
        "default",
        "--region",
        "us-east-1",
        "--read-only"
      ]
    }
  }
}
```

## IAM 权限


用于连接 MCP 服务器的角色，需具备 **`eks-mcp:InvokeMcp`** 权限，方可完成初始化操作并获取可用工具的相关信息。使用只读工具时，需配置 **`eks-mcp:CallReadOnlyTool`** 权限；而使用全权限（写入）工具时，则需配置 **`eks-mcp:CallPrivilegedTool`** 权限。

## 环境变量


 **`AWS_PROFILE`**（可选）：要使用的 Amazon 凭证配置文件名称；可通过 `--profile` 命令行参数覆盖该配置。
+ 示例：`export AWS_PROFILE=production`

 **`AWS_REGION`**（可选）：用于 SigV4 签名的 Amazon 区域；若未设置，默认值为 `us-west-2`。
+ 示例：`export AWS_REGION=us-east-1`

## 参数


 **SigV4 MCP 端点 URL**（必填）：待连接的 MCP 端点 URL。
+ 示例：`https://eks-mcp.us-west-2.api.aws/mcp`

 **`--service`**（可选）：用于 SigV4 签名的 Amazon 服务名称；若未配置，将自动从端点主机名中识别。
+ 示例：`--service eks-mcp`

 **`--profile`**（可选）：要使用的 Amazon 凭证配置文件。如果未指定，则默认为 `AWS_PROFILE` 环境变量。
+ 示例：`--profile production`

 要使用的 **`--region`** Amazon 区域。如果未设置，则使用 `AWS_REGION` 环境变量，默认为 `us-east-1`。
+ 示例：`--region us-west-2`

 **`--read-only`**（选用）：禁用所有可能需要写入权限的工具（无需写入权限的工具均标注有 readOnlyHint=true 属性）。默认情况下，所有工具都已启用。
+ 示例：`--read-only`

有关更多配置选项，请参阅[配置参数](https://github.com/aws/mcp-proxy-for-aws?tab=readme-ov-file#configuration-parameters)。

## 工具


有关所有可用工具的详细信息，包括参数和用法示例，请参阅 [Amazon EKS MCP 服务器工具参考](eks-mcp-tools.md)。

# Amazon EKS MCP 服务器工具参考
工具

服务器公开了以下 [MCP 工具](https://modelcontextprotocol.io/docs/concepts/tools)。

**注意**  
Amazon EKS MCP 服务器在 Amazon EKS 中为预览版，且功能可能会发生变化。

## 只读工具


本节介绍适用于 EKS MCP 服务器的各类只读工具。请注意，所有只读类型的 Kubernetes API 操作均支持访问以下两类对象：
+  **私有集群**（参阅[集群私有端点](https://docs.amazonaws.cn/eks/latest/userguide/cluster-endpoint.html#cluster-endpoint-private)）
+  **公共集群** 

## search\$1eks\$1documentation


搜索 EKS 文档，获取最新信息和指导。这款工具可帮助您访问最新的 EKS 官方文档，其中涵盖了人工智能代理可能尚未收录的新功能与近期功能优化内容。

参数：
+  **query**（必填）：与 EKS 文档、功能特性或最佳实践相关的具体问题或搜索语句。
+  **limit**（可选）：返回文档结果的最大数量（取值范围 1-10）。默认值：5。

## search\$1eks\$1troubleshooting\$1guide


根据检索语句在《EKS 问题排查指南》中搜索相关排障信息。助力定位常见问题并提供分步式解决方案。

参数：
+  **query**（必填）：与 EKS 问题排查相关的具体问题或故障描述。

## describe\$1eks\$1resource


检索有关特定 EKS 集群资源的详细信息，包括配置、状态和元数据。

参数：
+  **cluster\$1name**（必填）：EKS 集群的名称（针对集群级资源为必填项）。
+  **resource\$1type**（必填）：需要描述的 EKS 资源类型。有效值：
+ accessentry（需指定 cluster\$1name，且需将 resource\$1name 填写为主体 ARN）
+ addon（需指定 cluster\$1name，且需将 resource\$1name 填写为附加组件名称）
+ cluster（需指定 cluster\$1name）、nodegroup（需指定 cluster\$1name，且需将 resource\$1name 填写为节点组名称）。
+  **resource\$1name**（可选）：需要描述的特定资源名称（对于大多数资源类型为必填项）。

## list\$1eks\$1resources


列出指定类型的 EKS 资源，返回所有可访问的该类型资源的摘要信息。

参数：
+  **resource\$1type**（必填）：需要列出的 EKS 资源类型。有效值：
+ accessentry（需指定 cluster\$1name）
+ addon（需指定 cluster\$1name）
+ cluster（无需额外参数）
+ nodegroup（需指定 cluster\$1name）。
+  **cluster\$1name**（可选）：EKS 集群的名称（针对集群级资源为必填项）。

## get\$1eks\$1insights


检索 EKS 集群的洞察信息和优化建议。该工具基于 Amazon 最佳实践与集群分析结果，提供关于安全防护、性能调优及成本优化的可执行洞察方案。

参数：
+  **cluster\$1name**（必填）：EKS 集群的名称。
+  **category**（可选）：用于筛选洞察信息的可选分类（例如：MISCONFIGURATION 或 UPGRADE\$1READINESS）。
+  **insight\$1id**（可选）：用于获取特定洞察详细信息的可选 ID。
+  **next\$1token**（可选）：用于结果分页查询、获取下一组数据的可选令牌。

## get\$1eks\$1vpc\$1config


获取 EKS 集群的 VPC 配置信息，包括子网、路由表及网络连通性相关内容。

参数：
+  **cluster\$1name**（必填）：需获取 VPC 配置的 EKS 集群名称。
+  **vpc\$1id**（可选）：待查询的特定 VPC 的 ID（可选参数，若未指定则使用该集群对应的 VPC）。

## get\$1k8s\$1events


获取与特定资源相关的 Kubernetes 事件，用于问题排查与监控。

参数：
+  **cluster\$1name**（必填）：目标资源所在的 EKS 集群名称。
+  **kind**（必填）：关联对象的资源类型（例如：Pod、Deployment、Service）。必须与资源类型名称完全匹配。
+  **name**（必填）：需查询事件的关联对象名称。
+  **namespace**（可选）：关联对象所属的命名空间。针对命名空间级资源（如 Pod、Deployment）为必填项；针对集群级资源（如 Node、PersistentVolume）无需配置。

## get\$1pod\$1logs


获取 EKS 集群中容器组（pod）的日志，并支持日志过滤功能。

参数：
+  **cluster\$1name**（必填）：容器组（pod）运行所在的 EKS 集群名称。
+  **namespace**（必填）：容器组（pod）所在的 Kubernetes 命名空间。
+  **pod\$1name**（必填）：需获取日志的容器组（pod）名称。
+  **container\$1name**（可选）：需获取日志的特定容器名称。仅当容器组（pod）包含多个容器时为必填项。
+  **limit\$1bytes**（可选）：返回日志的最大字节数。默认值：10 KB（10240 字节）。
+  **previous**（可选）：返回容器此前终止状态下的日志（默认值为 false）。该参数适用于获取重启中容器组（pod）的日志。
+  **since\$1seconds**（可选）：仅返回指定秒数内的最新日志。适用于获取近期日志，无需调取完整日志历史。
+  **tail\$1lines**（可选）：返回日志末尾的指定行数。默认值：100。

## list\$1api\$1versions


列出指定 Kubernetes 集群中所有可用的 API 版本。

参数：
+  **cluster\$1name**（必填）：EKS 集群的名称。

## list\$1k8s\$1resources


列出 EKS 集群中特定类型的 Kubernetes 资源。

参数：
+  **cluster\$1name**（必填）：标资源所在的 EKS 集群名称。
+  **kind**（必填）：要列出的 Kubernetes 资源种类（例如：Pod、Service、Deployment）。可使用 `list_api_versions` 工具查询可用的资源类型。
+  **api\$1version**（必填）：目标 Kubernetes 资源对应的 API 版本（例如：v1、apps/v1、networking.k8s.io/v1）。可使用 `list_api_versions` 工具查询可用的 API 版本。
+  **field\$1selector**（可选）：用于筛选资源的字段选择器（例如：metadata.name=my-pod,status.phase=Running）。语法与 kubectl 命令的 --field-selector 参数一致。
+  **label\$1selector**（可选）：用于筛选资源的标签选择器（例如：app=nginx,tier=frontend）。语法与 kubectl 命令的 `--selector` 参数一致。
+  **namespace**（可选）：需列出的 Kubernetes 资源所属的命名空间。若未指定，将列出所有命名空间下的对应资源（仅适用于命名空间级资源）。

## read\$1k8s\$1resource


获取 EKS 集群中特定 Kubernetes 资源的详细信息。

参数：
+  **api\$1version**（必填）：目标 Kubernetes 资源对应的 API 版本（例如：v1、apps/v1、networking.k8s.io/v1）。
+  **cluster\$1name**（必填）：目标资源所在的 EKS 集群名称。
+  **kind**（必填）：目标 Kubernetes 资源的类型（例如：Pod、Service、Deployment）。
+  **name**（必填）：需读取的 Kubernetes 资源名称。
+  **namespace**（可选）：目标 Kubernetes 资源所属的命名空间。针对命名空间级资源为必填项；针对集群级资源（如 Node、PersistentVolume）无需配置。

## generate\$1app\$1manifest


为容器化应用程序生成标准化的 Kubernetes 部署列表与服务清单。

参数：
+  **app\$1name**（必填）：应用程序的名称。该名称将用于部署列表、服务列表的命名，同时会作为资源标签使用。
+  **image\$1uri**（必填）：带标签的完整 ECR 映像 URI（例如：123456789012.dkr.ecr.region.amazonaws.com/repo:tag）。必须包含完整的映像存储库路径与标签。
+  **load\$1balancer\$1scheme**（可选）：Amazon 负载均衡器方案。有效值：
+ internal（仅限私有 VPC 网络）
+ internet-facing（支持公网访问）。
+ 默认值：internal。
+  **cpu**（可选）：每个容器的 CPU 资源请求值（例如：100m 代表 0.1 个 CPU 核心，500m 代表 0.5 个 CPU 核心）。默认值：100m。
+  **memory**（可选）：每个容器的内存资源请求值（例如：128Mi 代表 128 MiB，1Gi 代表 1 GiB）。默认值：128Mi
+  **namespace**（可选）：应用程序将要部署到的 Kubernetes 命名空间。默认值：default。
+  **port**（可选）：应用程序要监听的容器端口。默认值：80
+  **replicas**（可选）：应用程序要部署的副本数量。默认值：2

## get\$1cloudwatch\$1logs


基于输入参数筛选查询 CloudWatch 日志，同时支持 EKS 集群可观测性场景下的标准日志组。

参数：
+  **cluster\$1name**（必填）：目标资源所在的 EKS 集群名称。该参数将用于构造 CloudWatch 日志组名称。
+  **resource\$1type**（必填）：需检索日志对应的资源类型。有效值：pod、node、container、cluster。该参数将决定日志的筛选逻辑。
+  **log\$1type**（必填）：需查询的日志类型。有效值：
+ application：容器/应用程序日志
+ host：节点级系统日志
+ performance：性能指标日志
+ control-plane：EKS 控制面板日志
+ your-log-group-name：直接传入自定义的 CloudWatch 日志组名称。
+  **resource\$1name**（可选）：需在日志消息中检索的资源名称（例如：容器组（pod）名称、节点名称、容器名称）。该参数将用于筛选特定资源的日志。
+  **minutes**（可选）：日志回溯的时间范围（单位：分钟）。默认值：15。若传入 start\$1time 参数，此参数将失效。排查近期问题可设置较小值，进行历史分析可设置较大值。
+  **start\$1time**（可选）：查询的起始时间（ISO 格式，例如：2023-01-01T00:00:00Z）。若传入此参数，将覆盖 minutes 参数的配置。
+  **end\$1time**（可选）：查询的结束时间（ISO 格式，例如：2023-01-01T01:00:00Z）。若未指定，默认值为当前时间。
+  **fields**（可选）：需包含在查询结果中的自定义字段（默认值：@timestamp、@message）。需遵循 CloudWatch Logs Insights 的字段语法。
+  **filter\$1pattern**（可选）：需额外应用的 CloudWatch 日志筛选规则。遵循 CloudWatch Logs Insights 语法（例如：ERROR、field=value）。
+  **limit**（可选）：返回日志条目的最大数量。设置较小值（10-50）可提升查询速度，设置较大值（100-1000）可获取更全面的结果。较高的值可能会影响性能。

## get\$1cloudwatch\$1metrics


获取 CloudWatch 指标与数据点，用于 EKS 集群监控及性能分析。支持容器洞察指标、自定义指标，同时可配置时间范围与维度。

参数：
+  **cluster\$1name**（必填）：需获取指标的 EKS 集群名称。
+  **dimensions**（必填）：CloudWatch 指标查询所用的维度，格式为 JSON 字符串。必须包含与资源类型和指标匹配的对应维度（例如：\$1"ClusterName": "my-cluster", "PodName": "my-pod", "Namespace": "default"\$1）。
+  **metric\$1name**（必填）：需获取的指标名称。常见示例：
+  `cpu_usage_total`：CPU 总使用率
+  `memory_rss`：常驻内存集（RSS）使用率
+  `network_rx_bytes`：网络接收字节数
+  `network_tx_bytes`：网络发送字节数
+  **namespace**（必填）：指标存储的 CloudWatch 命名空间。常见取值：
+  `"ContainerInsights"`：适用于容器指标
+  `"AWS/EC2"`：适用于 EC2 实例指标
+  `"AWS/EKS"`：适用于 EKS 控制面板指标
+  **minutes**（可选）：指标数据的回溯时间范围（单位：分钟）。默认值：15。若传入 start\$1time 参数，此参数将失效。
+  **start\$1time**（可选）：查询的起始时间（ISO 格式，例如：2023-01-01T00:00:00Z）。若传入此参数，将覆盖 minutes 参数的配置。
+  **end\$1time**（可选）：查询的结束时间（ISO 格式，例如：2023-01-01T01:00:00Z）。若未指定，默认值为当前时间。
+  **limit**（可选）：返回数据点的最大数量。设置较高数值（100-1000）可获取更精细的数据，但可能影响查询性能。默认值：50。
+  **period**（可选）：指标数据点的统计周期（单位：秒）。默认值：60（1 分钟）。设置较低数值（1-60）可提升数据分辨率，但数据可用性可能会降低。
+  **stat**（可选）：指标聚合计算所用的统计方式。默认值：Average。有效值：
+  `Average`：统计周期内的平均值
+  `Sum:`：统计周期内的累计值
+  `Maximum`：统计周期内的最大值
+  `Minimum`：统计周期内的最小值
+  `SampleCount`：统计周期内的样本数量。

## get\$1eks\$1metrics\$1guidance


获取 EKS 集群内特定资源类型对应的 CloudWatch 指标配置指引。该工具可辅助人工智能代理，在使用 get\$1cloudwatch\$1metrics 工具时确定应配置的正确维度。

参数：
+  **resource\$1type**（必填）：需获取指标指引的资源类型（集群、节点、容器组（pod）、命名空间、服务）。

## get\$1policies\$1for\$1role


获取附加至指定 IAM 角色的所有策略，包括代入角色策略、托管策略及内联策略。

参数：
+  **role\$1name**（必填）：需查询策略的 IAM 角色名称。该角色必须存在于您的 Amazon 账户中。

## 全权限（写入）工具


本节介绍适用于 EKS MCP 服务器的各类只读工具。请注意，截至当前，所有 Kubernetes API 写入操作仅支持以下集群类型：
+  **公共集群**（endpointPublicAccess=true）

## manage\$1k8s\$1resource


通过写入操作（create、update、patch 或 delete）管理单个 Kubernetes 资源。

参数：
+  **operation**（必填）：需对资源执行的操作类型。有效值：
+  `create:`：创建新资源
+  `replace`：替换现有资源
+  `patch`：更新现有资源的指定字段
+  `delete`：删除现有资源
+  **注意**：如需读取资源信息，请使用 read\$1k8s\$1resource 工具；如需列出多个资源，请使用 list\$1k8s\$1resources 工具。
+  **cluster\$1name**（必填）：目标资源所在或待创建的 EKS 集群名称。
+  **kind**（必填）：目标 Kubernetes 资源的类型（例如：Pod、Service、Deployment）。
+  **api\$1version**（必填）：目标 Kubernetes 资源对应的 API 版本（例如：v1、apps/v1、networking.k8s.io/v1）。
+  **body**（可选）：资源定义内容，格式为 JSON 字符串。执行 create、replace、patch 操作时为必填项。其中，执行 create 和 replace 操作需传入完整的资源定义；执行 patch 操作仅需传入待更新的字段。
+  **name**（可选）：目标 Kubernetes 资源的名称。除 create 操作（资源名称可在 body 中定义）外，其余操作均为必填项。
+  **namespace**（可选）：目标 Kubernetes 资源所属的命名空间。针对命名空间级资源为必填项；针对集群级资源（如 Node、PersistentVolume）无需配置。

## apply\$1yaml


将 Kubernetes YAML 清单配置应用到 EKS 集群。

参数：
+  **cluster\$1name**（必填）：待创建或更新资源的目标 EKS 集群名称。
+  **namespace**（必填）：应用资源的 Kubernetes 命名空间。该命名空间将适用于未在列表中指定命名空间的命名空间级资源。
+  **yaml\$1content**（必填）：需应用到集群的 YAML 配置内容。可包含多个以 --- 分隔的配置文档。
+  **force**（可选）：若资源已存在，是否执行更新操作（功能与 kubectl apply 命令类似）。设置为 false 时，仅会创建新资源。

## manage\$1eks\$1stacks


通过生成模板、部署、描述及删除等操作，管理 EKS 相关的 CloudFormation 堆栈，涵盖 EKS 集群及其底层基础设施。集群创建操作通常需要 15-20 分钟完成。执行部署和删除操作时，目标堆栈必须由本工具创建（即带有 CreatedBy=EksMcpServer 标签）。

参数：
+  **cluster\$1name**（必填）：EKS 集群名称（适用于生成、部署、描述及删除操作）。该名称将用于派生 CloudFormation 堆栈名称，同时会嵌入到集群资源。
+  **operation**（必填）：需执行的操作类型。有效值：
+  `generate`：创建 CloudFormation 模板
+  `deploy`：部署 CloudFormation 堆栈（需 `template_content` 参数）
+  `describe`：描述/读取 CloudFormation 堆栈（只读操作）
+  `delete`：删除 CloudFormation 堆栈
+  **template\$1content**（可选）：CloudFormation 模板内容（适用于部署操作）。需传入完整的 YAML 或 JSON 格式模板内容。支持单资源模板，也支持以 --- 分隔的多文档 YAML 内容。

## add\$1inline\$1policy


为 IAM 角色添加新的内联策略。

参数：
+  **permissions**（必填）：策略中包含的权限内容，格式为表示 IAM 策略语句的 JSON 字符串。可以是单个 JSON 字符串，也可以是 JSON 字符串数组。
+  **policy\$1name**（必填）：待创建的内联策略名称。该名称在对应角色内必须具唯一性。
+  **role\$1name**（必填）：需添加策略的 IAM 角色名称。该角色必须已存在。