[アップデート]Amazon Q Developer CLIでMCPがサポートされました!

[アップデート]Amazon Q Developer CLIでMCPがサポートされました!

Amazon Q Developer CLIでMCPがサポートされました!
Clock Icon2025.04.30

お疲れさまです。とーちです。

Amazon Q Developer CLIがMCPをサポートしたというアップデートがありました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/04/amazon-q-developer-cli-model-context-protocol/

これはなかなか熱いアップデートではないでしょうか。早速試してみました。

なお、そもそもMCPとは?といった部分については以下のブログをご参照ください。

https://dev.classmethod.jp/articles/shuntaka-mcp-study/

また、Amazon Q Developer CLIのインストール方法については以下のブログをご参照ください。

https://dev.classmethod.jp/articles/amazon-q-developer-japanese-language-support-ide-cli/

Amazon Q Developer CLIでのMCPサーバー設定方法

Amazon Q Developer CLIでも他の多くのMCPクライアントと同様に、MCPサーバー用の設定ファイルを使ってどのMCPサーバーを使用するかを設定します。

設定ファイルは以下の2種類の置き場があります

  • ~/.aws/amazonq/mcp.json:自分のマシン上のすべてのプロジェクトに適用される
  • ワークスペースのルートに.amazonq/mcp.json ファイルを配置:対象のワークスペースにのみ適用される

ワークスペースのルートにMCP設定を配置するのはなかなか良いですね。他のMCPクライアントでも同様のことができるのかもしれませんが、私は初めて見ました。

ワークスペースのルートに配置し、それをGitリポジトリで管理することで、あるプロジェクトにおけるMCPサーバーの設定をメンバー間で統一することができそうですよね。

後ほど、実際にワークスペースのルートに置いてみて動作を試してみます。

設定ファイルの書き方は他のMCPクライアントと同じです。AWSブログでは以下のようにPostgreSQL MCP サーバーを設定する例が記載されていました。

{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://USERNAME:PASSWORD@HOST:5432/DBNAME"
      ]
    }
  }
}

やってみた

まずはq update コマンドでAmazon Q Developer CLIを以下のバージョンにアップデートしました。

> q update
> q --version
q 1.9.1

以下のファイルを作成し、ここにMCPサーバーの設定を記載します。

touch ~/.aws/amazonq/mcp.json

とりあえず以下のように記載し、AWS Documentation MCP Serverを追加してみました。

{
  "mcpServers": {
    "awslabs.aws-documentation-mcp-server": {
      "command": "uvx",
      "args": [
        "awslabs.aws-documentation-mcp-server@latest"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": [
        "read_documentation"
      ]
    }
  }
}

q chat コマンドを実行すると以下のようにMCPサーバーが読み込まれたことが確認できます。

> q chat
To learn more about MCP safety, see https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-security.html
✓ awslabsaws_documentation_mcp_server loaded in 9.59 s
✓ 1 of 1 mcp servers initialized

ツールについて質問

まずはどんなツールが使えるのか確認してみましょう。

> あなたはどんなツールを持っていますか?

私が持っているツールは以下のとおりです:

1. AWS CLI操作ツール (use_aws) - AWS CLIを使ってAWSサービスを操作できます

2. ファイル読み取りツール (fs_read) - ファイルの内容を読んだり、ディレクトリの一覧を表示したりできます

3. ファイル作成・編集ツール (fs_write) - ファイルの作成や編集ができます

4. Bashコマンド実行ツール (execute_bash) - ターミナルコマンドを実行できます

5. 問題報告ツール (report_issue) - 会話中の問題をGitHubに報告できます

6. AWS ドキュメント検索ツール - AWS公式ドキュメントを検索できます

7. AWS ドキュメント読み取りツール - AWS公式ドキュメントの内容を取得してマークダウン形式で表示できます

8. AWS ドキュメント推奨ツール - 関連するAWSドキュメントページを推奨できます

これらのツールを使って、AWSリソースの管理、ファイル操作、コマンド実行、ドキュメント検索など、様々な作業のお手伝いができます。何か特定のタスクでお手伝いが必要でしたら、お知らせください。

AWS Documentation MCP Serverを追加したことで、AWS公式ドキュメントを検索・参照するツールが使えるようになっていることがわかります。

CloudFrontについて質問

実際にAWS Documentation MCP Serverを使って、最新のAWSドキュメントを参照してみます。今回は、2025/4/29の最新のアップデートであるCloudFrontのマルチテナントディストリビューションについて質問してみました。

https://dev.classmethod.jp/articles/cloudfront-multitenant-distribution/

> AWSの最新ドキュメントを参照してCloudFrontのマルチテナントディストリビューションについて分かりやすく解説してください

