Spring AI MCP Server 示例项目
CrxusDonts
README
MCP 服务器演示项目
这是一个基于Spring Boot的Model Context Protocol (MCP) 服务器演示项目,提供了计算器、天气查询以及数据模型和API接口工具的功能。
项目概述
本项目是一个简单的MCP服务器实现,使用Spring Boot和WebFlux构建,提供了以下功能:
- 计算器工具 - 可以计算数学表达式
- 天气查询工具 - 可以查询指定城市的实时天气
- 系统信息资源 - 提供系统基础信息
- 数据模型查找工具 - 根据用户描述查找匹配的数据模型
- API接口查找工具 - 根据数据模型查找对应的API接口
- API执行工具 - 根据用户输入构造参数并调用实际接口
技术栈
- Java 17
- Spring Boot
- Spring WebFlux
- Model Context Protocol (MCP)
- Server-Sent Events (SSE)
快速开始
前置条件
- JDK 17 或更高版本
- Maven 3.6 或更高版本
- 和风天气API密钥(用于天气查询功能)
配置
- 克隆项目到本地
- 在
src/main/resources/application.yml
中配置和风天气API密钥
构建与运行
# 编译项目
mvn clean package
# 运行项目
java -jar target/donts-ai-0.0.1-SNAPSHOT.jar
API 端点
SSE 连接
- 端点:
/sse
- 方法: GET
- 描述: 建立SSE连接,用于接收服务器发送的事件
消息发送
- 端点:
/mcp/messages
- 方法: POST
- 描述: 发送消息到MCP服务器
工具功能
计算器工具
计算器工具可以处理各种数学表达式,包括:
- 基本运算(加减乘除)
- 复杂表达式计算
示例:
2 + 2
(3 * 4) / 2
sqrt(16) + 5
天气查询工具
天气查询工具可以获取指定城市的实时天气信息,包括:
- 温度
- 天气状况
- 风向风速
- 湿度等
示例:
北京
shanghai
guangzhou
数据模型和API工具
项目新增了三个相互关联的工具,用于模拟数据模型查找、API接口查找和API执行的流程:
数据模型查找工具
根据用户的描述查找匹配的数据模型,支持以下功能:
- 关键词匹配和相似度计算
- 返回匹配度评分
- 支持详细信息查看
示例:
{
"description": "用户账号",
"maxResults": 3,
"includeDetails": true
}
API接口查找工具
根据数据模型查找对应的API接口,支持以下功能:
- 按操作类型(查询、创建、更新、删除)过滤
- 返回匹配度评分
- 支持详细参数信息查看
示例:
{
"modelId": "model_user",
"operationType": "查询",
"maxResults": 5,
"includeDetails": true
}
API执行工具
根据用户输入构造参数并调用实际接口,支持以下功能:
- 参数验证和类型转换
- 模拟API调用并生成响应
- 支持详细元数据输出
示例:
{
"apiId": "api_user_get",
"parameters": {"userId": "u123456"},
"validateParameters": true,
"detailedResponse": true
}
模拟数据案例
系统预置了三种业务场景的模拟数据:
- 用户模型 - 包含用户基本信息及相关API
- 订单模型 - 包含订单信息及相关API
- 商品模型 - 包含商品信息及相关API
系统架构
项目基于Spring Boot和Model Context Protocol构建,使用Server-Sent Events (SSE) 作为通信机制。主要组件包括:
- MCP服务器 - 处理客户端请求并返回响应
- 工具实现 - 提供具体功能的实现
- 资源配置 - 定义系统资源
- 模拟数据仓库 - 存储和检索模拟数据
- 服务实现 - 实现业务逻辑
贡献指南
欢迎提交问题和改进建议!请遵循以下步骤:
- Fork 本仓库
- 创建您的特性分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到分支 (
git push origin feature/amazing-feature
) - 打开一个 Pull Request
许可证
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。