

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon EKS MCP 伺服器工具參考
<a name="eks-mcp-tools"></a>

伺服器公開下列 [MCP 工具](https://modelcontextprotocol.io/docs/concepts/tools)。

**注意**  
Amazon EKS MCP 伺服器目前為 Amazon EKS 的預覽版本，可能會有所變更。

## 唯讀工具
<a name="read_only_tools"></a>

本節說明 EKS MCP 伺服器可用的唯讀工具。請注意，所有唯讀 Kubernetes API 操作都可以存取兩者：
+  **私有叢集 **（請參閱[叢集私有端點](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html#cluster-endpoint-private))
+  **公有叢集** 

## search\_eks\_documentation
<a name="search_eks_documentation"></a>

搜尋 EKS 文件以取得up-to-date和指引。此工具可讓您存取最新的 EKS 文件，包括客服人員可能不知道的新功能和最近的增強功能。

參數：
+  **查詢** （必要）：與 EKS 文件、功能或最佳實務相關的特定問題或搜尋查詢。
+  **limit** （選用）：要傳回的文件結果數目上限 (1-10)。預設：5。

## search\_eks\_troubleshooting\_guide
<a name="search_eks_troubleshooting_guide"></a>

搜尋 EKS 故障診斷指南，以根據查詢對資訊進行故障診斷。它有助於識別常見問題並提供step-by-step解決方案。

參數：
+  **查詢** （必要）：與 EKS 疑難排解相關的特定問題或問題描述。

## describe\_eks\_resource
<a name="describe_eks_resource"></a>

擷取特定 EKS 叢集資源的詳細資訊，包括組態、狀態和中繼資料。

參數：
+  **cluster\_name** （必要）：EKS 叢集的名稱 （叢集範圍的資源必要）。
+  **resource\_type** （必要）：要描述的 EKS 資源類型。有效值：
+ accessentry （需要 cluster\_name 和 resource\_name 作為 principalArn)
+ 附加元件 （需要 cluster\_name 和 resource\_name 作為附加元件名稱）
+ 叢集 （需要 cluster\_name)、節點群組 （需要 cluster\_name 和 resource\_name 作為節點群組名稱）。
+  **resource\_name** （選用）：要描述的特定資源名稱 （大多數資源類型需要）。

## list\_eks\_resources
<a name="list_eks_resources"></a>

列出特定類型的 EKS 資源，傳回可存取之指定類型的所有資源摘要。

參數：
+  **resource\_type** （必要）：要列出的 EKS 資源類型。有效值：
+ accessentry （需要 cluster\_name)
+ 附加元件 （需要 cluster\_name)
+ 叢集 （不需要其他參數）
+ nodegroup （需要 cluster\_name)。
+  **cluster\_name** （選用）：EKS 叢集的名稱 （叢集範圍的資源需要）。

## get\_eks\_insights
<a name="get_eks_insights"></a>

擷取 EKS 叢集洞察和最佳化建議。根據 AWS 最佳實務和叢集分析，提供安全性、效能和成本最佳化的可行洞見。

參數：
+  **cluster\_name** （必要）：EKS 叢集的名稱。
+  **類別** （選用）：選用類別，依 （例如 "MISCONFIGURATION" 或 "UPGRADE\_READINESS") 篩選洞見。
+  **insight\_id** （選用）：特定洞見的選用 ID，以取得詳細資訊。
+  **next\_token** （選用）：選用分頁權杖，以取得下一組結果。

## get\_eks\_vpc\_config
<a name="get_eks_vpc_config"></a>

擷取 EKS 叢集的 VPC 組態，包括子網路、路由表和網路連線。

參數：
+  **cluster\_name** （必要）：要取得 VPC 組態的 EKS 叢集名稱。
+  **vpc\_id** （選用）：要查詢的特定 VPC ID （選用，若未指定，將使用叢集 VPC)。

## get\_k8s\_events
<a name="get_k8s_events"></a>

擷取與特定資源相關的 Kubernetes 事件，以進行疑難排解和監控。

