ai-mcp服务器java模板种子
MCP服务器Java模板孵化-Spring引导
https://start.spring.io/
🚀 AI MCP服务器Java模板种子
此项目是一个Spring Boot应用程序,充当 AI上下文服务 使用Spring AI MCP(模型上下文提供者)模式。它公开了两个函数,用于使用JPA从PostgreSQL数据库中检索联系人和地址信息。
______________________________________________________________________
📘 教程
有关此MCP服务器的概念、设置和测试的分步指南,请参阅教程:
______________________________________________________________________
📋 1.表格信息
该应用程序使用两个主表来存储客户数据。这些表由Spring Data JPA基于 Contact 和 Address 实体。
| 表名称 | 实体 | 描述 | 关键字段 |
|---|---|---|---|
contacts | Contact.java | 存储主要联系方式。 | contact_id (PK), email (唯一) |
addresses | Address.java | 存储链接到联系人的物理地址详细信息。 | address_id (PK), contact_id (FK) |
🔍 提供AI上下文功能
这 ContactContextService 向AI模型公开两个函数:
| 函数名称 | 描述 | 参数 | 用途 |
|---|---|---|---|
getContactInfo | 检索联系人详细信息(姓名、电子邮件、电话) | email (字符串) | 联系信息上下文 |
getContactAddresses | 检索特定联系人的地址 | contactId (长) | 地址信息上下文 |
______________________________________________________________________
🛠️ 2.如何在本地设置
先决条件
- Java 17+
- 梅文
- Docker和Docker Compose
- 邮差(API测试用)
第一步:使用Docker设置数据库
- 确保你有
docker-compose.yaml和db_init_user_only.sql项目根目录中的文件。
- 运行Docker Compose命令启动PostgreSQL容器:
docker-compose up -d- 数据库将在以下时间运行
localhost:5432。应用程序配置为使用以下凭据进行连接:
- 网址: jdbc:postgresql://localhost:5432/ai_database - 用户名: [username] - 密码: [password]
步骤2:初始化数据库架构和数据
- 连接到正在运行的PostgreSQL容器(例如,使用
psql或GUI工具)。 - 跑吧
db_init.sql创建脚本contacts和addresses桌子。 - Spring Boot应用程序在启动时将使用
DatabaseSeeder.java组件到 自动生成1000条记录 对两者contacts和addresses桌子,根据要求。
______________________________________________________________________
▶️ 3.如何跑步
第一步:构建项目
使用Maven编译和打包应用程序:
mvn clean install步骤2:运行Spring Boot应用程序
执行打包的JAR文件:
mvn spring-boot:run
# OR
# java -jar target/ai-mcp-server-java-template-seed-0.0.1-SNAPSHOT.jar应用程序将在端口上启动 8080The DatabaseSeeder 将运行,确认日志中已创建1000条记录。
步骤3:使用Postman测试上下文函数
- 导入提供的
ai-mcp-context-postman.json文件到邮递员。
- 使用导入的请求来测试AI上下文函数:
- 测试 getContactInfo:
- 请求正文示例: {"name": "getContactInfo", "arguments": {"email": "user1@example.com"}} - 预期结果:一个包含联系人详细信息的JSON对象 user1@example.com.
- 测试 getContactAddresses:
- 请求正文示例: {"name": "getContactAddresses", "arguments": {"contactId": 1}} - 预期结果:ID为的联系人的Address对象的JSON数组 1.
这确认了该服务正在正确地从PostgreSQL数据库中检索数据,并通过Spring AI MCP服务器端点将其公开。
在IDE中启用注释处理
如果您的模型类使用 @Data (或类似的Lombok注释),您必须在IDE中启用注释处理,以便在编译前生成方法。
🛠️ 修复IntelliJ IDEA:
- 首选 设置/首选项.
- 导航至 构建、执行、部署 -> 编译器 -> 注解处理器.
- 确保 “启用注释处理” 复选框为 已检查.
- 应用更改。
🛠️ 最后一步:重建项目
启用注释处理并应用设置后,必须强制IDE重新索引项目:
- 在IntelliJ IDEA中,转到 文件 -> 使缓存无效。..
- 选择 “无效并重新启动”.
- IDE重新启动后,执行 重建项目 (构建->重建项目)。
此过程将强制IDE运行Lombok处理器,该处理器将生成缺失的方法并解决中的所有17个“找不到符号”错误 DatabaseSeeder.java.
此工作流程图说明了如何 n8n自动化 利用a AI 代理 和那个 MCP服务器 执行客户拓展任务。
N8N自动化工作流:用于联系人检索和电子邮件的AI工具
Workflow Diagram Workflow Diagram Email Flow Workflow Diagram MCP Client Config
该过程呈线性流动,其中 AI 代理 充当编排器,决定何时以及如何调用外部工具(MCP服务器)以实现其目标。
| # | n8n节点 | 说明 |
|---|---|---|
| 1 | 启动/Webhook触发器 | 工作流开始。这可以是数据库中的新记录、调度节点或直接的API调用(Webhook)。 |
| 2 | 人工智能代理(例如OpenAI、Anthropic) | AI收到一个任务(例如,“向具有电子邮件地址的联系人发送后续电子邮件 test.user@example.com“)。它预先配置了 MCP服务器工具规范. |
| 3 | 工具执行(隐含/决策) | AI决定任务需要调用外部 getContactInfo 工具。它生成函数调用: {"name": "getContactInfo", "arguments": {"email": "..."}}. |
| 4 | HTTP请求(MCP服务器) 一 HTTP请求节点 (或专用的n8n Spring AI节点)被执行。它使一个 POST 向MCP服务器端点发出请求: http://localhost:8080/mcp主体包含AI生成的工具调用 | |
| 5 | MCP服务器响应 | MCP服务器执行底层Java函数(JPA查询),从PostgreSQL检索全名和电话号码,并将JSON结果返回给n8n。 |
| 6 | 功能/数据提取 | n8n 代码 或 集 节点处理JSON响应。, firstName, lastName, email). |
| 7 | 电子邮件发件人(SMTP/SendGrid) | 最后一个节点使用提取的变量(firstName, email)个性化并发送外发电子邮件。 |
