

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

# 連接 MCP 伺服器
<a name="configuring-integrations-and-knowledge-connecting-mcp-servers"></a>

模型內容通訊協定 (MCP) 伺服器透過提供來自外部可觀測性工具、自訂監控系統和操作資料來源的資料存取權，來擴展 AWS DevOps 代理程式的調查功能。本指南說明如何將 MCP 伺服器連線至 AWS DevOps Agent。

## 要求
<a name="requirements"></a>

連接 MCP 伺服器之前，請確定您的伺服器符合下列要求：
+ **可串流 HTTP 傳輸通訊協定** – 僅支援實作可串流 HTTP 傳輸通訊協定的 MCP 伺服器。
+ **身分驗證支援** – 您的 MCP 伺服器必須支援下列其中一種身分驗證方法：OAuth 2.0 （用戶端登入資料或 3LO)、API 金鑰/以金鑰為基礎的身分驗證，或 AWS Signature 第 4 版 (SigV4)。

## 安全考量
<a name="security-considerations"></a>

將 MCP 伺服器連線至 AWS DevOps 代理程式時，請考慮下列安全層面：
+ **工具允許清單 – ** 您應該只允許列出 Agent Space 所需的特定工具，而不是從 MCP 伺服器公開所有工具。如需如何允許每個[客服人員空間的清單工具，請參閱在客服人員空間中設定 MCP](#configuring-integrations-and-knowledge-connecting-mcp-servers) 工具。

請注意，任何 MCP 工具的工具名稱長度上限為 64 個字元。如需每個客服人員空間允許的 MCP 工具數量上限，請參閱 [配額](quotas.md)。
+ **提示注入風險** – 自訂 MCP 伺服器可能會帶來提示注入攻擊的額外風險。如需詳細資訊，請參閱[提示注入保護： AWS DevOps 代理程式安全](aws-devops-agent-security.md)。
+ **唯讀工具和存取 –** 僅允許列出唯讀 MCP 工具，並確保身分驗證憑證只允許唯讀存取。

[AWS DevOps 代理程式安全性](aws-devops-agent-security.md) 如需提示注入和共同責任模型的詳細資訊，請參閱 。

**注意**  
如果您的 MCP 伺服器位於私有網路上，請參閱 [連線至私有託管工具](configuring-integrations-and-knowledge-connecting-to-privately-hosted-tools.md)

## 社群 MCP 伺服器
<a name="community-mcp-servers"></a>

[AWS DevOps 代理程式工具儲存庫](https://github.com/aws/tools-for-devops-agent)包含可部署的 MCP 伺服器，可提供代理程式自訂工具以進行深度基礎設施診斷，例如 Amazon Elastic Kubernetes Service (Amazon EKS) 節點日誌收集、Amazon Virtual Private Cloud (Amazon VPC) DNS 解析探查，以及 Amazon Relational Database Service (Amazon RDS) 資料庫運作狀態檢查。儲存庫由 AWS DevOps Agent 服務團隊維護，所有貢獻在新增之前都會經過相同的安全審查列。若要瀏覽可用的項目，請參閱 GitHub 網站上的 [MCP 伺服器目錄](https://aws.github.io/tools-for-devops-agent/mcp-servers/)。

若要使用社群 MCP 伺服器：

1. 遵循伺服器 README 中的部署指示，將 MCP 伺服器部署至 AWS 您的帳戶。

1. 請依照下列註冊 [MCP 伺服器中的步驟，以 代理程式空間註冊已部署的伺服器](#registering-an-mcp-server-account-level)做為功能提供者。

## 註冊 MCP 伺服器 （帳戶層級）
<a name="registering-an-mcp-server-account-level"></a>

MCP 伺服器會在 AWS 帳戶層級註冊，並在該帳戶中的所有客服人員空間之間共用。個別客服人員空間接著可以從每個 MCP 伺服器選擇所需的特定工具。

### 步驟 1：MCP 伺服器詳細資訊
<a name="step-1-mcp-server-details"></a>

1. 登入 AWS 管理主控台

1. 導覽至 AWS DevOps 代理程式主控台

1. 前往**能力提供者頁面 **（可從側邊導覽存取）

1. 在**可用**提供者區段中尋找 **MCP 伺服器**，然後選擇**註冊**

1. 在 **MCP 伺服器詳細資訊**頁面上，輸入下列資訊：
   + **名稱** – 輸入 MCP 伺服器的描述性名稱
   + **端點 URL** – 輸入 MCP 伺服器端點的完整 HTTPS URL
   + **描述 **（選用） – 新增描述以協助識別伺服器的目的
   + **啟用動態用戶端註冊** – 如果您想要允許 AWS DevOps 代理程式自動向 MCP 伺服器的授權伺服器註冊，請選取此核取方塊
   + **使用私有連線連線至端點** – 如果您希望 AWS DevOps 代理程式私下向 MCP 伺服器發出請求，請選取此核取方塊。您可以選取現有的私有連線或建立新的私有連線。如果您使用 OAuth 身分驗證，私有連線會同時套用至 MCP 伺服器端點和字符交換端點。確保私有連線已設定主機地址，可將流量路由到兩個端點。如需詳細資訊，請參閱[連線至私有託管工具](configuring-integrations-and-knowledge-connecting-to-privately-hosted-tools.md)。

1. 選擇 **Next** (下一步)

**注意**  
** MCP 伺服器端點 URL 會顯示在您帳戶中的 AWS CloudTrail 日誌中。

### 步驟 2：授權流程
<a name="step-2-authorization-flow"></a>

選取 MCP 伺服器的身分驗證方法：

**OAuth 用戶端登入**資料 – 如果您的 MCP 伺服器使用 OAuth 用戶端登入資料流程：

1. 選取 **OAuth 用戶端登入**資料

1. 選擇**下一步**

**OAuth 3LO （三引號 OAuth)** – 如果您的 MCP 伺服器使用 OAuth 3LO 進行身分驗證：

1. 選取 **OAuth 3LO**

1. 選擇**下一步**

**API 金鑰** – 如果您的 MCP 伺服器使用 API 金鑰身分驗證：

1. 選取 **API 金鑰**

1. 選擇**下一步**

**AWS SigV4** – 如果您的 MCP 伺服器使用 AWS Signature 第 4 版身分驗證：

1. 選取 **AWS SigV4**

1. 選擇**下一步**

### 步驟 3：授權組態
<a name="step-3-authorization-configuration"></a>

根據選取的身分驗證方法設定其他授權參數：

**對於 OAuth 用戶端登入資料：**

1. **用戶端 ID** – 輸入 OAuth 用戶端的用戶端 ID

1. **用戶端秘密** – 輸入 OAuth 用戶端的用戶端秘密

1. **Exchange URL** – 輸入 OAuth 權杖交換端點 URL

1. **Exchange 參數** – 輸入 OAuth 權杖交換參數以使用 服務進行驗證

1. **新增範圍** – 新增身分驗證的 OAuth 範圍

1. 選擇**下一步**

**對於 OAuth 3LO：**

1. **用戶端 ID** – 輸入 OAuth 用戶端的用戶端 ID

1. **用戶端秘密** – 如果您的 OAuth 用戶端需要，請輸入 OAuth 用戶端的用戶端秘密

1. **Exchange URL** – 輸入 OAuth 權杖交換端點 URL

1. **授權 URL ** - 輸入 OAuth 授權端點 URL

1. **程式碼挑戰支援 ** - 如果您的 OAuth 用戶端支援程式碼挑戰，請選取此核取方塊

1. **新增範圍** – 新增身分驗證的 OAuth 範圍

1. 選擇**下一步**

**針對 API 金鑰：**

1. 輸入 API 金鑰名稱

1. 輸入將在請求中包含 API 金鑰的標頭名稱

1. 輸入您的 API 金鑰值

1. 選擇**下一步**

**For AWS SigV4：**

AWS SigV4 身分驗證可讓 AWS DevOps 代理程式連線至使用 AWS Signature 第 4 版進行請求簽署的 MCP 伺服器。這對於託管於 Amazon API Gateway 的 MCP 伺服器或其他支援 SigV4 身分驗證 AWS 的服務非常有用。

**注意：**使用 SigV4 身分驗證的 MCP 伺服器不支援私有連線。您的 MCP 伺服器端點必須可公開存取。如需使用其他身分驗證方法之私有網路上的 MCP 伺服器，請參閱 [連線至私有託管工具](configuring-integrations-and-knowledge-connecting-to-privately-hosted-tools.md)。

1. **設定 IAM 角色** – 選擇下列其中一個選項：
   + **使用現有角色** – 從下拉式清單中選取現有的 IAM 角色。角色必須具有信任政策，允許 AWS DevOps Agent 服務主體擔任該角色 （請參閱[建立 SigV4 身分驗證的 IAM 角色](configuring-integrations-and-knowledge-connecting-mcp-servers.html#creating-an-iam-role-for-sigv4-authentication))。
   + **手動建立新角色** – 遵循主控台中顯示的step-by-step指示，使用正確的信任政策建立新的 IAM 角色。
   + 在沒有**專用角色的情況下註冊** – 在未提供 IAM 角色的情況下註冊 MCP 伺服器。 AWS DevOps 代理程式會改為使用與 Agent Space 相關聯的 AWS 帳戶的 IAM 角色簽署請求，並延遲連線驗證，直到您與伺服器建立關聯為止。選擇此選項，跨連接到客服人員空間 AWS 的帳戶進行跨帳戶存取。如需詳細資訊，請參閱[沒有專用角色的跨帳戶存取](configuring-integrations-and-knowledge-connecting-mcp-servers.html#cross-account-access-without-a-dedicated-role)。

1. **AWS 區域** – 輸入 SigV4 簽署 AWS 的區域 （例如 `us-east-1`)。若要使用 SigV4a 多區域簽署，請輸入 `*`。

1. **服務名稱** – 輸入 SigV4 簽署 AWS 的服務名稱 （例如，`execute-api`API Gateway)。

1. **自訂標頭 **（選用） – 新增最多 10 個自訂鍵/值標頭對，以包含在每個已簽章的請求中。

1. 選擇**下一步**

### 步驟 4：檢閱並提交
<a name="step-4-review-and-submit"></a>

1. 檢閱所有 MCP 伺服器組態詳細資訊

1. 選擇**提交**以完成註冊

1. AWS DevOps 代理程式將驗證與您的 MCP 伺服器的連線

1. 成功驗證後，您的 MCP 伺服器將在帳戶層級註冊

**注意：**對於沒有專用角色註冊的伺服器， AWS DevOps 代理程式會使用主要 AWS 帳戶角色，將連線驗證延遲至關聯時間。如果驗證失敗，您可能需要更正您在註冊期間提供的 MCP 伺服器組態 （例如端點、區域或服務）。如需詳細資訊，請參閱[沒有專用角色的跨帳戶存取](configuring-integrations-and-knowledge-connecting-mcp-servers.html#cross-account-access-without-a-dedicated-role)。

## 在客服人員空間中設定 MCP 工具
<a name="configuring-mcp-tools-in-an-agent-space"></a>

在帳戶層級註冊 MCP 伺服器之後，您可以設定該伺服器的哪些工具可供特定 Agent Spaces 使用：

1. 在 AWS DevOps 代理程式主控台中，選取您的代理程式空間

1. 前往**功能**索引標籤

1. 在 **MCP 伺服器**區段中，選擇**新增**

1. 選取您要連接到此客服人員空間的已註冊 MCP 伺服器

1. 設定 Agent Space 應可從此 MCP 伺服器使用哪些工具：
   + **允許所有工具** – 讓 MCP 伺服器中的所有工具都可用
   + **選取特定工具** – 可讓您選擇要允許清單的工具

1. 選擇**新增**以將 MCP 伺服器連線至您的客服人員空間

AWS DevOps 代理程式現在可以在此代理程式空間的調查期間，使用 MCP 伺服器的允許清單工具。

## 管理 MCP 伺服器連線
<a name="managing-mcp-server-connections"></a>

**更新身分驗證憑證** – 您可以更新已註冊 MCP 伺服器的身分驗證憑證，而無需取消註冊。導覽至 AWS DevOps Agent 主控台中的**功能提供者**頁面，選取您的 MCP 伺服器，然後從**動作**功能表中選擇**更新**。您的客服人員空間關聯會保留。您可以更新的內容取決於身分驗證方法：
+ **API 金鑰** – 輸入新的 API 金鑰值和標頭名稱來輪換憑證。更新期間無法變更端點。
+ **OAuth 3LO （三引號 OAuth)** – 重新執行授權流程以重新整理儲存的權杖。您不會重新輸入用戶端登入資料。當您提交時， AWS DevOps 代理程式會將您重新導向至提供者的同意頁面，以完成重新授權。或者，您可以覆寫授權 URL。如果您將其保留空白， AWS DevOps 代理程式會從 MCP 伺服器的中繼資料中探索它。
+ **AWS SigV4** – 更新伺服器名稱、端點、描述、 AWS 區域、服務、IAM 角色和自訂標頭。

無法更新使用 OAuth 用戶端登入資料的 MCP 伺服器。若要變更這些登入資料，請移除任何作用中的關聯、取消註冊 MCP 伺服器，然後使用新值重新註冊。

**檢視連線的 MCP 伺服器** – 若要查看所有連線至客服人員空間的 MCP 伺服器，請選取您的客服人員空間，前往**功能**索引標籤，然後檢查 **MCP 伺服器**區段。您也可以在這裡更新選取的工具。

**移除 MCP 伺服器連線** – 若要中斷 MCP 伺服器與客服人員空間的連線，請在 **MCP 伺服器**區段中選取伺服器，然後選擇**移除**。若要完全刪除 MCP 伺服器註冊，請先將其從所有客服人員空間中移除，然後刪除帳戶層級註冊。

## 為 SigV4 身分驗證建立 IAM 角色
<a name="creating-an-iam-role-for-sigv4-authentication"></a>

使用 AWS SigV4 身分驗證時， AWS DevOps 代理程式會在您的帳戶中擔任 IAM 角色，以簽署對 MCP 伺服器的請求。此角色必須具有信任政策，允許 AWS DevOps Agent 服務主體 (`aidevops.amazonaws.com`) 以混淆代理人保護來擔任該角色。

### 信任政策
<a name="trust-policy"></a>

使用下列信任政策建立 IAM 角色。將 取代`REGION`為您的 AWS 區域 （例如 `us-east-1`)，並將 取代`ACCOUNT_ID`為您的 AWS 帳戶 ID。

```
{
  "Version": "2012-10-17",		 	 	 		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "aidevops.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "ACCOUNT_ID"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:aidevops:REGION:ACCOUNT_ID:service/*"
        }
      }
    }
  ]
}
```

信任政策包含下列條件，以防止[混淆代理人問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) ：
+ `aws:SourceAccount` – 將角色假設限制為來自您 AWS 帳戶的請求。
+ `aws:SourceArn` – 將角色假設限制為您帳戶中來自 AWS DevOps Agent 服務資源的請求。

### 許可政策
<a name="permissions-policy"></a>

將許可政策連接至角色，授予叫用 MCP 伺服器所需的最低許可。例如，如果您的 MCP 伺服器託管在 Amazon API Gateway 後方，該角色應具有 API Gateway 資源的`execute-api:Invoke`許可。

### 多區域簽署 (SigV4a)
<a name="multi-region-signing-sigv4a"></a>

如果您的 MCP 伺服器部署在多個 AWS 區域，您可以使用 [SigV4a （簽章版本 4a)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) 進行多區域簽署。若要啟用此功能，請在設定 SigV4 授權時，輸入 `*`做為 AWS 區域。SigV4a 使用非對稱簽署，允許單一簽署的請求跨多個區域有效。

