图书管理后端服务

一个基于Spring Boot的应用,提供REST API和MCP服务器功能,用于管理图书数据。

  • by furkanozer1
  • Java
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 furkanozer1/LibraryMcp

使用说明

图书跟踪器后端

一个Spring Boot应用程序,提供REST API和MCP(模型上下文协议)服务器功能,用于管理书籍。

特性

  • REST API:用于图书管理的传统HTTP端点
  • MCP服务器:用于AI工具集成的协议兼容服务器
  • PostgreSQL数据库:书籍数据的持久存储
  • CRUD操作:完整的图书管理功能

先决条件

  • Java 21+
  • 运行在本地主机上的PostgreSQL数据库:5432
  • 数据库名称 library_db
  • PostgreSQL用户: postgres 使用密码: password

运行应用程序

# Using Maven wrapper
./mvnw.cmd spring-boot:run

# Or if Maven is installed
mvn spring-boot:run

应用程序将于启动 http://localhost:8080

REST API端点

图书管理

  • GET /api/books -获取所有书籍
  • GET /api/books/{id} -按ID获取图书
  • POST /api/books -创建新书
  • PUT /api/books/{id} -更新现有书籍
  • DELETE /api/books/{id} -删除书籍

JSON示例书

{
  "title": "The Great Gatsby",
  "author": "F. Scott Fitzgerald",
  "isbn": "978-0-7432-7356-5"
}

MCP服务器端点

MCP服务器提供与REST API相同的功能,但遵循MCP协议规范。

MCP协议端点

  • POST /mcp/initialize -初始化MCP服务器连接
  • POST /mcp/tools/list -列出可用工具
  • POST /mcp/tools/call -执行工具调用

可用的MCP工具

  1. 获取所有书籍 -从数据库中获取所有书籍
  2. getBookById -按ID获取图书
    • 参数: id (编号)
  3. createBook -创建新书
    • 参数: title (字符串), author (字符串), isbn (字符串)
  4. updateBook -更新现有书籍
    • 参数: id (数字), title (字符串), author (字符串), isbn (字符串)
  5. 删除图书 -按ID删除图书
    • 参数: id (编号)
  6. findBookByTitle -按标题查找书籍
    • 参数: title (字符串)
  7. findBookByAuthor -按作者查找书籍
    • 参数: author (字符串)

MCP工具调用示例

{
  "name": "createBook",
  "arguments": {
    "title": "1984",
    "author": "George Orwell",
    "isbn": "978-0-452-28423-4"
  }
}

数据库设置

创建PostgreSQL数据库:

CREATE DATABASE library_db;

应用程序将自动创建 book 表具有以下结构:

  • id (BIGINT、主键、自动递增)
  • title (VARCHAR)
  • author (VARCHAR)
  • isbn (VARCHAR)

配置

中的数据库配置 src/main/resources/application.properties:

spring.datasource.url=jdbc:postgresql://localhost:5432/library_db
spring.datasource.username=postgres
spring.datasource.password=password

API文档

跑步时,请访问 http://localhost:8080/swagger-ui.html 用于交互式API文档。

建筑

  • 控制器层:REST端点(BookController)和MCP端点(McpServerController)
  • 服务层:业务逻辑(BookTools)
  • 库层:数据访问(BookRepository)
  • 模型图层:实体定义(Book)

错误处理

该应用程序包括基本的错误处理:

  • 返回无效的图书ID null
  • MCP工具错误包含在错误响应中
  • 记录数据库连接问题

发展

该应用程序在开发过程中使用Spring Boot DevTools进行热重载。

claude的配置文件:

{
  "mcpServers": {
    "booktracker": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://127.0.0.1:8080/mcp"
      ]
    }
  }
}

重要通知

有关MCP和MCP服务器的所有相关文件和详细信息,请参阅 booktracker_backend 目录。