hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Allows LLMs to use AWS Lambda functions as tools, enabling models to execute code in Lambda environments, access real-time data, interact with AWS services, and perform specialized calculations without code changes. The server acts as a bridge between MCP clients and Lambda functions.
MCP2ラムダ
AnthropicのModel Context Protocol (MCP)を使用して、コードを変更することなく、任意のAWS Lambda関数を Large Language Model (LLM)ツールとして実行します。
このMCPサーバーは、MCPクライアントとAWS Lambda関数間のブリッジとして機能し、生成AIモデルがLambda関数をツールとしてアクセスして実行できるようにします。これは、例えば、パブリックネットワークへのアクセスを提供することなく、社内アプリケーションやデータベースなどのプライベートリソースにアクセスする場合に役立ちます。このアプローチにより、モデルは他のAWSサービス、プライベートネットワーク、そしてパブリックインターネットを利用できるようになります。
セキュリティの観点から見ると、このアプローチは、モデルがLambda関数を呼び出すことは許可しながらも、他のAWSサービスに直接アクセスできないようにすることで、職務の分離を実現します。クライアントはLambda関数を呼び出すためにAWS認証情報のみを必要とします。Lambda関数は、関数ロールを使用して他のAWSサービスとやり取りし、パブリックネットワークまたはプライベートネットワークにアクセスできるようになります。
MCP サーバーは、次の 2 つのツールへのアクセスを提供します。
- 最初のツールは、アカウント内のプレフィックスまたは許可された名前のリストに一致するすべてのLambda関数を自動検出します。このツールは、関数の名前と説明をモデルと共有します。
- 2 番目のツールを使用すると、必要なパラメータを渡して名前で Lambda 関数を呼び出すことができます。
コードの変更は不要です。結果を改善するには、以下の設定を変更する必要があります。
戦略の選択
ゲートウェイは、Lambda 関数を処理するための 2 つの異なる戦略をサポートしています。
- 事前検出モード(デフォルト:有効):起動時に各Lambda関数を個別のツールとして登録します。これにより、各関数がそれぞれの名前付きツールとして表示される、より直感的なインターフェースが提供されます。
- 汎用モード: 2 つの汎用ツール (
list_lambda_functions
とinvoke_lambda_function
) を使用して、Lambda 関数と対話します。
この動作は以下を通じて制御できます。
- 環境変数:
PRE_DISCOVERY=true|false
- CLI フラグ:
--no-pre-discovery
(事前検出モードを無効にする)
例:
- MCPクライアントにLambda関数の使用方法を理解させるには、 **Lambda関数の説明において、**関数の機能と使用するパラメータを明確に示す必要があります。簡単なデモと詳細については、サンプル関数をご覧ください。
- モデルが AWS Lambda 経由で利用可能なツールを使用できるようにするには、次のようなものをシステムプロンプトに追加します。
概要
MCP2Lambdaは、LLMがAWS Lambda関数をツールとして操作できるようにし、テキスト生成以外の機能も拡張します。これにより、モデルは以下のことが可能になります。
- VPC 内のデータソースを含むリアルタイムのプライベート データにアクセスします
- サンドボックス環境として Lambda 関数を使用してカスタムコードを実行する
- Lambda 関数のインターネット アクセス (および帯域幅) を使用して外部サービスや API と対話する
- 特殊な計算やデータ処理を実行する
サーバーは、AI モデルが外部ツールにアクセスする方法を標準化する MCP プロトコルを使用します。
デフォルトでは、名前がmcp2lambda-
で始まる関数のみがモデルで使用できます。
前提条件
- Python 3.12以上
- 認証情報が設定された AWS アカウント
- AWS Lambda 関数 (リポジトリで提供されているサンプル関数)
- Converse APIを備えたAmazon Bedrockを使用したアプリケーション
- Claude DesktopのようなMCP互換クライアント
インストール
Smithery経由でインストール
Smithery経由で Claude Desktop 用の MCP2Lambda を自動的にインストールするには:
手動インストール
- リポジトリをクローンします。Copy
- AWS 認証情報を設定します。例えば、 AWS CLIを使用します。Copy
サンプルラムダ関数
このリポジトリには、異なるユースケースを示す3つのサンプルLambda関数が含まれています。これらの関数は基本的な権限を持ち、CloudWatchログへの書き込みのみが可能です。
顧客ID(メールより)
メールアドレスに基づいて顧客IDを取得します。この関数は、メールアドレスをパラメータとして受け取り、関連付けられた顧客IDを返します。これは、シンプルな検索ツールの構築方法を示しています。この関数は、 user@example.com
メールアドレスに返信するようにハードコードされています。例えば、モデルにuser@example.com
メールアドレスの顧客IDを取得するように指示することができます。
顧客情報ID
顧客IDに基づいて詳細な顧客情報を取得します。この関数は、名前、メールアドレス、ステータスなどの顧客詳細情報を返し、Lambdaがどのようにコンテキスト固有のデータを提供できるかを示します。この関数は、前の関数によって返された顧客IDに応答するようにハードコードされています。例えば、モデルに「メールアドレスuser@example.com
の顧客ステータスを取得する」ように指示できます。この場合、両方の関数を使用して結果を取得します。
Pythonコードを実行する
Lambdaサンドボックス環境内で任意のPythonコードを実行します。この強力な関数により、ClaudeはPythonコードを記述・実行し、モデルに組み込まれていない計算、データ処理、その他の操作を実行できます。例えば、モデルに「1から10、1から100、そして100万までの間の素数の個数を計算してください」と指示することができます。
サンプルLambda関数のデプロイ
リポジトリには、 sample_functions
ディレクトリにサンプル Lambda 関数が含まれています。
- AWS SAM CLI をインストールします: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
- サンプル関数をデプロイします。Copy
サンプル関数は、プレフィックスmcp2lambda-
を付けてデプロイされます。
Amazon Bedrock での使用
MCP2Lambda は Amazon Bedrock の Converse API とも併用できるため、Bedrock でサポートされているどのモデルでも MCP プロトコルを使用できます。
mcp_client_bedrock
ディレクトリには、MCP2Lambda を Amazon Bedrock モデルに接続するクライアント実装が含まれています。
詳細については、 https://github.com/mikegc-aws/amazon-bedrock-mcpを参照してください。
前提条件
- Claude、Mistral、Llama などのモデルを使用するための Amazon Bedrock アクセスと権限。
- 適切な資格情報で構成されたBoto3
インストールとセットアップ
- mcp_client_bedrock ディレクトリに移動します。Copy
- 依存関係をインストールします:Copy
- クライアントを実行します。Copy
構成
クライアントはデフォルトで Anthropic の Claude 3.7 Sonnet を使用するように設定されていますが、 main.py
のmodel_id
変更して他の Bedrock モデルを使用することもできます。
同じファイル内のシステム プロンプトをカスタマイズして、モデルの動作を変更することもできます。
使用法
- 1 つのターミナルで MCP2Lambda サーバーを起動します。Copy
- 別のターミナルで Bedrock クライアントを実行します。Copy
- コマンドラインインターフェースを介してモデルを操作します。モデルは、事前にデプロイしたLambda関数にアクセスできます。
Claude Desktopでの使用
Claude Desktop 構成ファイルに次のコードを追加します。
モデルが AWS Lambda 経由でツールを使用できるようにするには、設定プロファイルで、次のような文を個人設定に追加します。
MCPサーバーの起動
MCP サーバーをローカルで起動します。
You must be authenticated.
AI モデルが MCP プロトコルを介して AWS Lambda 関数と対話できるようにし、安全な環境でプライベートリソース、リアルタイムデータ、カスタム計算にアクセスできるようにします。
- Strategy Selection
- Overview
- Prerequisites
- Installation
- Sample Lambda Functions
- Deploying Sample Lambda Functions
- Using with Amazon Bedrock
- Using with Claude Desktop
- Starting the MCP Server