📚
AWS Lambda MCP Serverのサンプルを動かしてみた
この記事のゴール
LLMを用いた業務効率化を目指して、まずはAWS Lambda MCP Serverを動かしてみます。
かなり簡単にClaudeでLambda関数を実行することができたので、普段Lambdaを使ったサービス開発をされている方におすすめです。
筆者について
普段は株式会社e-Craftという会社でembotというビジュアルプログラミングサービスの開発を行っています。
開発環境
- mac(Ventura 13.2)
事前準備
- Install the AWS SAM CLI
- Configure AWS credentials with appropriate permissions
- Python 3.13 installed locally (for local testing)
AWS SAMを使ってサンプルコードをデプロイ
まずこちらのReadmeに従ってAWS SAMでサンプルアプリをlambda上に公開
以下の権限を持ったIAMユーザーを作成し、profileを作成
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lambda:InvokeFunction"
],
"Resource": [
"<LambdaのARN>"
]
},
{
"Effect": "Allow",
"Action": [
"lambda:ListFunctions",
"lambda:ListTags"
],
"Resource": "*"
}
]
}
profile名は好きにつけて大丈夫です。
後ほどこのProfile名をClaudeの設定を行う際に使用します。
(私はすでに作成ずみの個人のadmin権限のProfile(default)で実行しましたが、実際に運用するとなるとセキュリティ観点でNGなので上記対応を記載しています)
Claudeの設定ファイルを更新
claude_desktop_config.json
以下の内容を記載します。
"awslabs.lambda-mcp-server": {
"command": "uvx",
"args": ["awslabs.lambda-mcp-server@latest"],
"env": {
"AWS_PROFILE": "<profileの名前>",
"AWS_REGION": "ap-northeast-1",
"FUNCTION_PREFIX": "sam-app-Customer"
}
}
私はここでuvx
のパスが通らないエラーにハマりました。
以下の記事を参考にフルパスで指定してあげることで解消しました。
env内のそれぞれの設定項目について
-
AWS_PROFILE
(optional)- MCP Server経由でLambda関数を実行する権限のついたAWS profile名
- 記入しない場合はデフォルト値=
default
が設定される
-
AWS_REGION
(optional)- MCP Server経由で実行するLambda関数が存在するリージョン
- 記入しない場合はデフォルト値=
us-east-1
が設定される
-
FUNCTION_LIST
- デプロイされたLambda関数名のリスト
- ここに記載されたLambda関数の実行が可能となる
-
FUNCTION_PREFIX
- デプロイされたLambda関数のprefix
- 例えば
test-CustomerIdFromEmail-hogehoge
とtest-CustomerInfoFromId-fugafuga
という関数を使用したい場合にtest-CustomerIdFromEmail
と指定すれば両者利用可能となる。
-
FUNCTION_TAG_KEY
とFUNCTION_TAG_VALUE
-
FUNCTION_LIST
とFUNCTION_PREFIX
が両方設定されていない場合はLambda関数に設定されたKEY-ValueでMCP Serverに設定する関数を特定する。
-
おわりにorまとめ
Lambda関数を呼び出せるので、普段開発をサーバーレスで行ってきた身としては夢が広がります。
次はClaudeからLambda関数を実行することができたので、サービス運用担当者がClaude経由でユーザーアカウント情報の更新等を実施できるような関数を作ってみようと思います。
参考記事等
Discussion