參數：
+  **cluster\_name** （必要）：資源所在的 EKS 叢集名稱。
+  **kind** （必要）：所涉及物件的類型 （例如 "Pod"、"Deployment"、"Service")。必須與資源類型完全相符。
+  **name** （必要）：要取得事件的涉及物件名稱。
+  **命名空間** （選用）：所涉及物件的命名空間。命名空間資源 （例如 Pod、部署） 的必要項目。叢集範圍的資源 （例如 Nodes、PersistentVolumes) 不需要。

## get\_pod\_logs
<a name="get_pod_logs"></a>

使用篩選選項從 EKS 叢集中的 Pod 擷取日誌。

參數：
+  **cluster\_name** （必要）：執行 Pod 的 EKS 叢集名稱。
+  **命名空間** （必要）：Pod 所在的 Kubernetes 命名空間。
+  **pod\_name** （必要）：要從中擷取日誌的 Pod 名稱。
+  **container\_name** （選用）：要從中取得日誌的特定容器名稱。只有在 Pod 包含多個容器時才需要。
+  **limit\_bytes** （選用）：傳回的位元組數上限。預設：10KB (10240 位元組）。
+  **上一個** （選用）：傳回先前終止的容器日誌 （預設為 false)。用於取得正在重新啟動之 Pod 的日誌。
+  **since\_seconds** （選用）：僅傳回比此數秒更新的日誌。有助於在不擷取整個歷史記錄的情況下取得最近的日誌。
+  **tail\_lines** （選用）：從日誌結尾傳回的行數。預設：100。

## list\_api\_versions
<a name="list_api_versions"></a>

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

參數：
+  **cluster\_name** （必要）：EKS 叢集的名稱。

## list\_k8s\_resources
<a name="list_k8s_resources"></a>

