AIインフラ実践ノート:AWS Lambda MCP Server(Q CLI/Claude Desktop)

はじめに
LLMの活用は急速に広がり、その可能性は誰もが認めています。
一方で、AIの活用をインフラでどう支えるかという視点が重要になっています。
その答えを探す中で、AWS MCP ServerとAWS Bedrock AgentCoreに注目しました。
筆者のモットーは、「まず動かしてみること」。
今回は、AWS MCP Server の中でも、AWS Lambda MCP Serverを試してみました。
AWS MCP Serverとは
「AWS MCP Server」とは、AWSのMCPに関する取り組みを表す総称です。AWS MCP Serverを利用することで、開発者はAWSが提供する多様なMCPサーバに簡単に接続できます。その実体は、AWS MCPサーバを説明するドキュメント、サンプルコード(Github)、Pythonパッケージインデックス(PyPi)などです。
より詳細なことを知りたい方は、AWSのドキュメント又は、次の姉妹記事を参照してください。
事前準備
次のような環境を用意してください。
- Linux or Mac
- 筆者の環境は、WSLでUbuntu 22.04
- Astraのuvがインストール済みであること
- Amazon Q Developer(Q CLI)が導入済みであること
- Claude Desktopが導入済みであること
- Installing Claude Desktop
- 今回は、AWS Q Developer(Free)でLambda MCP Serverが起動できなかったためにClaude Desktopを利用しています。
- UVXが初めてという方は、次の記事を参照してください。
- AIインフラ実践ノート:AWS Documentation MCP Server(UVX編)
- 概念を理解している程度で全く問題ありません。
AWS Lambda MCP Serverとは
Lambda MCP Serverは、生成AIモデルがAWS Lambda関数を安全に呼び出せるようにするブリッジです。今回、MCP Serverはローカルで実行され、AWSのAPIを通じてLambdaを呼び出します。LambdaはVPC内に配置できるため、AWS内のリソースにアクセス可能です。AIモデル側はLambdaに直接接続する必要がなく、MCP Server経由で安全にLambdaを実行し、必要なデータ操作が可能です。

Amazon Q Developer(Free)でLambda MCP Serverを実行
以下のように、Q CLI から Lambda MCP Server を実行してみました。
しかし、実は今回、Q CLI での Lambda MCP Server の実行は失敗しています。
いろいろと調べてみましたが、これに関する明確な記述や制限事項は確認できませんでした。
この問題については、引き続き調査を進めていく予定です
なお、筆者の環境に依存した問題である可能性もあります。
なお、もし皆さんの環境でも Q CLI で Lambda MCP Server が動作しない場合は、後述の「Claude Desktop での Lambda MCP Server 実行」も試してみてください。
まったく同じ設定で実行に成功しており、
MCP クライアントの設定方法や、Amazon MCP Server を経由して AWS のデータリソースにアクセスする体験は、十分に再現できます。
1.AWS認証情報の設定
アクセスキー及びシークレットキー、アクセストークンなどを最新状態にしてください。ローカルで実行する場合、AIアシスタントはAWS認証アカウントのIAMロールに依存してMCP Serverを実行します。
~/.aws/credentials
[default]
aws_access_key_id=XXXXXXXX
aws_secret_access_key=XXXXXXXX
aws_session_token=XXXXXXXX
aws_region=ap-northeast-1
2.AW Q CLIのMCPクライアント設定
次のように設定してください。
.aws/amazonq/cli-agents/lambda-tool-mcp-server.json
{
"name": "lambda-tool-mcp-server",
"mcpServers": {
"awslabs.lambda-tool-mcp-server": {
"command": "uvx",
"args": ["awslabs.lambda-tool-mcp-server@latest"],
"env": {
"AWS_REGION": "ap-northeast-1",
"FUNCTION_LIST": "dp-dojo-lambda-template"
}
}
}
}
3.Q CLI起動してエージェントスイッチ
今回は、Q CLIを起動してからエージェントをスイッチしてみます。
$ q chat

