苹果图书MCP
Apple Books的模型上下文协议(MCP)服务器。
     
概览
- 从你停止的地方继续 --克劳德看到了你正在读的那一章 *和* 它的文本,以及书中最近的亮点。
- 展开任何亮点 --根据上下文解释周围的段落,并使用您标记的确切锚点,如所示
«...». - 重温一本书 --提取你的亮点,按主题分类,然后引用你自己的话。
- 反思你的阅读 --书中的模式,亮点中反复出现的想法,你真正被吸引的东西。
https://github.com/user-attachments/assets/77a5a29b-bfd7-4275-a4af-8d6c51a4527e
还有更多!
可用工具
集合
| 工具 | 说明 | 参数 |
|---|---|---|
| list_all_collections | 列出所有集合 | 是否有限制?:int |
| get_collection_books | 获取收藏中的所有书籍 | collection_id:str |
| describe_collection | 获取集合的详细信息 | collection_id:str |
| search_collections_by_title | 按标题搜索集合 | title:str |
书籍
| 工具 | 说明 | 参数 |
|---|---|---|
| list_all_books | 列出所有书籍 | 限制?:int |
| describe_book | 获取特定书籍的详细信息(元数据、进度、注释计数、描述) | book_id:str |
| list_annotations | 获取一本书的所有注释(id+文本+每行章节,按章节顺序排列) | book_id:int,限制?:int |
| search_books_by_title | 按标题搜索书籍 | 标题:str |
| get_books_by_genre | 按流派获取书籍(子字符串匹配) | 流派:str,限制?:int |
阅读状态
| 工具 | 说明 | 参数 |
|---|---|---|
| get_books_in_progress | 获取当前正在阅读的书籍 | 限制?:int |
| get_finishd_books | 获取已完成的书籍 | 限制?:int |
| get_installed_books | 获取尚未开始的书籍 | 限制?:int |
| get_recenty_read_books | 获取最近打开的书籍 | 限制?:int(默认值:10) |
注释
| 工具 | 说明 | 参数 |
|---|---|---|
| list_all_annotations | 浏览按书籍分组的每个注释,最新的第一个 | 限制?:int |
| recent_annotations | 获取最新注释(平面,每行带日期+书籍) | 限制?:int(默认值:10) |
| describe_notation | 获取单个注释的完整详细信息 | annotation_id:str |
| get_annotation_context | 突出显示(它所在的段落)周围的文本窗口,突出显示标记 «...» | annotation_id:int,chars_before?:int(默认值:500),chars_after?:int(默认值:500) |
| get_highlights_by_color | 按书籍分组的特定颜色的亮点 | color:str,有限制吗?:int |
| search_notes | 搜索用户注释(显示高亮+注释内联) | 注释:str,限制?:int |
| search_annotations | 在突出显示+注释+周围文本中搜索 | 文本:str,限制?:int |
| get_annotations_by_date_range | 日期范围内的注释(平面,每行日期+书籍) | 之后?:YYYY-MM-DD,之前?:YYYY-MM-DD,限制?:int |
图书馆统计
| 工具 | 说明 | 参数 |
|---|---|---|
| get_library_stats | 获取包含阅读统计信息的库摘要 | 无 |
书籍内容
仅适用于非DRM EPUB(进口书籍、古腾堡项目、标准电子书等)。Apple Books Store购买受FairPlay保护,并返回明显错误。仅支持iCloud的书籍会返回“未下载”提示。
| 工具 | 说明 | 参数 |
|---|---|---|
| list_book_chapters | 书籍目录(章节标题、顺序、嵌套) | book_id:int |
| get_chapte_content | 章节的纯文本内容,可选 offset + max_chars 切片 | book_id:int,chapter_str,偏移量?:int,max_chars?:int |
| get_current_reading_position | 用户上次未阅读的章节(通过Apple Books的自动书签CFI) | book_id:int |
可用资源
可从Claude Desktop的资源选择器访问的可附加数据对象。
| 资源 | URI | 描述 |
|---|---|---|
| 目前正在阅读 | apple-books://currently-reading | 你现在正在读的书——最近一本正在阅读的书,有元数据, 你遗漏的那一章,以及它的文本预览 (对于非DRM EPUB)和最近的注释。附上任何对话,让克劳德专注于你当前的阅读。 |
可用提示
一键式工作流,可从Claude Desktop的提示选择器访问。
| 提示 | 描述 | 参数 |
|---|---|---|
| weekly_digest | 总结一下我在过去一周 | 天里读过并突出显示的内容?:int(默认值:7) |
| library_snapshot | 反思我的整个阅读生活 | 无 |
| revisit_book | 重新查看特定书籍中的笔记和亮点 | book_title:str |
安装
使用紫外线(推荐)
uvx 可以直接运行apple books mcp(无需安装)。
brew install uv # for macos
uvx apple-books-mcp使用pip
pip install apple-books-mcp安装后,您可以使用以下命令运行服务器:
python -m apple_books_mcp使用Docker
docker run -v ~/Library/Containers/com.apple.iBooksX/Data/Documents:/root/Library/Containers/com.apple.iBooksX/Data/Documents:ro ghcr.io/vgnshiyer/apple-books-mcp:latest首次运行权限提示(macOS)
首次使用时,macOS会询问是否 uvx (或 python / docker(取决于您启动的方式)可能“访问其他应用程序的数据”。单击 允许 --MCP读取Apple Books的私人容器 ~/Library/Containers/com.apple.iBooksX/,macOS将其视为另一个应用程序的沙盒数据。访问是只读的,仅限于该容器;无论哪种方式,服务器都会成功启动,但未经许可,每个工具都会变空。
macOS permission prompt: uvx would like to access data from other apps. Don't Allow / Allow.
配置
Claude桌面设置
使用uvx(推荐)
{
"mcpServers": {
"apple-books-mcp": {
"command": "uvx",
"args": [ "apple-books-mcp@latest" ]
}
}
}使用python
{
"mcpServers": {
"apple-books-mcp": {
"command": "python",
"args": ["-m", "apple_books_mcp"]
}
}
}使用Docker
{
"mcpServers": {
"apple-books-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-v", "~/Library/Containers/com.apple.iBooksX/Data/Documents:/root/Library/Containers/com.apple.iBooksX/Data/Documents:ro",
"ghcr.io/vgnshiyer/apple-books-mcp:latest"
]
}
}
}即将推出的功能
- \[\]PDF内容访问(目前仅限EPUB)
- \[\]通过CFI提供更完整的注释上下文→ 段落决议
贡献
感谢您考虑为这个项目做出贡献!
发展
如果您克隆了此存储库,则可以使用以下配置的Claude Desktop对其进行测试:
使用 uv venv 创建虚拟环境并安装依赖项。
uv venv
uv sync调试
使用克劳德桌面
{
"mcpServers": {
"apple-books-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/apple-books-mcp/",
"run",
"apple_books_mcp",
"-v"
]
}
}
}与检查员一起
npx @modelcontextprotocol/inspector uvx apple-books-mcp开幕式议题
如果你遇到一个bug,有一个功能请求,或者想讨论与项目相关的事情,请在GitHub存储库上打开一个问题。打开问题时,请提供:
错误报告:详细描述问题。如果可能的话,包括重现错误的步骤,以及任何错误消息或屏幕截图。
功能请求:清楚地解释您希望添加到项目中的新功能。提供有关此功能为何有益的上下文。
一般性讨论:欢迎开始讨论与项目有关的更广泛的主题。
贡献
1.️⃣ 分叉GitHub存储库https://github.com/vgnshiyer/apple-books-mcp \ 2.️⃣ 为您的更改创建一个新分支(git checkout-b feature/my new feature)。 \ 3.️⃣ 进行更改并彻底测试它们。 \ 4.️⃣ 推送您的更改并打开Pull Request main.
*请提供您的更改的明确标题和描述。*
许可证
Apple Books MCP根据Apache 2.0许可证获得许可。有关详细信息,请参阅LICENSE文件。

