MCP开放库
  ](https://smithery.ai/server/@8enSmith/mcp-open-library)
用于开放库API的模型上下文协议(MCP)服务器,使人工智能助手能够搜索书籍和作者信息。
概述
该项目实现了一个MCP服务器,为AI助手提供了与 开放图书馆。它允许按标题搜索图书信息,按姓名搜索作者,使用Open Library密钥检索详细的作者信息,并使用Open Library ID(OLID)获取作者照片的URL。服务器返回书籍和作者信息的结构化数据。
特性
- 按标题搜索书籍:使用书名搜索书籍(
get_book_by_title). - 按姓名搜索作者:使用作者姓名搜索作者(
get_authors_by_name). - 获取作者详细信息:使用特定作者的Open Library密钥检索其详细信息(
get_author_info). - 获取作者照片:使用作者的开放库ID(OLID)获取作者照片的URL(
get_author_photo). - 获取书籍封面:使用各种标识符(ISBN、OCLC、LCCN、OLID、ID)获取书籍封面图像的URL(
get_book_cover). - 按ID获取图书:使用各种标识符(ISBN、LCCN、OCLC、OLID)检索详细的图书信息(
get_book_by_id).
安装
通过史密瑟里安装
通过以下方式自动安装MCP Open Library for Claude Desktop 史密瑟里:
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用法
运行服务器
- 确保您运行的是node v22.21.1(它可能适用于较新版本的node,但这是我用于此测试的)。如果你有
nvm已安装运行nvm use. - 在
mcp-open-library根目录运行npm run build - 下次运行
npm run inspector。构建完成后,单击带有MCP_PROXY_AUTH_TOKEN查询字符串参数以打开检查器。 - 在检查器中,选择“STDIO”传输
- 确保命令设置为“build/index.js”
- 单击检查器中的“连接”按钮-您现在将连接到服务器
- 单击右上角菜单栏中的“工具”
- 尝试运行一个工具,例如单击get_book_by_title
- 搜索一本书,例如在标题框中输入“霍比特人”,然后单击“运行工具”。服务器将返回图书详细信息。
与MCP客户端一起使用
该服务器实现了模型上下文协议,这意味着它可以由任何兼容MCP的AI助手或客户端使用,例如。 克劳德桌面。服务器公开以下工具:
get_book_by_title:按标题搜索图书信息get_authors_by_name:按姓名搜索作者信息get_author_info:使用开放库作者密钥获取特定作者的详细信息get_author_photo:使用作者的开放库作者ID(OLID)获取作者照片的URLget_book_cover:使用特定标识符(ISBN、OCLC、LCCN、OLID或ID)获取书籍封面图像的URLget_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:标识符的类型(以下之一:ISBN,OCLC,LCCN,OLID,或ID)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:标识符的类型(以下之一:isbn,lccn,oclc,olid)idValue:标识符的值
您可以在此处查看Claude Desktop中使用的此工具的示例:
码头工人
您可以使用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贡献
欢迎投稿!请随时提交拉取请求。