## 沒有專用角色的跨帳戶存取
<a name="cross-account-access-without-a-dedicated-role"></a>

您可以不用為 MCP 伺服器註冊專用 IAM 角色，而是使用**無角色註冊**：在沒有角色的情況下註冊伺服器，並使用已與您的 Agent Space 建立關聯 AWS 之帳戶的 IAM 角色進行 AWS DevOps代理程式簽署請求。當您的 MCP 伺服器需要存取跨連線至客服人員空間之主要和次要 AWS 帳戶的資源，而不是單一角色的範圍限定在一個帳戶時，這會很有用。

### 運作方式
<a name="how-it-works"></a>

沒有專用角色的跨帳戶存取運作方式如下：

1. **在沒有角色的情況下註冊 MCP 伺服器** – 在 SigV4 授權組態步驟中，選擇**在沒有專用角色的情況下註冊**。 AWS DevOps 代理程式會註冊伺服器，但尚未驗證連線，因為沒有角色可簽署驗證請求。

1. **將 MCP 伺服器與客服人員空間建立關聯** – 當您將 MCP 伺服器新增至客服人員空間時， AWS DevOps 客服人員會使用**主要 AWS 帳戶 （監視器） 角色**進行驗證。它會假設該角色和呼叫`listTools`，以確認伺服器可連線且組態有效。客服人員空間必須具有與其相關聯的主要 AWS 帳戶。該帳戶的角色必須能夠叫用您的 MCP 伺服器。

