AWS

AWS MCP Serversを活用して、ブログの記事レビューをAmazon Q Developerに依頼する

sho

はじめに

西藤です。

先日、AWSがMCP(Model Context Protocol)Serversを発表しました。

AWS MCP Servers

これらのMCP Serversを利用することで、開発者はAWSが提供する最新情報にAIアシスタントを通じてより簡単にアクセスできるようになります。

また、最近、Amazon Q DeveloperがMCP Serverへの接続もサポートするようになりました。

Amazon Q Developer CLI now supports Model Context Protocol (MCP)

これにより、AWSのツール内で完結しながら、最新ドキュメントやベストプラクティス、コスト情報にアクセスしながら開発を進められるようになりました。

今回、ブログの記事を作成する際にそれらを活かせないかを検証しましたので、その手順を紹介します。

前提

今回の検証にあたっては、以下の前提で進めます。

  • Amazon Q Developer for CLIがインストール済みであること
  • ブログの記事をMarkdown形式で作成していること
  • AWS MCP Serversのうち、下記を使用してAWSの最新情報に沿ってブログ記事の精度を上げたい
    • Core MCP Server: 基本的なAWS情報の提供と質問理解を担当
    • AWS Documentation MCP Server: AWS公式ドキュメントの検索と参照に特化
    • Cost Analysis MCP Server: AWS各サービスの料金情報取得に特化
  • MCP Serverを利用するために必要なソフトウェアがインストール済みであること
  • AWS認証情報(credentials)が適切に設定されていること
    • Core MCP Serverを使用する場合は、Amazon Bedrockへのアクセス権限が必要
    • 参考:Prerequisites
    • Cost Analysis MCP Serverを使用する場合は、Price List APIにアクセスするための権限が必要
    • 参考:Prerequisites

これらのMCP Serverを組み合わせることで、AWSに関する記事を書いた後に、Amazon Q Developerを通じて、AWSの最新ドキュメントやベストプラクティス、コスト情報を取得しながら記事の内容をチェックすることを目指します。

MCP ServerとAmazon Q Developerがどのように連携しているかを示したフロー図を以下に示します。

ディレクトリ構成

上記を実現するためには、以下のようなディレクトリ構成で進めます。

.
├── .amazonq
│   └── mcp.json  # MCP Serverの設定ファイル
├── index.md      # ブログ記事の原稿
└── prompts.md    # Amazon Q Developerに投げるプロンプトの定義

MCP Serverの設定ファイル

MCP Serverの設定は、JSON形式の設定ファイルを通じて管理されます。Amazon Q Developerは2つのレベルの設定ファイルをサポートしています:

  1. グローバル設定: ~/.aws/amazonq/mcp.json

    • すべてのワークスペースに適用されます
  2. ワークスペース設定: .amazonq/mcp.json

    • 特定のワークスペースにのみ適用されます

両方のファイルが存在する場合、それらの内容は結合され、競合がある場合は、ワークスペース設定が優先されます。

今回は、ワークスペース設定を利用します。
ワークスペース内に設定を置けると、プロジェクトリポジトリに設定ファイルを置いて開発チーム内で共有することができるので、非常に便利ですね。

AWS Labs Core MCP Serverの設定

AWS Labs Core MCP Serverを設定するには、以下のような設定ファイルを作成します。

.amazonq/mcp.json

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

参照:https://awslabs.github.io/mcp/servers/core-mcp-server/

この設定により、Amazon Q DeveloperはAWS Labs Core MCP Serverに接続し、その機能を利用できるようになります。

他のMCP Serverの設定

各AWS MCP Serverは独立して動作し、それぞれが特定の専門知識や機能を提供します。より専門的な情報を得るために、他のAWS MCP Serverも設定しましょう。

上記のMCP Core Server用の設定に、AWS Documentation MCP ServerCost Analysis MCP Serverの設定を追加する形で次のように更新します。

.amazonq/mcp.json

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

参考:

これらの設定により、Amazon Q Developerは質問の内容を分析し、適切なMCP Serverに質問を振り分けることができるようになります。
たとえば、ドキュメントに関する質問はAWS Documentation MCP Serverに、コストに関する質問はCost Analysis MCP Serverに直接振り分けられます。各MCP Serverは独立して動作し、それぞれが特定の専門知識や機能を提供することで、より正確で詳細な回答を可能にします。

冒頭に示したフローのうち、Q DeveloperとMCP Serversのやりとりする部分を詳細化したものが以下のようになります。

Amazon Q Developer for CLIの設定確認

以上の設定を終えたら、Amazon Q Developer for CLIの設定を確認します。

1. Amazon Q Developer for CLIのログイン

まず、Amazon Q Developer for CLIでログインをします。
(下記の例では、Proライセンスを使用しています)

% q login
? Select login method ›
  Use for Free with Builder ID
❯ Use with Pro license
% q login
✔ Select login method · Use with Pro license
Logged in successfully

2. Amazon Q Developer for CLIのチャットモードの開始

q chatコマンドを実行して、チャットモードを開始します。

