图书元数据mcp
搜索的MCP服务器 谷歌图书 和 开放图书馆 查找图书元数据、封面艺术和出版信息。专为与Claude Code、Claude Desktop和任何兼容MCP的客户端一起使用而构建。
特性
- 多源搜索 --同时查询谷歌图书和开放图书馆,根据匹配质量对结果进行评分
- 一次通话查询 —
find_book在一次调用中返回标题、作者、年份、描述、ISBN、主题和封面 - 高分辨率封面 --谷歌图书封面宽约1280px(6种尺寸),开放图书馆L尺寸封面
- 智能评分 --标题/作者匹配与研究指南检测(CliffsNotes、SparkNotes自动降低优先级)
- 准确的出版年份 --交叉引用两个来源,选择最早的可信年份(避免现代重印日期)
- 批处理模式 --一次最多搜索20本书
- 工具注释 --MCP行为提示使客户端能够自动批准安全的只读工具
- 教学错误 --错误响应包括帮助代理自我纠正的建议
- 不需要API密钥 --开箱即用,提供免费等级
工具
| 工具 | 说明 |
|---|---|
find_book | 推荐。 完整的单书查找--在一次调用中返回标题、作者、年份、描述、ISBN、主题和封面。 |
search_book | 按标题、作者或ISBN搜索。从两个来源返回多个得分的候选人。 |
get_cover | 查找最佳可用封面图片URL(优先考虑最大尺寸)。支持尺寸验证。 |
get_metadata | 获取合并元数据:作者、年份、描述、ISBN、主题、页数。 |
download_cover | 下载封面图片并另存为JPEG格式。需要 Pillow. |
bulk_search | 一次搜索多本书(每批最多20本)。 |
安装
克劳德代码
claude mcp add book-metadata -- uvx book-metadata-mcp克劳德桌面版
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"book-metadata": {
"command": "uvx",
"args": ["book-metadata-mcp"]
}
}
}来源
git clone https://github.com/colonylibrary/book-metadata-mcp.git
cd book-metadata-mcp
pip install -e ".[covers]"然后用Claude Code注册:
claude mcp add book-metadata -- book-metadata-mcp用法示例
安装后,您的AI助手可以使用这些工具:
F.斯科特·菲茨杰拉德《寻找了不起的盖茨比》
{
"query": {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald"},
"result_count": 5,
"results": [
{
"source": "open_library",
"title": "The Great Gatsby",
"authors": ["F. Scott Fitzgerald"],
"published_date": "1920",
"cover_url": "https://covers.openlibrary.org/b/id/10590366-L.jpg",
"match_score": 95.0
}
]
}弗兰克·赫伯特的《沙丘》封面
返回Google Books中可用的最大封面的URL(最大可达extraLarge ~ 1280px),并回退到Open Library。
“查找这些书的元数据:1984,勇敢的新世界,华氏451度”
批处理模式搜索所有三个,返回标题、作者、年份、ISBN和封面URL。
配置
所有配置都可以通过环境变量进行选择:
| 变量 | 默认值 | 描述 |
|---|---|---|
GOOGLE_BOOKS_API_KEY | *(无)* | 用于更高配额的可选Google API密钥(1000/天,不含) |
GOOGLE_DELAY | 0.5 | Google API调用之间的秒数 |
OPENLIBRARY_DELAY | 0.35 | 开放库API调用之间的秒数 |
GOOGLE_CB_THRESHOLD | 3 | 断路器跳闸前连续429次故障 |
GOOGLE_CB_COOLDOWN | 60 | 断路器跳闸后跳过谷歌的几秒钟 |
BOOK_MCP_USER_AGENT | BookMetadataMCP/0.2.0 | API请求的用户代理 |
批量使用/速率限制
在没有API密钥的情况下,谷歌图书每天允许约1000个请求。对于超过500册的图书馆,您将达到收费上限。服务器会自动处理此问题:
- 断路器 --在连续3次429响应后,谷歌将被跳过60秒
- 优雅的回退 --Open Library在Google冷却期间继续提供结果
- 自动恢复 --谷歌将在冷却期结束后重试
- 零错误 --限速永远不会导致故障,只是暂时丢失谷歌特定的数据
为了获得最佳的批量体验,请设置 GOOGLE_BOOKS_API_KEY 到一个 Google Cloud API密钥 启用图书API(免费等级:1000/天;付费等级:更高)。
评分工作原理
每个结果都以0-100+的评分标准进行评分:
| 因素 | 点 | 描述 |
|---|---|---|
| 标题匹配 | 0-50 | 完全匹配=50,部分匹配=比例匹配 |
| 作者匹配 | 0-30 | 精确=30,部分/子字符串=20 |
| 有封面 | 10 | 封面图片URL可用 |
| 有描述 | 5 | 书籍描述可用 |
| 是否有ISBN | 5 | ISBN-10或ISBN-13可用 |
| 谷歌来源 | 2 | 对封面质量有轻微偏好 |
| 学习指南 | -60 | CliffsNotes、SparkNotes等。 |
| 虚标题 | -15 | 结果标题比查询长得多 |
数据源
谷歌图书API
- 发布者验证的元数据
- 6种封面图像尺寸(小缩略图到超大)
- 出版商的丰富描述
- 免费:每天1000次请求,无API密钥
开放式库API
- 社区策划的元数据
- 原始出版年份(
first_publish_year) - 广泛的主题分类
- 免费:每秒3个请求,带有User-Agent标头
压力测试结果
针对1920本有声读物进行测试(v0.1.3,全新安装,无API密钥):
| 度量 | 结果 |
|---|---|
| 匹配率 | 92.2% (1752/1901已处理) |
| 错误 | 0 |
| 高置信度匹配(>=70) | 80% (1,523) |
| 有封面URL | 85% (1,629) |
| 有ISBN | 75% (1,444) |
| 有出版年份 | 99.9% 比赛 |
| 速度 | 0.5-0.7本书/秒 |
| 谷歌429处理 | 断路器跳闸,优雅的OL回退 |
所有5个工具都通过: search_book, get_cover, get_metadata, download_cover, bulk_search. 边缘案例测试: 26/26通过 (Unicode、短标题、空输入、特殊字符、ISBN查找、批量限制)。
许可证
麻省理工学院
