awslabs/run-model-context-protocol-servers-with-aws-lambda

Run existing Model Context Protocol (MCP) stdio-based servers in AWS Lambda functions

解決的問題

大多數 Model Context Protocol (MCP) 伺服器設計為以子程序形式在本機執行,透過標準輸入/輸出(stdio)進行通訊。本專案提供一種將這些基於 stdio 的伺服器封裝為 AWS Lambda 函數的方法,使其能在雲端託管並透過 HTTPS 存取,而不會被綁定於單一本機電腦。

工作原理

此套件管理 Lambda 函數內 MCP 伺服器的生命週期。每次呼叫時,Lambda 函數會以子程序啟動 MCP 伺服器,初始化它,轉發傳入的請求,回傳回應,然後關閉該程序。支援四種連接方式:

  1. Amazon API Gateway:使用帶有 OAuth 驗證的 MCP Streamable HTTP 傳輸。
  2. Amazon Bedrock AgentCore Gateway:使用帶有 OAuth 驗證的 MCP Streamable HTTP 傳輸。
  3. Lambda Function URLs:使用透過 AWS IAM(SigV4)驗證的自訂 Streamable HTTP 傳輸。
  4. Lambda Invoke API:使用直接透過 AWS IAM 呼叫 Lambda API 的自訂傳輸。

適用對象

希望將 MCP 伺服器從本機環境遷移至分散式雲端架構,同時保持與 MCP 客戶端(如 Cursor、Cline 或 Claude Desktop)相容的開發者。

主要特色

  • 多語言支援:提供 Python 與 TypeScript 的實作範例。
  • 雲端原生託管:讓 MCP 伺服器可作為無伺服器函數執行。
  • 彈性驗證機制:支援 OAuth(透過 API Gateway/Bedrock)與 AWS IAM。
  • 詳細設定指南:包含伺服器打包、透過 AWS Secrets Manager 管理金鑰、向子程序傳遞 AWS 憑證的指導。

相關

  • 專案
  • 專案
  • 專案
  • 專案