Spring MCP架构服务

基于Spring AI的MCP Server和Client架构,通过JSON-RPC协议实现双向通信,支持工具注册、列表查询和调用。

  • by jaydenchuljinlee
  • Kotlin
  • 云端部署
  • 更新于
在 GitHub 查看 jaydenchuljinlee/spring-kt-mcp-server

使用说明

🚀 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

客户端在内部执行以下操作:

  1. 服务器的 /mcp 与SSE端点连接
  2. 初始化(initialize)请求
  3. 服务器工具列表(listTools)查询
  4. 必要时 callTool通过运行远程Tool

🔗 服务器→客户端运行顺序

  1. 运行MCP Server

    • /mcp SSE endpoint上升
    • 已加载MCP Tools
  2. 运行MCP Client

    • 初始化到服务器消息(initialize)传输
    • 自动查询工具列表
    • 必要时可调用Tool

📡 MCP通信方式

本项目 基于流的MCP服务器使用:

  • 服务器 /mcp 仅使用单个端点
  • 客户端保持SSE通道,并发送请求/响应
  • 不需要单独的sessionId,与MCP规格完全兼容

📝 主要功能

  • 注册服务器工具
  • 查看客户端工具列表
  • 客户端→服务器工具调用(JSON-RPC)
  • 基于SSE的双向流

▶实施方法

1)运行MCP Server

服务器运行后,如果响应如下:

POST/mcp(初始化) →MCP capabilities和serverInfo响应

2)运行MCP客户端

客户端自动初始化服务器并查看工具列表。