药品库存MCP服务器
基于Spring Boot的模型上下文协议(MCP)服务器,用于管理药品库存。该应用程序为AI助手提供了一个结构化界面,通过标准化的MCP工具和提示与药品库存数据进行交互。
概述
这是一个Spring Boot应用程序,它实现了模型上下文协议(MCP)服务器规范,使AI助手能够:
- 查询和检索药品信息
- 管理药品库存数据
- 通过MCP工具执行预定义操作
- 访问结构化医学提示以进行AI交互
特性
- MCP服务器实现:完全符合模型上下文协议规范
- 药品库存管理:从基于JSON的数据存储中管理和查询药物
- RESTful API:用于与MCP客户端集成的HTTP端点
- 服务器发送事件(SSE):实时通信支持
- 弹簧靴3:Java 21的现代Spring框架
- 龙目岛一体化:带注释的简化实体定义
- 杰克逊支持:支持Java 8日期/时间的JSON序列化
技术栈
- Java: 21
- Spring Boot: 3.5.11
- Spring AI MCP服务器: 1.1.2
- 构建工具:Maven
- 附加库:龙目岛,杰克逊
项目结构
src/
├── main/
│ ├── java/medicine/mcp/server/
│ │ ├── MedicineInventoryMcpServerApplication.java # Main Spring Boot application
│ │ ├── config/ # Configuration classes
│ │ ├── model/
│ │ │ └── Medicine.java # Medicine entity
│ │ ├── pormpt/ # Prompt definitions
│ │ │ └── MedicineInventoryPrompts.java
│ │ ├── service/
│ │ │ └── MedicineService.java # Business logic
│ │ ├── tools/
│ │ │ └── MedicineTools.java # MCP tool definitions
│ │ └── utils/
│ │ └── MedicineDataLoader.java # Data initialization
│ └── resources/
│ ├── application.yaml # Application configuration
│ ├── data/
│ │ └── medicines.json # Medicine inventory data
│ └── templates/
└── test/
└── java/medicine/mcp/server/
└── MedicineInventoryMcpServerApplicationTests.java配置
应用程序通过以下方式配置 application.yaml:
spring:
application:
name: medicine-inventory-mcp-server
ai:
mcp:
server:
enabled: true
name: inventory-mcp-server
version: 0.0.1
type: SYNC
sse-endpoint: mcp
protocol: streamable
webmvc:
cors:
allowed-origins: "*"
server:
port: 9090关键配置点:
- 港口:服务器在端口9090上运行
- MCP端点:可在
/mcp(SSE协议) - 跨域资源共享:为所有来源启用(可配置)
- 协议:同步、可流式传输协议
入门指南
先决条件
- Java 21或更高版本
- Maven 3.6或更高版本
建筑
./mvnw clean package此命令将:
- 清理以前的构建
- 编译Java源代码
- 运行测试
- 将应用程序打包为可执行JAR
运行应用程序
./mvnw spring-boot:run或者运行打包的JAR:
java -jar target/medicine-inventory-mcp-server-0.0.1-SNAPSHOT.jar应用程序将于启动 http://localhost:9090
API终点
MCP服务器端点
- SSE端点:
http://localhost:9090/mcp
该端点为人工智能助手提供MCP服务器接口,以与药品库存工具和提示进行交互。
数据文件
medicines.json
位于 src/main/resources/data/,此文件包含应用程序启动时加载的药品清单数据。数据由管理 MedicineDataLoader 公用事业。
发展
IDE设置
建议使用VS Code或IntelliJ IDEA。IDE配置在中跟踪 .gitignore.
运行测试
./mvnw testMaven包装器
该项目包括Maven包装器脚本(mvnw 对于Unix/Mac, mvnw.cmd 对于Windows),无需安装Maven即可实现一致的构建。
项目依赖项
关键依赖项通过Maven进行管理:
- 弹簧启动板:Web和REST支持
- spring ai starter mcp服务器webmvc:MCP服务器实现
- projectlombok:更清晰代码的注释处理
- jackson-datatype-jsr310:Java 8日期/时间JSON支持
看 pom.xml 查看完整的依赖关系列表。
故障排除
端口已在使用中
如果端口9090已在使用中,请更新 server.port 在 application.yaml.
构建问题
- 确保已安装Java 21:
java -version - 清除Maven缓存:
./mvnw clean - 验证Maven安装:
./mvnw --version
许可证
看 许可证 详细信息文件(如适用)。
