目次
はじめに
どうも。アドカレ初参加の はっしー です。
ここ数週間でびっくりするほど寒くなってきましたね~~
AI利用がマストになってきた昨今、「MCP」って言葉もよく耳にするようになりました。
今回は、AWSが提供する AWS Lambda MCP Server を使ってみたお話です。
作業中非常に沼った部分もあるのでその話は後ほど…
MCPってなに?
まずそもそもMCPってなにって方も多いと思います。
正直、私もよくわかってません(笑)
そんなときは助けてChatGPTせんせ~!!
MCPとは
MCP(Model Context Protocol)は、AIモデルと外部システムを安全かつ拡張性高くつなぐためのオープンなプロトコルです。
従来は「AIに外部システムへアクセスさせる」ためには、独自の実装や専用APIが必要でしたが、MCP は 統一された標準インターフェース を提供することで、どのモデルからでも同じようにツールを呼び出せる世界を目指しています。ざっくりいうと…
- AIが使える「ツール」を標準化するためのプロトコル
- クライアント側(ChatGPT など)とサーバー側(任意のツール実装)の橋渡し役
- ツール呼び出し、データ取得、メッセージ交換を共通のフォーマットで行える
- ローカルでもクラウドでも、どこにあっても動作させられる柔軟性
開発者視点で見ると、
「自分の作ったツールを AI から安全に呼び出せる仕組み」
「AI とシステム連携をめちゃくちゃ楽にする規格」
といった感じです。最近は多くのAI開発者が、DB接続・API連携・DevOps周りの自動化ツールを MCP サーバーとして作り始めており、
“AIが自動でバックエンドの仕組みを使ってくれる未来”が一気に現実的になってきています。
そうそうこれが言いたかったんですよ~
AWS Lambda MCP Serverとは
では、今回扱う AWS Lambda MCP Server とは何なのでしょうか。
ざっくり言うと、AIからLambda実行できるようにするためのツールです。
詳細はーーー助けてChatGPTせんせ~!!
AWS Lambda MCP Serverとは
MCPサーバーをAWS Lambda上で動かせるようにした公式実装が、
AWS Lambda MCP Server です。名前の通り、
- MCP サーバーとして動作するAWS公式の Lambda 関数
- ChatGPT などの MCP 対応クライアントが Lambda をそのままツールとして使える
- AWS 上のサービスを AI から安全に呼び出すための「ゲートウェイ」
という位置づけのものです。
ということです。
生成AIからLambdaを実行できるので、Lambdaさえ作ってしまえば活用の幅が一気に広がりますね
使ってみた
そこで、まずは簡単なことから実装してみましょう!
やることはシンプル。
生成AIにお願いして、指定したEC2を止めてもらう。 それだけ
では、さっそくいきましょう!!
事前準備
- MCPクライアントになれる生成AI (今回はKiroを利用)
- Lambdaで利用しているコード (Python3.11.9をインストール)
- AWS CLI
各種インストール
まずは、MCPサーバーの実行環境を整えるために準備しましょう。
AWS Lambda MCP Serverの公式記事を参考に以下をインストールします。
- uv (CLI 実行やパッケージ管理の基盤として利用)
- Python (サーバーが Python で実装されているため)
プロファイルを追加
.aws/credentials を編集し、接続AWSアカウントの情報を追加する
[プロファイル名(任意の名前)]
aws_access_key_id = 利用AWSユーザーのアクセスキー
aws_secret_access_key = 利用AWSユーザーのアクセスキー
→ 追加後はファイルを保存。
ちなみに、今回は最低限の権限を目指して以下2つをアタッチしました。
- AWSLambda_ReadOnlyAccess
- AWSLambdaRole ("lambda:InvokeFunction":Lambdaの実行権限)
はじめは、AWSLambdaRoleだけで行けるかなと思っていましたが、
LambdaをListする権限はないとだめと弾かれたので泣く泣くReadOnlyを付けました。
Lambda関数の準備
生成AIから動かすLambda関数を作ります。
ここは本題じゃないのであの方の登場です。
もちろん、助けてChatGPTせんせ~!!
作ってもらったLambda関数の大まかな流れは以下です。
1. 受け取ったJSONからインスタンス名を取り出す
2. 受け取ったインスタンス名でEC2を検索する
3. 該当EC2のインスタンスIDを抽出する
4. StopInstances APIを実行してインスタンスを停止する
5. 結果をレスポンスとして返す
関数名は「hasshi-mcp-StopEC2」です。
クライアント側でのMCPサーバー設定
MCPクライアント(今回はKiro)にMCPサーバーとして登録が必要です。
ファイルパスの例:.kiro/settings/mcp.json
今回はWindowsでの設定になります。MacOSの場合は公式記事を確認。
公式記事の設定例に解説入れてみました。
{
"mcpServers": { // MCPクライアントが利用するMCPサーバーの登録一覧
"awslabs.lambda-tool-mcp-server": { // MCPサーバーの名前(任意の名前でOK)
"command": "uvx", // MCPサーバーを起動するためのコマンド
// ※クライアントが内部で自動実行する
"args": ["awslabs.lambda-tool-mcp-server@latest"],
// command に渡す引数
// MCPサーバー本体の指定(バージョン指定も可)
"env": { // 起動時に MCPサーバーへ渡す環境変数
"AWS_PROFILE": "your-aws-profile", // 利用する AWS CLI プロファイル名
"AWS_REGION": "your-region", // Lambda を呼び出す AWS リージョン
"FUNCTION_PREFIX": "your-function-prefix",
// このプレフィックスで始まる Lambda 関数を
// MCPツールとして自動検出するための設定
"FUNCTION_LIST": "func1,func2", // 明示的に指定する Lambda 関数のリスト
// カンマ区切りで複数指定(prefix と併用も可能)
"FUNCTION_TAG_KEY": "tag-key", // タグを使って対象 Lambda を絞りたい場合のキー
"FUNCTION_TAG_VALUE": "tag-value", // 上記キーに対する値が一致する関数のみ対象にする
"FUNCTION_INPUT_SCHEMA_ARN_TAG_KEY": "schema-tag-key"
// Lambda に付与されたスキーマARNを参照するタグキー
// これによりツールの入力パラメータ仕様を自動読み込み可能
}
}
}
}
今回私は、こんな感じで設定しました。
{
"mcpServers": {
"lambda-EC2-Stop": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "uv",
"args": [
"tool",
"run",
"--from",
"awslabs.lambda-tool-mcp-server@latest",
"awslabs.lambda-tool-mcp-server.exe"
],
"env": {
"AWS_PROFILE": "Lambda_MCP",
"AWS_REGION": "ap-northeast-1",
"FUNCTION_PREFIX": "hasshi-mcp-"
},
"autoApprove": [
"hasshi-mcp-StopEC2"
]
}
}
}
autoApprove を設定すると、MCPサーバー利用時に対象Lambda関数は自動承認してくれます。
設定後はファイルを保存してください。
保存後、MCPサーバーの認証確認が動きます。

