书籍数据库MCP服务器

一个基于MCP协议的小型书籍数据库服务器,提供书籍信息的查询功能,适用于开发和演示场景。

  • by martins-vds
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 martins-vds/copilot-mcp

使用说明

图书数据库MCP服务器

[!注意] 这是一个小型MCP(模型上下文协议)演示服务器,用于GitHub Copilot代理和MCP培训课程。演示中解释了它的使用方法 副驾驶和mcp 存储库。

功能的

图书数据库MCP服务器提供了一组简单的工具,让支持MCP的代理或客户端查询精心策划的图书数据库。主要特点:

  • 按标题检索书籍的基本信息(ISBN、标题、作者)。
  • 按ISBN检索详细的图书信息(摘要、日期、作者)。
  • 批量查询:按标题或ISBN列表请求多本书。
  • 使用小型JSON文件作为备份数据集(易于阅读和修改以进行演示)。

技术的

  • 运行时:Node.js(TypeScript源代码在 src/).
  • 协议:使用模型上下文协议(MCP) @modelcontextprotocol/sdk.
  • 传输:标准I/O传输(StdioServerTransport)--此服务器通过stdio进行通信。
  • 验证:输入模式通过以下方式进行验证 zod 对于每个工具。
  • 数据: src/data/books.json (基本列表)和 src/data/books-details.json (摘要和日期)。
  • 在中实施的工具 src/index.ts:
    • get-book-by-isbn --采取 isbn: string (10个字符)
    • get-book-by-title --采取 title: string
    • get-books-by-titles --采取 titles: string[]
    • get-books-by-isbn-list --采取 isbnList: string[] (10个字符项目)

设置

先决条件: Node.js(推荐18+)和npm。

  1. 克隆存储库并进入演示文件夹:
git clone <repo-url>
cd <repo-root>
  1. 安装依赖项:
npm install
  1. 构建TypeScript源代码:
npm run build

该建筑产生 build/index.js 和那个 build 文件夹列在package.json中 files.

跑

启动MCP服务器(它在stdio上运行,并将启动日志写入stderr):

node build/index.js

成功运行后,您应该在stderr上看到类似以下内容的信息性消息:

Book database MCP Server running on stdio

在演示过程中,您不需要手动启动服务器,因为它将由 webapp演示库中的MCP服务器配置.

用法示例

服务器公开上面列出的工具名称。示例调用(概念性):

  • 按ISBN获取详细信息:

    • 工具: get-book-by-isbn
    • 输入: { "isbn": "0451524935" } #返回“1984”的详细信息
  • 按标题获取基本信息:

    • 工具: get-book-by-title
    • 输入: { "title": "The Hobbit" }
  • 按标题批量查找:

    • 工具: get-books-by-titles
    • 输入: { "titles": ["1984", "Brave New World"] }

数据

数据集是JSON格式的小文件 src/data/ 因此,您可以在研讨会期间轻松调整条目:

  • src/data/books.json --简单书籍对象数组(ISBN、标题、作者)
  • src/data/books-details.json --带有a的对象 books 包含摘要和日期的数组

备注

  • 这个项目有意设计得很小,专注于演示如何通过MCP为工具提供服务。
  • 如果你想在本地交互式测试工具,编写一个使用 StdioClientTransport 从 @modelcontextprotocol/sdk 并将此服务器作为子进程生成,以便连接它们的stdio流。