1. **調查期間** – 當客服人員在特定帳戶上操作時使用 MCP 伺服器時，會使用該帳戶的角色簽署請求 - 主要**帳戶的主要帳戶角色**，以及每個**次要帳戶對應的次要帳戶角色**。代理程式將與此 MCP 伺服器搭配使用的每個主要或次要帳戶角色都必須能夠叫用它。

### 要求
<a name="requirements"></a>

將無角色 SigV4 MCP 伺服器與客服人員空間建立關聯之前：
+ 客服人員空間必須具有與其相關聯的**主要 AWS 帳戶**。如果沒有主要帳戶，關聯會失敗，因為主要帳戶角色會執行`listTools`驗證。錯誤訊息為：*「在沒有專用角色的情況下註冊的 SigV4 MCP 伺服器需要在客服人員空間中建立主要帳戶關聯。」*
+ **主要帳戶角色**必須授予叫用 MCP 伺服器的許可 （例如，`execute-api:Invoke`針對 API Gateway 託管伺服器）。您希望代理程式與此 MCP 伺服器搭配使用的每個**次要帳戶角色**也必須授予此許可。如需詳細資訊，請參閱[許可政策](configuring-integrations-and-knowledge-connecting-mcp-servers.html#permissions-policy)。 AWS DevOps 代理程式會在關聯時間使用主要角色，並在調查這些帳戶時使用次要角色。

## 疑難排解
<a name="troubleshooting"></a>

### 關聯無角色 MCP 伺服器失敗：「需要主要帳戶關聯」
<a name="associating-a-role-less-mcp-server-fails-requires-a-primary-account-association"></a>

如果您註冊的 MCP 伺服器沒有專用角色且關聯失敗，請檢查錯誤訊息。如果錯誤指出伺服器在*客服人員空間中需要主要帳戶關聯*，則客服人員空間沒有與其連接的主要 AWS 帳戶。

AWS DevOps 代理程式會在建立關聯時，使用代理程式空間主要 AWS 帳戶的 IAM 角色來驗證無角色 SigV4 MCP 伺服器。若要解決此問題：

1. 如果沒有主要帳戶，請將主要 AWS 帳戶新增至客服人員空間。

1. 請確定帳戶的 IAM 角色具有叫用 MCP 伺服器的許可 （例如，`execute-api:Invoke`針對託管於 Amazon API Gateway 的伺服器）。

1. 再次關聯 MCP 伺服器。

## 相關主題
<a name="related-topics"></a>
+ 安全 in AWS DevOps 代理程式
+ 設定 代理程式空間
+ 提示注入保護