🚀 Spring MCP架构(服务器和客户端)
该项目基于Spring AI MCP服务器哇 MCP客户端啊 配置为通过基于JSON-RPC的协议进行相互通信。
______________________________________________________________________
📦 项目结构
root
├── server # MCP Server (Tool 제공)
└── client # MCP Client (Tool 소비자) ______________________________________________________________________
🧩 MCP服务器
使用Spring AI的MCP Server Starter配置服务器。
服务器具有以下角色:
- 将MCP Tool暴露在外部
- 基于JSON-RPC的
/mcp提供SSE端点 - 可以在客户端查看工具列表和调用工具
服务器必须 必须在MCP Client之前运行。
______________________________________________________________________
🧩 MCP客户端
客户端基于Spring AI MCP Client Starter驱动:
- 尝试在启动应用程序时连接到MCP服务器
initialize执行握手- 自动查看服务器上的工具列表
- 提供直接调用Tool的API
客户端在内部执行以下操作:
- 服务器的
/mcp与SSE端点连接 - 初始化(
initialize)请求 - 服务器工具列表(
listTools)查询 - 必要时
callTool通过运行远程Tool
______________________________________________________________________
🔗 服务器→客户端运行顺序
- 运行MCP Server
- /mcp SSE endpoint上升 - 已加载MCP Tools
- 运行MCP Client
- 初始化到服务器消息(initialize)传输 - 自动查询工具列表 - 必要时可调用Tool
______________________________________________________________________
📡 MCP通信方式
本项目 基于流的MCP服务器使用:
- 服务器
/mcp仅使用单个端点 - 客户端保持SSE通道,并发送请求/响应
- 不需要单独的sessionId,与MCP规格完全兼容
______________________________________________________________________
📝 主要功能
- 注册服务器工具
- 查看客户端工具列表
- 客户端→服务器工具调用(JSON-RPC)
- 基于SSE的双向流
______________________________________________________________________
▶实施方法
1)运行MCP Server
服务器运行后,如果响应如下:
POST/mcp(初始化) →MCP capabilities和serverInfo响应
2)运行MCP客户端
客户端自动初始化服务器并查看工具列表。
