项目简介

这是一个基于Apache Dubbo和Spring Boot框架实现的MCP服务器。它旨在将现有的Dubbo服务能力适配到Model Context Protocol (MCP) 规范下,允许大型语言模型(LLM)客户端通过MCP协议发现和调用这些Dubbo服务,将Dubbo应用转变为AI可用的工具集合。

主要功能点

  • Dubbo服务转MCP工具: 自动扫描并根据Dubbo服务的定义(结合OpenAPI规范)生成对应的MCP工具描述。
  • MCP协议支持: 实现基于 Server-Sent Events (SSE) 和 HTTP POST 的 MCP 传输层,处理客户端的JSON-RPC请求和发送通知。
  • 会话管理: 支持MCP客户端与服务器建立和管理会话。
  • 能力声明: 向客户端声明服务器支持的能力(例如工具调用)。
  • 集成现有Dubbo应用: 可集成到现有的Spring Boot/Dubbo应用中,无缝暴露其服务。

安装步骤

  1. 环境准备: 确保已安装 Java 开发环境 (JDK) 和构建工具 (如 Maven 或 Gradle)。需要一个包含Dubbo服务提供者的Spring Boot应用。
  2. 集成项目: 将此仓库的代码作为依赖或模块集成到您的Dubbo Spring Boot应用中。
  3. 配置Dubbo: 确保您的Dubbo应用配置正确,服务已通过例如Triple协议暴露,并且如果使用REST/OpenAPI相关特性,配置也已生效。
  4. 构建: 使用 Maven 或 Gradle 构建您的Spring Boot应用,生成可执行 JAR 文件。
  5. 运行: 运行生成的 JAR 文件启动应用,MCP服务器能力将在应用启动后自动初始化。

服务器配置(供MCP客户端使用)

MCP客户端通常通过启动一个进程来连接MCP服务器。以下是客户端配置中启动此MCP服务器进程的示例(请根据实际情况修改路径和端口):

  • 服务器名称: 'dubbo-mcp-server' (或任何您希望的名称)
  • 启动命令 (command): 'java'
  • 启动参数 (args): '["-jar", "path/to/your/built-application.jar"]' (请替换 '"path/to/your/built-application.jar"' 为您实际构建出的 JAR 文件路径)

重要提示:

  • 此MCP服务器通过网络(SSE over HTTP GET for session init/notifications, HTTP POST for messages)与客户端通信。除了上述进程启动配置,MCP客户端还需要配置服务器的网络地址和端口(例如:'http://localhost:8080'),具体取决于您的Dubbo应用和服务器容器的实际配置。
  • 注意: 仓库代码中,工具的实际执行逻辑目前是桩实现(stub),仅返回一个提示信息。这意味着客户端可以发现并尝试调用工具,但Dubbo服务的实际业务方法目前不会被触发执行。这部分功能需要进一步开发实现。

基本使用方法

  1. 按照上述步骤构建并运行集成了此模块的Dubbo Spring Boot应用。
  2. 配置支持MCP协议的LLM客户端(如VS Code Copilot Chat等)连接到此服务器的启动命令和网络地址。
  3. LLM客户端连接成功后,将能够发现您的Dubbo应用所暴露的服务列表,并将它们视为可用的工具。
  4. 用户在LLM客户端中可以通过自然语言触发工具调用,客户端会将调用请求发送给此MCP服务器。
  5. 服务器接收到请求后,会识别对应的工具(即Dubbo服务),并处理请求(当前版本仅返回桩实现结果,未来版本将调用实际Dubbo服务)。

信息

分类

AI与计算