mcpField
S
Serverless Web MCP Server

Serverless Web MCP Server

ローカル
github.com/bnusunnyクラウド・インフラ179 週間前に更新

Serverless Web MCP Server について

Serverless Web MCP Serverは、コーディングエージェントからAWSのサーバーレス基盤へWebアプリをデプロイするためのサーバーです。バックエンド、フロントエンド、フルスタックに対応し、デプロイ状況やログ、メトリクスも確認できます。

主な機能

  1. 01バックエンド、フロントエンド、フルスタックのデプロイ
  2. 02テンプレートと既存デプロイの一覧表示
  3. 03CloudWatchログとメトリクスの取得
  4. 04フロントエンドアセットの更新
  5. 05デプロイ要件とトラブルシューティングの案内

活用シーン

  1. 01エージェント経由でAWSバックエンドをデプロイ
  2. 02S3とCloudFrontを使ったフロントエンドの公開
  3. 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:インフラストラクチャ全体を再デプロイせずに、フロントエンドアセットを更新します

アーキテクチャ

このサーバーは、以下の主要コンポーネントで構成されています。

  1. MCP Protocol Handler:JSON-RPC インターフェイスとメッセージ処理を実装します
  2. Unified Deployment Service:さまざまなタイプ(バックエンド、フロントエンド、フルスタック)にわたるデプロイを管理します
  3. 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

コントリビューション

コントリビューションを歓迎します。お気軽にプルリクエストを送信してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。