Serverless Operations, inc

>_cd /blog/id_idoqf82m-e

title

AWS Serverless MCP を試してみた

Serverless OperationsといえばServerless!!!

ということでAWSからリリースされたServerless MCPを試してみました。

Serverless MCPとは

AWSが提供しているServerless環境の構築や可観測性の実現を簡易にしてくれるツールです。AIベースIDEとの連携を視野に作られています。

https://aws.amazon.com/jp/blogs/compute/introducing-aws-serverless-mcp-server-ai-powered-development-for-modern-applications/

このServerless MCP は AWS SAM(Serverless Application Model)を前提として動作するように開発されています。

さっそくやってみる

ドキュメントはこちらです。私はWindows+VSCode+Clineの環境で作業を行っています。なおこのServerlessMCPはよくMCPのテストで用いるClaudeDesktopでは機能の一部しか試すことができません。土台となっているAWS SAM はCLIベースの対話型インターフェースを提供していますが、ClaudeDesktopではそのインターフェースと連携できないためです。このためAWS公式では、Q Developer、Cursor、Clineを推奨しています。

https://awslabs.github.io/mcp/servers/aws-serverless-mcp-server/

1. IAMユーザーとaws configure

まずは適当なIAMユーザーを払い出してアクセスキーを作成しておきます。ドキュメントには必要権限の記載がないのですが、PowerUserで発行しておきます。

次に以下のリンクからAWS CLIをインストールします。

https://awscli.amazonaws.com/AWSCLIV2.msi

その後MCP Serverを起動する環境(私の場合はWindowsのVSCode+Cline)でaws configure を実行しクレデンシャルをセットしておきます。

2. Python 実行環境とux/uvxのインストール

Serverless MCP はPythonで開発されており起動にはuvxを使用しています。このため以下の記事を参考に環境を整えます。

https://zenn.dev/kameoncloud/articles/9f49c0d797a419

3. AWS SAM CLI のインストール

以下のリンクからインストーラーをダウンロードしてAWS SAMをインストールします。

https://github.com/aws/aws-sam-cli/releases/download/v1.140.0/AWS_SAM_CLI_64_PY3.msi

sam ---versionを実行しバージョンが表示されればインストール完了です。

4. Serverless MCP のダウンロードと設定

まず作業ディレクトリを作成します。

mkdir awsserverlessmcp
cd awsserverlessmcp

つぎにgitレポジトリからアセット一式をダウンロードします。

git clone https://github.com/awslabs/mcp.git 
cd mcp/src/aws-serverless-mcp-server

依存関係をインストールします。

uv pip install -e . --system

"C:\Users\<username>\.local\bin\awslabs.aws-serverless-mcp-server.exe"

といったファイルができているはずです。これでMCP Serverの準備は完了です。

5. Cline への組み込み

MCP Serverを設定するjsonファイルを作成します。VSCodeへClineの組み込みはこの記事では割愛します。

Configure MCP Server をクリックします。

公式のドキュメントに記載されているconfigは間違っています。(もしかしたらMacではそのまま動作するのかもしれません)pipとuvxでは[.]を処理するサニタイズの仕組みが若干異なっておりそれを補正してあげる必要があります。修正版は以下です。

{
  "mcpServers": {
    "awslabs.aws-serverless-mcp-server": {
      "command": "uvx",
      "args": [
        "--from",
        "awslabs-aws-serverless-mcp-server",
        "awslabs.aws-serverless-mcp-server.exe",
        "--allow-write",
        "--allow-sensitive-data-access"
      ],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "ap-northeast-1"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

少し勘違いしやすいのですが、以下の様にトグルが緑色になっていれば起動成功です。(その下に赤文字のメッセージがあるのでエラーとなっているようですが、無事起動しています)

6. テスト

ではテストを行ってみます。まずはAWS公式ブログに記載されている質問から。

新しいワークスペースに新しいToDoリストのウェブアプリケーションを構築したいと考えています。ToDoリストの追加、一覧表示、削除を行いたいのですが、AWS Lambdaは適切な選択肢でしょうか?

しばらく待つと以下のような回答が出てきます。途中Approveボタンが出てきた方はボタンを押してください。

AWS Lambdaは、ToDoリストのウェブアプリケーションに適した選択肢です。以下の理由から、このユースケースに適しています:

## AWS Lambdaの利点(ToDoリストアプリケーション向け)

1. **サーバーレスアーキテクチャ**:サーバー管理が不要で、インフラストラクチャの運用負荷がありません
2. **従量課金制**:使用した分だけ支払うモデルで、断続的な使用パターンのToDoアプリには経済的です
3. **自動スケーリング**:トラフィック量に応じて自動的にスケールします
4. **短時間の処理**:ToDoの追加・一覧表示・削除は短時間で完了する処理で、Lambdaの15分の実行制限内に十分収まります
5. **AWS サービスとの統合**:DynamoDBなどのデータベースサービスと簡単に連携できます

## 実装アプローチ

ToDoリストアプリケーションをAWS Lambdaで実装する場合、以下のようなアーキテクチャが推奨されます:

1. **バックエンド**:
   - AWS Lambda:ToDoの追加・一覧表示・削除のAPIエンドポイントを実装
   - API Gateway:Lambdaファンクションを外部に公開するRESTful APIとして設定
   - DynamoDB:ToDoアイテムを保存するデータベースとして使用

2. **フロントエンド**:
   - Amazon S3:静的ウェブサイトホスティングでHTMLやJavaScriptファイルを提供
   - CloudFront:コンテンツ配信ネットワークとしてパフォーマンスを向上

## 実装ステップ

1. AWS SAMを使用してプロジェクトを初期化
2. バックエンドLambda関数を作成(ToDoのCRUD操作)
3. DynamoDBテーブルを設定
4. API Gatewayを設定してLambda関数を公開
5. フロントエンドをS3にデプロイ
6. CloudFrontを設定(オプション)

## 注意点

- Lambda関数は「コールドスタート」の遅延が発生する可能性がありますが、ToDoアプリの場合は許容範囲内です
- 大規模なアプリケーションや継続的な高負荷処理が必要な場合は、他のサービス(EC2やECS)も検討する価値があります

AWS Lambdaは、サーバー管理の手間を省き、コスト効率よくToDoリストアプリケーションを構築・運用できるため、このユースケースには適した選択肢です。

作業ログを見るとClineが思考途中でMCPを用いていることがわかります。

Serverless MCPに依頼できることは以下のドキュメントにまとまっています。

https://aws.amazon.com/jp/blogs/compute/introducing-aws-serverless-mcp-server-ai-powered-development-for-modern-applications/
https://awslabs.github.io/mcp/servers/aws-serverless-mcp-server/

Written by
編集部

亀田 治伸

Kameda Harunobu

  • Facebook->
  • X->
  • GitHub->

Share

Facebook->X->
Back
to list
<-