帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。
Amazon EKS MCP 服务器工具配置参考
本指南详细列出了 mcp-proxy-for-aws
注意
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。
--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
有关更多配置选项,请参阅配置参数
工具
服务器公开了以下 MCP 工具
只读工具
本节介绍适用于 EKS MCP 服务器的各类只读工具。请注意,所有只读类型的 Kubernetes API 操作均支持访问以下两类对象:
-
私有集群(参阅集群私有端点)
-
公共集群
search_eks_documentation 搜索 EKS 文档,获取最新信息和指引。这款工具可帮助您访问最新的 EKS 官方文档,其中涵盖了人工智能代理可能尚未收录的新功能与近期功能优化内容。
参数:
-
query(必填):与 EKS 文档、功能特性或最佳实践相关的具体问题或搜索语句。
-
limit(可选):返回文档结果的最大数量(取值范围 1-10)。默认值:5。
search_eks_troubleshooting_guide 根据检索语句在《EKS 问题排查指南》中搜索相关排障信息,助力定位常见问题并提供分步式解决方案。
参数:
-
query(必填):与 EKS 问题排查相关的具体问题或故障描述。
describe_eks_resource 检索有关特定 EKS 集群资源的详细信息,包括配置、状态和元数据。
参数:
-
cluster_name(必填):EKS 集群的名称(针对集群级资源为必填项)。
-
resource_type(必填):需要描述的 EKS 资源类型。有效值:
-
accessentry(需指定 cluster_name,且需将 resource_name 填写为主体 ARN)
-
addon(需指定 cluster_name,且需将 resource_name 填写为附加组件名称)
-
cluster(需指定 cluster_name)、nodegroup(需指定 cluster_name,且需将 resource_name 填写为节点组名称)。
-
resource_name(可选):需要描述的特定资源名称(对于大多数资源类型为必填项)。
list_eks_resources 列出指定类型的 EKS 资源,返回所有可访问的该类型资源的摘要信息。
参数:
-
resource_type(必填):需要列出的 EKS 资源类型。有效值:
-
accessentry(需指定 cluster_name)
-
addon(需指定 cluster_name)
-
cluster(无需额外参数)
-
nodegroup(需指定 cluster_name)。
-
cluster_name(可选):EKS 集群的名称(针对集群级资源为必填项)。
get_eks_insights 检索 EKS 集群的洞察信息和优化建议。该工具基于 Amazon 最佳实践与集群分析结果,提供关于安全防护、性能调优及成本优化的可执行洞察方案。
参数:
-
cluster_name(必填):EKS 集群的名称。
-
category(可选):用于筛选洞察信息的可选分类(例如:MISCONFIGURATION 或 UPGRADE_READINESS)。
-
insight_id(可选):用于获取特定洞察详细信息的可选 ID。
-
next_token(可选):用于结果分页查询、获取下一组数据的可选令牌。
get_eks_vpc_config 获取 EKS 集群的 VPC 配置信息,包括子网、路由表及网络连通性相关内容。
参数:
-
cluster_name(必填):需获取 VPC 配置的 EKS 集群名称。
-
vpc_id(可选):待查询的特定 VPC 的 ID(可选参数,若未指定则使用该集群对应的 VPC)。
get_k8s_events 获取与特定资源相关的 Kubernetes 事件,用于问题排查与监控。
参数:
-
cluster_name(必填):目标资源所在的 EKS 集群名称。
-
kind(必填):关联对象的资源类型(例如:Pod、Deployment、Service)。必须与资源类型名称完全匹配。
-
name(必填):需查询事件的关联对象名称。
-
namespace(可选):关联对象所属的命名空间。针对命名空间级资源(如 Pod、Deployment)为必填项;针对集群级资源(如 Node、PersistentVolume)无需配置。
get_pod_logs 获取 EKS 集群中容器组(pod)的日志,并支持日志过滤功能。
参数:
-
cluster_name(必填):容器组(pod)运行所在的 EKS 集群名称。
-
namespace(必填):容器组(pod)所在的 Kubernetes 命名空间。
-
pod_name(必填):需获取日志的容器组(pod)名称。
-
container_name(可选):需获取日志的特定容器名称。仅当容器组(pod)包含多个容器时为必填项。
-
limit_bytes(可选):返回日志的最大字节数。默认值:10 KB(10240 字节)。
-
previous(可选):返回容器此前终止状态下的日志(默认值为 false)。该参数适用于获取重启中容器组(pod)的日志。
-
since_seconds(可选):仅返回指定秒数内的最新日志。适用于获取近期日志,无需调取完整日志历史。
-
tail_lines(可选):返回日志末尾的指定行数。默认值:100。
list_api_versions 列出指定 Kubernetes 集群中所有可用的 API 版本。
参数:
-
cluster_name(必填):EKS 集群的名称。
list_k8s_resources 列出 EKS 集群中特定类型的 Kubernetes 资源。
参数:
-
cluster_name(必填):标资源所在的 EKS 集群名称。
-
kind(必填):要列出的 Kubernetes 资源种类(例如:Pod、Service、Deployment)。可使用
list_api_versions工具查询可用的资源类型。 -
api_version(必填):目标 Kubernetes 资源对应的 API 版本(例如:v1、apps/v1、networking.k8s.io/v1)。可使用
list_api_versions工具查询可用的 API 版本。 -
field_selector(可选):用于筛选资源的字段选择器(例如:metadata.name=my-pod,status.phase=Running)。语法与 kubectl 命令的 --field-selector 参数一致。
-
label_selector(可选):用于筛选资源的标签选择器(例如:app=nginx,tier=frontend)。语法与 kubectl 命令的
--selector参数一致。 -
namespace(可选):需列出的 Kubernetes 资源所属的命名空间。若未指定,将列出所有命名空间下的对应资源(仅适用于命名空间级资源)。
read_k8s_resource 获取 EKS 集群中特定 Kubernetes 资源的详细信息。
参数:
-
api_version(必填):目标 Kubernetes 资源对应的 API 版本(例如:v1、apps/v1、networking.k8s.io/v1)。
-
cluster_name(必填):目标资源所在的 EKS 集群名称。
-
kind(必填):目标 Kubernetes 资源的类型(例如:Pod、Service、Deployment)。
-
name(必填):需读取的 Kubernetes 资源名称。
-
namespace(可选):目标 Kubernetes 资源所属的命名空间。针对命名空间级资源为必填项;针对集群级资源(如 Node、PersistentVolume)无需配置。
generate_app_manifest 为容器化应用程序生成标准化的 Kubernetes 部署列表与服务清单。
参数:
-
app_name(必填):应用程序的名称。该名称将用于部署列表、服务列表的命名,同时会作为资源标签使用。
-
image_uri(必填):带标签的完整 ECR 映像 URI(例如:123456789012.dkr.ecr.region.amazonaws.com/repo:tag)。必须包含完整的映像存储库路径与标签。
-
load_balancer_scheme(可选):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_cloudwatch_logs 基于输入参数筛选查询 CloudWatch 日志,同时支持 EKS 集群可观测性场景下的标准日志组。
参数:
-
cluster_name(必填):目标资源所在的 EKS 集群名称。该参数将用于构造 CloudWatch 日志组名称。
-
resource_type(必填):需检索日志对应的资源类型。有效值:pod、node、container、cluster。该参数将决定日志的筛选逻辑。
-
log_type(必填):需查询的日志类型。有效值:
-
application:容器/应用程序日志
-
host:节点级系统日志
-
performance:性能指标日志
-
control-plane:EKS 控制面板日志
-
your-log-group-name:直接传入自定义的 CloudWatch 日志组名称。
-
resource_name(可选):需在日志消息中检索的资源名称(例如:容器组(pod)名称、节点名称、容器名称)。该参数将用于筛选特定资源的日志。
-
minutes(可选):日志回溯的时间范围(单位:分钟)。默认值:15。若传入 start_time 参数,此参数将失效。排查近期问题可设置较小值,进行历史分析可设置较大值。
-
start_time(可选):查询的起始时间(ISO 格式,例如:2023-01-01T00:00:00Z)。若传入此参数,将覆盖 minutes 参数的配置。
-
end_time(可选):查询的结束时间(ISO 格式,例如:2023-01-01T01:00:00Z)。若未指定,默认值为当前时间。
-
fields(可选):需包含在查询结果中的自定义字段(默认值:@timestamp、@message)。需遵循 CloudWatch Logs Insights 的字段语法。
-
filter_pattern(可选):需额外应用的 CloudWatch 日志筛选规则。遵循 CloudWatch Logs Insights 语法(例如:ERROR、field=value)。
-
limit(可选):返回日志条目的最大数量。设置较小值(10-50)可提升查询速度,设置较大值(100-1000)可获取更全面的结果。较高的值可能会影响性能。
get_cloudwatch_metrics 获取 CloudWatch 指标与数据点,用于 EKS 集群监控及性能分析。支持容器洞察指标、自定义指标,同时可配置时间范围与维度。
参数:
-
cluster_name(必填):需获取指标的 EKS 集群名称。
-
dimensions(必填):CloudWatch 指标查询所用的维度,格式为 JSON 字符串。必须包含与资源类型和指标匹配的对应维度(例如:{"ClusterName": "my-cluster", "PodName": "my-pod", "Namespace": "default"})。
-
metric_name(必填):需获取的指标名称。常见示例:
-
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_time 参数,此参数将失效。
-
start_time(可选):查询的起始时间(ISO 格式,例如:2023-01-01T00:00:00Z)。若传入此参数,将覆盖 minutes 参数的配置。
-
end_time(可选):查询的结束时间(ISO 格式,例如:2023-01-01T01:00:00Z)。若未指定,默认值为当前时间。
-
limit(可选):返回数据点的最大数量。设置较高数值(100-1000)可获取更精细的数据,但可能影响查询性能。默认值:50。
-
period(可选):指标数据点的统计周期(单位:秒)。默认值:60(1 分钟)。设置较低数值(1-60)可提升数据分辨率,但数据可用性可能会降低。
-
stat(可选):指标聚合计算所用的统计方式。默认值:Average。有效值:
-
Average:统计周期内的平均值 -
Sum::统计周期内的累计值 -
Maximum:统计周期内的最大值 -
Minimum:统计周期内的最小值 -
SampleCount:统计周期内的样本数量。
get_eks_metrics_guidance 获取 EKS 集群内特定资源类型对应的 CloudWatch 指标配置指引。该工具可辅助人工智能代理,在使用 get_cloudwatch_metrics 工具时确定应配置的正确维度。
参数:
-
resource_type(必填):需获取指标指引的资源类型(集群、节点、容器组(pod)、命名空间、服务)。
get_policies_for_role 获取附加至指定 IAM 角色的所有策略,包括代入角色策略、托管策略及内联策略。
参数:
-
role_name(必填):需查询策略的 IAM 角色名称。该角色必须存在于您的 Amazon 账户中。
全权限(写入)工具
本节介绍适用于 EKS MCP 服务器的各类只读工具。请注意,截至当前,所有 Kubernetes API 写入操作仅支持以下集群类型:
-
公共集群(endpointPublicAccess=true)
manage_k8s_resource 通过写入操作(create、update、patch 或 delete)管理单个 Kubernetes 资源。
参数:
-
operation(必填):需对资源执行的操作类型。有效值:
-
create::创建新资源 -
replace:替换现有资源 -
patch:更新现有资源的指定字段 -
delete:删除现有资源 -
注意:如需读取资源信息,请使用 read_k8s_resource 工具;如需列出多个资源,请使用 list_k8s_resources 工具。
-
cluster_name(必填):目标资源所在或待创建的 EKS 集群名称。
-
kind(必填):目标 Kubernetes 资源的类型(例如:Pod、Service、Deployment)。
-
api_version(必填):目标 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_yaml 将 Kubernetes YAML 清单配置应用到 EKS 集群。
参数:
-
cluster_name(必填):待创建或更新资源的目标 EKS 集群名称。
-
namespace(必填):应用资源的 Kubernetes 命名空间。该命名空间将适用于未在列表中指定命名空间的命名空间级资源。
-
yaml_content(必填):需应用到集群的 YAML 配置内容。可包含多个以 --- 分隔的配置文档。
-
force(可选):若资源已存在,是否执行更新操作(功能与 kubectl apply 命令类似)。设置为 false 时,仅会创建新资源。
manage_eks_stacks 通过生成模板、部署、描述及删除等操作,管理 EKS 相关的 CloudFormation 堆栈,涵盖 EKS 集群及其底层基础设施。集群创建操作通常需要 15-20 分钟完成。执行部署和删除操作时,目标堆栈必须由本工具创建(即带有 CreatedBy=EksMcpServer 标签)。
参数:
-
cluster_name(必填):EKS 集群名称(适用于生成、部署、描述及删除操作)。该名称将用于派生 CloudFormation 堆栈名称,同时会嵌入到集群资源。
-
operation(必填):需执行的操作类型。有效值:
-
generate:创建 CloudFormation 模板 -
deploy:部署 CloudFormation 堆栈(需template_content参数) -
describe:描述/读取 CloudFormation 堆栈(只读操作) -
delete:删除 CloudFormation 堆栈 -
template_content(可选):CloudFormation 模板内容(适用于部署操作)。需传入完整的 YAML 或 JSON 格式模板内容。支持单资源模板,也支持以 --- 分隔的多文档 YAML 内容。
add_inline_policy 为 IAM 角色添加新的内联策略。
参数:
-
permissions(必填):策略中包含的权限内容,格式为表示 IAM 策略语句的 JSON 字符串。可以是单个 JSON 字符串,也可以是 JSON 字符串数组。
-
policy_name(必填):待创建的内联策略名称。该名称在对应角色内必须具唯一性。
-
role_name(必填):需添加策略的 IAM 角色名称。该角色必须已存在。