Skip to main content

MCP Lambda Handler Module

A Python library for creating serverless HTTP handlers for the Model Context Protocol (MCP) using AWS Lambda. This library provides a minimal, extensible framework for building MCP HTTP endpoints with pluggable session management support.

Features

  • 🚀 Easy serverless MCP HTTP handler creation using AWS Lambda
  • 🔌 Pluggable session management system (NoOp or DynamoDB, or custom backends)

Quick Start

  1. Install the package with development dependencies:
pip install -e .[dev]
  1. Use the handler in your AWS Lambda function:

Basic Usage

from awslabs.mcp_lambda_handler import MCPLambdaHandler

mcp = MCPLambdaHandler(name="mcp-lambda-server", version="1.0.0")

@mcp.tool()
def add_two_numbers(a: int, b: int) -> int:
    """Add two numbers together."""
    return a + b

def lambda_handler(event, context):
    """AWS Lambda handler function."""
    return mcp.handle_request(event, context)

Session Management

The library provides flexible session management with built-in support for DynamoDB and the ability to create custom session backends. You can use the default stateless (NoOp) session store, or configure a DynamoDB-backed store for persistent sessions.

Example Architecture for Auth & Session Management

A typical serverless deployment using this library might look like:

  • API Gateway: Exposes the /mcp endpoint.
  • Lambda Authorizer: Validates authentication tokens (e.g., bearer tokens in the Authorization header).
  • MCP Server Lambda: Implements MCP tools and session logic using this library.
  • DynamoDB: Stores session data (if using the DynamoDB session backend).

Development

  1. Clone the repository:
git clone https://github.com/awslabs/mcp.git
cd mcp/src/mcp-lambda-handler
  1. Install development dependencies:
pip install -e .[dev]
  1. Run tests:
pytest

Contributing

Contributions are welcome! Please see the CONTRIBUTING.md in the monorepo root for guidelines.

License

This project is licensed under the Apache-2.0 License - see the LICENSE file for details.

Python Version Support

  • Python 3.10+

Dependencies

Core dependencies:

  • python-dateutil >= 2.8.2

Optional dependencies:

  • boto3 >= 1.38.1 (for AWS/DynamoDB support)
  • botocore >= 1.38.1 (for AWS/DynamoDB support)

Development dependencies:

  • pytest >= 8.0.0
  • black >= 24.2.0
  • isort >= 5.13.0
  • flake8 >= 7.0.0
  • moto >= 5.0.3 (for AWS mocking in tests)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awslabs_mcp_lambda_handler-0.1.15.tar.gz (80.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awslabs_mcp_lambda_handler-0.1.15-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file awslabs_mcp_lambda_handler-0.1.15.tar.gz.

File metadata

File hashes

Hashes for awslabs_mcp_lambda_handler-0.1.15.tar.gz
Algorithm Hash digest
SHA256 0edc8c9b0ee7561b4a4d220ac517446f3b2a264557d84dca97a9cc2796f93d2e
MD5 8747a0fe8122348b32c2538a96f16b14
BLAKE2b-256 a639cb6bf49f47ab7b80e68b036c611ad895a6cb8fffaf274f9ccebd6d1035ec

See more details on using hashes here.

Provenance

The following attestation bundles were made for awslabs_mcp_lambda_handler-0.1.15.tar.gz:

Publisher: release.yml on awslabs/mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file awslabs_mcp_lambda_handler-0.1.15-py3-none-any.whl.

File metadata

File hashes

Hashes for awslabs_mcp_lambda_handler-0.1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 279f60378b65f6966cc86df84a1b46c30f6ab73a60b7723ea3df0e2f46cc802d
MD5 3fde626ebd34e290725194d65a4fe458
BLAKE2b-256 3441548660e8468a3ec82cc14f4b1067d083be0f4ffca960fd9b245d4801abad

See more details on using hashes here.

Provenance

The following attestation bundles were made for awslabs_mcp_lambda_handler-0.1.15-py3-none-any.whl:

Publisher: release.yml on awslabs/mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.15 This release

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page