Amazon Q Developer CLIでMCPを利用したいと思ったため備忘録のために記事を残します
普段はClaudeCodeやClaudeDesktopをよく利用していますが、業務でAWSを利用していることもあり、Amazon Q Developerも利用したほうが良いかなと思い触ってみました。
設定をAIにやらせてもよかったのですが(過去にやってる)、今後何か追加したいときに自分で出来た方が良いだろうと思ったのもあります。
今更感はありますが、何も残さないよりは良いと思って記事書きました!
環境
WSL環境で実施しており、バージョンは下記
PS C:\> wsl --version
WSL バージョン: 2.5.9.0
PS C:\> wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Running 2
前提条件
-
AstralまたはGitHubのREADMEから
uv
をインストールする - Python 3.10以降
uv python install 3.10
(またはより新しいバージョン)をインストールする
次のコマンドで実施可能
$ pip install uv
$ uv python install 3.10
Amazon Q Developer CLIにおけるMCPの設定方法
- mcp.jsonにMCP設定を記載する。
- mcp.jsonの配置場所によってMCPの適用範囲が異なる
- ホームディレクトリ(
~/.aws/amazonq/mcp.json
):マシン上のすべてのプロジェクトに適用される - ワークスペースのルート(
.amazonq/mcp.json
)に設定するとそのワークスペース配下に適用される
- ホームディレクトリ(
AWS Documentation MCPを導入してみる
下記URLを参考にAWS Documentation MCPを導入する。Amazon Q Developer CLIで導入する手順が詳細にわかりやすく記載されていた。
- https://github.com/awslabs/mcp
- https://github.com/awslabs/mcp/tree/main/src/aws-documentation-mcp-server
~/.aws/amazonq/mcp.json
に設定
次の設定を~/.aws/amazonq/mcp.json
に記載する
{
"mcpServers": {
"awslabs.aws-documentation-mcp-server": {
"command": "uvx",
"args": ["awslabs.aws-documentation-mcp-server@latest"],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR",
"AWS_DOCUMENTATION_PARTITION": "aws"
},
"disabled": false,
"autoApprove": []
}
}
}
MCP設定前後比較
「S3 バケットの命名ルールに関するドキュメントを参照してください。ソースを引用してください。」という質問をMCP設定前後で投げて比較します。
(使用例にあった質問をなげてます)
MCP設定後
q
コマンド実行時
まず、q
コマンド実行時にMCPがロードされた旨の表示が出ます。
質問
MCPを使用してドキュメントを探す・確認することに対して許可を求められます。
最終的に詳細な回答を得られました。今回の質問だとあまり差はないかもしれませんが、使用できていることが確認できました。
S3バケットの命名ルールについて、AWS公式ドキュメントから詳細な情報を取得しました。以下に主要な命名ルールをまとめます:
## S3バケットの命名ルール
ソース: [General purpose bucket naming rules - Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)
### 基本的な命名ルール
• 文字数: 3文字以上63文字以下
• 使用可能文字: 小文字のアルファベット、数字、ピリオド(.)、ハイフン(-)のみ
• 開始・終了文字: 文字または数字で開始・終了する必要がある
• 連続ピリオド禁止: 2つ以上の連続したピリオドは使用不可
• IPアドレス形式禁止: 192.168.5.4のようなIPアドレス形式は使用不可
### 禁止されているプレフィックス・サフィックス
• プレフィックス禁止:
• xn--で始まる名前
• sthree-で始まる名前
• amzn-s3-demo-で始まる名前
• サフィックス禁止:
• -s3aliasで終わる名前(アクセスポイントエイリアス用)
• --ol-s3で終わる名前(Object Lambda Access Point用)
• .mrapで終わる名前(Multi-Region Access Point用)
• --x-s3で終わる名前(ディレクトリバケット用)
• --table-s3で終わる名前(S3 Tablesバケット用)
### 重要な制約
• グローバル一意性: バケット名はパーティション内のすべてのAWSアカウントで一意である必要がある
• Transfer Acceleration: Transfer Accelerationを使用する場合、バケット名にピリオド(.)は使用不可
• 地域制限: バケット作成後は名前とリージョンの変更不可
### ベストプラクティス
• GUID追加: 予測困難な名前にするため、グローバル一意識別子(GUID)を追加することを推奨
• ピリオド回避: 静的ウェブサイトホスティング以外では、ピリオドの使用を避けることを推奨
• 機密情報回避: バケット名にセンシティブな情報を含めない
### 有効な例
amzn-s3-demo-bucket1-a1b2c3d4-5678-90ab-cdef-example11111
amzn-s3-demo-bucket
### 無効な例
amzn_s3_demo_bucket (アンダースコア使用)
AmznS3DemoBucket (大文字使用)
example..com (連続ピリオド)
192.168.5.4 (IPアドレス形式)
これらのルールに従ってバケット名を設定することで、S3バケットを適切に作成・管理できます。
MCP設定前
q
コマンド実行時
q
コマンド実行時にMCPなどの表示は出ません。
質問
特に許可を求められたりもしません。
🤖 You are chatting with claude-4-sonnet
> S3 バケットの命名ルールに関するドキュメントを参照してください。ソースを引用してください。
S3バケットの命名ルールについて、AWS公式ドキュメントから主要なルールをご説明します。
S3バケット命名ルール:
• 長さ: 3文字以上63文字以下
• 文字種: 小文字、数字、ハイフン(-)のみ使用可能
• 開始・終了: 文字または数字で開始・終了する必要がある
• 連続ハイフン: 連続するハイフンは使用不可
• IPアドレス形式: IPアドレス形式(例:192.168.1.1)は使用不可
• プレフィックス: "xn--"で始まるバケット名は使用不可
• サフィックス: "-s3alias"で終わるバケット名は使用不可
追加の制約:
• バケット名はAWS全体でグローバルに一意である必要がある
• 大文字は使用できない
• アンダースコア(_)やピリオド(.)は推奨されない(特に仮想ホスト形式のリクエストで問題が生じる可能性)
有効な例:
• my-bucket-name
• example123
• data-backup-2024
無効な例:
• MyBucket (大文字含む)
• my_bucket (アンダースコア含む)
• bucket- (ハイフンで終了)
• 192.168.1.1 (IPアドレス形式)
ソース:
AWS公式ドキュメント「Amazon S3 User Guide」の「Bucket naming rules」セクション
(https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)
これらのルールに従うことで、S3バケットを正常に作成・運用できます。
感想
- 設定自体はめっちゃ簡単
- 他のMCPサーバもどんどんためしたい。構成図とかもやりたいなあ
- いつの間にかAWSにMCPサーバがにょきにょき生えててびっくりした!
参考
MCP設定
- https://aws.amazon.com/jp/blogs/news/extend-the-amazon-q-developer-cli-with-mcp/
- https://aws.amazon.com/jp/blogs/news/use-model-context-protocol-with-amazon-q-developer-for-context-aware-ide-workflows/
AWS MCP
- https://github.com/awslabs/mcp
- https://github.com/awslabs/mcp/tree/main/src/aws-documentation-mcp-server
おまけ
無料枠なのにClaude4を利用できるのは良いよなあ
> /model
? Select a model for this chat session ›
❯ claude-4-sonnet (active)
claude-3.7-sonnet
claude-3.5-sonnet