使用说明
使用Spring AI、MCP、Python和NodeJS的聊天机器人应用程序
该项目使用多模式聊天协议(MCP)和不同技术实现了聊天机器人应用程序:
- 主MCP服务器的Spring AI(SSE模式)
- stdio模式下MCP服务器的NodeJS
- stdio模式下MCP服务器的Python
- 用于不同服务器集成的Java Spring Boot客户端
- 角型浇注前端
项目建筑
该项目由几个相互通信的组件组成:
- Spring MCP服务器 :使用Spring Boot和Spring AI在Java中实现的MCP服务器
- Node.js MCP服务器 :使用Node.js(stdio模式)在JavaScript中实现的MCP服务器
- Python MCP服务器 :用Python实现的MCP服务器(stdio模式)
- MCP客户端 :可以与不同MCP服务器通信的Java Spring Boot客户端
- MCP客户端用户界面 :与MCP客户端交互的Angular用户界面
项目结构
Project IA/
├── spring-mcp-server/ # Serveur MCP Spring AI (SSE)
│ ├── src/ # Code source du serveur
│ └── postman/ # Collection Postman pour tester le serveur
├── node-mcp-server/ # Serveur MCP NodeJS (STDIO)
│ ├── index.js # Point d'entrée du serveur
│ └── .env.example # Exemple de configuration des clés API
├── python-mcp-server/ # Serveur MCP Python (STDIO)
│ ├── mcp_server.py # Point d'entrée du serveur
│ └── .env.example # Exemple de configuration des clés API
├── mcp-client/ # Client MCP avec Spring AI, Llama3.2, Claude et OpenAI
│ └── src/ # Code source du client
└── mcp-client-ui/ # Interface utilisateur Angular
└── src/ # Code source de l'interface utilisateur
MCP协议
多模式聊天协议(MCP)是聊天机器人和人工智能助手的通信协议,允许在客户端和服务器之间交换文本和多模式消息(图像、音频等)。
主要特点:
- 请求和响应的JSON格式
- 支持多模式消息(文本、图像等)
- 实时响应的流媒体支持
- 消息和请求的可扩展元数据
项目组成部分
Spring MCP服务器
使用Spring Boot在Java中实现的MCP服务器。它公开了一个REST API来接收MCP请求并返回响应。
- 技术 :Java、Spring Boot、Spring AI
- 断开通信模式 :HTTP/SSE(服务器发送事件)
Node.js MCP服务器
使用Node.js在JavaScript中实现的MCP服务器。它通过STDIO(标准输入/输出)进行通信。
- 技术 :JavaScript、Node.js、OpenAI API
- 断开通信模式 :STDIO
Python MCP服务器
用Python实现的MCP服务器。它通过STDIO(标准输入/输出)进行通信。
- 技术 :Python,OpenAI API
- 断开通信模式 :STDIO
MCP客户端
可以与不同MCP服务器通信的Java Spring Boot客户端。它公开了一个REST API来接收请求并将其转发到适当的MCP服务器。
- 技术 :Java、Spring Boot、Spring Webflux
- 功能 :
- 与MCP Spring服务器的通信(HTTP/SSE)
- 与MCP服务器Node.js和Python(stdio)通信
- 用于接收请求的REST API
- 文档切换器
MCP客户端用户界面
与MCP客户端交互的Angular用户界面。它允许您选择MCP服务器并发送消息。
- 技术 :TypeScript、Angular、Bootstrap
- 功能 :
- 界面去聊天
- MCP服务器的选择
- 支持流媒体
- 显示服务器状态
安装和执行步骤
- 创建和测试Spring AI MCP服务器
- 使用Postman测试服务器
- 使用以下方式创建MCP客户端:
- MCP Spring(SSE)服务器集成
- NodeJS MCP服务器集成(stdio)
- Python MCP服务器集成(stdio)
- 创建Angular前端
安装和启动
Spring MCP服务器
cd spring-mcp-server
./mvnw spring-boot:run
Node.js MCP服务器
cd node-mcp-server
npm install
# Le serveur sera démarré par le client MCP
Python MCP服务器
cd python-mcp-server
pip install -r requirements.txt
# Le serveur sera démarré par le client MCP
MCP客户端
cd mcp-client
./mvnw spring-boot:run
MCP客户端用户界面
cd mcp-client-ui
npm install
ng serve
访问 http://localhost:4200 使用户界面使用户。
API密钥Claude
CLAUDE_API_KEY=sk-ant-api03-YI3togU6PoB9qKpNbqkf3MPKpP90zgv9tqsdfqwd7zttFgeDDXedA3RvoY1oAlPuUApM_71gS7rb9t1VL3Ed6w-EpC2VAAA
文档
MCP客户端的Swagger文档可在 http://localhost:8080/swagger-ui.html.