middy mcp适配器
](https://www.npmjs.com/package/middy-mcp-adapter) 
用于模型上下文协议(MCP)服务器与AWS Lambda功能集成的Middy中间件。
描述
middy-mcp适配器是一种中间件,可实现AWS Lambda函数和模型上下文协议服务器之间的无缝集成。它提供了一种使用Middy中间件框架在Lambda函数中处理MCP请求和响应的方便方法。它支持使用代理集成从API网关(REST API/v1和HTTP API/v2)发送到AWS Lambda的请求,以及从ALB发送的请求。
安装
npm install middy-mcp-adapter需求
- Node.js>=18.0.0
- Middy>=4.0.0
用法
此中间件可以抛出HTTP异常,因此可以方便地与 @middy/http-error-handler.
基础示例
下面是一个最小Lambda函数处理程序文件的示例。在API网关的POST路由上部署此Lambda作为代理集成,您就可以开始了。
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())使用工具
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)
创建一个Middy中间件,使MCP服务器适应AWS Lambda。
选项
server(必填):McpServer-您的MCP服务器实例
退货
Middy中间件对象 before 和 after 钩子。
运作原理
中间件执行以下操作:
- 钩子之前:初始化MCP StreamableHTTPServerTransport连接
- 请求改编:将API网关事件转换为HTTP IncomingMessage格式
- 响应处理:将HTTP ServerResponse转换回API网关格式
- 钩子之后:处理MCP服务器响应并将其格式化为Lambda格式
错误处理
中间件抛出HTTP错误,这些错误可以被捕获 @middy/http-error-handler:
- 500:传输初始化失败或缺少MCP传输
- 来自的标准HTTP错误代码
http-errors
TypeScript
此包包含TypeScript定义。
import mcpMiddleware, {
type MCPMiddlewareOptions,
type MCPContext
} from 'middy-mcp-adapter'许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请随时打开问题或提交拉取请求。
链接
相关项目
- @中层/核心 -Middy中间件引擎
- @模型上下文协议/sdk -MCP-SDK
- AWS Lambda -AWS Lambda文档
作者
蒂亚戈·瓜蒂埃里-
