Spring AI MCP Batch Job Server
一个 Spring Boot 模型上下文协议 (MCP) 服务器,为金融交易提供批量处理工具。
iAMSagar44
README
Spring AI MCP 批量作业服务器
一个 Spring Boot 模型上下文协议 (MCP) 服务器,提供用于金融交易的批量处理工具。本项目展示了 Spring AI MCP Server Boot Starter 的功能,结合 STDIO 传输实现,以及 Spring Batch 用于处理金融数据。
前提条件
- Java 21 或更高版本
- PostgreSQL 数据库
- 了解 Spring Boot、Spring Batch、Spring AI 和 MCP 概念
- OpenAI API 密钥,用于 AI 驱动的交易分类
关于 Spring AI MCP Server Boot Starter
本项目使用 Spring AI 的 MCP Server Boot Starter 将批量处理操作公开为可供 AI 助手使用的工具。它将此与 Spring Batch 结合使用,以处理金融交易数据,使用 AI 对交易进行分类,并将它们存储在 PostgreSQL 数据库中。
工具实现
本项目演示了如何使用 Spring 的依赖注入和自动配置来实现和注册 MCP 工具:
@Service
public class BatchJobService {
@Tool(description = "根据提供的文件名触发批量作业。")
public ResponseEntity<JobDetails> startJob(String fileName) {
// 实现
}
@Tool(description = "根据作业执行 ID 重新启动失败的作业。")
public ResponseEntity<?> restartJob(Long executionId) {
// 实现
}
@Tool(description = "根据作业执行 ID 检索批量作业的状态。")
public ResponseEntity<JobDetails> getJobStatus(Long executionId) {
// 实现
}
}
可用代理
-
启动作业代理
- 触发批量作业以处理金融交易文件
- 需要文件名
- 从用户的 Downloads 目录读取 CSV 文件
- 返回作业执行详细信息,包括 ID 和状态
-
重新启动作业代理
- 重新启动失败的作业执行
- 需要失败作业的作业执行 ID
- 返回新的作业执行详细信息
-
作业状态代理
- 检索作业的当前状态
- 需要作业执行 ID
- 提供详细的执行信息,包括开始/结束时间
- 用于监控作业进度
处理流程
批量作业通过多个步骤处理金融交易:
-
文件移动步骤
- 将输入文件移动到临时位置
- 确保处理过程中的文件安全
-
交易处理步骤
- 读取包含交易数据的 CSV 文件
- 过滤和分类贷方/借方交易
- 使用 AI 按类型对交易进行分类
- 将处理后的数据写入 PostgreSQL 数据库
-
清理步骤
- 处理后删除临时文件
- 确保下次执行的干净工作区
配置
应用程序属性
# 必需的 STDIO 配置
spring.main.web-application-type=none
spring.main.banner-mode=off
logging.pattern.console=
# 服务器配置
spring.ai.mcp.server.enabled=true
spring.ai.mcp.server.stdio=true
spring.ai.mcp.server.name=batch-job-mcp
# 数据库配置
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=postgres
spring.batch.jdbc.initialize-schema=always
# OpenAI 配置
spring.ai.openai.api-key=${OPENAI_API_KEY}
spring.ai.openai.chat.options.model=gpt-4o
构建和运行
服务器使用 STDIO 传输模式,通常由客户端自动启动。要构建服务器 jar:
./mvnw clean install
客户端集成
要将此批量处理服务器与 Claude Desktop 一起使用,请将以下配置添加到您的 Claude Desktop 设置:
{
"mcpServers": {
"spring-ai-batch-mcp": {
"command": "java",
"args": [
"-Dspring.ai.mcp.server.stdio=true",
"-Dspring.main.web-application-type=none",
"-Dlogging.pattern.console=",
"-Dlogging.file.name=<log_path/batch-job-mcp-0.0.1-SNAPSHOT.log>",
"-jar",
"/absolute/path/to/batch-job-mcp-0.0.1-SNAPSHOT.jar"
],
"env": {
"OPENAI_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
将 /absolute/path/to/
替换为构建的 jar 文件的实际路径。
将 log_path
替换为您希望生成日志的实际路径。
数据库模式
应用程序需要以下 PostgreSQL 表:
financial_transaction
: 主要交易表credit_transactions
: 贷方交易credit_card_payments
: 信用卡支付交易categories
: 交易类别列表
如果在 application.properties 文件中将 spring.profiles.active
设置为 'local',则会自动创建这些表。
当 spring.batch.jdbc.initialize-schema=always
时,会自动创建 Spring Batch 表。
附加资源
推荐服务器
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的客户端查询以太坊区块链数据。