项目简介
MCP Facade Generator 是一个用于简化 MCP 服务器开发的工具,它通过注解处理器自动生成服务接口的门面 (Facade) 代码。开发者只需在现有的 Spring 服务类上添加少量注解,即可快速将其转换为符合 MCP 协议的服务接口,无需手动编写大量的 boilerplate 代码。通过该工具,可以方便地将现有的业务逻辑快速接入到 MCP 服务器中,降低开发和维护成本。
主要功能点
- 自动生成 MCP 服务接口门面代码:通过编译时注解处理,自动生成符合 MCP 协议的 Facade 类,减少手动编写代码的工作量。
- 支持 Spring Boot 项目,快速集成:无缝集成到 Spring Boot 项目中,利用 Maven 依赖和插件简化配置。
- 基于注解驱动,配置简单:使用简洁的注解 ('@MCPService', '@MCPMethod') 标记需要生成 Facade 的服务类和方法,配置简单直观。
- 生成示例 Demo 项目,快速上手:支持一键生成包含 Spring AI MCP 配置的 Demo 项目,方便用户快速了解和使用 MCP 服务器。
安装步骤
-
引入 Maven 依赖和编译插件
在您的 Spring Boot 项目的 'pom.xml' 文件中,添加 'mcp-facade-generator' 依赖和 Maven 编译插件配置:
<dependencies> <!-- MCP Facade Generator --> <dependency> <groupId>com.unionhole</groupId> <artifactId>mcp-facade-generator</artifactId> <version>1.0.1</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <annotationProcessorPaths> <path> <groupId>com.unionhole</groupId> <artifactId>mcp-facade-generator</artifactId> <version>1.0.1</version> </path> </annotationProcessorPaths> </configuration> </plugin> </plugins> </build> -
标记 Spring Service 类
在您希望暴露为 MCP 服务的 Spring Service 类上添加 '@MCPService' 注解,并指定生成的 Facade 类的包名(可选):
import com.unionhole.mcp.annotation.MCPService; import org.springframework.stereotype.Service; @MCPService(packageName = "com.example.demo.mcp") // 指定 Facade 类生成的包名 @Service public class WeatherService { // ... } -
标记需要暴露的方法
在 Service 类中,使用 '@MCPMethod' 注解标记需要暴露为 MCP 工具的方法(可选)。如果不添加此注解,默认所有 public 方法都会被生成到 Facade 中。您可以通过 'description' 属性为方法添加描述信息,这将用于生成 MCP 工具的描述:
import com.unionhole.mcp.annotation.MCPMethod; public class WeatherService { /** * 获取城市天气信息 * @param cityName 城市名称 * @return 天气信息 */ @MCPMethod(description = "获取指定城市的天气信息") // 添加方法描述 public String getWeather(String cityName) { // ... } } -
编译项目
使用 Maven 编译您的项目 ('mvn compile'),MCP Facade 代码将自动生成在您指定的包目录下。
-
(可选)生成 Demo 项目
您可以通过配置 Maven 编译参数或 Spring Boot 配置文件启用 Demo 项目生成,快速创建一个可运行的 MCP 服务器示例项目。详细配置方法请参考仓库 README 文档。
服务器配置 (MCP 客户端配置)
MCP 客户端需要配置连接的 MCP 服务器信息。以下是一个示例配置,用于连接通过 'mcp-facade-generator' 生成的 Demo 项目启动的 MCP 服务器:
{ "serverName": "mcp-demo-service", // MCP 服务器名称 (在 application.properties 中配置) "command": "java", // 启动命令 (假设已配置好 Java 环境) "args": [ // 启动参数 "-jar", "mcp-demo-launcher.jar" // Demo 项目的 JAR 文件名 (根据实际情况修改) ] }
注释:上述配置假设 MCP 服务器以 Spring Boot JAR 包形式运行,并监听默认端口 8080。实际配置可能需要根据 Demo 项目的 'application.properties' 和打包方式进行调整。
基本使用方法
-
启动 MCP 服务器
启动您生成的 Demo 项目或者集成了 Facade 代码的 MCP 服务器项目。
-
配置 MCP 客户端
在 MCP 客户端中,配置上述服务器连接信息。
-
连接和调用工具
使用 MCP 客户端连接到服务器,并调用服务器暴露的工具 (即您在 Service 类中定义并生成到 Facade 中的方法)。
信息
分类
开发者工具