Amazon Web Services ブログ
AWS Serverless MCP Server の紹介:AI を活用してモダンアプリケーションを開発する
この記事は「Introducing AWS Serverless MCP Server: AI-powered development for modern applications」をソリューションアーキテクトの松本が翻訳したものです。
最新のアプリケーション開発では、ソフトウェアの構築とデプロイをより迅速かつ効率的に行う方法が求められています。過去 10 年間で、サーバーレスコンピューティングはソフトウェア開発における変革的なアプローチとして台頭し、開発者が基盤となるインフラストラクチャを管理することなくアプリケーションの構築に集中できるようになりました。開発者が AWS でのサーバーレス を使用してアプリケーションを構築する際、適切なサービスの選択、ベストプラクティスの理解、実装パターンについてのガイダンスを求め、このパラダイムを最大限に活用しようとします。
本日、AWS はオープンソースの AWS Serverless Model Context Protocol (MCP) Server を発表しました。これは AI 支援とサーバーレス専門知識を組み合わせ、開発者が最新のアプリケーションを構築する方法を強化するツールです。Serverless MCP Server は、サーバーレス開発に特化したコンテキストガイダンスを提供し、開発者がアーキテクチャ、実装、デプロイに関する情報に基づいた決定を行えるよう支援します。
この記事では、Serverless MCP Server が AI コーディングアシスタントと連携してサーバーレス開発を効率化する方法について説明します。このソリューションを使用してサーバーレス開発ワークフローを加速し、堅牢で高性能なアプリケーションをより効率的に構築する方法を学びましょう。
概要
サーバーレスコンピューティングにより、開発チームは運用効率を向上させながら市場投入までの時間を大幅に短縮できます。開発者はビジネス価値の創出に集中でき、AWS サービスが自動的にスケーリング、可用性、インフラストラクチャのメンテナンスを処理します。AWS Lambda は、イベントに応じてコードを実行するシームレスなコンピュートサービスを提供し、1 日数リクエストから 1 秒あたり数千リクエストまで瞬時にスケールします。200 以上の AWS サービスとの統合により、Lambda は開発者が Amazon API Gateway、Amazon S3、Amazon DynamoDB などからのトリガーを使用して高度なアプリケーションを構築できるようにします。データ処理パイプライン、リアルタイムストリーム処理、Web アプリケーションのいずれを構築する場合でも、Lambda は一般的なプログラミング言語と開発フレームワークをサポートし、開発チームがサーバーレスパラダイムを採用しながら既存のスキルを活用できるよう支援します。
MCP Server
MCP は、AI エージェントが外部ツールやデータソースと対話するためのオープンプロトコルです。AI アシスタントが外部システムによって提供される様々な機能を発見、理解、使用する方法を定義します。このプロトコルにより、AI モデルは標準化されたインターフェースを通じてリアルタイム情報にアクセスし、特定のタスクを実行することで、自身のトレーニングデータを超えた機能を拡張できます。
MCP サーバーは、Amazon Q Developer、Cline、Cursor などの AI アシスタントが MCP クライアントを介して使用できるツール、リソース、コンテキスト情報を提供することで、このプロトコルを実装します。これらは知識の架け橋として機能し、AI アシスタントにクラウドアーキテクチャと実装に関する情報に基づいた決定を行うために必要な追加コンテキストを提供します。これは特に、開発者が複数のサービス、イベントパターン、統合ポイントを操作してスケーラブルで高性能なアプリケーションを構築するサーバーレスアプリケーションにとって価値があります。
AWS は現在、AWS Lambda Tool MCP Server を提供しており、これにより AI モデルはコード変更なしに既存の Lambda 関数と MCP ツールとして直接対話できます。この MCP サーバーは MCP クライアントと Lambda 関数の間の橋渡しとして機能し、AI アシスタントが Lambda 関数にアクセスして呼び出すことを可能にします。
Serverless MCP Server
本日発表されたオープンソースの AWS Serverless MCP は、サーバーレスパターン、ベストプラクティス、AWS サービスに関する包括的な知識を AI コーディングアシスタントに提供することで、サーバーレス開発体験を強化します。この MCP サーバーはインテリジェントなコンパニオンとして機能し、初期設計からデプロイまでのアプリケーション開発ライフサイクル全体を通じて開発者をガイドし、各段階でコンテキストに応じた支援を提供します。
新しい Serverless MCP サーバーは、サーバーレス開発の多くの領域をカバーするツールを提供します。初期計画とセットアップフェーズでは、MCP サーバーは開発者が AWS Serverless Application Model (AWS SAM) テンプレートを使用して新しいプロジェクトを初期化し、適切な Lambda ランタイムを選択し、プロジェクトの依存関係をセットアップするのを支援します。これにより、開発者は適切な構成と構造を持つ新しいサーバーレスアプリケーションを迅速に立ち上げることができます。
開発が進むにつれて、MCP サーバーはサーバーレスアプリケーションの構築とデプロイを支援します。ローカルテスト、デプロイアーティファクトの構築、デプロイの管理のためのツールを提供します。Web アプリケーションについては、MCP サーバーはバックエンド、フロントエンド、またはフルスタックアプリケーションのデプロイとカスタムドメインのセットアップに特化したサポートを提供します。
MCP サーバーはまた、包括的な可観測性ツールを通じて運用の優秀性を強調し、開発者がアプリケーションのパフォーマンスを効果的に監視し、問題をトラブルシューティングするのを支援します。開発プロセス全体を通じて、サーバーは Infrastracture as a Code (IaC) の決定、Lambda 固有のベストプラクティス、Lambda Event Source Mappings (ESM) のイベントスキーマに関するコンテキストガイダンスを提供します。
Serverless MCP Server の実際の動作
Serverless MCP Server の機能を実証するために、サーバーレスアプリケーションの作成、デプロイ、トラブルシューティングのシナリオを通じて説明します。
前提条件とインストール
開始するには、GitHub または Python Package Index (PyPi) から AWS Serverless MCP Server をダウンロードし、インストール手順に従います。この MCP サーバーは、Q Developer、Cursor、Cline などの任意の AI コーディングアシスタントで使用できます。この記事のウォークスルー例では Cline を使用しています。
MCP クライアント構成に次のコードを追加します。Serverless MCP Server はデフォルトで default
AWS プロファイルを使用します。別のプロファイルを使用する場合は AWS_PROFILE に値を指定します。同様に、AWS リージョン とログレベルの値も必要に応じて調整してください。
Serverless MCP Server には、安全で制御された開発を確保するための組み込みガードレールが含まれています。デフォルトでは、MCP サーバーは読み取り専用モードで動作し、変更を加えないアクションのみを許可します。この安全第一のアプローチにより、アプリケーションやインフラストラクチャに意図しない変更を防ぎながら、サーバーレス機能とアーキテクチャパターンを探索できます。また、サーバーはデフォルトで Amazon CloudWatch Logs へのアクセスを制限し、機密性の高い運用データが AI アシスタントに公開されないよう保護します。
開発ニーズが進化するにつれて、これらのセキュリティデフォルトを選択的に上書きできます。--allow-write
フラグはデプロイや更新などのタスクのための変更操作を有効にし、--allow-sensitive-data-access
はデバッグとトラブルシューティングのために CloudWatch Logs へのアクセスを提供します。これらの権限は必要な場合にのみ、適切な開発コンテキストで有効にすることを検討してください。
サーバーレスアプリケーションの作成とデプロイ
To-Do リスト Web アプリケーションを構築したいとします。AI アシスタントに次のようにプロンプトを出します。
新しいワークスペースで To-Do リスト Web アプリケーションを構築したいと思います。To-Do の追加、一覧表示、削除を行いたいです。AWS Lambda はこれに適した選択肢でしょうか?
エージェントは get_lambda_guidance_tool
を使用して、ユースケースと推測されるイベントソース(この場合は API Gateway)に基づいたカスタマイズされたガイダンスを受け取ります。次に、アプリケーションを AWS にデプロイする方法についてより詳しく理解したいと思います。
後でアプリケーションを AWS にデプロイしたいと思います。どのインフラストラクチャ・アズ・コードツールが最適でしょうか?
AWS SAM や AWS Cloud Development Kit (AWS CDK) など、関数を AWS にデプロイするいくつかの方法があります。モデルは推奨を行う前に詳細情報を取得することを選択します。Serverless MCP Server から get_iac_guidance_tool
を選択します。
Serverless MCP Server は、AWS Serverless Application Model Command Line Interface (AWS SAM CLI) との対話や、バックエンド、フロントエンド、またはフルスタックアプリケーションなどのアプリケーションベースのブループリントのデプロイにも役立ちます。
デプロイの前に、関数が正しく動作することを確認するためにローカルでテストします。
デプロイする前に Lambda 関数をローカルでテストしたいと思います。SAM プロジェクトから「TodoFunction」を GET リクエストで呼び出すことはできますか?
アプリケーションが動作することを確認したので、バックエンドロジックを AWS にデプロイしたいと思います。そこで、エージェントにアプリを展開するよう促します。エージェントは deploy_webapp ツールを選択し、バックエンド deploymentType を含むアプリをデプロイするための引数をツールに提供します。このツールは AWS Lambda Web Adapter フレームワークを使用しており、追加の Web アダプターなしで Express や Next.js などの標準的な Web フレームワークで書かれたアプリケーションを簡単にデプロイできます。
エージェントはデプロイのステータスを確認して、正常に完了することを確認することもできます。
これでアプリケーションは AWS にデプロイされ、トラフィックを処理する準備ができました。
サーバーレスアプリケーションのトラブルシューティング
Serverless MCP Server は、Lambda 関数のテストとトラブルシューティングもサポートしています。問題の特定と修正において AI アシスタントに貴重なコンテキストを提供します。例えば、エージェントを使用してアプリケーションに問題がないか確認できます。
To-Do アプリのログとメトリクスを確認して、問題がないか調べてください
モデルはログとメトリクスを分析し、メモリ割り当ての調整などの推奨事項を提供できます。
Serverless MCP Server ツールは、アシスタントが問題を特定し推奨事項を生成するために必要な追加コンテキストを提供します。
この例での分析と推奨事項は次のとおりです:
ログ分析 To-Do アプリの 3 つの Lambda 関数すべてのログをチェックし、特にエラーを探しました: • ListTodosFunction:エラーは検出されませんでした すべての関数は正常に動作しており、成功した実行があり、エラーログはありません。 パフォーマンスメトリクス Lambda 関数のパフォーマンス API Gateway メトリクス 特定された問題 ログ分析ではエラーは見つかりませんでしたが、メトリクスは 1 つの潜在的な問題を示しています:
推奨事項
|
Serverless MCP Server がサポートする機能
Serverless MCP Server はいくつかの MCP ツールを提供しており、これらは 4 つのカテゴリに分類できます。
- サーバーレスアプリケーションのライフサイクル
sam_init_tool
:選択したランタイムと依存関係を持つ新しい AWS SAM プロジェクトを初期化します。sam_build_tool
:AWS SAM CLI を使用してサーバーレスアプリケーションをビルドし、デプロイアーティファクトを準備します。sam_deploy_tool
:サーバーレスアプリケーションを AWS にデプロイし、アーティファクトのアップロードとスタックの作成を管理します。sam_local_invoke_tool
:カスタムイベントと環境でテストするために Lambda 関数をローカルで呼び出します。
- Web アプリケーションのデプロイと管理
deploy_webapp_tool
:Lambda Web Adapter を使用して、バックエンド、フロントエンド、またはフルスタック Web アプリケーションを Lambda にデプロイします。update_frontend_tool
:フロントエンドアセットを更新し、オプションで Amazon CloudFront キャッシュを無効化します。configure_domain_tool
:証明書と DNS セットアップを含むカスタムドメインを構成します。
- 可観測性
sam_logs_tool
:ログを取得し、フィルタリングと時間範囲の選択をサポートします。get_metrics_tool
:指定されたメトリクスを取得します。
- ガイダンス、IaC テンプレート、デプロイヘルプ
get_iac_guidance_tool
:IaC ツールの選択に関するガイダンスを提供します。get_lambda_guidance_tool
:特定のランタイムとユースケースに Lambda を使用する場合のアドバイスを提供します。get_lambda_event_schemas_tool
:Lambda 統合のイベントスキーマを返します。get_serverless_templates_tool
:さまざまなサーバーレスアプリケーションタイプの AWS SAM テンプレート例を提供します。deployment_help_tool
:デプロイに関するヘルプとステータス情報を提供します。deploy_serverless_app_help_tool
:Lambda へのサーバーレスアプリケーションのデプロイに関する指示を提供します。
ツールとリソースの完全なリストについては、Serverless MCP Server のドキュメントをご覧ください。
ベストプラクティスと考慮事項
AWS Serverless MCP Server でサーバーレスアプリケーションを構築する際は、まず AI 支援のガイダンスを使用してアーキテクチャの決定を行うことから始めましょう。開発全体を通じて、サービスの選択、イベントパターン、インフラストラクチャ設計に関する情報に基づいた決定を行うためにガイダンスツールを使用します。AWS にデプロイする前に、Serverless MCP Server のローカルテスト機能を使用してアプリケーションの動作を検証します。このアプローチは、アプリケーションが AWS のベストプラクティスに沿っていることを確認するのに役立ちます。
本番環境で実行されているアプリケーションを確実に運用するには、堅牢な監視と可観測性が不可欠です。デプロイの監視とログ記録およびメトリクスのセットアップには、Serverless MCP Server ツールを使用します。これにより、アプリケーションのパフォーマンスを追跡し、潜在的な問題を迅速に特定するのに役立ちます。
結論
オープンソースの AWS Serverless MCP Server は、開発ライフサイクル全体を通じて AI 支援のガイダンスを提供することで、サーバーレスアプリケーション開発を効率化します。AI 支援とサーバーレス専門知識を組み合わせることで、開発者はより効率的にアプリケーションを構築およびデプロイできるようになります。Serverless MCP Server のツールセットは、初期化から可観測性まで、完全な開発プロセスをサポートし、開発者が AWS のベストプラクティスを実装するのを支援します。
組織がサーバーレスコンピューティングを採用し続けるにつれて、開発を効率化し、提供を加速するツールはますます価値が高まります。AWS は、サーバーレスアプリケーションを構築する開発者向けの MCP サーバーのコレクションを拡大し、顧客のフィードバックと新たなサーバーレス開発パターンに基づいて既存のツールを改良し続けます。
開始するには、GitHub リポジトリにアクセスし、ドキュメントを探索してください。GitHub リポジトリを通じて経験や提案を共有し、MCP サーバーの機能を改善し、AI 支援のサーバーレス開発の未来を形作るのに役立ててください。
サーバーレス学習リソースの詳細については、Serverless Land をご覧ください。