remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Adapts the MCP TypeScript SDK to work with AWS Lambda functions, supporting Server-Sent Events through Lambda response streaming and function URLs
Provides MCP server infrastructure specifically designed for Node.js runtime in AWS Lambda, with official support for response streaming
Offers full TypeScript support for implementing MCP servers with type definitions and interfaces
MCP ラムダ SAM
AWS Lambda と SAM を使用したモデルコンテキストプロトコル (MCP) の実装。
概要
このプロジェクトは、2 つの異なるインターフェースを持つ、モデル コンテキスト プロトコルのサーバーレス実装を提供します。
- システム構成(管理):
- MCPツール、リソース、プロンプトの登録
- IAM権限管理
- インフラストラクチャのセットアップと構成
- システム使用状況(クライアント):
- SSE接続の確立
- コマンドの送信
- ストリーミング応答の受信
建築
人魚の図
この Mermaid 構文を使用してシステムを視覚化できます。
- MCP Lambda は、起動時およびリクエストの処理時に登録テーブルから登録を読み取ります。
- セッション状態を永続化するためにセッション テーブルを使用します。
- 登録テーブルに保存されている ARN を使用して、登録された Lambda ツールを動的に呼び出します。
システム構成ガイド(管理者)
このセクションは、MCP サーバーを構成および管理する必要があるシステム管理者を対象としています。
展開
このコマンドは対話形式で管理構成を要求します。
- スタック名(複数インスタンスの場合)
- AWS リージョン
- VPC 構成(オプション)
権限の概要
MCP エンドポイントにアクセスするには、ユーザーとクライアントは関連する関数 URL を呼び出すための IAM 権限を持っている必要があります。
- 管理者:
mcp-registration
関数の URL を呼び出す権限が必要です - クライアント:
mcp
関数 URL を呼び出す権限が必要です
IAM ポリシーまたはaws lambda add-permission
(以下を参照) を使用してアクセスを許可できます。
AWS CLI 経由で権限を割り当てる
登録機能 URLを呼び出す権限を付与するには:
MCP 関数 URL (SSE およびメッセージ) を呼び出す権限を付与するには:
<registration-function-name>
と<mcp-function-name>
を実際の Lambda 関数名に置き換えます。
登録API
これらのエンドポイントを使用して、MCP ツール、リソース、およびプロンプトを管理します。
新しいツールを登録する
登録の更新
登録を削除
登録リスト
必要なIAM権限
管理者向け
登録を管理するには、管理者には次の権限が必要です。
システム利用ガイド(クライアント)
このセクションは、MCP サーバーを使用するクライアント向けです。
必要なIAM権限
MCP サーバーを使用するには、クライアントに次の権限が必要です。
サーバーへの接続
- SSE接続を確立します:
SSE の cURL の例
最初のイベントにはsessionId
が含まれます。メッセージを送信する際にこれを使用してください。
- 送信コマンド:
エラー処理
一般的なクライアントエラー
401
: AWS 認証情報が無効または見つかりません403
: 権限が不十分です404
: 無効なセッションID429
: レート制限を超えました
トラブルシューティング
- 接続の問題:
- AWS認証情報を確認する
- IAM権限を確認する
- ネットワーク接続を確保する
- コマンド実行エラー:
- セッションIDがアクティブであることを確認する
- コマンド形式がツール登録と一致しているかどうかを確認します
- パラメータがスキーマと一致していることを確認する
要件
- AWS CLI がインストールおよび設定されている
- AWS SAM CLI がインストールされている
- Node.js 20.x 以降
- 以下を作成する権限を持つ AWS アカウント:
- ラムダ関数
- DynamoDB テーブル
- IAMロール
- SQSキュー
AWS SAM CLI セットアップ
AWS SAM CLI を使用してこのアプリケーションをローカルまたは AWS にデプロイするには:
- AWS SAM CLI をインストールします: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
- PATH で使用可能であることを確認します。Copy
- アプリケーションをビルドしてデプロイします。Copy
- プロンプトに従って、スタック名、リージョン、機能、およびパラメータのオーバーライドを構成します。
保存した構成を使用するには、 --guided
なしでsam deploy
再実行できます。
インストール
このアプリケーションは、次の 4 つの方法でインストールおよび展開できます。
1. AWS サーバーレスアプリケーションリポジトリ (SAR) の使用
MCP サーバーをデプロイする最も簡単な方法は、AWS Serverless Application Repository (SAR) を使用することです。
- SARコンソールへ移動
- Mark Van Proctorによるmcp-lambda-samを検索
- デプロイをクリック
- パラメータを設定します:
StackIdentifier
: このMCPサーバーインスタンスの一意のIDVpcEnabled
: VPC にデプロイする場合はtrue
に設定しますVpcId
とSubnetIds
:VpcEnabled
がtrue
の場合にのみ指定します
- 指示に従って展開します
あるいは、AWS CLI からデプロイすることもできます。
2. npx の使用 (CLI)
このコマンドは対話形式で管理構成を要求します。
- スタック名(複数インスタンスの場合)
- AWS リージョン
- VPC 構成(オプション)
3. インストールによるプログラム的な使用
パッケージをインストールします。
パッケージをインストールしたら、プログラムで使用できます。
4. ローカル開発と展開
パッケージをインストールします。
開発の変更を行った後、手動でデプロイできます。
発達
SARへの公開
このプロジェクトに貢献していて、SAR に更新を公開する必要がある場合:
- アプリケーションをパッケージ化します。
- SAR に公開:
- アプリケーションを公開する (1 回限りの設定):
- AWSコンソール > サーバーレスアプリケーションリポジトリに移動します
- アプリケーションを選択
- 「共有」をクリックし、「公開」を選択します
- 次の共有ポリシーを適用します: GXP25
ライセンス
マサチューセッツ工科大学
貢献
- リポジトリをフォークする
- 機能ブランチを作成する
- 変更をコミットする
- ブランチにプッシュする
- 新しいプルリクエストを作成する
This server cannot be installed
SSE サポートを備えた AWS Lambda 関数用のモデルコンテキストプロトコル サーバー インフラストラクチャを提供する Node.js パッケージ。開発者は MCP ツールとプロンプトをサーバーレス関数として実装できます。