图书管理服务器

一个基于Python 3.12、FastMCP和uvicorn的MCP服务器,提供浏览、搜索和推荐本地数据集中图书的工具和资源。

  • by ZohaibCodez
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 zohaibcodez/book-mcp-server

使用说明

图书mcp服务器

MCP(模型上下文协议)服务器,提供工具、资源和提示,用于浏览、搜索和推荐本地数据集中的书籍。使用Python 3.12、FastMCP和uvicorn构建。

目录

  • 概述
  • 特性
  • 数据
  • 快速入门(本地)
  • 码头工人
  • Smithery人工智能部署
  • 项目布局
  • 发展
  • 许可证
  • 联系

📘 概述

此服务器为图书发现任务(列表、搜索、推荐、摘要)提供了一套干净的MCP工具和资源。它的设计易于在本地运行、容器化和部署,具有专业的代码结构、类型提示和健壮的文档字符串。

✨ 特性

  • 工具
    • list_books:返回所有书名
    • total_books:返回书籍总数
    • get_book_detail:按ID获取书籍的详细信息
    • search_books:按标题关键字搜索书籍
    • recommend_book:从给定的流派中随机推荐一本书
    • top_books:按评级返回Top-N书籍
    • random_book:随机选取一本书
  • 资源
    • book://collection:整个数据集
    • book://collection/{book_id}:按ID(精确)或标题子字符串匹配
    • book://collection/genres:独特的流派
    • book://collection/genres/{genre}:特定流派的书籍
  • 提示
    • Test_prompt
    • summarize_book_prompt

🗂️ 数据

  • 来源: data/data.json
  • 预期格式:具有 books 阵列。

🚀 快速入门(本地)

先决条件:

  • Python 3.12+
  • 可选: uv 用于快速安装

使用紫外线(推荐):

uv sync
uv run book-mcp-server
# or
uv run uvicorn server:mcp_server --host 0.0.0.0 --port 8000

使用pip(可编辑安装):

python -m venv .venv
# Windows
.venv\Scripts\activate
# Linux/macOS
. .venv/bin/activate

pip install -U pip
pip install -e .

book-mcp-server
# or
uvicorn server:mcp_server --host 0.0.0.0 --port 8000

环境变量:

  • PORT (默认值: 8000)

🐳 码头工人

构建并运行生产映像:

docker build -t book-mcp-server .
docker run --rm -p 8000:8000 --name book-mcp book-mcp-server

带有热重载的开发人员映像:

# Build
docker build -f Dockerfile.dev -t book-mcp-dev .

# Windows (cmd)
docker run --rm -it -p 8000:8000 -v %cd%:/app book-mcp-dev

# Linux/macOS (bash)
docker run --rm -it -p 8000:8000 -v "$(pwd)":/app book-mcp-dev

🧠 Smithery人工智能部署

添加a smithery.yaml 在您的旁边 Dockerfile:

version: 1
start:
  command: ["book-mcp-server"]
  port: 8000

或者,直接运行uvicorn:

version: 1
start:
  command: ["uvicorn", "server:mcp_server", "--host", "0.0.0.0", "--port", "8000"]
  port: 8000

指导:见Smithery文件: 项目配置指南.

📁 项目布局

book-mcp-server/
├─ server.py           # MCP app (tools, resources, prompts)
├─ data/data.json      # Local dataset of books
├─ pyproject.toml      # Project metadata and dependencies
├─ Dockerfile          # Production image
├─ Dockerfile.dev      # Dev image (hot reload)
├─ uv.lock             # uv lockfile
└─ LICENSE             # MIT License

🛠️ 发展

  • 干净的代码:类型提示、保护子句、描述性命名
  • 实时重新加载:
uv run uvicorn server:mcp_server --host 0.0.0.0 --port 8000 --reload

⚖️ 许可证

麻省理工学院——见 LICENSE.

📫 联系

  • 作者:佐海布·汗
  • github: 佐海布德兹
  • 电子邮件:itxlevicodez@gmail.com