

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 连接 MCP 服务器
<a name="configuring-capabilities-for-aws-devops-agent-connecting-mcp-servers"></a>

模型上下文协议 (MCP) 服务器通过提供对来自外部可观测性工具、自定义监控系统和操作数据源的数据的访问权限来扩展 AWS DevOps 代理的调查能力。本指南介绍如何将 MCP 服务器连接到 AWS DevOps 代理。

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

在连接 MCP 服务器之前，请确保您的服务器满足以下要求：
+ **可流式传输的 HTTP 传输协议** — 仅支持实现可流式传输 HTTP 传输协议的 MCP 服务器。
+ **身份验证支持**-您的 MCP 服务器必须支持以下身份验证方法之一： OAuth 2.0（客户端凭据或 3LO）、基于 API 密钥/令牌的身份验证或 AWS 签名版本 4 (Sigv4)。

## 安全注意事项
<a name="security-considerations"></a>

将 MCP 服务器连接到 AWS DevOps Agent 时，请考虑以下安全方面：
+ **工具许可名单 —** 您应该只将代理空间所需的特定工具列入许可名单，而不是公开 MCP 服务器上的所有工具。有关如何允许每个代理空间列[出工具，请参阅在代理空间中配置 MCP](#configuring-capabilities-for-aws-devops-agent-connecting-mcp-servers) 工具。

请注意，任何 MCP 刀具的最大刀具长度均为 64。
+ **提示注入风险** — 自定义 MCP 服务器可能会带来额外的提示注入攻击风险。有关更多信息，请参见[提示注入保护： AWS DevOps 客户端安全](aws-devops-agent-security.md)。
+ **只读工具和访问权限-** 仅允许将只读 MCP 工具列入许可名单，并确保仅允许身份验证凭据进行只读访问。

有关即时注入和责任共担模型的更多信息，请参阅[AWS DevOps 代理安全](aws-devops-agent-security.md)。

**注意**  
如果您的 MCP 服务器位于私有网络上，请参阅 [连接到私人托管的工具](configuring-capabilities-for-aws-devops-agent-connecting-to-privately-hosted-tools.md)

## 注册 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 服务器的描述性名称
   + **端点网址**-输入 MCP 服务器端点的完整 HTTPS 网址
   + **描述**（可选）-添加描述以帮助确定服务器的用途
   + **启用动态客户端注册**-如果要允许 AWS DevOps 代理自动向 MCP 服务器的授权服务器注册，请选中此复选框
   + **使用私有连接连接到端点** — 如果您希望 AWS DevOps 代理私下向您的 MCP 服务器发出请求，请选中此复选框。您可以选择现有的私有连接或创建新的私有连接。如果您使用 OAuth 身份验证，则私有连接同时适用于 MCP 服务器端点和令牌交换端点。确保私有连接配置的主机地址可以将流量路由到两个端点。有关更多信息，请参阅 [连接到私人托管的工具](configuring-capabilities-for-aws-devops-agent-connecting-to-privately-hosted-tools.md)。

1. 单击**下一步**

**注意**  
**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 3** LO

1. 单击**下一步**

**API 密钥** — 如果您的 MCP 服务器使用 API 密钥身份验证：

1. 选择 **API 密钥**

1. 单击**下一步**

**AWS Sigv4** — 如果您的 MCP 服务器使用 AWS 签名版本 4 身份验证：

1. 选择 **AWS sigv4**

1. 单击**下一步**

### 步骤 3：授权配置
<a name="step-3-authorization-configuration"></a>

根据所选的身份验证方法配置其他授权参数：

**对于 OAuth 客户凭证：**

1. **客户端 ID**-输入客户端的 OAuth 客户端 ID

1. **客户机密钥**-输入 OAuth 客户端的客户机密钥

1. **交易所 URL** — 输入令 OAuth 牌交换端点 URL

1. **交换参数**-输入用于通过服务进行身份验证的 OAuth 令牌交换参数

1. **添加作用域**-添加用于身份验证的 OAuth 范围

1. 单击**下一步**

**对于 OAuth 3LO：**

1. **客户端 ID**-输入客户端的 OAuth 客户端 ID

1. **客户密钥**-如果您的客户需要，请输入 OAuth 客户端的 OAuth 客户机密钥

1. **交易所 URL** — 输入令 OAuth 牌交换端点 URL

1. **授权 URL**-输入 OAuth 授权端点 URL

1. **Code Chall** enge Support-如果您的 OAuth 客户支持代码挑战，请选中此复选框

1. **添加作用域**-添加用于身份验证的 OAuth 范围

1. 单击**下一步**

**对于 API 密钥：**

1. 输入 API 密钥名称

1. 输入请求中将包含 API 密钥的标头的名称

1. 输入你的 API 密钥值

1. 单击**下一步**

**对于 AWS sigv4：**

AWS Sigv4 身份验证允许 AWS DevOps 代理连接到使用 AWS 签名版本 4 进行请求签名的 MCP 服务器。这对于托管在 Amazon API Gateway 后面的 MCP 服务器或其他支持 Sigv AWS 4 身份验证的服务非常有用。

**注意：**使用 Sigv4 身份验证的 MCP 服务器不支持私有连接。您的 MCP 服务器端点必须可公开访问。有关使用其他身份验证方法的私有网络上的 MCP 服务器，请参阅[连接到私人托管的工具](configuring-capabilities-for-aws-devops-agent-connecting-to-privately-hosted-tools.md)。

1. **配置 IAM 角色**-选择以下选项之一：
   + **使用现有角色**-从下拉列表中选择现有 IAM 角色。该角色必须具有允许 AWS DevOps 代理服务委托人代入该角色的信任策略（请参阅[为 Sigv4 身份验证创建 IAM 角色](#configuring-capabilities-for-aws-devops-agent-connecting-mcp-servers)）。
   + **手动创建新角色**-按照控制台中显示的 step-by-step说明创建具有正确信任策略的新 IAM 角色。

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 服务器将在账户级别注册

## 在代理空间中配置 MCP 工具
<a name="configuring-mcp-tools-in-an-agent-space"></a>

在帐户级别注册 MCP 服务器后，您可以配置该服务器中的哪些工具可供特定的代理空间使用：

1. 在 AWS DevOps 代理控制台中，选择您的代理空间

1. 前往 “**功能**” 选项卡

1. **在 “**MCP 服务器**” 部分中，单击 “添加”**

1. 选择要连接到此代理空间的已注册 MCP 服务器

1. 配置此 MCP 服务器上的哪些工具应可供代理空间使用：
   + **允许所有工具**-使 MCP 服务器中的所有工具都可用
   + **选择特定工具**-允许您选择要列入许可名单的工具

1. 单击 “**添加**” 将 MCP 服务器连接到您的代理空间

AWS DevOps 现在，在代理空间进行调查期间，代理将能够使用您的 MCP 服务器上的许可名单工具。

## 管理 MCP 服务器连接
<a name="managing-mcp-server-connections"></a>

**更新身份验证凭证**-如果需要更新您的身份验证凭据，则需要重新注册您的 MCP 服务器。导航到 AWS DevOps 代理控制台中的 “**功能提供者**” 页面，找到您的 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 代理服务委托人 (`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 代理服务资源的请求。

### 权限策略
<a name="permissions-policy"></a>

为角色附加权限策略，授予调用 MCP 服务器所需的最低权限。例如，如果您的 MCP 服务器托管在 Amazon API Gateway 后面，则该角色应`execute-api:Invoke`具有 API 网关资源的权限。

### 多区域签名 (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="related-topics"></a>
+  AWS DevOps 代理中的安全性
+ 设置代理空间
+ 即时注射保护