以下のように q chat のセッション内で初めてツールを使用するときは許可を求められます。tを押すとセッション内では以降、自動で許可するようになります。

🛠️  Using tool: search_documentation from mcp server awslabsaws_documentation_mcp_server
 ⋮ 
 ● Running search_documentation with the param:
 ⋮  {
 ⋮    "arguments": {
 ⋮      "limit": 5,
 ⋮      "search_phrase": "CloudFront multi-tenant distribution"
 ⋮    },
 ⋮    "name": "search_documentation"
 ⋮  }
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:

> t

 ⋮ 
 ● Completed in 1.634s


詳細な情報を取得するために、マルチテナントディストリビューションの基本的な仕組みについて読んでみましょう。


🛠️  Using tool: read_documentation from mcp server awslabsaws_documentation_mcp_server
 ⋮ 
 ● Running read_documentation with the param:
 ⋮  {
 ⋮    "arguments": {
 ⋮      "max_length": 5000,
 ⋮      "url": "https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html"
 ⋮    },
 ⋮    "name": "read_documentation"
 ⋮  }
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:

> t

Amazon Q Developer CLIは、AWS Documentation MCP Serverを使って、CloudFrontのマルチテナントディストリビューションに関する情報を検索し、関連するドキュメントを読み込んでいます。そして、それらの情報を基に以下のような回答を生成してくれました。

CloudFrontのマルチテナントディストリビューションについて、最新のAWSドキュメントを基に分かりやすく解説します。

# CloudFrontマルチテナントディストリビューションとは

マルチテナントディストリビューションは、複数のディストリビューションテナント間で再利用できる設定を持つCloudFrontの機能です。これにより、コンテンツのオリジンタイプに基づいて、CloudFrontが自動的にディストリビューシ
ョン設定を構成してくれます。

## 主なメリット

• 運用負担の軽減
• ウェブ管理者やソフトウェアプロバイダーが複数のウェブアプリケーション向けにCloudFrontディストリビューションを管理するための再利用可能な設定
• 自動証明書管理、統合セキュリティコントロール、大規模な構成管理の簡素化など、他のAWSサービスとの連携強化
• 実装全体で一貫したリソースパターンの維持(共有すべき設定を定義し、オーバーライドする設定をカスタマイズ可能)
• ディストリビューションテナントレベルで特定のニーズに合わせたオリジンとセキュリティ設定のカスタマイズ
• ディストリビューションテナントを異なる階層に整理可能(例:一部のテナントがOrigin Shieldを必要とし、一部が必要としない場合)
• 複数ドメイン間での共通DNS設定の共有

## 標準ディストリビューションとの違い

標準ディストリビューションとは異なり、マルチテナントディストリビューションはCloudFrontルーティングエンドポイントを持たないため、直接アクセスすることはできません。そのため、コネクショングループと1つ以上のディストリ
ビューションテナントと組み合わせて使用する必要があります。

標準ディストリビューションは独自のCloudFrontエンドポイントを持ち、エンドユーザーが直接アクセスできますが、他のディストリビューションのテンプレートとして使用することはできません。

## 仕組み

マルチテナントディストリビューションの仕組みは以下の通りです:

1. まず、マルチテナントディストリビューションを作成します。CloudFrontがコンテンツのオリジンタイプに基づいて設定を構成します。
2. デフォルトでは、CloudFrontが自動的にコネクショングループを作成します。コネクショングループは、コンテンツへのビューワーリクエストがCloudFrontにどのように接続するかを制御します。
3. 次に、1つ以上のディストリビューションテナントを作成します。ディストリビューションテナントはビューワーがコンテンツにアクセスするための「玄関口」となります。各テナントはマルチテナントディストリビューションを参照
し、自動的にCloudFrontが作成したコネクショングループに関連付けられます。
4. ディストリビューションテナントの設定(バニティドメインやオリジンパスなど)をカスタマイズできます。
5. 最後に、DNSホストのDNSレコードを更新して、ディストリビューションテナントにトラフィックをルーティングする必要があります。

## 主要な用語

• **マルチテナントディストリビューション**: ディストリビューションテナントの共有設定を指定する設計図。直接トラフィックを処理できず、コネクショングループとディストリビューションテナントと組み合わせて使用する必要が
あります。
• **標準ディストリビューション**: マルチテナント機能を持たないディストリビューション。単一のウェブサイトやアプリをサポートするのに最適です。
• **ディストリビューションテナント**: マルチテナントディストリビューションの設定を継承し、最大5つの個別ドメインまたはサブドメインをサポートします。一部の設定はテナントレベルでカスタマイズ可能です。
• **コネクショングループ**: ビューワーにコンテンツを提供するCloudFrontルーティングエンドポイントを提供します。各ディストリビューションテナントをコネクショングループに関連付ける必要があります。
• **パラメータ**: オリジンパスやドメイン名などのプレースホルダー値のキーと値のペア。マルチテナントディストリビューションでパラメータを定義し、ディストリビューションテナントレベルでそれらの値を提供できます。

