Token导航 LogoToken导航TokenDH.com
Library MCP (Babosina) logo
运维云端stdio官方级别未说明来源级核验

Library MCP (Babosina)

MCP Server

一个基于FastAPI的后端服务器,用于管理图书馆的书籍、会员和借阅记录,提供完整的CRUD操作、JWT认证和SQLite数据库支持。

工具数

13

提示词数

0

GitHub Stars

4

资源数

0
PythonClaude云端部署Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

babosina

提供方

babosina

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run uvicorn backend.main:app --reload

详细介绍

图书馆MCP

演示工程 --仅用于当地发展和学习目的。请勿将其暴露于公共互联网或用于存储真实数据。

LibraryMCP是一个基于FastAPI的后端服务器,旨在作为库管理的模型上下文协议(MCP)工具调用源。它提供了一组API端点来管理图书馆系统中的图书、会员和贷款。

特性

  • 图书管理:完整的CRUD,按标题、作者、类型和可用性进行过滤。
  • 会员管理:注册、列出(带过滤器)、查看贷款历史和罚款的详细信息、更新和删除业务规则。
  • 贷款管理:借款/归还工作流、活动贷款列表和精细计算。
  • JWT身份验证:所有API端点(除 /auth/token)需要不记名代币。凭据可以通过环境变量进行配置。
  • SQLite数据库:使用SQLAlchemy ORM的轻量级存储。
  • 快速API:用于使用Python构建API的高性能web框架。
  • CORS已启用:打开CORS,便于本地开发和浏览器演示。
  • 简单前端演示:添加/列出书籍和成员的最小HTML页面。
  • 播种工具:内置脚本,用于用初始示例数据填充数据库。

项目结构

libraryMCP/
├── backend/                # Application source code
│   ├── routers/            # API route handlers
│   │   ├── auth.py         # Authentication endpoint (token issuance)
│   │   ├── books.py        # Book-related endpoints
│   │   ├── loans.py        # Loan-related endpoints
│   │   └── members.py      # Member-related endpoints
│   ├── auth.py             # JWT creation, verification, and get_current_user dependency
│   ├── crud.py             # CRUD operations
│   ├── database.py         # Database configuration and session management
│   ├── main.py             # FastAPI application entry point (CORS + routers)
│   ├── models.py           # SQLAlchemy database models
│   ├── schemas.py          # Pydantic models for request/response validation
│   └── seed.py             # Database seeding script
├── frontend/
│   └── index.html          # Simple browser demo (books/members)
├── library.db              # SQLite database file
├── openapi.json            # Generated OpenAPI schema snapshot
├── pyproject.toml          # Project dependencies and configuration
├── uv.lock                 # Lock file for dependencies
└── README.md               # Project documentation

先决条件

安装

  1. 克隆存储库:
   git clone 
   cd libraryMCP
  1. 安装依赖项:
   uv sync
  1. 在中配置凭据 .env (复制自 .env 并填写您的值):
   ADMIN_USERNAME="admin"
   ADMIN_PASSWORD="your-password"
   SECRET_KEY="your-secret-key"
   BACKEND_URL=http://localhost:8000

用法

运行服务器

使用启动FastAPI服务器 uvicorn:

uv run uvicorn backend.main:app --reload

API将于 http://127.0.0.1:8000.

认证

除以下端点外的所有端点 POST /auth/token 需要JWT Bearer令牌。

获取令牌:

curl -X POST http://127.0.0.1:8000/auth/token \
  -d "username=admin&password=your-password"

答复:

{ "access_token": "", "token_type": "bearer" }

使用令牌:

curl http://127.0.0.1:8000/books/ \
  -H "Authorization: Bearer "

令牌在30分钟后过期。通过配置凭据 ADMIN_USERNAME, ADMIN_PASSWORD,以及 SECRET_KEY 环境变量(或 .env).

API文档

服务器运行后,您可以访问交互式API文档:

为数据库播种

要用示例数据填充数据库,请运行种子脚本:

uv run python backend/seed.py

简单前端演示(可选)

您可以使用一个很小的前端与API进行交互:

  • 打开 frontend/index.html 在浏览器中
  • 确保后端运行在 http://localhost:8000 (CORS已启用)
  • 使用UI添加/列出书籍和成员

MCP 服务器

MCP服务器将库的功能作为AI助手(Claude等)可以直接调用的工具公开。

运行MCP服务器

MCP服务器通过stdio进行通信。首先启动FastAPI后端,然后运行:

uv run python mcp_server/main_stdio.py

服务器读取 BACKEND_URL, ADMIN_USERNAME,以及 ADMIN_PASSWORD 环境(或 .env).它在首次使用时自动获得JWT令牌,并在到期时刷新它。

连接到克劳德桌面

将以下内容添加到您的Claude Desktop配置中(claude_desktop_config.json):

{
  "mcpServers": {
    "library": {
      "command": "uv",
      "args": ["run", "python", "mcp_server/main_stdio.py"],
      "env": {
        "PYTHONPATH": "/absolute/path/to/libraryMCP"
      }
    }
  }
}

可用的MCP工具

工具说明
search_books按标题、作者或流派搜索书籍
get_book按ID获取书籍的完整详细信息
add_book将新书添加到目录中
update_book更新图书元数据或副本计数
delete_book删除一本书(如果存在活动贷款,则被阻止)
list_members列出具有可选筛选器的成员
register_member注册新库成员
get_member获取会员资料、贷款历史和罚款
delete_member删除成员(如果贷款有效或未支付罚款,则被阻止)
borrow_book为会员借阅一本书
return_book归还借来的书,计算任何逾期罚款
get_loans列出会员的所有活动贷款
check_fines获取会员的未缴罚款总额

API端点概述

认证

  • POST /auth/token --获取JWT承载令牌(表单字段: username, password).

书籍

  • GET /books/ --列出带有可选过滤器的书籍。

- 查询: title, author, genre, available_only

  • GET /books/{id} --按ID获取一本书。
  • POST /books/ --创建一本书(初始 available_copies = total_copies).
  • PUT /books/{id} --更新一本书。
  • DELETE /books/{id} --删除一本书(如果有活动贷款,则被阻止)。

成员

  • GET /members/ --使用筛选器和分页列出成员。

- 查询: skip, limit, name, email, is_active

  • GET /members/{id} --获取会员详细信息,包括贷款历史、有效贷款计数和罚款总额。
  • POST /members/ --注册新会员(需要唯一的电子邮件)。
  • PUT /members/{id} --更新成员(不能在贷款有效时停用;电子邮件必须唯一/有效)。
  • DELETE /members/{id} --删除成员(如果贷款有效或未支付罚款,则被阻止)。

贷款

  • POST /loans/borrow --借阅图书(会员必须处于活动状态;图书必须有可用副本;没有重复的活动借阅)。
  • POST /loans/return --归还一本书(增加可用性;逾期计算罚款:0.50美元/天)。
  • GET /loans/{member_id} --列出会员的活动贷款。
  • GET /loans/{member_id}/fines --计算并返回会员的明细。

目录标签

目录标签

PythonClaude云端部署图书管理本地部署会员管理借阅系统JWT认证FastAPI

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

13

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP