

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

# 构建 MCP 服务器 Docker 镜像的步骤
<a name="steps-to-build-mcp-server-docker-image"></a>

要在 AWS 上将 MCP（模型上下文协议）服务器与生成式 AI 应用程序生成器一起使用，您需要首先构建并存储在私有 Amazon ECR 存储库中的 Docker 映像。

**注意**  
到目前为止，在 Amazon Bedrock AgentCore 运行时中部署的现有的 MCP 服务器无法导出到 GAAB 中。要将 MCP 服务器连接到通过 GAAB 创建的代理，则需要通过 GAAB 创建这些服务器。

## 步骤 1：创建您的 MCP 服务器
<a name="step-1-create-your-mcp-server"></a>

首先，你需要准备好你的 MCP 服务器实现。有关创建 MCP 服务器的详细说明，请参阅 [Amazon Bedrock AgentCore 开发者指南-创建 MCP](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-mcp.html#runtime-mcp-create-server) 服务器。

我们建议采用以下项目结构：

```
.
├── __init__.py
├── extras/
│   ├── extra_dependencies.py
│   ├── Dockerfile
├── requirements.txt
└── server.py <-- Server Entry point
```

对于 Dockerfile 结构，我们建议使用类似于以下示例的格式：

```
FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim
WORKDIR /app

# All environment variables in one layer
ENV UV_SYSTEM_PYTHON=1 \
    UV_COMPILE_BYTECODE=1 \
    UV_NO_PROGRESS=1 \
    PYTHONUNBUFFERED=1 \
    DOCKER_CONTAINER=1 \
    AWS_REGION=us-east-1 \
    AWS_DEFAULT_REGION=us-east-1

COPY requirements.txt requirements.txt
# Install from requirements file
RUN uv pip install -r requirements.txt

RUN uv pip install aws-opentelemetry-distro>=0.10.1

# Signal that this is running in Docker for host binding logic
ENV DOCKER_CONTAINER=1

# Create non-root user
RUN useradd -m -u 1000 bedrock_agentcore
USER bedrock_agentcore

EXPOSE 9000
EXPOSE 8000
EXPOSE 8080

# Copy entire project (respecting .dockerignore)
COPY . .

# Use the full module path
CMD ["opentelemetry-instrument", "python", "-m", "server"]
```

## 第 2 步：在本地测试您的 MCP 服务器
<a name="step-2-test-your-mcp-server-locally"></a>

在部署到 AWS 之前，务必在本地测试您的 MCP 服务器，以确保其按预期运行。有关本地测试的详细说明，请参阅 [Amazon Bedrock AgentCore 开发者指南-在本地测试您的 MCP 服务器](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-mcp.html#runtime-mcp-test-locally)。

## 第 3 步：部署到 Amazon ECR
<a name="step-3-deploy-to-amazon-ecr"></a>

在本地创建并测试 MCP 服务器后，请按照以下步骤将其部署到 Amazon ECR：

1. 确保您安装了最新版本的 AWS CLI 和 Docker。有关更多信息，请参阅 [Amazon ECR 入门](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html)。

1. 检索身份验证令牌并向注册表对 Docker 客户端进行身份验证。使用 AWS CLI：

   ```
   aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin <account-id>.dkr.ecr.us-east-1.amazonaws.com
   ```

1. 使用以下命令构建 Docker 镜像。有关从头开始构建 Docker 文件的信息，请参阅 [Docker 文档](https://docs.docker.com/engine/reference/builder/)。如果您的镜像已经构建，则可以跳过此步骤：

   ```
   docker build -t <repository-name> .
   ```

1. 构建完成后，标记您的映像，以便您可以将图像推送到此存储库：

   ```
   docker tag <repository-name>:latest <account-id>.dkr.ecr.us-east-1.amazonaws.com/<repository-name>:latest
   ```

1. 运行以下命令将此映像推送到您新创建的 AWS 存储库：

   ```
   docker push <account-id>.dkr.ecr.us-east-1.amazonaws.com/<repository-name>:latest
   ```

有关完整的部署说明，请参阅 [Amazon Bedrock AgentCore 开发人员指南-将您的 MCP 服务器部署到 AWS](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-mcp.html#runtime-mcp-deploy-aws)。

## 第 4 步：在 GAAB 中使用 ECR URI
<a name="step-4-use-the-ecr-uri-in-gaab"></a>

成功将 Docker 镜像推送到 Amazon ECR 后，从 ECR 控制台复制镜像 URI。通过 AWS 上的生成式 AI 应用程序生成器部署向导部署 MCP 服务器时，您将使用此 URI。