## カスタマイズ可能な設定

ディストリビューションテナントでは以下の設定をカスタマイズできます:

• **パラメータ**: オリジンドメインやオリジンパスに使用できるキーと値のペア
• **AWS WAF ウェブACL (V2)**: マルチテナントディストリビューションで使用されるウェブACLをオーバーライドする別のウェブACLを指定可能
• **地理的制限**: マルチテナントディストリビューションの地理的制限をオーバーライドする設定が可能
• **無効化パス**: ディストリビューションテナントのコンテンツを無効化するためのファイルパスを指定
• **カスタムTLS証明書**: ディストリビューションテナント用のACM証明書を指定可能
• **サブドメインと代替ドメイン名**: ルートドメインとサブドメインを指定し、各テナントに最大5つの代替ドメイン名を追加可能

## サポートされていない機能

マルチテナントディストリビューションでは以下の機能はサポートされていません:

• 継続的デプロイメント
• オリジンアクセスアイデンティティ(OAI)- 代わりにオリジンアクセスコントロール(OAC)を使用
• 専用IP カスタムSSLサポート - SNI-onlyメソッドのみサポート
• AWS WAF Classic (V1) ウェブACL - AWS WAF V2ウェブACLのみサポート
• 標準ログ記録(レガシー)

また、IPv6の有効化やAnycast静的IPリストなどの設定は、マルチテナントディストリビューションやディストリビューションテナントでは構成できません。代わりに、コネクショングループでこれらの値を設定します。

マルチテナントディストリビューションは、複数のウェブサイトやアプリケーションを効率的に管理したい場合に特に有用で、共通設定を一元管理しながら、必要に応じて個別のカスタマイズも可能にする柔軟な仕組みを提供します。

こちらがCloudFrontのマルチテナントディストリビューションに関する公式ドキュメントです。
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-config-options.html

ざっと見たところ、ちゃんと上記のドキュメントを見て解説しているようですね。

プロジェクト固有のMCP設定を試す

続いて、プロジェクトのルートに.amazonq/mcp.json ファイルを配置して試してみます。ここでは以下のように AWS Terraform MCP Serverのみをセットしています。

> cat .amazonq/mcp.json 
{
  "mcpServers": {
    "awslabs.terraform-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.terraform-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

私はてっきり~/.aws/amazonq/mcp.json の設定を無視して、.amazonq/mcp.json ファイルの設定のみが読み込まれると思っていたのですが、どうやら違うようで、両方の設定からMCPサーバーを読み込む形になっていました。そのため、AWS Documentation MCP ServerとAWS Terraform MCP Serverの2つが読み込まれています。

> q chat
To learn more about MCP safety, see https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-security.html
✓ awslabsaws_documentation_mcp_server loaded in 2.93 s
✓ awslabsterraform_mcp_server loaded in 8.72 s
✓ 2 of 2 mcp servers initialized
> あなたはどんなツールがつかえますか?

私が使用できるツールには以下のようなものがあります:

1. AWS ドキュメント関連ツール
   • AWS ドキュメントの検索
   • AWS ドキュメントの読み込みと変換
   • AWS ドキュメントの推奨コンテンツの取得

2. ファイルシステム操作ツール
   • ファイルの読み取り
   • ファイルの作成・編集
   • ディレクトリの一覧表示

3. AWS CLI ツール
   • AWS サービスへの API 呼び出し

4. Bash コマンド実行ツール
   • システム上での Bash コマンドの実行

5. Terraform 関連ツール
   • Terraform コマンドの実行(init, plan, validate, apply, destroy)
   • Checkov セキュリティスキャンの実行
   • AWS プロバイダードキュメントの検索
   • AWSCC プロバイダードキュメントの検索
   • Terraform レジストリモジュールの検索
   • AWS-IA Terraform モジュールの検索

別のディレクトリに移動して q chat コマンドを実行すると、.amazonq/mcp.json に記載した内容は読み込まれずに、ちゃんとAWS Documentation MCP Serverのみが読み込まれることが確認できました。

> cd ../
> q chat
To learn more about MCP safety, see https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-mcp-security.html
✓ awslabsaws_documentation_mcp_server loaded in 3.32 s
✓ 1 of 1 mcp servers initialized

まとめ

Amazon Q Developer CLIは先日、日本語もサポートされ勢いがありますね。とりあえずMCPサーバーを始めてみたいといった方にもオススメなので、ぜひ使ってみてください。

以上、とーちでした。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.