この表示の中でとくに注目していただきたいのが、0 of 3 mcp servers initializedという部分です。
MCP Serverの初期化が行われていることがわかります。
起動が完了すると、以下のような表示になります。

✓ awslabscore_mcp_server loaded in 1.64 s
✓ awslabsaws_documentation_mcp_server loaded in 1.85 s
✓ awslabscost_analysis_mcp_server loaded in 1.87 s

とあり、上記までに行なっていた設定により3つのMCP Serverが読み込まれたことがわかります。

3. 使用可能なToolの確認

チャット上でも確認してみると、次のような表示がされ、問題なさそうです。

レビュー実施のデモ

では、実際にQ Developerを使って、ブログ記事のレビューを行なってみましょう。

サンプルとして、前回投稿したブログ記事を題材にして、レビューを行わせてみます。

冒頭に示したようにprompts.mdindex.mdの2つのファイルを用意します。
prompts.mdには、レビューを行うための指示書を記載します。内容は次のようなものです:

- index.mdはAmazon QuickSightの活用方法を解説するブログ記事の原稿です。
- この記事内容をAWS MCP Serversの情報などを参照し、比較しながら、AWSに関する技術的な情報、料金表記など各情報が正確なのか批判的にレビューを行い、修正するべき箇所があれば指摘・修正を行なってください。
- そして、修正を行なった結果はresult.mdというファイル名でレポート出力してください。

そして、index.mdには、実際にブログ記事として書いた内容を記載します。

題材にするブログ記事
IAMを使った自己プロビジョニング方式で、Amazon QuickSightの権限設定する際の注意点
IAMを使った自己プロビジョニング方式で、Amazon QuickSightの権限設定する際の注意点

ここまでの準備が整ったら、チャット上で「prompts.mdに書かれている指示にしたがって対応を開始してください」と伝えるだけで済みます。

まず初めに、作業ディレクトリ内にprompts.mdが存在するかを確認し、ファイルの読み込みが行われます。

プロンプトファイルの読み込み

prompts.mdにindex.mdのレビュー指示が記載されているため、続いてindex.mdの読み込みが開始されます。

そして、index.mdの内容に沿った形でAWSの公式ドキュメントの検索を行います。
(この例ではIAMのpermissionに関する情報を検索していますね)

検索の結果たどり着いた公式ドキュメントを読み込みます。

公式ドキュメントの読み込み

こういった対応をしばらく続けた後、指示書で指定した通りresult.mdに結果を出力してくれます。

なお、チャットを開始する際は、
q chat --trust-all-tools
とすることで、上記の一連の対応をこちらからの介入を必要とせず完了までしてくれます。
必要に応じて、--trust-all-toolsオプションを付与して実行してください。

注意: --trust-all-toolsオプションを使用すると、Amazon Qはユーザーの確認なしにファイルの読み書きやコマンド実行などの操作を行うことができます。これはセキュリティリスクを伴うため、信頼できる環境でのみ使用してください。詳細はAmazon Q Developerのセキュリティドキュメントを参照してください。

レビューデモのレポート内容

上記にて出力されたレポートを確認すると、参考になる指摘が多数含まれています。

たとえば、料金に言及している箇所があれば、次のように補足を入れるように指摘してくれました。

また、AWSを活用する上でのベストプラクティスに即した形で、認証情報の管理方法についても指摘してくれています。
今回の例では、意図して「IAMを活用するケース」を題材としていたのですが、ブログを書く上でテーマとしているトピックに関しての調査はしていても、そもそものAWSにおけるベストプラクティスに関しての確認が抜けてしまうことがあるかもしれません。こういった指摘は非常に助かりますね。

また、最終的な記事全体を通しての総括も行なってくれました。

やはり第三者的な視点で指摘されると気づくことが多いです。

まとめ

以上、Amazon Q DeveloperとAWS MCP Serversを活用して、ブログ記事のレビューを行う方法について紹介しました。

実は、上記のサンプルとして挙げていたAmazon QuickSightのブログ記事執筆時にもAmazon Q Developerを活用して執筆を進めていたのですが、MCP Serversを活用しないでQ Developer単独だけで補完させようとするとなかなかAmazon QuickSightの正確な料金情報を出力されませんでした。(状況やこちらの指示の仕方に寄るところもあると思いますが)

旧料金体系に基づいて動作している様子が見受けられたため、MCP Serversも活用するようにしたら、出力結果の精度が向上した印象を受けました。(現行の料金体系に沿って出力してくれるようになりました。)

このように、本記事中でも言及しましたが、最新のAWS公式ドキュメントを参照したり、AWS活用におけるベストプラクティスにも立ち返ってチェックを行うようにもなりますので、AWSに関連するブログ記事を作成する上では非常に有用な仕組みだと感じました。

AWSに関するブログや文書作成を行う際に、効率的にクオリティアップをさせるための仕組みを検討されている方にとって、本記事が、少しでも参考になれば幸いです。

参考リンク

AUTHOR
sho
sho
記事URLをコピーしました