VOOZH about

URL: https://glama.ai/mcp/servers/8enSmith/mcp-open-library?locale=zh-CN

⇱ mcp-open-library by 8enSmith | Glama


MCP Open Library

👁 Trust Score
👁 Listed on Spark

一个用于 Open Library API 的模型上下文协议 (MCP) 服务器,使 AI 助手能够搜索图书和作者信息。

概述

本项目实现了一个 MCP 服务器,为 AI 助手提供与 Open Library 交互的工具。它允许通过书名搜索图书信息、通过姓名搜索作者、使用 Open Library 键检索详细的作者信息,以及使用 Open Library ID (OLID) 获取作者照片的 URL。服务器返回图书和作者信息的结构化数据。

Related MCP server: OpenAI MCP Server

功能

  • 按书名搜索图书:使用书名搜索图书 (get_book_by_title)。

  • 按姓名搜索作者:使用姓名搜索作者 (get_authors_by_name)。

  • 获取作者详情:使用 Open Library 键检索特定作者的详细信息 (get_author_info)。

  • 获取作者照片:使用 Open Library ID (OLID) 获取作者照片的 URL (get_author_photo)。

  • 获取图书封面:使用各种标识符(ISBN、OCLC、LCCN、OLID、ID)获取图书封面图片的 URL (get_book_cover)。

  • 按 ID 获取图书:使用各种标识符(ISBN、LCCN、OCLC、OLID)检索详细的图书信息 (get_book_by_id)。

安装

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 MCP Open Library:

npx -y @smithery/cli install @8enSmith/mcp-open-library --client claude

手动安装

# Clone the repository
git clone https://github.com/8enSmith/mcp-open-library.git
cd mcp-open-library

# Install dependencies
npm install

# Build the project
npm run build

使用方法

运行服务器

  1. 确保您运行的是 node v22.21.1(它可能在较新版本的 node 上也能工作,但我测试时使用的是这个版本)。如果您安装了 nvm,请运行 nvm use

  2. mcp-open-library 根目录下运行 npm run build

  3. 接下来运行 npm run inspector。构建完成后,点击带有 MCP_PROXY_AUTH_TOKEN 查询字符串参数的 URL 以打开检查器。

  4. 在检查器中,选择 'STDIO' 传输方式

  5. 确保命令设置为 'build/index.js'

  6. 点击检查器中的 'Connect' 按钮 - 您现在将连接到服务器

  7. 点击右上角菜单栏中的 'Tools'

  8. 尝试运行一个工具,例如点击 get_book_by_title

  9. 搜索一本书,例如在书名框中输入 'The Hobbit',然后点击 'Run Tool'。服务器随后将返回图书详情。

与 MCP 客户端配合使用

此服务器实现了模型上下文协议,这意味着它可以被任何兼容 MCP 的 AI 助手或客户端使用,例如 Claude Desktop。服务器公开了以下工具:

  • get_book_by_title:按书名搜索图书信息

  • get_authors_by_name:按姓名搜索作者信息

  • get_author_info:使用 Open Library 作者键获取特定作者的详细信息

  • get_author_photo:使用 Open Library 作者 ID (OLID) 获取作者照片的 URL

  • get_book_cover:使用特定标识符(ISBN、OCLC、LCCN、OLID 或 ID)获取图书封面图片的 URL

  • get_book_by_id:使用特定标识符(ISBN、LCCN、OCLC 或 OLID)获取详细的图书信息

get_book_by_title 输入示例:

{
 "title": "The Hobbit"
}

get_book_by_title 输出示例:

[
 {
 "title": "The Hobbit",
 "authors": [
 "J. R. R. Tolkien"
 ],
 "first_publish_year": 1937,
 "open_library_work_key": "/works/OL45883W",
 "edition_count": 120,
 "cover_url": "https://covers.openlibrary.org/b/id/10581294-M.jpg"
 }
]

get_authors_by_name 输入示例:

{
 "name": "J.R.R. Tolkien"
}

get_authors_by_name 输出示例:

