mcpField
A
AWS Model Context Protocol (MCP) Server

AWS Model Context Protocol (MCP) Server

ローカル
github.com/alexei-ledクラウド・インフラ18635 週間前に更新

AWS Model Context Protocol (MCP) Server について

AWS MCP Server は、AI アシスタントがコンテナ化された安全な環境で AWS CLI コマンドを実行できるようにする軽量なサービスです。Claude や Cursor など MCP に対応したツールでクラウドインフラを管理するユーザーを対象としています。個々の AWS API ではなく CLI 自体をラップします。

主な機能

  1. 01MCP 経由での AWS CLI コマンド実行
  2. 02aws_cli_help と aws_cli_pipeline ツールの提供
  3. 03jq や grep などのパイプ対応
  4. 04stdio と streamable-http のトランスポート対応
  5. 05IAM ポリシーによるアクセス制御

活用シーン

  1. 01Claude による AWS リソースの照会と管理
  2. 02Docker で隔離された環境での AWS CLI 実行

MCP 対応

MCP サーバーとして、aws_cli_help と aws_cli_pipeline の 2 つのツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"aws": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/alexei-led/aws-mcp-server:latest"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/alexei-led/aws-mcp-server:latest

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/alexei-led/aws-mcp-server:latest

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

AWS MCP Server

CI PyPI Code Coverage Linter: Ruff Docker Image

AWS CLI を通じて、Claude が 200 以上のすべての AWS サービスにアクセスできるようにします。

デモ

デモ

機能

この MCP サーバーを使うと、Claude がユーザーに代わって AWS CLI コマンドを実行できます。AWS API を個別にラップするのではなく、CLI 自体をラップすることで、2 つのツールだけで Claude に AWS への完全なアクセスを提供します。

ツール目的
aws_cli_help任意の AWS コマンドのドキュメントを取得します
aws_cli_pipelineオプションのパイプ(jq、grep など)を使って AWS CLI コマンドを実行します

Claude は --help を使って必要に応じてコマンドを学習し、その後実行します。実際に可能な操作は IAM ポリシーによって制御されます。

flowchart LR
    Claude[Claude] -->|MCP| Server[AWS MCP Server]
    Server --> CLI[AWS CLI]
    CLI --> AWS[AWS Cloud]
    IAM[Your IAM Policy] -.->|controls| AWS

新機能

  • ストリーミング可能な HTTP トランスポート — Web ベースの MCP クライアント向けに、新しい streamable-http トランスポートを追加しました。非推奨の sse トランスポートに代わるものです(#33)
  • 入力検証エラーの処理 — 検証エラーは通常の結果ではなく、適切な MCP ツールエラー(isError: true)を返すようになりました(#34)
  • サーバーの説明 — サーバーは instructions フィールドを通じて、その目的を MCP クライアントに伝えます(#35)
  • サーバーアイコン — サーバーは MCP クライアントで表示するためのアイコンメタデータを提供します(#36)
  • 正常なシャットダウン — MCP クライアントが切断すると、サーバーも正常に切断します(#16)

クイックスタート

前提条件
  • AWS CLI がインストールされていること
  • AWS 認証情報が設定されていること(AWS 認証情報を参照)
  • uv がインストールされていること(uvx 用)
Claude Code

MCP 設定に追加します(Cmd+Shift+P → 「Claude: Open MCP Config」):

{
  "mcpServers": {
    "aws": {
      "command": "uvx",
      "args": ["aws-mcp"]
    }
  }
}
Claude Desktop

Claude Desktop の設定ファイルに追加します:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "aws": {
      "command": "uvx",
      "args": ["aws-mcp"]
    }
  }
}
Docker(より安全)

Docker は、コンテナ内でコマンドを実行することで、より強力な分離を実現します:

{
  "mcpServers": {
    "aws": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "~/.aws:/home/appuser/.aws:ro",
        "ghcr.io/alexei-led/aws-mcp-server:latest"
      ]
    }
  }
}

注: ~/.aws は Windows ではフルパスに置き換えてください(例:C:\Users\YOU\.aws)。

Streamable HTTP トランスポートを使用した Docker

ウェブベースの MCP クライアントでは、streamable-http トランスポートを使用します。

docker run --rm -p 8000:8000 \
  -e AWS_MCP_TRANSPORT=streamable-http \
  -v ~/.aws:/home/appuser/.aws:ro \
  ghcr.io/alexei-led/aws-mcp-server:latest

サーバーは http://localhost:8000/mcp で利用できます。

注:sse トランスポートは非推奨です。代わりに streamable-http を使用してください。

AWS 認証情報

サーバーは標準の AWS 認証情報チェーンを使用します。認証情報は次の場所から自動的に検出されます。

  1. 環境変数:AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY
  2. 認証情報ファイル:~/.aws/credentials
  3. 設定ファイル:~/.aws/config(プロファイルとリージョン用)
  4. IAM ロール:EC2、ECS、または Lambda で実行する場合

特定のプロファイルを使用するには:

{
  "mcpServers": {
    "aws": {
      "command": "uvx",
      "args": ["aws-mcp"],
      "env": {
        "AWS_PROFILE": "my-profile"
      }
    }
  }
}

設定

AWS の設定
環境変数説明デフォルト
AWS_PROFILE使用する AWS プロファイルdefault
AWS_REGIONAWS リージョン(AWS_DEFAULT_REGION も使用可能)us-east-1
AWS_CONFIG_FILEAWS 設定ファイルのカスタムパス~/.aws/config
AWS_SHARED_CREDENTIALS_FILE認証情報ファイルのカスタムパス~/.aws/credentials
サーバーの設定
環境変数説明デフォルト
AWS_MCP_TIMEOUTコマンド実行タイムアウト(秒)300
AWS_MCP_MAX_OUTPUT最大出力サイズ(文字数)100000
AWS_MCP_TRANSPORTトランスポートプロトコル(stdio、sse、または streamable-http)stdio
AWS_MCP_SANDBOXサンドボックスモード(auto、disabled、required)auto
AWS_MCP_SANDBOX_CREDENTIALS認証情報の受け渡し(env、aws_config、both)both

セキュリティ

IAM ポリシーがセキュリティ境界となります。 このサーバーは Claude が要求する AWS コマンドを実行します。実際に実行できるコマンドは IAM によって制御されます。

ベストプラクティス:

  • 最小権限の IAM ロールを使用します(Claude が必要とする権限のみを付与します)
  • ルート認証情報は決して使用しないでください
  • ホストをさらに分離するために Docker の使用を検討します

セキュリティアーキテクチャの詳細については、セキュリティに関するドキュメントを参照してください。

ドキュメント

ライセンス

MIT ライセンス — 詳細は LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。