# SpringAI-MCP-RAG **Repository Path**: 6669999/spring-ai-mcp-rag ## Basic Information - **Project Name**: SpringAI-MCP-RAG - **Description**: springai + mcp + rag - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2026-01-31 - **Last Updated**: 2026-01-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 该项目旨在提供一个基于 MCP 协议的客户端和服务端实现,支持多种功能,包括聊天、互联网搜索、产品管理、邮件发送等。客户端和服务端基于 Spring Boot 框架开发,具备良好的扩展性和可维护性。 ## 功能特性 - **聊天功能**:支持普通聊天和流式聊天。 - - **SSE 实时通信**:通过 Server-Sent Events(SSE)实现服务端与客户端的实时通信。 - **互联网搜索**:集成 SearXNG 搜索引擎,实现互联网信息检索。 - **RAG 搜索**:支持基于文档上传的检索增强生成(RAG)功能。 - **邮件功能**:支持邮件发送和邮箱信息查询。 - **产品管理**:支持产品信息的创建、查询、修改和删除。 ## 技术栈 - **后端**:Spring Boot、Java 21、Maven - **前端**:HTML、JavaScript - **数据库**:MyBatis、MySQL(或其他兼容数据库) - **其他**:Redis(用于向量存储)、SearXNG(互联网搜索)、RAG(检索增强生成) ## 安装与部署 ### 1. 环境准备 - JDK 17 或更高版本 - Maven 3.8.x - MySQL8 数据库 - Redis - SearXNG 搜索引擎(可选) ### 2. 项目构建 ```bash mvn clean install ``` ### 3. 配置文件 - 修改 `mcp-client/src/main/resources/application.yml` 和 `mcp-server/src/main/resources/application.yml` 配置数据库、Redis、邮件等参数。 ### 4. 启动服务 #### 启动客户端 ```bash cd mcp-client mvn spring-boot:run ``` #### 启动服务端 ```bash cd mcp-server mvn spring-boot:run ``` ## 使用说明 ### 聊天功能 - **普通聊天**:访问 `/chat/doChat` 接口,传入 `username` 和 `message`。 - **流式聊天**:访问 `/chat/stream` 接口,传入 `prompt`。 ### 互联网搜索 - 使用 `/internet/search` 接口,传入 `username` 和 `message`,系统将调用 SearXNG 进行搜索并返回结果。 ### RAG 搜索 - **上传文档**:访问 `/rag/upload` 接口,上传文档文件。 - **搜索文档**:访问 `/rag/search` 接口,传入 `username` 和 `message`,系统将基于上传的文档进行检索。 ### SSE 实时通信 - **建立连接**:访问 `/sse/connect` 接口,传入 `userId`。 - **发送消息**:访问 `/sse/sendMsg` 接口,传入 `userId` 和 `message`。 ### 产品管理 - **创建产品**:调用 `ProductTool` 的 `createNewProduct` 方法。 - **查询产品**:调用 `ProductTool` 的 `queryProductList` 方法。 - **修改产品**:调用 `ProductTool` 的 `modifyProductById` 方法。 - **删除产品**:调用 `ProductTool` 的 `deleteProductById` 方法。 ### 邮件功能 - **发送邮件**:调用 `EmailTool` 的 `sendEmailMessage` 方法,传入收件人邮箱、标题和内容。 - **查询邮箱**:调用 `EmailTool` 的 `getMyEmailMessage` 方法。 ## 贡献指南 欢迎贡献代码!请遵循以下步骤: 1. Fork 项目 2. 创建新分支 (`git checkout -b feature/new-feature`) 3. 提交更改 (`git commit -am 'Add some feature'`) 4. 推送分支 (`git push origin feature/new-feature`) 5. 创建 Pull Request ## 许可证 本项目采用 MIT 许可证。详情请查看 [LICENSE](LICENSE) 文件。