产品库存管理MCP服务

基于Spring AI构建的模型上下文协议(MCP)服务器,为AI助手提供产品库存管理工具。

  • by longwe
  • Java
  • 本地部署
  • 更新于
在 GitHub 查看 longwe/spring-ai-mcp-server

使用说明

Spring AI MCP服务器-产品库存

使用Spring AI构建的模型上下文协议(MCP)服务器,将产品库存管理工具暴露给Claude等AI助手。

该项目是作为YouTube视频的一部分构建的:https://www.youtube.com/watch?v=3rtZRKM39BI

什么是MCP?

这 模型上下文协议(MCP) 是一个开放标准,允许人工智能助手与外部工具和数据源安全交互。该服务器实现了MCP,将产品库存操作作为AI助手可以调用的工具公开。

特性

  • Spring AI集成:使用Spring AI的MCP服务器启动器实现无缝协议实现
  • STDIO传输:通过标准输入/输出进行通信,允许MCP客户端将其作为子流程生成
  • H2内存数据库:包含示例数据的独立数据库,无需外部设置
  • CRUD操作:产品的完整创建、读取、更新、删除功能

可用工具

服务器向AI助手公开以下工具:

工具 说明
getAllProducts 从库存中检索所有产品
searchByCategory 按类别查找产品(电子产品、书籍、服装、电器)
findProductsUnderPrice 查找低于指定价格阈值的产品
addProduct 在库存中创建新产品
updateProduct 更新现有产品的详细信息
deleteProduct 从库存中删除产品

先决条件

  • Java 17或更高版本
  • Maven 3.6+(或使用附带的Maven包装器)

建设项目

# Using Maven wrapper (recommended)
./mvnw clean package -DskipTests

# Or with installed Maven
mvn clean package -DskipTests

这将在以下位置创建一个可执行JAR target/MCP-Server-0.0.1-SNAPSHOT.jar.

运行服务器

服务器设计为由MCP客户端(如Claude Desktop)启动。它通过STDIO进行通信,因此直接在终端中运行它不会很有用。

与Claude Desktop集成

将以下内容添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "product-inventory": {
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/MCP-Server-0.0.1-SNAPSHOT.jar"
      ]
    }
  }
}

替换 /absolute/path/to/ 使用构建的JAR文件的实际路径。

更新配置后,重新启动Claude Desktop。然后,产品库存工具将在您的对话中可用。

项目结构

src/main/java/com/ezcloud/mcp/server/
├── McpServerApplication.java      # Main application & tool registration
├── config/
│   └── DataInitializer.java       # Sample data initialization
├── entity/
│   └── Product.java               # JPA entity for products
├── repository/
│   └── ProductRepository.java     # Spring Data JPA repository
└── service/
    └── ProductService.java        # MCP tools implementation

src/main/resources/
├── application.properties         # Server configuration
└── logback.xml                    # Logging configuration

密钥配置

服务器已在中配置 application.properties:

# MCP Server Settings
spring.ai.mcp.server.enabled=true
spring.ai.mcp.server.name=product-inventory-mcp-server
spring.ai.mcp.server.stdio=true
spring.ai.mcp.server.capabilities.tool=true

重要提示:

  • Web服务器已禁用 (spring.main.web-application-type=none)-MCP使用STDIO,而不是HTTP
  • 日志记录已禁用 -任何控制台输出都会破坏MCP JSON协议
  • H2内存数据库 -每次重启时数据重置

示例数据

服务器从4个类别的10个示例产品开始:

类别 产品
电子产品 笔记本电脑(999.99美元)、无线鼠标(29.99美元)、机械键盘(89.99美元)
书籍 《Spring in Action》(45.99美元),《Clean Code》(39.99美元)
服装 T恤(19.99美元),牛仔裤(59.99美元)
电器 咖啡机(79.99美元)、搅拌机(49.99美元)和烤面包机(29.99美元)

与克劳德的对话示例

配置后,您可以向Claude询问以下问题:

  • “你们库存中有什么产品?”
  • “给我看看100美元以下的所有电子产品”
  • “添加新产品:电子类游戏耳机,79.99美元,有库存25件”
  • “将笔记本电脑价格更新为899.99美元”
  • “从库存中删除烤面包机”

运作原理

  1. 克劳德桌面版 将JAR作为子进程启动
  2. MCP握手:通过STDIO上的JSON实现客户端和服务器交换功能
  3. 工具发现:Claude看到了可用的工具及其描述
  4. 工具调用:在适当的时候,Claude会调用带有参数的工具
  5. 回复:服务器执行操作并将结果返回给Claude

依赖项

  • 弹簧靴3.5.6
  • Spring AI 1.0.3(MCP服务器入门版)
  • Spring数据JPA
  • H2数据库
  • 龙目

许可证

此作品根据 知识共享署名-非商业4.0国际许可.

贡献

欢迎投稿!请随时提交拉取请求。