使用说明
项目简介
本项目是一个运行在 AWS Lambda 上的简易 MCP 服务器原型,无需额外的桥接组件或自定义传输层。它利用 MCP 协议 v2025-03-26 版本引入的 Streamable HTTP 传输协议,实现了在 AWS Lambda 和 Amazon API Gateway 上原生运行 MCP 服务器。
主要功能点
- 工具注册与执行: 允许 MCP 客户端调用服务器端注册的工具,例如示例中的 'ping' 工具。
- Streamable HTTP 传输: 使用高效的 Streamable HTTP 协议与客户端通信。
- Serverless 部署: 基于 AWS Lambda 和 API Gateway 部署,易于扩展和管理。
安装步骤
- 安装 AWS CLI 和 Terraform: 确保已安装 AWS CLI 和 Terraform。
- 克隆仓库: 将仓库克隆到本地。
- 安装依赖: 进入 'src' 目录并安装 Node.js 依赖。
cd src npm install cd .. - 部署服务器: 进入 'terraform' 目录,初始化 Terraform 并部署 AWS 基础设施。
cd terraform terraform init terraform plan terraform apply - 获取服务器端点: 部署完成后,从 Terraform 输出中获取 MCP 服务器的端点 URL,并将其设置为环境变量 'SIMPLE_MCP_SERVER_ENDPOINT'。
注意: API Gateway 端点可能需要几秒钟才能生效。export SIMPLE_MCP_SERVER_ENDPOINT=$(terraform output --raw endpoint_url) cd ..
服务器配置
对于 MCP 客户端,配置连接到此 MCP 服务器,您需要提供服务器的端点 URL 和传输协议信息。以下是一个 JSON 格式的配置示例,展示了客户端如何配置连接到此 Lambda MCP 服务器:
{ "serverName": "lambda-mcp-server", "transport": "streamable-http", "endpointUrl": "<YOUR_API_GATEWAY_ENDPOINT>" }
- 'serverName': 服务器名称,可以自定义。
- 'transport': 传输协议,这里固定为 '"streamable-http"'。
- 'endpointUrl': 重要,替换为在安装步骤中获取的 API Gateway 端点 URL。
基本使用方法
- 运行客户端: 在项目根目录下,运行 'client.js' 客户端示例。
node src/client.js - 观察输出: 客户端会连接到 MCP 服务器,列出可用工具并调用 'ping' 工具,然后打印服务器的响应。
> node client.js > listTools response: { tools: [ { name: 'ping', inputSchema: [Object] } ] } > callTool:ping response: { content: [ { type: 'text', text: 'pong' } ] }
这个简单的客户端示例展示了如何与部署在 AWS Lambda 上的 MCP 服务器进行交互,列出工具和调用工具。您可以基于此示例,开发更复杂的 MCP 客户端应用。
信息
分类
开发者工具