语言技术
Java、Docker、Spring、Mybatis、Redis系统类型
Web行业分类
人工智能、企业服务开源地址
https://github.com/AgintBuilder/ZmAgint授权协议
MIT许可演示地址
http://39.107.77.114/
近年来,随着 Claude、ChatGPT 等大语言模型的普及,用户越来越习惯通过自然语言对话来完成复杂任务。然而,大模型存在两个天然短板:一是无法获取实时数据,二是无法执行外部操作。
在投资领域,用户常常需要查询实时股价、分析历史异动、生成研报并邮件推送。传统的解决方案是开发一个独立的 Web 管理后台,用户需要手动登录、筛选数据、复制结果、再手动发送。这种割裂的体验远不如"直接和 AI 对话"来得高效。
基于这个痛点,我立项开发了这个基于 MCP 协议的智能股票分析系统。核心思路是:把后端的股票数据查询能力,通过标准化的 MCP 协议暴露给大模型,让用户能用自然语言直接完成"查询 → 分析 → 邮件推送"的完整流程。这不仅提升了用户体验,更重要的是探索了 AI 工程化落地的技术路径——即如何让任何 AI 助手都能无缝接入自定义业务系统。
本项目是一个集成了美股新闻监控、A股实时价格监控和 AI 智能分析的综合系统,采用多模块 Maven 架构,核心功能模块如下:
美股新闻监控模块:通过定时任务每分钟自动抓取 Stock Titan 网站的 RSS 订阅源,解析美股异动新闻,包括股票代码、标题、发布时间(GMT/北京时间)、标签(新高、财报、评级调整等)等信息,并自动推送至钉钉、Telegram、微信等多渠道。
A股实时价格监控模块:基于新浪财经免费 API,支持配置多只股票的价格阈值监控(默认涨跌幅超过 5% 触发告警)。系统内置交易时间判断逻辑,仅在周一至周五的 9:30-11:30 和 13:00-15:00 执行监控,并利用 Redis 缓存机制防止同一交易日内重复推送。
MCP AI 集成模块(核心亮点):这是本项目的技术创新点。我基于 Spring AI MCP Server 开发了一个独立的 AI 工具服务(端口 7070),暴露了多个标准化工具供大模型调用,包括按代码查询股票、按日期范围筛选、统计异动超阈值股票、按关键词搜索、邮件发送、日期转换等。
智能告警与通知模块:支持钉钉机器人、Telegram Bot、微信机器人(Windows 平台 wxauto)三种推送渠道,具备消息拆分、加签验证、Markdown 格式化等完整功能,确保告警信息及时、可靠地送达用户。
我负责整个项目的技术架构设计与核心功能开发,采用了 Java 21 + Spring Boot 4.0.0 + MyBatis-Plus 3.5.14 技术栈,MySQL 8.0 作为数据存储,Redis 用于去重缓存。
在架构设计上,我将项目拆分为三个独立模块:stock-common 公共模块包含实体类、Mapper 接口、服务接口和配置;stock-web 主应用模块负责 RSS 抓取、A 股价格监控、数据持久化和消息推送;stock-mcp AI 服务模块独立部署,通过 MCP 协议将后端能力暴露给大模型。这种多模块架构实现了业务逻辑的解耦,各模块可独立开发、测试和部署。
项目的技术亮点集中在 MCP AI 集成部分。我使用了 Spring AI 框架提供的 @Tool 注解来声明工具方法,框架会自动解析方法签名和描述信息,生成标准化的 MCP 工具元数据。当用户通过 AI 助手提出自然语言查询时,MCP Client 会根据工具描述自动匹配并调用相应方法,执行完成后将结果返回给 AI 进行二次加工。
在实现过程中,我遇到了几个关键难点并逐一解决。第一个难点是时区处理,美股新闻原始时间为 GMT 时区,而用户需要北京时间,A 股监控则需要精确的交易时间判断,我通过封装 GMTDateConverter 工具类,统一处理了 GMT、纽约时间、北京时间的转换逻辑。
第二个难点是反爬虫异常处理,在爬取 Stock Titan 网站的股票标签时,频繁请求会触发 429 状态码。我采用 try-catch 包裹核心逻辑,当爬取失败时不影响主流程,允许标签字段为空,同时记录日志供后续优化。
第三个难点是 MCP 协议的工程化落地。Spring AI MCP Server 虽然提供了注解方式快速开发,但要保证工具描述的准确性和 AI 理解的友好度,需要反复调试验证。我通
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论