
AWS MCP を調べてみた
目次
結構前ですが、5月の初旬に AWS MCP が GA となりました。
以前は AWS API MCP というのがあったのですが、AWS MCP に置き換えられているようです。
AWS API MCP Server | Welcome to Open Source MCP Servers for AWS
今回、AWS MCP について、単純に試してみるだけでなく色々調べてみます。なお、公式ドキュメントは以下にあります。
AWS MCP Server – Agent Toolkit for AWS
使い方(OAuth)
とは言っても、実際に使ってみないと分からない事も多いのでまずは使ってみます。
AWS MCP を使うには認証が必要ですが、以下の2つの選択肢があります。
- Option A: OAuth (simple)
- Option B: SigV4 (advanced)
どちらを使うべきかはドキュメントに記載がありますが、とりあえずは簡単な OAuth を使います。
MCP サーバーの追加
MCP クライアントには以下の URL を設定します。
https://aws-mcp.us-east-1.api.aws/mcp
Claude Code であれば以下のコマンドです。
claude mcp add aws-mcp https://aws-mcp.us-east-1.api.aws/mcp --transport httpCode language: JavaScript (javascript)
認証
MCP クライアントによって細かくは異なりますが、大抵は初回ツール起動時などに認証を求められます。ブラウザで AWS の画面が開きますので、画面に従って進めます。
なお、画面では IAM ユーザーでのログインは出来ますが、Identity Center を使う場合にはそのままではできません。(画面に説明が書いてはあるのですが)別のタブを開いて SSO した後で、ブラウザをリロードすると、Identity Center のユーザーで進めて良いかというようなメッセージに変わりますので、そのまま進めます。
使い方(SigV4)
次に、”advanced” と書かれている SigV4 を使った方法も説明します。前提条件として以下の2つがインストールされている必要があります。
- AWS CLI
- uv
この2つがインストールされていれば、使い方はそこまで難しくありません。
以下のような JSON を設定ファイルに追加するだけです。
{
"mcpServers": {
"aws-mcp": {
"command": "uvx",
"timeout": 100000,
"transport": "stdio",
"args": [
"mcp-proxy-for-aws==1.6.4",
"https://aws-mcp.us-east-1.api.aws/mcp",
"--metadata", "AWS_REGION=us-west-2"
]
}
}
}Code language: JSON / JSON with Comments (json)
後は、 aws sso login 等で認証を終えた後で、Claude Code 等を起動します。
では使い方を簡単に説明したところで、細かな点を見ていきます。