> /agent list
lambda-tool-mcp-server
documentation-mcp-server-git
iam-mcp-server
* q_cli_default # 「*」が付いているものが現在アクティブなエージェントです
> /agent switch lambda-tool-mcp-server
[lambda-tool-mcp-server] > /agent list
q_cli_default
* lambda-tool-mcp-server # エージェントが変更されました。
documentation-mcp-server-git
iam-mcp-server
4.Lambdaファンクションの実行
ここでは、実際に実行できるLambdaファンクションが必要です。もし、手頃なものが存在しない場合は、簡単なものを用意してください。
次は、呼ばれたら「Hello, co-sherpa!」という文字列を返すシンプルなLambdaです(弊社のトレーニング環境)。
dp-dojo-lambda-template
export const handler = async (event) => {
console.log("Event: ", JSON.stringify(event));
let response;
response = {
statusCode: 200,
body: JSON.stringify({ message: "Hello, co-sherpa!"}),
};
console.log("response: ", response);
return response;
};
Pythonで書くと、こんなふうになりますね。
import json
def lambda_handler(event, context):
print("Event: ", json.dumps(event))
response = {
"statusCode": 200,
"body": json.dumps({"message": "Hello, co-sherpa!"})
}
print("response: ", response)
return response
では、日本語で命令を出してみましょう。
[lambda-tool-mcp-server] >東京リージョンのdp-dojo-lambda-templateファンションを実行してください。
> AWS CLIを使用して東京リージョンのLambda関数を実行します。
bash
aws lambda invoke --region ap-northeast-1 --function-name dp-dojo-lambda-template response.json
実行後、レスポンスの内容を確認できます:
bash
cat response.json
Lambda関数が正常に実行されると、ステータスコード200とともに実行結果がresponse.jsonファイルに保存されます。
回答はしてくれましたが、AIアシスタントがLambda MCP Server経由でLambdaを起動し、結果値を受け取るという期待値ではありません。
AWS認証は問題ありませんでした。いろいろ試してみるも、原因が特定できませんでした。Pro版は、そのうちに試してみたいと思います。
(.venv) ubuntu@LAPTOP-DHL9LRBE:~$ aws sts get-caller-identity
{
"UserId": "AROAQFC27GXYBVCTPYAM5:xxxx@creationline.com",
"Account": "123412341234",
"Arn": "arn:aws:sts::123412341234:assumed-role/Admin/xxxx@creationline.com"
}
ここで、Claude Desktopを試してみることにしました。
Claude DesktopでLambda MCP Serverを実行
筆者の環境は、Windows 11環境です。もし、同じOSでClaude Desktopを導入する必要がある場合、以下を参照してください。
1.Windows版のUVインストール
uvxコマンドを使うためにWindows版のuvをインストールしてください。
2.AWS CLIインストール
AWS CLIもインストールしてください。
3.AWS認証情報の設定
PowerShellで、「システムプロパティ」を開いて環境変数にアクセスキーとシークレットキー、アクセストークンを設定してください。
SystemPropertiesAdvanced.exe

- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_SESSION_TOKEN
なぜか、C:\Users\<User Name>\.aws\credentialsを読んでくれませんでしたから、環境変数に設定することにしました。
aws sts get-session-token
An error occurred (AccessDenied) when calling the GetSessionToken operation: Cannot call GetSessionToken with session credentials
環境変数の取得は問題ありませんでした。
echo $env:AWS_ACCESS_KEY_ID
ASIAQFC27GXYFC2YUJSX
4.Claude DesktopのMCPクライアント設定
次のようにClaude Desktopの開発者環境を開いてください。
左下の「アカウント」をクリック
↓
「設定アイコン(歯車)」をクリック
↓
「開発者」をクリック
↓
ローカルMCPサーバの「設定を編集」クリック
↓
「claude_desktop_config.json」を「メモ帳」で開く
↓
mcpServersのブロックのなかにLambda MCP Serverの設定を挿入・追加してください。
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"C:\\Users\\<User name>\\Downloads\\mcp"
]
},
"lambda-tool-mcp-server": {
"command": "uvx",
"args": ["awslabs.lambda-tool-mcp-server@latest"],
"env": {
"AWS_REGION": "ap-northeast-1",
"FUNCTION_LIST": "dp-dojo-lambda-template"
}
},
…
}
Claude Desktopでは、このようにmcpServers配下に複数のMCP Serverを設定します。
ファイル保存してください。
5.Claude Desktopを再起動
Claude Desktopのコンソールを閉じてから、Claudeのアイコンをクリックし、Claudeを再開しても、MCP設定が反映されないかもしれません。
Windowsの場合、「Ctrl+Alt+Del」をクリックし、アプリからClaudeのタスクを終了してから、再起動してください。

Lambda MCP Serverの設定が正しく反映された場合は、Claudeの「ローカルMCPサーバー」に一覧が追加され、running状態になっているはずです。

これでLambda MCP Serverの実行準備が完了しました。
6.Lambdaファンクションの準備
前項の「Amazon Q Developer(Free)でLambda MCP Serverを実行してみた」のなかにある「4.Lambdaファンクションの実行」のコードを参考にしてください。
7.Amazon Lambda MCP ServerでLambdaを実行
Claude Desktopから、日本語でLambdaの実行を命令してみてください
次のようにLambdaが実行され、戻り値が表示されます。

AIアシスタントがLambda MCP Server経由でLambdaを実行し、結果が取得できました。
この仕組みを利用すれば、DBからデータ取得も簡単に実装できそうですね。
まとめ
Amazon Q Developer(Free)で Lambda MCP Server を実行できなかったのは残念でしたが、Claude Desktop からは正常に起動することができました。
この検証を通じて、MCP サーバの役割や構成の理解が一層深まりました。
AWS は、多様な AWS リソースに対応した MCP サーバを提供していますが、
基本的な操作方法はどの MCP Server でもほぼ共通しているのではないかと感じています。
