使用说明

项目简介

本项目 'mcp-gateway-example' 是一个基于 Spring Cloud Gateway 构建的 Model Context Protocol (MCP) 服务器示例。它演示了如何使用 Spring Cloud 生态技术栈来实现 MCP 网关,从而为大型语言模型 (LLM) 应用提供上下文信息和功能扩展能力。该项目包含服务端 ('mcp-server') 和客户端 ('mcp-client') 示例,以及一个简单的 RESTful API 提供者 ('mcp-restful') 用于演示工具功能。

主要功能点

  • 工具 (Tools) 注册与执行: 通过解析 RESTful API 文档(如 Swagger/OpenAPI),自动注册 RESTful 接口为 MCP 工具,允许 LLM 客户端通过 MCP 协议调用这些外部功能。示例中的 'mcp-restful' 模块提供了一些简单的 RESTful API 接口(如获取时间和天气信息)作为工具示例。
  • 资源 (Resources) 管理 (概念演示): 虽然示例中没有显式的资源管理功能,但 RESTful API 可以被视为资源的提供者,MCP 网关作为代理,为 LLM 应用提供数据访问能力。
  • Prompt 模板 (Prompts) 支持 (未明确实现): 仓库代码中没有直接体现 Prompt 模板功能,但项目架构具备扩展 Prompt 模板管理和渲染的潜力。
  • 基于 Spring Cloud Gateway: 利用 Spring Cloud Gateway 的强大路由和网关能力,实现 MCP 服务器的功能,并易于扩展和集成到微服务架构中。
  • SSE 协议支持: 使用 Server-Sent Events (SSE) 作为 MCP 服务器与客户端之间的通信协议,实现实时的双向通信。

安装步骤

  1. 安装并配置 Nacos:

    • 下载 Nacos Server (推荐 2.4.2 版本)。
    • 初始化 Nacos 的 MySQL 数据库表('conf/mysql-schema.sql')。
    • 修改 Nacos 配置文件 ('conf/application.properties'),配置数据库连接信息、开启认证等,具体配置参考 'README.md' 中的 "配置nacos" 部分。
    • 启动 Nacos 服务器。
  2. 设置服务端验证 Key 和默认 Token:

    • 修改 Nacos 配置文件 ('conf/application.properties'),设置服务端验证 key 和默认 token,用于 MCP 客户端连接时的身份验证,具体配置参考 'README.md' 中的 "设置服务端验证 key" 和 "设置默认 token" 部分。
  3. 启动 'mcp-restful' 服务:

    • 进入 'mcp-restful' 目录。
    • 使用 Maven 或 IDE 运行 'RestfulApplication.java'。
    • 启动成功后,'mcp-restful' 服务将在 'http://localhost:18086' 端口提供 RESTful API 接口。
  4. 启动 'mcp-server' 服务:

    • 进入 'mcp-server' 目录。
    • 使用 Maven 或 IDE 运行 'GatewayApplication.java'。
    • 启动成功后,'mcp-server' 服务(MCP 网关)将在 'http://localhost:18085' 端口启动,并通过 SSE 协议提供 MCP 服务。

服务器配置 (MCP 客户端)

MCP 客户端需要配置连接 MCP 服务器的信息。以下是一个 JSON 格式的配置示例,用于配置连接到本示例 'mcp-server' 的 SSE 服务端点:

{
  "servers": [
    {
      "name": "mcp-gateway",
      "command": "sse",
      "args": {
        "url": "http://localhost:18085/gateway/sse",  // MCP服务器 SSE 端点 URL,请根据实际部署修改
        "headers": {                                   // (可选) 自定义请求头,例如用于身份验证
          "Authorization": "Bearer your_token"
        }
      }
    }
  ]
}

配置参数说明:

  • 'name': 服务器名称,客户端用于标识不同的 MCP 服务器连接。
  • 'command': 连接服务器的命令,对于 SSE 协议,设置为 '"sse"'。
  • 'args': 连接参数,是一个 JSON 对象,包含以下字段:
    • 'url': 必填。MCP 服务器 SSE 服务端点的完整 URL 地址。请根据 'mcp-server' 实际部署的地址进行修改。
    • 'headers': 可选。一个 JSON 对象,用于设置 HTTP 请求头。例如,如果 MCP 服务器需要身份验证,可以在 'headers' 中添加 'Authorization' 字段,并设置相应的 Token。

基本使用方法

  1. 启动服务: 确保 Nacos, 'mcp-restful', 和 'mcp-server' 服务都已成功启动。
  2. 配置 MCP 客户端: 将上述服务器配置 JSON 添加到 MCP 客户端的配置文件中。
  3. 连接 MCP 服务器: 启动 MCP 客户端,客户端将根据配置连接到 'mcp-server' 的 SSE 端点。
  4. 使用工具: 通过 MCP 客户端向 MCP 服务器发送请求,例如使用自然语言指令调用注册的 RESTful 工具。例如,客户端可以发送请求调用 'getWeatherForecastByLocation' 工具来获取天气信息,或者调用 'getCiteTimeMethod' 工具来获取指定时区的时间。
  5. 查看工具接口文档: 可以通过访问 'http://localhost:18086/swagger-ui/index.html' 查看 'mcp-restful' 提供的 RESTful API 工具接口文档,了解可用的工具及其参数。

注意: 本示例主要用于演示 MCP 网关的基本架构和工具注册功能。实际应用中,可能需要根据具体需求扩展资源管理、Prompt 模板管理、更完善的安全性控制以及更丰富的工具集。

信息

分类

网页与API