Enables serverless deployment of OpenAPI MCP servers on AWS Lambda with API Gateway, allowing MCP clients to interact with OpenAPI-defined APIs through AWS infrastructure
OpenAPI MCP Server - AWS Lambda Deployment
Serverless deployment of the AWS Labs OpenAPI MCP Server on AWS Lambda with API Gateway.
Overview
This project wraps the awslabs openapi-mcp-server to run as a serverless Lambda function, enabling MCP (Model Context Protocol) clients to interact with OpenAPI-defined APIs through AWS infrastructure.
Architecture
Lambda Function: FastMCP server with HTTP transport (Starlette ASGI)
API Gateway: HTTP API exposing the MCP endpoints
Transport: Mangum ASGI adapter (no child process overhead)
Prerequisites
Python 3.12+
uv package manager
AWS CLI configured
AWS CDK CLI:
npm install -g aws-cdk
Local Setup
Install dependencies:
Deployment
1. Bootstrap CDK (first time only)
2. Deploy Stack
Configuration Parameters
ApiName: Display name for the APIApiBaseUrl: Base URL of the target APIApiSpecUrl: URL to the OpenAPI specification (JSON or YAML)AuthType: Authentication method (none,basic,bearer,api_key,cognito)
Additional Auth Configuration
Set environment variables in cdk/openapi_mcp_stack.py for authentication:
Basic Auth:
AUTH_USERNAMEAUTH_PASSWORD
Bearer Token:
AUTH_TOKEN
API Key:
AUTH_API_KEYAUTH_API_KEY_NAMEAUTH_API_KEY_IN(header/query/cookie)
Cognito:
AUTH_COGNITO_CLIENT_IDAUTH_COGNITO_USERNAMEAUTH_COGNITO_PASSWORDAUTH_COGNITO_USER_POOL_IDAUTH_COGNITO_REGION
3. Get API URL
After deployment, CDK outputs the API Gateway URL:
Testing
Test the deployed Lambda function:
Performance Considerations
Cold Start: ~1-2 seconds (initializes MCP server + loads OpenAPI spec)
Warm Start: ~100-300ms (reuses server instance)
Timeout: 30 seconds (configurable in stack)
Memory: 512 MB (configurable in stack)
Cost Optimization
Requests: Pay per invocation
Memory/Duration: 512 MB x execution time
API Gateway: HTTP API (cheaper than REST API)
Development
Run MCP server locally:
Cleanup
License
This project includes code from awslabs/mcp licensed under Apache-2.0. See LICENSE and NOTICE files.