mcpField
🧠
🧠 cdk-serverless-mcp-server

🧠 cdk-serverless-mcp-server

本地服务
github.com/eleva云与基础设施379 周前更新

关于 🧠 cdk-serverless-mcp-server

cdk-serverless-mcp-server 是一个使用 AWS CDK 部署的 MCP 服务示例,运行于 AWS Lambda,并通过 API Gateway 提供 HTTP 接口。它适合用作云端部署的起点,包含一个示例加法工具和 Jest 本地测试。

主要功能

  1. 01基于 AWS CDK 部署
  2. 02由单个 AWS Lambda 函数运行
  3. 03通过 API Gateway 提供 HTTP 接口
  4. 04包含示例 add 工具
  5. 05支持 Jest 本地测试

适用场景

  1. 01搭建云端 MCP 服务骨架
  2. 02通过 HTTP 暴露 MCP 服务
  3. 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

🛠 前置条件

🚀 快速开始

  1. 安装依赖:
npm install
  1. 全局安装 AWS CDK(如果尚未安装):
npm install -g aws-cdk
  1. 使用 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。