列出 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`旗標相同的語法。
+  **命名空間** （選用）：要列出的 Kubernetes 資源命名空間。如果未提供，則會在所有命名空間中列出資源 （適用於命名空間資源）。

## read\_k8s\_resource
<a name="read_k8s_resource"></a>

擷取 EKS 叢集中特定 Kubernetes 資源的詳細資訊。

參數：
+  **api\_version** （必要）：Kubernetes 資源的 API 版本 （例如 "v1"、"apps/v1"、"networking.k8s.io/v1")。
+  **cluster\_name** （必要）：資源所在的 EKS 叢集名稱。
+  **kind** （必要）：Kubernetes 資源的類型 （例如 "Pod"、"Service"、"Deployment")。
+  **name** （必要）：要讀取的 Kubernetes 資源名稱。
+  **命名空間** （選用）：Kubernetes 資源的命名空間。命名空間資源的必要項目。叢集範圍的資源 （例如 Nodes、PersistentVolumes) 不需要。

## generate\_app\_manifest
<a name="generate_app_manifest"></a>

產生容器化應用程式的標準化 Kubernetes 部署和服務資訊清單。

參數：
+  **app\_name** （必要）：應用程式的名稱。用於部署和服務名稱，以及用於標籤。
+  **image\_uri** （必要）：帶有標籤的完整 ECR 映像 URI （例如 123456789012.dkr.ecr.region.amazonaws.com/repo:tag)。必須包含完整的儲存庫路徑和標籤。
+  **load\_balancer\_scheme** （選用）： AWS 負載平衡器方案。有效值：
+ 「內部」（僅限私有 VPC)
+ 「面向網際網路」（公有存取）。
+ 預設：「內部」。
+  **cpu** （選用）：每個容器的 CPU 請求 （例如，0.1 CPU 核心為 "100m"，半核心為 "500m")。預設："100m"。
+  **memory** （選用）：每個容器的記憶體請求 （例如，128 MiB 為 "128Mi"，1 GiB 為 "1Gi")。預設："128Mi"
+  **命名空間** （選用）：要部署應用程式的 Kubernetes 命名空間。預設：「預設」。
+  **連接埠** （選用）：應用程式接聽的容器連接埠。預設：80
+  **複本** （選用）：要部署的複本數量。預設：2

## get\_cloudwatch\_logs
<a name="get_cloudwatch_logs"></a>

查詢 CloudWatch 日誌，根據輸入參數進行篩選，並支援用於 EKS 叢集可觀測性的標準日誌群組。

參數：
+  **cluster\_name** （必要）：資源所在的 EKS 叢集名稱。用來建構 CloudWatch 日誌群組名稱。
+  **resource\_type** （必要）：要搜尋日誌的資源類型。有效值：\+"pod"、"node"、"container"、"cluster"。這會決定如何篩選日誌。
+  **log\_type** （必要）：要查詢的日誌類型。有效值：
+ 「應用程式」：容器/應用程式日誌
+ "host"：節點層級系統日誌
+ "performance"：績效指標日誌
+ "control-plane"：EKS 控制平面日誌
+ "your-log-group-name"：直接提供自訂 CloudWatch 日誌群組名稱。
+  **resource\_name** （選用）：在日誌訊息中搜尋的資源名稱 （例如 Pod 名稱、節點名稱、容器名稱）。用來篩選特定資源的日誌。
+  **分鐘** （選用）：要回顧日誌的分鐘數。預設：15。如果提供 start\_time，則忽略。針對最近的問題使用較小的值，針對歷史分析使用較大的值。
+  **start\_time** （選用）：ISO 格式的開始時間 （例如 "2023-01-01T00：00：00Z")。如果提供， 會覆寫分鐘參數。
+  **end\_time** （選用）：ISO 格式的結束時間 （例如 "2023-01-01T01：00：00Z")。如果未提供，則 預設為目前時間。
+  **欄位** （選用）：要包含在查詢結果中的自訂欄位 （預設為 "@timestamp， @message")。使用 CloudWatch Logs Insights 欄位語法。
+  **filter\_pattern** （選用）：要套用的其他 CloudWatch Logs 篩選條件模式。使用 CloudWatch Logs Insights 語法 （例如 "ERROR"、"field=value")。
+  **limit** （選用）：要傳回的日誌項目數目上限。對於更快的查詢，請使用較低的值 (10-50)，對於更全面的結果，請使用較高的值 (100-1000)。數值越大，越可能影響效能。

## get\_cloudwatch\_metrics
<a name="get_cloudwatch_metrics"></a>

擷取 EKS 叢集監控和效能分析的 CloudWatch 指標和資料點。處理 Container Insights 指標、自訂指標，以及可設定的時段和維度。

參數：
+  **cluster\_name** （必要）：要取得指標的 EKS 叢集名稱。
+  **維**度 （必要）：用於 CloudWatch 指標查詢的維度做為 JSON 字串。必須包含資源類型和指標的適當維度 （例如 '{"ClusterName"： "my-cluster"， "PodName"： "my-pod"， "Namespace"： "default"}')。
+  **metric\_name** （必要）：要擷取的指標名稱。常見範例：
+  `cpu_usage_total`：CPU 總用量
+  `memory_rss`：常駐設定大小記憶體用量
+  `network_rx_bytes`：已接收網路位元組
+  `network_tx_bytes`：傳輸的網路位元組
+  **命名空間** （必要）：存放指標的 CloudWatch 命名空間。常見值：
+  `"ContainerInsights"`：適用於容器指標
+  `"AWS/EC2"`：適用於 EC2 執行個體指標
+  `"AWS/EKS"`：適用於 EKS 控制平面指標
+  **分鐘** （選用）：要回顧指標的分鐘數。預設：15。如果提供 start\_time，則忽略。
+  **start\_time** （選用）：ISO 格式的開始時間 （例如 "2023-01-01T00：00：00Z")。如果提供， 會覆寫分鐘參數。
+  **end\_time** （選用）：ISO 格式的結束時間 （例如 "2023-01-01T01：00：00Z")。如果未提供，則 預設為目前時間。
+  **limit** （選用）：要傳回的資料點數目上限。較高的值 (100-1000) 提供更精細的資料，但可能會影響效能。預設：50。
+  **period** （選用）：指標資料點的期間，以秒為單位。預設：60 (1 分鐘）。較低的值 (1-60) 提供更高的解析度，但可能較少。
+  **stat** （選用）：用於指標彙總的統計資料。預設：「平均」。有效值：
+  `Average`：期間內的平均值
+  `Sum:` 期間內的總值
+  `Maximum`：在此期間的最大值
+  `Minimum`：期間內的最小值
+  `SampleCount`：期間內的樣本數量。

## get\_eks\_metrics\_guidance
<a name="get_eks_metrics_guidance"></a>

取得 EKS 叢集中特定資源類型的 CloudWatch 指標指引。在判斷要與 get\_cloudwatch\_metrics 工具搭配使用的正確維度時，對代理程式很有用。

參數：
+  **resource\_type** （必要）：取得 指標的資源類型 （叢集、節點、Pod、命名空間、服務）。

## get\_policies\_for\_role
<a name="get_policies_for_role"></a>

擷取連接至指定 IAM 角色的所有政策，包括擔任角色政策、受管政策和內嵌政策。

參數：
+  **role\_name** （必要）：要取得政策的 IAM 角色名稱。角色必須存在於您的帳戶中 AWS 。

## 完整存取 （寫入） 工具
<a name="full_access_tools"></a>

本節說明 EKS MCP 伺服器可用的完整存取 （寫入） 工具。請注意， （截至「今天」) 所有寫入 Kubernetes API 操作只能存取：
+  **公有叢集 **(endpointPublicAccess=true)

## manage\_k8s\_resource
<a name="manage_k8s_resource"></a>

使用寫入操作 （建立、更新、修補或刪除） 管理單一 Kubernetes 資源。

參數：
+  **操作** （必要）：在資源上執行的操作。有效值：
+  `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")。
+  **內文** （選用）：資源定義為 JSON 字串。建立、取代和修補操作時需要。對於建立和取代，這應該是完整的資源定義。對於修補程式，這應該只包含要更新的欄位。
+  **name** （選用）：Kubernetes 資源的名稱。除了建立 （可在內文中指定） 之外的所有操作都需要。
+  **命名空間** （選用）：Kubernetes 資源的命名空間。命名空間資源的必要項目。叢集範圍的資源 （例如 Nodes、PersistentVolumes) 不需要。

