😲

AWS MCP Servers を使って CDK とアーキテクチャ図を作らせてみる

に公開

本記事は驚き記事です、実際のプロジェクトへの適用を保証するものではなく、またコードの品質や成果物品質に焦点を当てていない点をご留意ください。

免責事項

  • 本記事は個人の備忘録および情報共有を目的として作成しています
  • 掲載内容は執筆者の個人的な見解であり、所属する組織・会社の公式見解ではありません
  • 記載された情報の正確性・最新性については保証できかねます
  • 本記事の情報に基づく判断は、すべて閲覧者の責任において行ってください

概要

そろそろ Amazon Q Developer CLI でも MCP が使用可能になりそうな気配を感じるので、その前に Q CLI で使うと便利そうな AWS MCP Servers を使って試してみる記事です。

https://github.com/awslabs/mcp/tree/main

やること

  • AWS MCP Servers のセットアップ
  • Cline への導入
  • サンプルプロジェクトの作成

やらないこと

  • MCP の説明
  • Cline の説明
  • 実際のデプロイ

まとめ

  • AWS Diagram MCP Server が CDK からアーキテクチャ図を作成してくれるのめっっちゃありがたい!!!!!こんな感じで画像作ってくれます。指示を出せば Diagrams のコードも残してくれますが、指示しないと画像だけポって出されるので注意が必要

diagram

AWS MCP Servers のセットアップ

Each server has specific installation instructions. Generally, you can:

  1. Install uv from Astral
  2. Install Python using uv python install 3.10
  3. Configure AWS credentials with access to required services
  4. Add the server to your MCP client configuration

Example configuration for Amazon Q CLI MCP (~/.aws/amazonq/mcp.json):

手順を見る限り、uv がインストールできていれば他に追加で実施しなくちゃいけないことはほとんどなさそうです。
AWS Credentials も要求されていますが、今回はサンプル作って構成図を作るだけなので設定してもしなくても良いです。
明らかに Q CLI での実装を意識した説明文ですね、早く GA してほしい

今回の用途で使いそうな MCP Server は以下の 3 種類、それぞれに必要な設定がありそうなので確認していきましょう。

  • AWS Documentation MCP Server : ドキュメントを読み込んでくれます、README にリンクがあったら嬉しいので
  • AWS CDK MCP Server : CDK の使い方や推奨をくれるっぽい、よくわからないけど入れておきます
  • AWS Diagram MCP Server : diagrams を使って構成図を書いてくれそう、これ便利そうですね

上記 3 種類を使用するために、以下のセットアップが必要です。

  • uv python install 3.10 の実行 : 3.10 より上のバージョンでも良いっぽいです
  • gpraphviz のインストール : Diagram 作成に必要です
Mac向け
brew install uv
uv python install 3.10
brew install graphviz

AWS Diagram MCP Server のインストール

これだけまだ uvx で起動できないみたいです。
どうやらまだ package registry に追加されてなさそう。
待ってればすぐ追加されそうですが、待ってられないので手動でインストールします。
あくまで検証です、変更が追えなくなるので package が公開されるのを待つのがおすすめです。

uvx awslabs.aws-diagram-mcp-server-mcp-server@latest
  × No solution found when resolving tool dependencies:
  ╰─▶ Because awslabs-aws-diagram-mcp-server-mcp-server
      was not found in the package registry and you require
      awslabs-aws-diagram-mcp-server-mcp-server, we can conclude that your
      requirements are unsatisfiable.

まずローカルに落とします

git clone https://github.com/awslabs/mcp.git

aws-diagram-mcp-server の階層まで行き、build およびインストールを実施します

uv build
uv tool install ./dist/awslabs_aws_diagram_mcp_server-0.8.111004-py3-none-any.whl

試しに実行する際には以下のコマンドを実行します。

uv tool run awslabs.aws-diagram-mcp-server

Cline への導入

cline_mcp_settings.json に以下を追加するだけです。詳しい説明とかは他の方がやってると思うので参照してください。

cline_mcp_settings.json
{
  "mcpServers": {
    "他のいろいろなMCPServer":{..},
    "aws-diagram-mcp-server": {
      "command": "<uvへのpath>",
      "args": ["tool","run","awslabs.aws-diagram-mcp-server"],
      "env": {
        "SHELL": "/usr/bin/zsh"
      }
    },,
    "awslabs.cdk-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.cdk-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      }
    },
    "awslabs.aws-documentation-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.aws-documentation-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

実行

下のプロンプトを実行するだけで、以下の成果物を作ってくれました。
CDKの README.md にはちゃんと各リソースに関連するドキュメントへのリンクも添付してくれてありがたいですね。

  • Diagram で生成した画像およびコード

これめっちゃありがたいです、今回は簡単すぎるアーキテクチャですが CDK や CFn さえ作成してあれば構成図を書かなくて済む未来が来そうですね。

diagram

morning_notification_diagram.py
from diagrams import Diagram, Edge
from diagrams.aws.integration import SNS
from diagrams.aws.compute import Lambda
from diagrams.aws.management import Cloudwatch
from diagrams.onprem.client import User

with Diagram("Morning Notification Architecture", show=False, direction="LR"):
    # コンポーネントの定義
    events = Cloudwatch("CloudWatch Events\n(毎朝8時に実行)")
    lambda_fn = Lambda("Morning Notification\nLambda Function")
    topic = SNS("SNS Topic")
    user = User("End User")
    
    # コンポーネント間の接続
    events >> Edge(label="トリガー") >> lambda_fn
    lambda_fn >> Edge(label="メッセージ送信") >> topic
    topic >> Edge(label="通知") >> user
  • CDK プロジェクト

https://github.com/KIrie-0217/mcp-server-test-sample

プロンプト等

prompt
requirements.md を読んで、必要な作業を切り分けた作業手順書を作成してください
requirements.md
# AWS 仕様書

## 前提

* CDK にて作成する
* 作成した CDK は Diagram を用いてグラフ化する
* README.md を作成する。また README.md には関連する AWS サービスへのリンクを作成すること

## 要求

* 毎朝日本時間 8 時に Lambda を定期実行してください
* Lambda では SNS に対してメッセージをパブリッシュしてください。
* メッセージの内容は Good Morning としてください
prompt
作業手順書.md を読み、MCP を必要に応じて使用して、作業を完成してください。
作業手順書.md
作業手順書

1. AWS CDK プロジェクトの作成
    * AWS CDK を使用して新しいプロジェクトを作成します。
    * プロジェクトのディレクトリ構造を設定します。

2. Lambda 関数の作成
    * Lambda 関数を作成します。
    * Lambda 関数が SNS に対してメッセージをパブリッシュするようにコードを記述します。
    * メッセージの内容は「Good Morning」とします。

3. CloudWatch イベントの設定
    * CloudWatch イベントルールを作成します。
    * ルールが毎朝日本時間 8 時にトリガーされるように設定します。
    * ルールがトリガーされたときに Lambda 関数が実行されるように設定します。

4. Diagram の作成
    * Diagram を使用して AWS リソースのグラフを作成します。
    * グラフに Lambda 関数と SNS が含まれていることを確認します。

5. README.md の作成
    * README.md ファイルを作成します。
    * README.md にプロジェクトの概要と関連する AWS サービスへのリンクを記述します。

以上が作業手順です。各作業を順番に実行してください。

Discussion