

# MCP サーバーの Docker イメージを構築するステップ
<a name="steps-to-build-mcp-server-docker-image"></a>

AWS での生成 AI アプリケーションビルダーで MCP (モデルコンテキストプロトコル) サーバーを使用するには、最初のステップとしてプライベート Amazon ECR リポジトリに構築され保存された Docker イメージが必要です。

**注記**  
現時点では、Amazon Bedrock AgentCore Runtime にデプロイされた既存の MCP サーバーを GAAB にエクスポートすることはできません。GAAB で作成されたエージェントに MCP サーバーをアタッチするには、そのエージェントを 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 をコピーします。この URI は、AWS での生成 AI アプリケーションビルダーデプロイウィザードを使用して MCP サーバーをデプロイするときに使用します。