项目简介
serverless-mcp-server 是一个基于 Model Context Protocol (MCP) 的轻量级服务器实现,它被设计为在 AWS Lambda 上以 Serverless 架构运行。该项目旨在提供一个快速、简便的方式来部署 MCP 服务器,从而为大型语言模型 (LLM) 应用提供上下文信息和工具调用能力。它基于 '@modelcontextprotocol/sdk' 和 'middy-mcp' 等库构建,简化了 MCP 服务器的搭建和部署流程。
主要功能点
- 最小化 MCP 服务器配置: 使用 '@modelcontextprotocol/sdk' 快速搭建 MCP 服务器。
- Serverless 部署: 以单个 AWS Lambda 函数形式部署,易于扩展和维护。
- HTTP POST 接口: 通过 Amazon API Gateway 暴露 HTTP POST 接口 '/mcp',方便客户端访问。
- 本地开发支持: 支持使用 serverless-offline 进行本地开发和测试。
- 工具示例: 内置一个简单的 'add' 工具,演示 JSON-RPC 交互方式。
- 灵活部署: 支持切换 API Gateway V1 (REST API) 和 V2 (HTTP API),适应不同需求。
安装步骤
- 安装 Node.js 和 npm: 确保已安装 Node.js v22 或更高版本,以及 npm 包管理器。
- 安装依赖: 克隆仓库到本地后,在项目根目录下运行以下命令安装项目依赖:
npm install - 全局安装 Serverless Framework: 如果尚未安装 Serverless Framework,请全局安装:
或者安装 Open Source Serverless (osls):npm install -g serverlessnpm install -g osls
服务器配置
对于 MCP 客户端,需要配置连接到 serverless-mcp-server 的信息。由于这是一个 HTTP POST 接口的 MCP 服务器,客户端应配置使用 'http-post' 命令连接,并指定 API Gateway 提供的 URL 作为参数。
本地开发配置 (使用 serverless-offline):
{ "serverName": "serverless-mcp-server", "command": "http-post", "args": ["http://localhost:3000/dev/mcp"] }
参数注释:
- 'serverName': 服务器名称,可以自定义。
- 'command': 连接服务器的命令,对于 HTTP POST 接口,应设置为 'http-post'。
- 'args': 命令参数,对于 'http-post' 命令,第一个参数是 MCP 服务器的 HTTP POST 接口 URL。本地开发时,使用 'http://localhost:3000/dev/mcp' (或 'http://localhost:3000/mcp',如果配置了 HTTP API)。
AWS 部署后配置:
部署到 AWS 后,Serverless Framework 会在终端输出 API Gateway 的调用 URL。MCP 客户端的配置应使用该 URL 替换本地开发配置中的 URL。
{ "serverName": "serverless-mcp-server", "command": "http-post", "args": ["<您的API Gateway部署URL>/mcp"] }
参数注释:
- '<您的API Gateway部署URL>': 替换为 Serverless Framework 部署后输出的 API Gateway 调用 URL。
基本使用方法
-
本地启动服务器: 在项目根目录下运行以下命令启动本地服务器 (需要先安装 serverless-offline):
npm sls offline本地 MCP 服务器将运行在 'http://localhost:3000/dev/mcp' (或 'http://localhost:3000/mcp')。
-
使用 curl 测试工具: 可以使用 'curl' 命令发送 JSON-RPC 请求到本地服务器,例如:
-
列出工具:
curl --location 'http://localhost:3000/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://localhost:3000/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 } } }'
-
-
部署到 AWS: 在项目根目录下运行以下命令部署到 AWS (需要配置 AWS 凭证):
sls deploy部署成功后,Serverless Framework 会输出 API Gateway URL,用于 MCP 客户端连接。
信息
分类
开发者工具