About Middy MCP Adapter
Middy MCP Adapter is an MCP server published by tiagoguatierri in the Developer Tools category: mCP server: Middy MCP Adapter.
The repository has 3 stars and 0 forks, with the last commit 10 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/tiagoguatierri/middy-mcp-adapterThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Middy MCP Adapter
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- ✓Tests presentA test suite exists in the repository.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
Releases
README
middy-mcp-adapter
A Middy middleware for Model Context Protocol (MCP) server integration with AWS Lambda functions.
Description
middy-mcp-adapter is a middleware that enables seamless integration between AWS Lambda functions and Model Context Protocol servers. It provides a convenient way to handle MCP requests and responses within your Lambda functions using the Middy middleware framework. It supports requests sent to AWS Lambda from API Gateway (both REST API / v1 and HTTP API / v2) using the Proxy integration, as well as requests sent from an ALB.
Install
npm install middy-mcp-adapter
Requirements
- Node.js >= 18.0.0
- Middy >= 4.0.0
Usage
This middleware can throw HTTP exceptions, so it can be convenient to use it in combination with @middy/http-error-handler.
Basic Example
Hereafter is an example of a minimal Lambda function handler file. Deploy this Lambda as a proxy integration on a POST route of your API Gateway and you're good to go.
import middy from '@middy/core'
import httpErrorHandler from '@middy/http-error-handler'
import mcpMiddleware from 'middy-mcp-adapter'
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
// Create an MCP server
const server = new McpServer({
name: 'Lambda hosted MCP Server',
version: '1.0.0'
})
export const handler = middy()
.use(mcpMiddleware({ server }))
.use(httpErrorHandler())
With Tools
import middy from '@middy/core'
import httpErrorHandler from '@middy/http-error-handler'
import mcpMiddleware from 'middy-mcp-adapter'
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
import {
ListToolsRequestSchema,
CallToolRequestSchema
} from '@modelcontextprotocol/sdk/types.js'
import { z } from 'zod'
const server = new McpServer({
name: 'Lambda hosted MCP Server',
version: '1.0.0'
})
server.registerTool(
'add',
{
title: 'Addition Tool',
description: 'Add two numbers',
inputSchema: { a: z.number(), b: z.number() },
outputSchema: { result: z.number() }
},
async ({ a, b }) => {
const output = { result: a + b }
return {
content: [{ type: 'text', text: JSON.stringify(output) }],
structuredContent: output
}
}
)
server.registerTool(
'multiply',
{
title: 'Multiplication Tool',
description: 'Multiply two numbers',
inputSchema: { a: z.number(), b: z.number() },
outputSchema: { result: z.number() }
},
async ({ a, b }) => {
const output = { result: a * b }
return {
content: [{ type: 'text', text: JSON.stringify(output) }],
structuredContent: output
}
}
)
export const handler = middy()
.use(mcpMiddleware({ server }))
.use(httpErrorHandler())
API
mcpMiddleware(options)
Creates a Middy middleware that adapts an MCP server to AWS Lambda.
Options
server(required):McpServer- Your MCP server instance
Returns
A Middy middleware object with before and after hooks.
How It Works
The middleware performs the following operations:
- Before Hook: Initializes the MCP StreamableHTTPServerTransport connection
- Request Adaptation: Converts API Gateway events to HTTP IncomingMessage format
- Response Handling: Converts HTTP ServerResponse back to API Gateway format
- After Hook: Processes the MCP server response and formats it for Lambda
Error Handling
The middleware throws HTTP errors that can be caught by @middy/http-error-handler:
- 500: Transport initialization failures or missing MCP transport
- Standard HTTP error codes from
http-errors
TypeScript
This package includes TypeScript definitions.
import mcpMiddleware, {
type MCPMiddlewareOptions,
type MCPContext
} from 'middy-mcp-adapter'
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to open an issue or to submit a pull request.
Links
Related Projects
- @middy/core - The Middy middleware engine
- @modelcontextprotocol/sdk - MCP SDK
- AWS Lambda - AWS Lambda Documentation
Author
Tiago Guatierri - GitHub
README fetched from the repository 7 days ago. The original is authoritative.