使用说明
图书数据库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: stringget-books-by-titles--采取titles: string[]get-books-by-isbn-list--采取isbnList: string[](10个字符项目)
设置
先决条件: Node.js(推荐18+)和npm。
- 克隆存储库并进入演示文件夹:
git clone <repo-url>
cd <repo-root>
- 安装依赖项:
npm install
- 构建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流。