こうなれば認証はOK
稼働確認
いざ実行です!
今回停止するEC2は「Lambda-MCP-test」です。

無事、StopEC2が利用できてますね。
自然言語からParameterを自動作成してくれてる!!なんと素晴らしい~
Cloudtrailでhasshi-mcp-StopEC2で停止していることを確認しました。

StartInstanceが実行されて、EC2が起動している間に、hasshi-mcp-StopEC2ユーザーにて
StopInstanceが実行されてますね。
沼った話
最後に、AWS Lambda MCP Server 設定中に沼った話を少し。
今回使用した Lambdaとは別に、空パラメータで起動するテスト用 Lambdaを作成し
空({})パラメータで動くことをテストした後に、生成AIからお願いしたのですが、
エラーで動かなかったんです。
おそらくですが、何かしらparameter情報は送らないといけないのかなと思いました。
これで3時間ぐらい使いました…
その時の状況を再現

パラメータがからじゃない場合は成功

さいごに
AWS Lambda MCP Serverを使ってみて、理解してしまえば設定はシンプル。
どんどん便利なLambda増やして、どんどん作業を楽にしたくなりました。
AIエージェントの一部として使うのが本来かなと思いますので、
AIエージェントにLambdaを組み込みたい方は参考にしていただければと思います。
運用サービス課 下っ端
はっしー です。
実際に はっしー と呼ばれたことは一度もありません。