Serverless Web MCP Server について
Serverless Web MCP Serverは、コーディングエージェントからAWSのサーバーレス基盤へWebアプリをデプロイするためのサーバーです。バックエンド、フロントエンド、フルスタックに対応し、デプロイ状況やログ、メトリクスも確認できます。
主な機能
- 01バックエンド、フロントエンド、フルスタックのデプロイ
- 02テンプレートと既存デプロイの一覧表示
- 03CloudWatchログとメトリクスの取得
- 04フロントエンドアセットの更新
- 05デプロイ要件とトラブルシューティングの案内
活用シーン
- 01エージェント経由でAWSバックエンドをデプロイ
- 02S3とCloudFrontを使ったフロントエンドの公開
- 03デプロイ状況の確認と問題の調査
MCP 対応
デプロイテンプレートやデプロイ状況をリソースとして提供し、deploy、get_logs、get_metrics、deployment_help、update_frontendのツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Serverless Web MCP Server
Web アプリケーションを AWS のサーバーレスインフラストラクチャにデプロイするための、Model Context Protocol(MCP)サーバー実装です。
概要
このプロジェクトは、LLM コーディングエージェントが Web アプリケーションを AWS のサーバーレスサービスにデプロイできるようにする MCP サーバーを実装しています。AI エージェントが AWS のデプロイ機能を利用するための標準化されたインターフェイスを提供するため、Model Context Protocol specification に準拠しています。
このサーバーは、以下のデプロイをサポートしています。
- API Gateway、Web Adapter を使用した Lambda、DynamoDB/Aurora Serverless を使用するバックエンドサービス
- S3 と CloudFront を使用するフロントエンドアプリケーション
- バックエンドとフロントエンドの両方のコンポーネントを組み合わせたフルスタックアプリケーション
MCP の実装
このサーバーは、以下の機能を備えた Model Context Protocol を実装しています。
リソース
以下に関するコンテキスト情報を提供します。
- 利用可能なデプロイテンプレート(
template:list、template:{name}) - 既存のデプロイとそのステータス(
deployment:list、deployment:{project-name})
ツール
デプロイ機能をツールとして公開します。
deploy:Web アプリケーションを AWS のサーバーレスインフラストラクチャにデプロイしますget_logs:CloudWatch からアプリケーションログを取得しますget_metrics:デプロイ済みアプリケーションのパフォーマンスメトリクスを取得しますdeployment_help:デプロイ要件とトラブルシューティングに関するヘルプを提供しますupdate_frontend:インフラストラクチャ全体を再デプロイせずに、フロントエンドアセットを更新します
アーキテクチャ
このサーバーは、以下の主要コンポーネントで構成されています。
- MCP Protocol Handler:JSON-RPC インターフェイスとメッセージ処理を実装します
- Unified Deployment Service:さまざまなタイプ(バックエンド、フロントエンド、フルスタック)にわたるデプロイを管理します
- AWS Integration Layer:AWS SAM CLI および AWS サービスと連携します
デプロイタイプ
このサーバーは、さまざまなタイプのデプロイを統一的な方法でサポートしています。
- バックエンドデプロイ:Lambda と API Gateway を使用するバックエンドサービス
- フロントエンドデプロイ:S3 と CloudFront を使用するフロントエンドアプリケーション
- フルスタックデプロイ:バックエンドとフロントエンドを組み合わせたデプロイ
AWS Lambda Web Adapter
バックエンドおよびフルスタックのデプロイでは、このサーバーは AWS Lambda Web Adapter を使用して AWS Lambda 上で Web アプリケーションを実行します。これにより、開発者はコードを変更せずに、使い慣れた Web フレームワークを使用できます。
はじめに
前提条件
- Node.js 18 以降
- AWS SAM CLI
- AWS 認証情報の設定
インストール
# Install globally from npm
npm install -g serverless-web-mcp-server
# Or clone the repository
git clone https://github.com/bnusunny/serverless-web-mcp-server.git
cd serverless-web-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
使用方法
ローカル MCP サーバーとして使用する
Claude for Desktop または他の MCP クライアントで使用するには、クライアントの設定にサーバーを追加します。
Claude for Desktop の場合は、~/Library/Application Support/Claude/claude_desktop_config.json を編集します。
{
"mcpServers": {
"serverless-web": {
"command": "serverless-web-mcp"
}
}
}
設定後、Claude for Desktop を再起動してください。Claude のインターフェイスで serverless-web ツールが利用できるようになります。
コマンドラインオプション
Usage:
serverless-web-mcp [options]
Options:
--debug, -d Enable debug logging
--templates, -t <path> Specify templates directory path
--transport, -m <mode> Transport method (stdio or http, default: stdio)
--port, -p <number> HTTP server port (default: 3000, only used with http transport)
--help, -h Show this help message
Environment Variables:
MCP_TRANSPORT Transport method (stdio or http, default: stdio)
PORT HTTP server port (default: 3000)
TEMPLATES_PATH Path to templates directory
リソースの検出
利用可能なリソースとツールを検出するには、以下の方法を使用します。
リソースの一覧表示
{
"jsonrpc": "2.0",
"id": 1,
"method": "resource/list",
"params": {}
}
利用可能なすべてのリソースについて、パターンと説明の一覧が返されます。
ツールの一覧表示
{
"jsonrpc": "2.0",
"id": 2,
"method": "tool/list",
"params": {}
}
利用可能なすべてのツールについて、説明とパラメータスキーマの一覧が返されます。
ツール呼び出しの例
{
"jsonrpc": "2.0",
"id": 1,
"method": "tool/invoke",
"params": {
"name": "deploy",
"parameters": {
"deploymentType": "backend",
"projectName": "my-api",
"projectRoot": "/path/to/project",
"region": "us-east-1",
"backendConfiguration": {
"builtArtifactsPath": "backend/dist",
"runtime": "nodejs18.x",
"startupScript": "bootstrap",
"memorySize": 512,
"timeout": 30,
"environment": {
"NODE_ENV": "production"
}
}
}
}
}
リソースリクエストの例
{
"jsonrpc": "2.0",
"id": 2,
"method": "resource/get",
"params": {
"uri": "deployment:my-api"
}
}
デプロイパラメータ
バックエンドデプロイ
{
"deploymentType": "backend",
"projectName": "my-api",
"projectRoot": "/path/to/project",
"region": "us-east-1",
"backendConfiguration": {
"builtArtifactsPath": "backend/dist",
"runtime": "nodejs18.x",
"startupScript": "bootstrap",
"memorySize": 512,
"timeout": 30,
"environment": {
"NODE_ENV": "production"
},
"databaseConfiguration": {
"tableName": "Users",
"attributeDefinitions": [
{ "name": "id", "type": "S" }
],
"keySchema": [
{ "name": "id", "type": "HASH" }
]
}
}
}
フロントエンドデプロイ
{
"deploymentType": "frontend",
"projectName": "my-website",
"projectRoot": "/path/to/project",
"region": "us-east-1",
"frontendConfiguration": {
"builtAssetsPath": "frontend/build",
"indexDocument": "index.html"
}
}
フルスタックデプロイ
{
"deploymentType": "fullstack",
"projectName": "my-fullstack-app",
"projectRoot": "/path/to/project",
"region": "us-east-1",
"backendConfiguration": {
"builtArtifactsPath": "backend/dist",
"runtime": "nodejs18.x",
"environment": {
"NODE_ENV": "production"
}
},
"frontendConfiguration": {
"builtAssetsPath": "frontend/build",
"indexDocument": "index.html"
}
}
開発
プロジェクト構成
/
├── src/
│ ├── mcp/ # MCP protocol implementation
│ │ ├── tools/ # Tool implementations
│ │ │ └── index.ts # Tool registration
│ │ ├── resources/ # Resource implementations
│ │ │ └── index.ts # Resource registration
│ │ └── server.ts # MCP server setup
│ ├── deployment/ # Deployment service
│ ├── cli/ # Command line interface
│ └── index.ts # Main server entry point
├── templates/ # Deployment templates
├── examples/ # Example applications
├── docs/ # Documentation
├── config.json # Server configuration
├── DESIGN.md # Detailed design document
└── README.md # This file
ライセンス
MIT
コントリビューション
コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。