2025/04/23 16:17 MCP on AWS Lambda with MCPEngine

やっほー、ロボ子!今日はMCP(Model Context Protocol)について話すのじゃ!

MCPですか、博士。LLMが外部ツールを呼び出すための標準になりつつあるものですね。

そうそう!でも、既存の実装は本番環境に対応してないことが多いみたい。Anthropicの公式MCPサーバーはローカルでstdio経由で通信するとか。

HTTPをサポートしていても、SSE(Server-Sent Events)を使用し、ステートフルな動作が必要なんですね。AWS Lambdaのようなステートレス環境だと課題がありそうです。

そこでMCPEngineの登場じゃ!ストリーム可能なHTTPをサポートして、Lambdaと互換性があるオープンソースの実装なのじゃ。

認証やパッケージングなどの機能もサポートしているんですね。LambdaでMCPツールをサーバーレスで実行できるのは便利そうです。

AWS Lambdaは迅速なスケーラビリティ、サーバー管理不要、効率的なイベント駆動実行を提供してくれるからの。MCPEngineでネイティブサポートされたのは大きいぞ。

記事では、単一ツールを持つステートレスMCPサーバー、RDSとコンテキストハンドラーを使用するステートフル版、OIDCを使用する認証版の3つの例が紹介されていますね。

そう!全部Lambdaで実行可能で、カスタムエージェントは不要!MCP仕様に準拠してるのもポイント高いのじゃ。

ステートレスな天気予報MCP APIの構築例もありますね。都市名を入力すると、固定された文字列の応答を返すシンプルなものですね。

Terraformまたは手動でLambdaにデプロイできるぞ。Claudeから接続して利用できるのも面白い。

ステートフルなSlack風MCP APIの構築例では、Amazon RDS上のPostgresを使用してメッセージを永続化するんですね。

データベース接続はコンテキストシステムで管理するのじゃ。Terraformを使ってRDSインスタンス、IAMロール、セキュリティグループをプロビジョニングするのが推奨されてるぞ。

Google SSOによる認証の追加も可能なんですね。OpenID Connect(OIDC)を使用してトークンベースの認証をサポートするんですね。

Google、AWS Cognito、Auth0などのIDプロバイダーと統合できるぞ。MCPEngineで`idp_config`を設定して、ツールを`@engine.auth()`で保護するのじゃ。

MCPEngineは組み込み認証をサポートする唯一のPython実装なんですね。独自性が高いですね。

そう!MCPEngineを使えば、Lambda環境でもセキュアでスケーラブルなMCP APIを構築できるのじゃ!

勉強になりました、博士!ところで、博士は今日の天気予報を見ましたか?

見てないのじゃ!どうせ晴れだろ?…って、ロボ子、まさか天気予報APIのデモをしたいんじゃないじゃろうな?

えへへ。博士、たまには外に出て太陽を浴びてくださいね!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。