关于 🧠 cdk-serverless-mcp-server
cdk-serverless-mcp-server 是一个使用 AWS CDK 部署的 MCP 服务示例,运行于 AWS Lambda,并通过 API Gateway 提供 HTTP 接口。它适合用作云端部署的起点,包含一个示例加法工具和 Jest 本地测试。
主要功能
- 01基于 AWS CDK 部署
- 02由单个 AWS Lambda 函数运行
- 03通过 API Gateway 提供 HTTP 接口
- 04包含示例 add 工具
- 05支持 Jest 本地测试
适用场景
- 01搭建云端 MCP 服务骨架
- 02通过 HTTP 暴露 MCP 服务
- 03本地测试 JSON-RPC 工具交互
MCP 相关
该项目提供部署在 AWS Lambda 上的 MCP 服务,并在 API Gateway 的 /mcp 路径接收 HTTP POST 请求。示例服务公开一个 add 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🧠 cdk-serverless-mcp-server
一个极简的模型上下文协议(MCP)服务,部署在 AWS Lambda 上,并通过 Amazon API Gateway 对外提供服务,使用 AWS CDK 部署。 此项目骨架基于 Frédéric Barthelet 的优秀成果:他在此仓库中开发了一个 middy 中间件,用于将模型上下文协议(MCP)服务集成到 AWS Lambda 函数中。
长话短说
🛠 功能
- 🪄 使用 @modelcontextprotocol/sdk 搭建极简 MCP 服务
- 🚀 作为单个 AWS Lambda 函数部署
- 🌐 通过 API Gateway 在 /mcp 提供 HTTP POST 端点
- 🔄 支持使用 jest 进行本地开发测试
- 🧪 包含一个简单的示例工具(add),支持 JSON-RPC 交互
📦 项目结构
cdk-serverless-mcp-server/
├── __tests__/ # Jest tests
├── bin/ # CDK entry point
├── cdk-serverless-mcp-server.ts # CDK app
├── lib/ # CDK stack
│ └── cdk-serverless-mcp-server-stack.ts # CDK stack
├── src/ # Source code
│ └── index.mjs # MCP server handler
├── .gitignore # Git ignore file
├── cdk.json # CDK Project config
├── package.json # Project dependencies
├── package-lock.json # Project lock file
├── README.md # This documentation file
🛠 前置条件
- Node.js v22+
- AWS CDK v2+
🚀 快速开始
- 安装依赖:
npm install
- 全局安装 AWS CDK(如果尚未安装):
npm install -g aws-cdk
- 使用 jest 在本地测试
npm run test
🧬 代码说明
此代码基于 Frédéric Barthelet 的优秀成果:他在此仓库中开发了一个 middy 中间件,用于将模型上下文协议(MCP)服务集成到 AWS Lambda 函数中。
src/index.js
import middy from "@middy/core";
import httpErrorHandler from "@middy/http-error-handler";
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
import mcpMiddleware from "middy-mcp";
const server = new McpServer({
name: "Lambda hosted MCP Server",
version: "1.0.0",
});
server.tool("add", { a: z.number(), b: z.number() }, async ({ a, b }) => ({
content: [{ type: "text", text: String(a + b) }],
}));
export const handler = middy()
.use(mcpMiddleware({ server }))
.use(httpErrorHandler());
📡 部署到 AWS
只需运行:
npm run layer-dependencies-install # install dependencies for the layer
然后部署堆栈:
cdk bootstrap
cdk deploy
部署完成后,MCP 服务将在命令输出的 URL 上运行。
🧪 部署完成后,使用 curl 请求进行测试
列出工具
curl --location 'http://your-endpoint/dev/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json' \
--header 'jsonrpc: 2.0' \
--data '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'
➕ 使用 add 工具
curl --location 'http://your-endpoint/dev/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json' \
--header 'jsonrpc: 2.0' \
--data '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "add",
"arguments": {
"a": 5,
"b": 3
}
}
}'
📘 许可证
MIT — 欢迎分叉、修改并部署你自己的版本!
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。