Leafhour

用 MCP 让 AI Agent 连接你的书。

Leafhour 的 Model Context Protocol(MCP)适配器让兼容的 AI 宿主读取你授权的一本书。它与网页使用同一个阅读服务。访问仅限于一本书和你选择的数据类型;只安装适配器不会获得任何权限。

这是技术接入。当前阅读界面主要为简体中文,尚无完整的授权管理页面。创建和撤回授权,请使用现有兼容客户端或已认证的服务 API。需要帮助时,请联系 support@leafhour.com。

选择 Agent 可以访问的内容。

权限允许的操作
content原文与已保存的译文、书籍信息、分页章节以及该书内的搜索。
notes单独授权的个人评论和问题。
activity已保存的阅读位置和最近的阅读时段。
comment:write保存用户明确提供的评论,并锚定到段落。它不授权修改书籍。

建议先只用 content。授权七天后过期,也可以提前撤回。撤回后,后续服务鉴权会失败;撤回不能清除已经复制到你的 AI 宿主里的内容。

连接适配器。

  1. 按仓库说明在本地运行 Leafhour,或使用托管阅读服务。在自己的书房导入一本书,或选择一本公版样书。
  2. 通过兼容客户端或已认证 API,用 POST /api/library/grants 创建带 bookId 和所选 scopes 的授权。令牌只返回一次,请保存在 AI 宿主的私密配置里。
  3. 读取 GET /api/library/mcp-setup,并用配置生成器创建宿主配置。本地源码运行时,适配器以 node server/mcp.mjs 启动。托管接入会返回实际部署的源码提交,生成的配置固定到这份不可变的源码包并显式允许 HTTPS 书房;缺少部署来源时直接拒绝。
  4. 在兼容的 AI 宿主中启用 MCP 服务器,并在工具请求中带上授权的书籍 ID。用完后可用 POST /api/library/grants/{id}/revoke 撤回授权。

适配器使用这些环境变量:

READER_SERVICE_URL=http://127.0.0.1:8330
READER_AGENT_TOKEN=<your book-scoped grant>

# For your configured HTTPS service only:
# READER_SERVICE_URL=https://leafhour.com
# READER_ALLOW_REMOTE=true

不要把登录密码、会话 Cookie、Supabase 密钥或授权令牌写进公开文档或仓库。MCP 授权与网页登录相互独立。宿主提供密钥存储时,请使用它。

先取一段,再往深处读。

reader_get_manifest 返回这本书的来源信息和章节标识。reader_get_context 返回一个段落及其邻段和稳定锚点。reader_get_chapter 每次最多返回 20 段和继续游标。reader_search 在授权书籍内搜索,最多返回 20 条带锚点的结果。

配合其他权限,reader_get_notes 读取评论和问题,reader_get_reading_activity 读取位置和阅读时段,reader_add_comment 保存用户明确提供的文字。Agent 的访问不会计入阅读日历。

例如:“在我授权的书里找出关于友谊的段落,显示来源章节和段落锚点,帮我比较作者的措辞。”Agent 需要书籍 ID;它无法推断出搜索整个私人书房的权限。

了解当前的限制。

适配器也提供音频工具,但托管音频生成未开放。本地音频需要单独配置和权限;生成音频可能产生供应商费用。MCP 目前不能上传书籍、自动翻译整个书库,也不会自行安排通知。

站内阅读助手有独立的只读边界,与这个外部 MCP 授权相互独立。托管处理细节见隐私与数据说明。

确切的工具定义和当前服务行为,请查看适配器源码、服务路由和按书授权的 MCP 阅读说明。本文描述当前实现,不是计划中的能力。