# ydoyun-report-mcp 一个基于 Spring Boot 和 MCP (Model Context Protocol) 的报表服务项目,用于将报表存储过程调用能力暴露给 AI 模型。 ## 技术栈 - Java 17 - Spring Boot 3.2.6 - Spring AI MCP Server WebMVC 1.0.0 - Maven ## 项目结构 ``` ydoyun-report-mcp/ ├── pom.xml ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/junchi/app/mcp/ │ │ │ ├── YdoyunReportMcpApplication.java # 主应用类 │ │ │ ├── config/ # 配置类 │ │ │ │ ├── McpToolConfig.java # MCP 工具配置 │ │ │ │ └── RestTemplateConfig.java # RestTemplate 配置 │ │ │ ├── mcptool/ # MCP 工具服务 │ │ │ │ └── ReportMcpToolsService.java # 报表 MCP 工具服务 │ │ │ └── report/ # 报表服务 │ │ │ ├── ReportService.java # 报表服务实现 │ │ │ └── vo/ # 值对象 │ │ │ ├── ProcedureRequestVO.java # 存储过程请求 VO │ │ │ └── ProcedureResponseVO.java # 存储过程响应 VO │ │ └── resources/ │ │ └── application.yml # 应用配置文件 │ └── test/ # 测试代码目录 └── README.md ``` ## 功能说明 ### 核心功能 1. **MCP 工具服务**: 提供 `executeReportProcedure` 工具方法,供 AI 模型调用 2. **存储过程调用**: 通过 HTTP 调用远程存储过程 API 3. **日期处理**: 支持 `today`、`yesterday`、`tomorrow` 关键字或具体日期格式(yyyy-MM-dd) ### 配置说明 在 `application.yml` 中配置: - **服务端口**: 48090 - **MCP 服务器**: 异步类型,仅启用 tools 能力 - **远程 API**: 配置存储过程执行接口地址和 API 密钥 ## 构建和运行 ### 构建项目 ```bash mvn clean package ``` ### 运行项目 ```bash mvn spring-boot:run ``` 或者运行打包后的 jar: ```bash java -jar target/ydoyun-report-mcp-1.0.0.jar ``` ## API 说明 ### MCP 工具 **executeReportProcedure** 根据存储过程名称、日期和仓库代码调用后端存储过程接口。 参数: - `name` (String): 存储过程名称 - `rq` (String): 日期,支持 `today`/`yesterday`/`tomorrow` 或 `2025-12-01` 格式 - `ckdm` (String): 仓库代码 - `p` (String): 秘钥 返回:执行结果的字符串表示 ## 注意事项 1. 确保远程 API 服务可访问 2. 配置正确的 API 密钥 3. 根据实际需求调整日志级别