[
 {
 "key": "OL26320A",
 "name": "J. R. R. Tolkien",
 "alternate_names": [
 "John Ronald Reuel Tolkien"
 ],
 "birth_date": "3 January 1892",
 "top_work": "The Hobbit",
 "work_count": 648
 }
]

get_author_info 输入示例:

{
 "author_key": "OL26320A"
}

get_author_info 输出示例:

{
 "name": "J. R. R. Tolkien",
 "personal_name": "John Ronald Reuel Tolkien",
 "birth_date": "3 January 1892",
 "death_date": "2 September 1973",
 "bio": "John Ronald Reuel Tolkien (1892-1973) was a major scholar of the English language, specializing in Old and Middle English. He served as the Rawlinson and Bosworth Professor of Anglo-Saxon and later the Merton Professor of English Language and Literature at Oxford University.",
 "alternate_names": ["John Ronald Reuel Tolkien"],
 "photos": [6791763],
 "key": "/authors/OL26320A",
 "remote_ids": {
 "viaf": "95218067",
 "wikidata": "Q892"
 },
 "revision": 43,
 "last_modified": {
 "type": "/type/datetime",
 "value": "2023-02-12T05:50:22.881"
 }
}

get_author_photo 输入示例:

{
 "olid": "OL26320A"
}

get_author_photo 输出示例:

https://covers.openlibrary.org/a/olid/OL26320A-L.jpg

get_book_cover 输入示例:

{
 "key": "ISBN",
 "value": "9780547928227",
 "size": "L"
}

get_book_cover 输出示例:

https://covers.openlibrary.org/b/isbn/9780547928227-L.jpg

get_book_cover 工具接受以下参数:

  • key:标识符类型(可选值:ISBNOCLCLCCNOLIDID

  • value:标识符的值

  • size:可选的封面尺寸(S 为小,M 为中,L 为大,默认为 L

get_book_by_id 输入示例:

{
 "idType": "isbn",
 "idValue": "9780547928227"
}

get_book_by_id 输出示例:

{
 "title": "The Hobbit",
 "authors": [
 "J. R. R. Tolkien"
 ],
 "publishers": [
 "Houghton Mifflin Harcourt"
 ],
 "publish_date": "October 21, 2012",
 "number_of_pages": 300,
 "isbn_13": [
 "9780547928227"
 ],
 "isbn_10": [
 "054792822X"
 ],
 "oclc": [
 "794607877"
 ],
 "olid": [
 "OL25380781M"
 ],
 "open_library_edition_key": "/books/OL25380781M",
 "open_library_work_key": "/works/OL45883W",
 "cover_url": "https://covers.openlibrary.org/b/id/8231496-M.jpg",
 "info_url": "https://openlibrary.org/books/OL25380781M/The_Hobbit",
 "preview_url": "https://archive.org/details/hobbit00tolkien"
}

get_book_by_id 工具接受以下参数:

  • idType:标识符类型(可选值:isbnlccnoclcolid

  • idValue:标识符的值

可以在此处查看此工具在 Claude Desktop 中使用的示例:

Docker

您可以使用 Docker 测试此 MCP 服务器。为此,请先运行:

docker build -t mcp-open-library .
docker run -p 8080:8080 mcp-open-library

然后,您可以通过检查器测试在 Docker 中运行的服务器,例如:

npm run inspector http://localhost:8080

开发

项目结构

  • src/index.ts - 服务器主实现

  • src/types.ts - TypeScript 类型定义

  • src/index.test.ts - 测试套件

可用脚本

  • npm run build - 构建 TypeScript 代码

  • npm run watch - 监视更改并重新构建

  • npm test - 运行测试套件

  • npm run format - 使用 Prettier 格式化代码

  • npm run inspector - 针对服务器运行 MCP 检查器

运行测试

npm test

贡献

欢迎贡献!请随时提交拉取请求。

致谢

A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
1dResponse time
6moRelease cycle
2Releases (12mo)
Commit activity
Issues opened vs closed

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/8enSmith/mcp-open-library'

If you have feedback or need assistance with the MCP directory API, please join our Discord server