AWS CLI MCP Server について
AWS CLI MCP Serverは、MCPクライアントからAWS CLIを通じてAWSを調査・操作するサーバーです。AWSリソースの管理向けに、コマンド実行や提案、アカウントとリージョンの照会を備え、シェル演算子や破壊的な操作らしきコマンドを制限します。
主な機能
- 01AWS CLIコマンドの実行
- 02自然言語によるコマンド提案
- 03利用可能なAWSリージョンの一覧
- 04呼び出し元のID確認
- 05破壊的な操作らしきコマンドの警告
活用シーン
- 01AWSアカウントのID確認
- 02AWS作業に使うコマンドの検索
- 03MCPクライアントからのAWS CLI操作
MCP 対応
stdio経由で、AWS CLIの実行、コマンド提案、リージョン照会、呼び出し元ID確認のツールをMCPクライアントに提供します。コマンドはサーバープロセスが利用できる認証情報で実行されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mdev-aws-mcp-serverAWS_REGIONDefault AWS regionAWS_PROFILEAWS credentials profileAWS_MCP_WORKING_DIRWorking directory for file operationsAWS_MCP_REQUIRE_CONFIRMATIONEmit warnings for destructive-looking operationsAWS_MCP_LOG_LEVELApplication log levelローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| cli_command | string | はい | 実行する AWS CLI コマンド全体。'aws' で始まる必要があります |
| max_results | any | いいえ | 結果数の任意の上限(ページネーションに便利です) |
詳細
AWS MCP サーバー
MCP 対応クライアントが AWS CLI を通じて AWS を調査・操作できる Python 製の Model Context Protocol(MCP)サーバーです。検証付きのコマンド実行、コマンドの提案、AWS リージョンの検索、呼び出し元 ID の確認に対応しています。
機能
- シェル展開を使わずに AWS CLI コマンドを実行し、シェル形式の解析によって引用符で囲まれた引数を保持します
- 自然言語のリクエストから、よく使われる AWS CLI コマンドを提案します
- 利用可能な AWS リージョンを返します
- 現在の呼び出し元 ID を返します
- ローカル MCP クライアント向けの stdio トランスポートに対応します
- 設定を検証し、stderr とローカルログファイルにログを書き込みます
安全性モデル
このサーバーは、プロセスで利用可能な認証情報を使用して AWS CLI コマンドを実行できます。subprocess.run(..., shell=False) を使用してシェル演算子をブロックし、破壊的に見えるコマンドにフラグを付けますが、IAM の最小権限や人によるレビューに取って代わるものではありません。権限を絞った AWS プロファイルまたはロールを使用し、テストには本番環境以外のアカウントを優先してください。また、MCP クライアントでは破壊的なコマンドを手動承認の対象にしてください。
要件
- Python 3.12+
- AWS CLI v2 がインストールされ、
PATHから利用できること - AWS CLI 認証が設定されていること、および AWS プロファイル、IAM Identity Center/SSO、環境変数、IAM ロール、その他の AWS 対応認証情報プロバイダーを通じて設定されていること
- Claude Desktop、Cursor、VS Code、その他の MCP ホストなどの MCP 対応クライアント
インストール
PyPI で公開されたら、標準的な Python MCP パッケージと同様にサーバーをインストールまたは実行します。
uvx mdev-aws-mcp-server
ソースからローカルで開発する場合:
git clone https://github.com/musaddiq-dev/aws-cli-mcp-server.git
cd aws-cli-mcp-server
python -m venv .venv
source .venv/bin/activate
pip install -e .
設定
このサーバーを実行する前に、公式の AWS CLI インストールガイドに従って AWS CLI をインストールし、公式の AWS CLI サインインガイドおよび AWS CLI 設定ガイドに従って認証情報を設定してください。AWS は可能な場合に短期認証情報を推奨しています。ユースケースで必要な場合を除き、長期的な IAM ユーザーキーは避けてください。
環境変数のサンプルファイルをコピーし、必要に応じて値を調整します。
cp .env.example .env
| 変数 | 説明 | デフォルト |
|---|---|---|
AWS_REGION | デフォルトの AWS リージョン | us-east-1 |
AWS_PROFILE | AWS 認証情報プロファイル | default |
AWS_MCP_WORKING_DIR | ファイル操作用の作業ディレクトリ | /tmp/aws-mcp-work |
AWS_MCP_REQUIRE_CONFIRMATION | 破壊的に見える操作に警告を出すかどうか | true |
AWS_MCP_LOG_LEVEL | アプリケーションのログレベル | INFO |
実行
mdev-aws-mcp-server
PyPI で公開される前にローカルのチェックアウトから実行する場合:
python -m aws_mcp_server.server
MCP クライアントの設定
公開済みのパッケージをインストールする場合は、uvx の使用を推奨します。stdio を使用する MCP サーバーは、プロトコルメッセージのみを stdout に書き込む必要があります。このサーバーは、ログを stderr と ~/.aws-mcp-server/logs 配下のローカルファイルに書き込みます。
Claude Desktop / Cursor / Windsurf / Cline
ほとんどの MCP クライアントは、次の mcpServers JSON 形式に対応しています。
{
"mcpServers": {
"aws": {
"command": "uvx",
"args": ["mdev-aws-mcp-server"],
"env": {
"AWS_PROFILE": "default",
"AWS_REGION": "us-east-1"
}
}
}
}
このリポジトリからローカルで開発する場合は、代わりにインストール済みのコンソールスクリプトのパスを使用します。
{
"mcpServers": {
"aws": {
"command": "/absolute/path/to/aws-cli-mcp-server/.venv/bin/mdev-aws-mcp-server",
"args": [],
"env": {
"AWS_PROFILE": "default",
"AWS_REGION": "us-east-1"
}
}
}
}
Claude Code CLI
claude mcp add aws --env AWS_PROFILE=default --env AWS_REGION=us-east-1 -- uvx mdev-aws-mcp-server
VS Code MCP
VS Code では、MCP 設定に同じ command/args/env モデルを使用します。
{
"servers": {
"aws": {
"type": "stdio",
"command": "uvx",
"args": ["mdev-aws-mcp-server"],
"env": {
"AWS_PROFILE": "default",
"AWS_REGION": "us-east-1"
}
}
}
}
ツール
| ツール | 用途 | 安全性 |
|---|---|---|
call_aws | AWS CLI コマンドを実行します | AWS リソースを変更する可能性があります |
suggest_aws_commands | よく使われる AWS CLI コマンドを提案します | 読み取り専用 |
get_aws_regions | AWS リージョンの一覧を取得します | 読み取り専用 |
get_caller_identity | 現在の AWS ID を返します | 読み取り専用 |
開発
pip install -e .
pip install -e '.[dev]'
pytest
ruff check .
ruff format .
pyright
スモークチェック
python -m py_compile src/aws_mcp_server/server.py src/aws_mcp_server/config.py src/aws_mcp_server/aws/executor.py
python -m pytest
認証情報が設定されている場合の AWS 手動チェック:
aws sts get-caller-identity
配布
このサーバーは、標準的な Python MCP 配布経路で公開されています。
- PyPI パッケージ:
mdev-aws-mcp-server - MCP Registry 名:
io.github.musaddiq-dev/aws-cli-mcp-server - 実行時のヒント:
uvx - トランスポート:
stdio
この README の先頭にある mcp-name マーカーは、MCP Registry の所有権確認に必要です。ユーザーは、ローカルの MCP クライアント設定で uvx mdev-aws-mcp-server を使用することをおすすめします。
セキュリティに関する注意事項
.env、AWS 認証情報、プロファイル、アクセスキー、アカウント固有の出力をコミットしないでください。- このサーバーの実行に使用するプロファイルまたはロールには、最小権限の IAM 権限を設定してください。
- MCP クライアントでは、
call_awsに対して明示的な手動承認を必須にしてください。 - 認証、TLS、ネットワーク制御を追加せずに、このサーバーをネットワーク経由で公開しないでください。
- 生成されたコマンドの提案は、実行前に確認してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。