MCP服务器部署工具

一个基于AWS Lambda和API Gateway的简单MCP服务器部署工具,支持本地开发和测试。

  • by eleva
  • JavaScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 eleva/cdk-serverless-mcp-server

使用说明

🧠 cdk无服务器mcp服务器

超级简单的模型上下文协议(MCP)服务器部署在AWS Lambda上,并通过亚马逊API网关公开,与AWS CDK一起部署。 这个骨架是基于 Frédéric Barthelet:开发了一个中间件,用于模型上下文协议(MCP)服务器与AWS Lambda功能的集成 此回购

长话短说

🛠 特性

  • 🪄 使用@modelcontextprotocol/sdk进行最低限度的MCP服务器设置
  • 🚀 作为单个AWS Lambda函数部署
  • 🌐 通过位于/mcp的API网关公开的HTTP POST端点
  • 🔄 使用jest支持本地开发测试
  • 🧪 包括一个具有JSON-RPC交互的简单示例工具(add)

📦 项目结构

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:开发了一个中间件,用于模型上下文协议(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
}'

➕ 使用添加工具

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
    }
  }
}'

📘 许可证

麻省理工学院——请随意分叉、调整和部署您自己的版本!