認証周りについて
OAuth を使う場合、 AWSMCPSignInOAuthAccessPolicy が必要
AWS MCP を使う際の認証方法として OAuth を使う場合、そのユーザーには AWSMCPSignInOAuthAccessPolicy が必要です。ドキュメントに記載されてますが、一応ここにも書いておきます。
OAuth では最大12時間しかセッションが有効でない
OAuth で取得した access token は1時間だけ有効です。ドキュメントによれば “AWS Sign-in automatically refreshes them for up to 12 hours.” との事ですが、1日の始めにログインしても、翌日には再度ログインが必要です。
Identity Center を使ってのログインでも同じような感じなので、人間が使う分には問題無いかと思います。ただ、AWS MCP を自動実行の業務フローなどに組み込みたい場合には問題となります。
なおこの12時間という設定値は(恐らく)変更不可です。
SigV4 を使う場合のセッションの有効期間
SigV4 を使う場合のセッションの有効期間は、その裏側で使っている AWS プロファイルの認証方式によります。Identity Center を使っている場合はデフォルトでは12時間です。
では、定期実行ジョブで使うにはどうすれば良いでしょうか。例えばバッチから Agent Skill を定期実行し、そこから AWS MCP を呼ぶ場合などです。結論から言うと、
- バッチを AWS 上で実行する場合、IAM Role を使う
- バッチを AWS 以外で実行する場合は、IAM Roles Anywhere や OIDC フェデレーションを使う
- 使えない理由がある場合は IAM Access Key を使う
だと思います。
この項は検証していないので、検証したら追記しようと思います。
用意されている MCP ツール
ツールの一覧は以下に記載があります。
Understanding the MCP Server tools – Agent Toolkit for AWS
そのうちのいくつかについて詳しく見てみます。
aws___retrieve_skill
“AWS Knowledge Tools” はドキュメントを検索したりリージョン情報を取得したりといったものですが、面白いものとしては aws___retrieve_skill があります。AWS が用意しているベストプラクティスなどをスキル化したものを取得出来るというツールです。
スキルを使う流れとしては
aws___search_documentationツールを使ってどのようなスキルがあるかを調べるaws___retrieve_skillツールを使って使いたいスキルを取得- スキルを実行
という感じかと思います。以前、以下の記事で書いたとおり、Agent Skills は単なるテキストファイル(+α)です。
Claude のスキルは単なるテキストファイルで特別な仕組みはない – もばらぶエンジニアブログ
どのようなスキルが用意されているかは、以下のレポジトリを参照してください。
aws___call_aws
AWS API をそのまま呼び出すものです。多くの人が求めているものかと思います。
ただし、2026/7/15に deprecated となり、3日後の8/31には削除予定との事です。理由としては次に紹介する aws___run_script で同じ事が出来るというものなのですが、単純な処理であれば aws___call_aws で十分なので残しても良いのに、とは思います。
aws___run_script
このツールに Python コード(の文字列)を渡すと、それをサンドボックス環境で実行して結果を返してくれる、というものです。Python コードから boto3 経由(call_boto3 という helper が用意されています)で AWS API を呼び出すことが出来るので、 aws___call_aws で出来る事は全て実行可能です。
aws s3 ls のような単純なことをしたいだけでも、というようなパラメーターを送ります。
{
"code": "result = await call_boto3(service_name=\"s3\", operation_name=\"ListBuckets\")\nresult"
}Code language: JSON / JSON with Comments (json)
aws___get_presigned_url
S3 へのファイルのアップロード/ダウンロードを行うために S3 の presigned URL を発行するものです。なぜこのようなツールが用意されているかについては以前以下の記事を書きましたので、興味のある方はご参照ください。
現状の MCP では大きなファイルを扱えない – もばらぶエンジニアブログ
その他
プラグイン
Claude Code や Codex にはプラグインという仕組みがありますが、AWS もプラグインを用意しています。
- Claude Code 向け: aws-core@claude-plugins-official
- Codex 向け: aws/agent-toolkit-for-aws
これらのプラグインには何が含まれているかというと、
- AWS MCP サーバー
- スキル(
aws___retrieve_skillで取得出来るものと同じ) - その他(hook など)
です。Claude Code や Codex から AWS MCP を使いたい場合は、プラグインを使った方が楽でしょう。
MCP サーバー、認証サーバーの挙動について気づいたこと
AWS MCP サーバー、認証サーバーの挙動は、(当然と言えば当然ですが)各種標準に準拠していて、怪しい挙動などはありませんでした。
もばらぶで開発している MCP ゲートウェイサービスである Bloque から AWS MCP サーバーを使おうとした時に、Bloque 側の問題でそのままでは動かなかったので1点だけ修正しました。
その時に気づいたのですが、MCP の仕様では各種 RFC を参照していますが、RFC では MAY となっているものでも MCP では MUST となっているものがあるということです。具体的には、RFC 8707 Section 2 では
In requests to the authorization server, a client MAY indicate the protected resource
RFC 8707: Resource Indicators for OAuth 2.0
となっていますが、MCP の仕様では以下のようになっています。
MCP clients MUST implement Resource Indicators for OAuth 2.0 as defined in RFC 8707
Authorization – Model Context Protocol
まとめ
AWS MCP サーバーは、AWS API の全ての機能が使えます。普通に Claude Code などから使う分には、OAuth や通常の AWS の認証方式を使えば問題無いのですが、バッチプログラムなどから使う場合には認証周りに一手間必要です。
MCP サーバー関連でお困りのことなどがあれば、以下のお問い合わせフォームよりお気軽にお問い合わせください。
コメントを残す