## apply\_yaml
<a name="apply_yaml"></a>

將 Kubernetes YAML 資訊清單套用至 EKS 叢集。

參數：
+  **cluster\_name** （必要）：建立或更新資源的 EKS 叢集名稱。
+  **命名空間** （必要）：要套用資源的 Kubernetes 命名空間。將用於未指定命名空間的命名空間資源。
+  **yaml\_content** （必要）：要套用至叢集的 YAML 內容。可以包含多個以 '---' 分隔的文件。
+  **force** （選用）：是否更新已存在的資源 （類似套用 kubectl)。設定為 false 僅建立新資源。

## manage\_eks\_stacks
<a name="manage_eks_stacks"></a>

使用產生範本、部署、描述和刪除 EKS 叢集及其基礎基礎設施的操作來管理 EKS CloudFormation 堆疊。叢集建立通常需要 15-20 分鐘才能完成。對於部署和刪除操作，堆疊必須由此工具建立 （即使用 CreatedBy=EksMcpServer 標記）。

參數：
+  **cluster\_name** （必要）：EKS 叢集的名稱 （用於產生、部署、描述和刪除操作）。此名稱將用於衍生 CloudFormation 堆疊名稱，並將內嵌在叢集資源中。
+  **操作** （必要）：要執行的操作。有效值：
+  `generate`：產生 CloudFormation 範本
+  `deploy`：部署 CloudFormation 堆疊 （需要 `template_content`)
+  `describe`：描述/讀取 CloudFormation 堆疊 （唯讀）
+  `delete`：刪除 CloudFormation 堆疊
+  **template\_content** （選用）：CloudFormation 範本內容 （用於部署操作）。這應該是完整的 YAML 或 JSON 範本內容。支援以 '---' 分隔的單一資源和多文件 YAML 內容。

## add\_inline\_policy
<a name="add_inline_policy"></a>

將新的內嵌政策新增至 IAM 角色。

參數：
+  **許可** （必要）：將政策中包含為代表 IAM 政策陳述式的 JSON 字串的許可。可以是單一 JSON 字串或 JSON 字串陣列。
+  **policy\_name** （必要）：要建立的內嵌政策名稱。在角色中必須是唯一的。
+  **role\_name** （必要）：要新增政策的 IAM 角色名稱。角色必須存在。