使用说明
MCP项目-Spring Boot和Python集成
一个全面的模型上下文协议(MCP)实现,具有Spring Boot客户端、Python服务器和Angular前端。该系统展示了基于人工智能的聊天功能,并集成了股票信息、公司数据、文件系统操作和员工管理的工具。
作者:塔杰丁·布勒姆(SDIA大师)
目录
引言
该项目采用多层架构实现了模型上下文协议(MCP):
- Spring Boot MCP客户端:处理AI聊天请求和工具集成
- Python MCP服务器:提供各种工具和服务
- 角形前端:用于用户交互的现代聊天界面
- Spring Boot MCP服务器:其他企业服务
该系统通过工具使用、内存管理和实时聊天功能演示了人工智能推理。
特性
🤖 AI聊天界面
- 与AI助手互动聊天
- 实时思维过程可视化
- 记忆感知对话
- 工具集成以增强功能
🛠️ 可用工具
- 股票信息:实时股票数据检索
- 公司数据:企业信息查找
- 文件系统操作:文件管理功能
- 员工信息:人力资源数据管理
💻 技术特性
- RESTful API架构
- CORS启用的跨源请求
- 跨会话的内存持久性
- 现代响应式UI设计
- 错误处理和验证
🎨 前端功能
- 基于Angular的现代聊天界面
- 思考与反应分离
- 快速入门建议问题
- 加载动画和过渡
- 移动响应式设计
建筑
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Angular │ │ Spring Boot │ │ Python MCP │
│ Frontend │◄──►│ MCP Client │◄──►│ Server │
│ (Port 4200) │ │ (Port 8066) │ │ (Port 8899) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ Spring Boot │
│ MCP Server │
│ (Port 8080) │
└─────────────────┘
安装
先决条件
- Java 17 或以后
- Node.js 18 或以后
- Python 3.8 或以后
- 梅文 (或使用附带的包装)
- Angular命令行界面 (
npm install -g @angular/cli) - 没有 (用于AI模型服务)-从安装 去.ai
克隆存储库
git clone https://github.com/scorpionTaj/mcp-project-spring-python.git
cd mcp-project-spring-python
快速入门指南
要快速演示,请按顺序执行以下步骤:
1.设置Ollama(AI模型)
# Install and start Ollama
ollama serve
# In a new terminal, pull the required model
ollama pull qwen3
2.启动Python MCP服务器
cd mcp-server-python
# Activate the existing virtual environment
.venv\Scripts\activate # On Windows
# source .venv/bin/activate # On macOS/Linux
# Install dependencies if needed
pip install -r requirements.txt
python server.py
3.启动Spring Boot MCP客户端
cd mcp-client
./mvnw spring-boot:run
4.启动Spring Boot MCP服务器(可选)
cd mcp-server
./mvnw spring-boot:run
5.启动Angular前端
cd mcp-frontend
npm install
ng serve
验证
所有服务运行后,您应该看到:
- ✅ Python MCP服务器:
http://localhost:8899 - ✅ Spring Boot MCP客户端:
http://localhost:8066 - ✅ 角前端:
http://localhost:4200 - ✅ Olama人工智能模型:
http://localhost:10000
用法
访问应用程序
- 前端接口: http://localhost:4200
- 后端API: http://localhost:8066
- Swagger用户界面: http://localhost:8066/swagger-ui.html(如果可用)
基本聊天流程
- 打开前端http://localhost:4200
- 使用建议的问题或键入自己的问题
- 观察AI的思维过程和反应
- 探索各种工具和功能
查询示例
"Hello, how are you?"-基本问候语"What companies do you know about?"-公司信息"Tell me about Apple stock"-股票信息"List all employees"-员工数据"What files are available?"-文件系统操作
使用的技术
后端
- 弹簧靴3.x -主要框架
- 春季AI -AI集成
- Spring数据JPA -数据库操作
- H2数据库 -内存数据库
- 梅文 -构建工具
- Java 17+ -程序设计语言
前端
- 角度20.x -前端框架
- TypeScript -类型安全的JavaScript
- RxJS -响应式编程
- CSS3 -现代风格
- HTML5 -标记
Python服务器
- Python 3.x -程序设计语言
- 固定API/瓶子 -Web框架(假定)
- MCP-SDK -模型上下文协议
项目结构
mcp-project-spring-python/
├── mcp-client/ # Spring Boot MCP Client
│ ├── src/main/java/
│ │ └── ma/tajeddine/mcpclient/
│ │ ├── agents/ # AI agents
│ │ └── controllers/ # REST controllers
│ ├── src/main/resources/
│ │ ├── application.properties
│ │ └── mcp-servers.json
│ └── pom.xml
├── mcp-server/ # Spring Boot MCP Server
│ ├── src/main/java/
│ └── pom.xml
├── mcp-server-python/ # Python MCP Server
│ ├── server.py
│ ├── main.py
│ └── pyproject.toml
├── mcp-frontend/ # Angular Frontend
│ ├── src/app/
│ │ ├── app.component.ts
│ │ ├── app.component.html
│ │ └── app.component.css
│ ├── package.json
│ └── angular.json
├── Screenshots/ # Project screenshots
└── README.md
开发设置
配置文件
应用程序属性(Spring Boot)
- 端口: 8066
- MCP服务器URL: http://localhost:8899
- 数据库:内存中的H2
- AI模型:Qwen3途经Ollama
角度配置
- 开发港口: 4200
- API基本URL: http://localhost:8066
- CORS:促进发展
环境变量
# Optional: Set API keys if using external services
export CLAUDE_API_KEY=your_api_key_here
export OLLAMA_BASE_URL=http://localhost:10000
API终点
主聊天端点
- 获取
/chat?query={message}-向AI发送聊天消息
工具端点(通过MCP服务器)
- 股票信息工具
- 公司数据检索
- 文件系统操作
- 员工管理
配置
关键配置文件
mcp-servers.json
MCP服务器连接的配置文件:
{
"servers": {
"server1": {
"url": "http://localhost:8899",
"sse-endpoint": "/sse"
}
}
}
application.properties
关键配置参数:
# Server Configuration
server.port=8066
# MCP Client Configuration
spring.ai.mcp.client.type=sync
spring.ai.mcp.client.sse.connections.server1.url=http://localhost:8899
spring.ai.mcp.client.sse.connections.server1.sse-endpoint=/sse
# AI Model Configuration
spring.ai.ollama.base-url=http://localhost:10000
spring.ai.ollama.chat.model=qwen3
# Database Configuration
spring.datasource.url=jdbc:h2:mem:testdb
spring.h2.console.enabled=true
性能与监控
系统要求
- 记忆:最低4GB RAM,建议8GB
- 中央处理器:建议使用多核处理器
- 存储:2GB可用空间用于模型和依赖项
- 网络:初始设置时稳定的互联网连接
性能指标
- 启动时间:所有服务约2-3分钟
- 响应时间:典型查询<2秒
- 内存使用:所有服务总计约2GB RAM
- 吞吐量:支持约10个并发请求
健康检查
监控服务运行状况:
- 弹簧靴执行器:
http://localhost:8066/actuator/health - Angular开发服务器:
http://localhost:4200 - Python MCP服务器:检查控制台输出“服务器监听端口8899”
故障排除
常见问题
端口冲突
# Check if ports are in use
netstat -an | findstr "4200 8066 8899 10000"
# Kill processes using specific ports (Windows)
taskkill /F /PID <process_id>
Java版本问题
# Check Java version
java -version
# Should show Java 17 or later
# If not, update JAVA_HOME environment variable
Node.js版本问题
# Check Node.js version
node --version
# Should show v18.x or later
# Update Node.js if needed
Ollama没有回应
# Check if Ollama is running
ollama list
# Restart Ollama service
ollama serve
# Pull the required model
ollama pull qwen3
Python虚拟环境问题
# On Windows
cd mcp-server-python
.venv\Scripts\activate
# On macOS/Linux
cd mcp-server-python
source .venv/bin/activate
# Reinstall dependencies
pip install -r requirements.txt
CORS 问题
如果遇到CORS错误:
- 确保Spring Boot MCP客户端在端口8066上运行
- 检查一下
@CrossOrigin(origins = "http://localhost:4200")已正确配置 - 重新启动Spring Boot应用程序
调试模式
启用调试登录 application.properties:
logging.level.ma.tajeddine.mcpclient=DEBUG
logging.level.org.springframework.ai=DEBUG
常见问题解答
一般问题
Q: 我可以使用不同的AI模型吗?
A: 是,修改 application.properties 使用不同Ollama模型的文件:
spring.ai.ollama.chat.model=llama2
# or
spring.ai.ollama.chat.model=mistral
Q: 如何向MCP服务器添加新工具? A: 通过以下方式扩展Python MCP服务器:
- 在中添加新的工具定义
server.py - 在单独的模块中实现工具逻辑
- 在MCP服务器上注册工具
Q: 我可以将其部署到生产环境中吗? A: 是的,但请考虑:
- 使用外部数据库而不是H2
- 配置适当的安全性(身份验证、授权)
- 设置反向代理(nginx、Apache)
- 使用环境变量进行敏感配置
Q: 如何备份聊天记录? A: 目前,聊天记录存储在内存中。为了坚持:
- 在Spring Boot客户端中实现数据库存储
- 添加对话历史记录端点
- 考虑使用Redis进行会话存储
技术问题
Q: 为什么AI的反应很慢? A: 可能的原因:
- Ollama模型加载时间(首次请求)
- MCP服务器的网络延迟
- 复杂的工具操作
- 系统资源不足
Q: 如何自定义前端UI? A: 修改角度组件:
src/app/app.html-模板结构src/app/app.css-造型src/app/app.ts-组件逻辑
Q: 我可以与Claude或GPT而不是Ollama集成吗?
A: 是,取消注释并在中配置 application.properties:
spring.ai.anthropic.api-key=${CLAUDE_API_KEY}
spring.ai.anthropic.chat.options.model=claude-sonnet-4-20250514
演示
快速演示步骤
- 按照《快速入门指南》启动所有服务
- 打开http://localhost:4200
- 尝试以下示例查询:
- “你好,你叫什么名字?”
- “列出所有公司”
- “跟我说说苹果”
- “您可以访问哪些文件?”
- “记住我的名字是约翰”
截图
本节通过视觉演示展示了MCP项目的各种特征和功能。
🖥️ 前端接口
聊天界面测试
Angular前端聊天界面,展示现代UI设计和聊天功能
文件系统访问
前端通过MCP Python服务器演示文件系统操作
使用MCP工具集成列出项目文件
🧠 AI记忆与对话
内存功能
AI在对话中记住用户信息
AI成功从内存中检索存储的用户名
🔧 后端和控制台
MCP客户端控制台
Spring Boot MCP客户端控制台显示系统日志和操作
Python MCP服务器测试
Python MCP服务器运行和处理请求
🏢 公司和股票信息
公司数据检索
苹果公司信息的示例响应
摩洛哥电信公司信息的示例响应
显示系统中所有可用公司的响应
📊 使用Swagger UI进行API测试
公司端点
Swagger UI显示公司列表端点
Swagger UI公司端点详细视图
内存查询
通过Swagger UI测试内存功能
Swagger UI查询演示
Swagger UI查询结果
🧪 API Postman测试
公司运营
邮递员正在测试GetAllCompany端点
邮递员正在测试GetCompanyByName端点
股票信息
邮递员按公司测试库存信息检索
🎯 演示的主要功能
截图显示:
-
前端功能:
- 现代聊天界面
- 实时AI交互
- 文件系统集成
- 响应式设计
-
后端集成:
- MCP客户端-服务器通信
- Python MCP服务器操作
- 控制台日志记录和监控
-
AI记忆系统:
- 对话持久性
- 用户信息召回
- 上下文感知响应
-
工具集成:
- 公司信息查询
- 库存数据检索
- 文件系统操作
- 内存管理
-
API测试:
- Swagger用户界面文档
- 邮递员终点测试
- RESTful API验证
-
多语言支持:
- Java Spring Boot服务
- Python MCP服务器
- 角前端
- 跨平台兼容性
这些屏幕截图展示了MCP项目的全部功能,从面向用户的聊天界面到后端API操作,展示了不同组件和AI供电功能之间的无缝集成。
路线图
计划的功能
- []支持WebSocket的实时聊天
- []用户身份验证和授权
- []对话历史持久性
- []其他工具集成
- []Docker容器化
- []Kubernetes部署清单
- []集成测试
- []性能基准
贡献想法
- 添加新的MCP工具(天气、新闻等)
- 改进UI/UX设计
- 添加语音聊天功能
- 实施聊天室/频道
- 添加导出/导入功能
⭐ 如果您觉得此存储库有用,请将其标记为星号!
由以下材料制成❤️ 塔杰丁·布海姆-SDIA大师