使用说明

项目简介

本项目是一个运行在 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 部署,易于扩展和管理。

安装步骤

  1. 安装 AWS CLI 和 Terraform: 确保已安装 AWS CLI 和 Terraform。
  2. 克隆仓库: 将仓库克隆到本地。
  3. 安装依赖: 进入 'src' 目录并安装 Node.js 依赖。
    cd src
    npm install
    cd ..
  4. 部署服务器: 进入 'terraform' 目录,初始化 Terraform 并部署 AWS 基础设施。
    cd terraform
    terraform init
    terraform plan
    terraform apply
  5. 获取服务器端点: 部署完成后,从 Terraform 输出中获取 MCP 服务器的端点 URL,并将其设置为环境变量 'SIMPLE_MCP_SERVER_ENDPOINT'。
    export SIMPLE_MCP_SERVER_ENDPOINT=$(terraform output --raw endpoint_url)
    cd ..
    注意: API Gateway 端点可能需要几秒钟才能生效。

服务器配置

对于 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。

基本使用方法

  1. 运行客户端: 在项目根目录下,运行 'client.js' 客户端示例。
    node src/client.js
  2. 观察输出: 客户端会连接到 MCP 服务器,列出可用工具并调用 'ping' 工具,然后打印服务器的响应。
    > node client.js
    > listTools response:  { tools: [ { name: 'ping', inputSchema: [Object] } ] }
    > callTool:ping response:  { content: [ { type: 'text', text: 'pong' } ] }

这个简单的客户端示例展示了如何与部署在 AWS Lambda 上的 MCP 服务器进行交互,列出工具和调用工具。您可以基于此示例,开发更复杂的 MCP 客户端应用。

信息

分类

开发者工具