list_lambda_functionsLABSCO SUMMARY
Segregation of duties, built into the shape of it.
The interesting move here is not that Lambda becomes a tool — it is that the credential you hand the client only permits invocation. Private databases and internal applications stay reachable without ever granting the model network access to them, and every call already runs inside your own logging and IAM. The work shifts from writing integrations to writing good function descriptions.
What it is
A bridge between an MCP client and AWS Lambda. The client holds credentials that can only invoke functions; each function then reaches whatever it needs — other AWS services, a VPC, the public internet — under its own execution role. That split is the design: the model can call the function but cannot touch what the function touches.
What you get
- Autodiscovery of the Lambda functions in your account that match a prefix or an allowed list, passing their names and descriptions to the model
- Invocation of those functions by name with parameters
- Pre-Discovery Mode, on by default, which registers each function as its own named tool
- Generic Mode as the alternative — two tools,
list_lambda_functionsandinvoke_lambda_function— selected withPRE_DISCOVERY=falseor the--no-pre-discoveryflag - A default name filter: only functions starting with
mcp2lambda-are offered to the model - Three sample functions in the repo, deployable with
sam buildandsam deploy, including one that runs arbitrary Python inside the Lambda sandbox
Requirements
Python 3.12 or higher, an AWS account with credentials configured (aws configure), and the functions you want to expose. The package is mcp2lambda, started with uv run main.py. One thing carries more weight than any setting: the model reads each function's own Lambda description to decide when to call it, so that description has to say what the function does and which parameters it takes.
Setup effort
Build from source — git clone https://github.com/danilop/mcp2lambda.git
USE CASES
Reaching an internal system without opening it up
Put a Lambda inside the VPC that already talks to the database, and let the model call it by name.
Giving the model a place to run code
Expose a function that executes Python in the Lambda sandbox, for calculations and data processing the model cannot do in its head.
Chaining two lookups into one answer
Discover both functions, then let the model feed the first one's output into the second — the sample pair resolves an email to a customer ID and the ID to customer details.
2 tools
Listed in project docs. Your client may show a different list.
invoke_lambda_functionBEFORE YOU INSTALL
What to know first
Tools you get
2 tools named in the project's documentation. These two are the Generic Mode tools, which the Claude Desktop block below selects with PRE_DISCOVERY=false. In the default Pre-Discovery Mode the server registers each matching Lambda function as its own tool instead, so the count depends on your account.
Requires
- Python 3.12 or later
- uv on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/danilop/mcp2lambda.git
cd mcp2lambda
aws configureAdd the configuration in the Claude Desktop tab below to your Claude Desktop config file
(optional, to get the demo functions) cd sample_functions && sam build && sam deploy
MCP Clients
Claude Desktop
{
"mcpServers": {
"mcp2lambda": {
"command": "uv",
"args": [
"--directory",
"<YOUR_FULL_PATH_TO_MCP2LAMBDA_DIRECTORY>",
"run",
"main.py"
],
"env": {
"PRE_DISCOVERY": "false"
}
}
}
}<YOUR_FULL_PATH_TO_MCP2LAMBDA_DIRECTORY> is the absolute path of the mcp2lambda folder you cloned. PRE_DISCOVERY set to false gives you the two tools this page lists, list_lambda_functions and invoke_lambda_function. Remove it to use the default Pre-Discovery Mode instead, which registers each of your Lambda functions as its own tool. The server uses the AWS credentials you set with aws configure, and by default offers only functions whose names start with mcp2lambda-.