项目简介
这是一个基于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应用中,无缝暴露其服务。
安装步骤
- 环境准备: 确保已安装 Java 开发环境 (JDK) 和构建工具 (如 Maven 或 Gradle)。需要一个包含Dubbo服务提供者的Spring Boot应用。
- 集成项目: 将此仓库的代码作为依赖或模块集成到您的Dubbo Spring Boot应用中。
- 配置Dubbo: 确保您的Dubbo应用配置正确,服务已通过例如Triple协议暴露,并且如果使用REST/OpenAPI相关特性,配置也已生效。
- 构建: 使用 Maven 或 Gradle 构建您的Spring Boot应用,生成可执行 JAR 文件。
- 运行: 运行生成的 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服务的实际业务方法目前不会被触发执行。这部分功能需要进一步开发实现。
基本使用方法
- 按照上述步骤构建并运行集成了此模块的Dubbo Spring Boot应用。
- 配置支持MCP协议的LLM客户端(如VS Code Copilot Chat等)连接到此服务器的启动命令和网络地址。
- LLM客户端连接成功后,将能够发现您的Dubbo应用所暴露的服务列表,并将它们视为可用的工具。
- 用户在LLM客户端中可以通过自然语言触发工具调用,客户端会将调用请求发送给此MCP服务器。
- 服务器接收到请求后,会识别对应的工具(即Dubbo服务),并处理请求(当前版本仅返回桩实现结果,未来版本将调用实际Dubbo服务)。
信息
分类
AI与计算