readwise-mcp

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Readwise MCP

Readwise MCP

Use the Readwise MCP tools to access the user's Readwise highlights and Reader documents. Readwise has two products:
  • Readwise — highlights from books, articles, podcasts, and more. Includes daily review and spaced repetition.
  • Reader — a read-later app for saving and reading articles, PDFs, EPUBs, RSS feeds, emails, tweets, and videos.
使用Readwise MCP工具可访问用户的Readwise高亮内容和Reader文档。Readwise拥有两款产品:
  • Readwise —— 来自书籍、文章、播客等内容的高亮笔记。包含每日复习和间隔重复功能。
  • Reader —— 一款稍后阅读应用,用于保存和阅读文章、PDF、EPUB、RSS订阅、邮件、推文及视频。

Setup

设置

Add the Readwise MCP server to your client's configuration:
json
{
  "readwise": {
    "type": "http",
    "url": "https://mcp2.readwise.io/mcp"
  }
}
The server handles authentication via OAuth — the user will be prompted to authorize on first use.
将Readwise MCP服务器添加到客户端配置中:
json
{
  "readwise": {
    "type": "http",
    "url": "https://mcp2.readwise.io/mcp"
  }
}
服务器通过OAuth处理身份验证——用户首次使用时会被提示授权。

Tool Reference

工具参考

All tools are prefixed with
mcp__readwise__
. Each tool name maps directly to a Readwise or Reader API action.
所有工具均以
mcp__readwise__
为前缀。每个工具名称直接对应Readwise或Reader的API操作。

Reader Tools

Reader工具

Searching documents

搜索文档

reader_search_documents(query="spaced repetition")
Hybrid search (semantic + keyword) across all saved documents. Combine with filters to narrow results:
undefined
reader_search_documents(query="spaced repetition")
混合搜索(语义+关键词)覆盖所有已保存文档。可结合筛选条件缩小结果范围:
undefined

Search articles saved for later

Search articles saved for later

reader_search_documents(query="machine learning", category_in=["article"], location_in=["later", "shortlist"])
reader_search_documents(query="machine learning", category_in=["article"], location_in=["later", "shortlist"])

Search by author

Search by author

reader_search_documents(query="AI agents", author_search="Simon Willison")
reader_search_documents(query="AI agents", author_search="Simon Willison")

Search within a date range

Search within a date range

reader_search_documents(query="transformers", published_date_gt="2024-01-01")
reader_search_documents(query="transformers", published_date_gt="2024-01-01")

Search by tags

Search by tags

reader_search_documents(query="productivity", tags_in=["research"])

Other filters: `title_search`, `summary_search`, `note_search`, `url_search`, `source_search`, `document_id`, `limit` (default 20, max 100).
reader_search_documents(query="productivity", tags_in=["research"])

其他筛选条件:`title_search`、`summary_search`、`note_search`、`url_search`、`source_search`、`document_id`、`limit`(默认20,最大值100)。

Browsing documents

浏览文档

undefined
undefined

List 10 most recent inbox items with minimal fields

List 10 most recent inbox items with minimal fields

reader_list_documents(location="new", limit=10, response_fields=["title", "author", "summary", "word_count", "category", "saved_at"])
reader_list_documents(location="new", limit=10, response_fields=["title", "author", "summary", "word_count", "category", "saved_at"])

Archived articles with a specific tag

Archived articles with a specific tag

reader_list_documents(location="archive", tag=["research"], category="article")
reader_list_documents(location="archive", tag=["research"], category="article")

Unseen inbox items

Unseen inbox items

reader_list_documents(location="new", seen=false)
reader_list_documents(location="new", seen=false)

RSS feed items

RSS feed items

reader_list_documents(location="feed", limit=20, response_fields=["title", "author", "summary", "site_name"])
reader_list_documents(location="feed", limit=20, response_fields=["title", "author", "summary", "site_name"])

Get a specific document by ID

Get a specific document by ID

reader_list_documents(id="<document_id>")
reader_list_documents(id="<document_id>")

Paginate through results

Paginate through results

reader_list_documents(location="later", limit=10, page_cursor="<cursor_from_previous_response>")

Locations: `new` (inbox), `later`, `shortlist`, `archive`, `feed`. When the user says "inbox", use `new`. Only use `feed` when the user explicitly asks about RSS/feeds.

Use `response_fields` to limit returned data and save tokens. The `id` field is always included. Available fields: `url`, `title`, `author`, `source`, `category`, `location`, `tags`, `site_name`, `word_count`, `reading_time`, `created_at`, `updated_at`, `published_date`, `summary`, `image_url`, `content`, `source_url`, `notes`, `parent_id`, `reading_progress`, `first_opened_at`, `last_opened_at`, `saved_at`, `last_moved_at`, `html_content`, `is_deleted`.

Tip: unseen documents have `first_opened_at=null`. Mark as seen via `reader_bulk_edit_document_metadata`.
reader_list_documents(location="later", limit=10, page_cursor="<cursor_from_previous_response>")

位置选项:`new`(收件箱)、`later`、`shortlist`、`archive`、`feed`。当用户提到“收件箱”时,使用`new`。仅当用户明确询问RSS/订阅源时才使用`feed`。

使用`response_fields`限制返回数据以节省令牌。`id`字段始终包含在内。可用字段包括:`url`、`title`、`author`、`source`、`category`、`location`、`tags`、`site_name`、`word_count`、`reading_time`、`created_at`、`updated_at`、`published_date`、`summary`、`image_url`、`content`、`source_url`、`notes`、`parent_id`、`reading_progress`、`first_opened_at`、`last_opened_at`、`saved_at`、`last_moved_at`、`html_content`、`is_deleted`。

提示:未查看的文档`first_opened_at`值为`null`。可通过`reader_bulk_edit_document_metadata`标记为已查看。

Reading and highlighting

阅读与高亮

undefined
undefined

Get full document details including Markdown content

Get full document details including Markdown content

reader_get_document_details(document_id="<id>")
reader_get_document_details(document_id="<id>")

Get all highlights on a document

Get all highlights on a document

reader_get_document_highlights(document_id="<id>")
reader_get_document_highlights(document_id="<id>")

Create a highlight — html_content must match the document's HTML exactly

Create a highlight — html_content must match the document's HTML exactly

Get the HTML via reader_list_documents with response_fields=["html_content"]

Get the HTML via reader_list_documents with response_fields=["html_content"]

reader_create_highlight(document_id="<id>", html_content="<p>The exact passage to highlight</p>")
reader_create_highlight(document_id="<id>", html_content="<p>The exact passage to highlight</p>")

Highlight with a note and tags

Highlight with a note and tags

reader_create_highlight(document_id="<id>", html_content="<p>Key insight</p>", note="Connects to spaced repetition", tags=["review", "concept"])
undefined
reader_create_highlight(document_id="<id>", html_content="<p>Key insight</p>", note="Connects to spaced repetition", tags=["review", "concept"])
undefined

Saving documents

保存文档

undefined
undefined

Save a URL — Reader scrapes it automatically

Save a URL — Reader scrapes it automatically

reader_create_document(url="https://example.com/article")
reader_create_document(url="https://example.com/article")

Save with metadata and tags

Save with metadata and tags

reader_create_document(url="https://example.com", title="Great Article", tags=["research", "ai"], notes="Recommended by Alice")
reader_create_document(url="https://example.com", title="Great Article", tags=["research", "ai"], notes="Recommended by Alice")

Save raw Markdown content (provide a unique URL as identifier)

Save raw Markdown content (provide a unique URL as identifier)

reader_create_document(title="Meeting Notes", markdown="# Notes from today...", url="https://me.com#notes-march-2025")
undefined
reader_create_document(title="Meeting Notes", markdown="# Notes from today...", url="https://me.com#notes-march-2025")
undefined

Organizing

整理文档

undefined
undefined

Move documents between locations (max 50 per call)

Move documents between locations (max 50 per call)

reader_move_documents(document_ids=["<id1>", "<id2>"], location="archive")
reader_move_documents(document_ids=["<id1>", "<id2>"], location="archive")

Bulk mark documents as seen

Bulk mark documents as seen

reader_bulk_edit_document_metadata(documents=[{"document_id": "<id>", "seen": true}])
reader_bulk_edit_document_metadata(documents=[{"document_id": "<id>", "seen": true}])

Bulk update metadata

Bulk update metadata

reader_bulk_edit_document_metadata(documents=[{"document_id": "<id>", "title": "Better Title", "tags": ["ai", "research"]}])

Note: `reader_move_documents` and `reader_bulk_edit_document_metadata` share a rate limit of 20 calls/minute. Batch document IDs into fewer calls.
reader_bulk_edit_document_metadata(documents=[{"document_id": "<id>", "title": "Better Title", "tags": ["ai", "research"]}])

注意:`reader_move_documents`和`reader_bulk_edit_document_metadata`共享每分钟20次调用的速率限制。请将文档ID批量处理以减少调用次数。

Tags

标签管理

undefined
undefined

List all tags

List all tags

reader_list_tags()
reader_list_tags()

Add tags to a document

Add tags to a document

reader_add_tags_to_document(document_id="<id>", tag_names=["important", "research"])
reader_add_tags_to_document(document_id="<id>", tag_names=["important", "research"])

Remove tags from a document

Remove tags from a document

reader_remove_tags_from_document(document_id="<id>", tag_names=["old-tag"])
reader_remove_tags_from_document(document_id="<id>", tag_names=["old-tag"])

Add tags to a highlight

Add tags to a highlight

reader_add_tags_to_highlight(document_id="<id>", highlight_document_id="<hid>", tag_names=["concept"])
reader_add_tags_to_highlight(document_id="<id>", highlight_document_id="<hid>", tag_names=["concept"])

Remove tags from a highlight

Remove tags from a highlight

reader_remove_tags_from_highlight(document_id="<id>", highlight_document_id="<hid>", tag_names=["old-tag"])
reader_remove_tags_from_highlight(document_id="<id>", highlight_document_id="<hid>", tag_names=["old-tag"])

Set notes on a highlight (pass null to clear)

Set notes on a highlight (pass null to clear)

reader_set_highlight_notes(document_id="<id>", highlight_document_id="<hid>", notes="My updated note")
undefined
reader_set_highlight_notes(document_id="<id>", highlight_document_id="<hid>", notes="My updated note")
undefined

Exporting

导出文档

undefined
undefined

Export all documents as a ZIP of Markdown files (async — returns export_id)

Export all documents as a ZIP of Markdown files (async — returns export_id)

reader_export_documents()
reader_export_documents()

Delta export — only docs updated since last export

Delta export — only docs updated since last export

reader_export_documents(since_updated="2024-01-01T00:00:00Z")
reader_export_documents(since_updated="2024-01-01T00:00:00Z")

Poll for completion

Poll for completion

reader_get_export_documents_status(export_id="<id>")

Poll `reader_get_export_documents_status` until `status` is `"completed"`, then use the `download_url`.
reader_get_export_documents_status(export_id="<id>")
轮询`reader_get_export_documents_status`直到`status`变为`"completed"`,然后使用返回的`download_url`下载。

Readwise Tools

Readwise工具

Searching highlights

搜索高亮内容

undefined
undefined

Semantic search across all highlights

Semantic search across all highlights

readwise_search_highlights(vector_search_term="learning techniques")
readwise_search_highlights(vector_search_term="learning techniques")

Search with full-text filter on a specific field

Search with full-text filter on a specific field

readwise_search_highlights(vector_search_term="memory", full_text_queries=[{"field_name": "document_title", "search_term": "psychology"}])

Full-text query fields: `document_author`, `document_title`, `highlight_note`, `highlight_plaintext`, `highlight_tags`.
readwise_search_highlights(vector_search_term="memory", full_text_queries=[{"field_name": "document_title", "search_term": "psychology"}])

全文检索支持的字段:`document_author`、`document_title`、`highlight_note`、`highlight_plaintext`、`highlight_tags`。

Browsing highlights

浏览高亮内容

undefined
undefined

List 20 most recent highlights

List 20 most recent highlights

readwise_list_highlights(page_size=20)
readwise_list_highlights(page_size=20)

Highlights from a specific book

Highlights from a specific book

readwise_list_highlights(book_id=12345)
readwise_list_highlights(book_id=12345)

Highlights from the last month

Highlights from the last month

readwise_list_highlights(highlighted_at_gt="2025-02-01T00:00:00Z")
readwise_list_highlights(highlighted_at_gt="2025-02-01T00:00:00Z")

Paginate

Paginate

readwise_list_highlights(page_size=100, page=2)
undefined
readwise_list_highlights(page_size=100, page=2)
undefined

Creating and editing highlights

创建与编辑高亮内容

undefined
undefined

Create a highlight (matched to a book by title/author, or goes into "Quotes")

Create a highlight (matched to a book by title/author, or goes into "Quotes")

readwise_create_highlights(highlights=[{"text": "The key insight here", "title": "Book Title", "author": "Author Name"}])
readwise_create_highlights(highlights=[{"text": "The key insight here", "title": "Book Title", "author": "Author Name"}])

Create multiple highlights at once

Create multiple highlights at once

readwise_create_highlights(highlights=[{"text": "First quote", "title": "Book A"}, {"text": "Second quote", "title": "Book B", "note": "Great point"}])
readwise_create_highlights(highlights=[{"text": "First quote", "title": "Book A"}, {"text": "Second quote", "title": "Book B", "note": "Great point"}])

Update a highlight

Update a highlight

readwise_update_highlight(highlight_id=12345, note="New note", add_tags=["concept", "review"], color="blue")
readwise_update_highlight(highlight_id=12345, note="New note", add_tags=["concept", "review"], color="blue")

Delete a highlight

Delete a highlight

readwise_delete_highlight(highlight_id=12345)

Colors: `yellow`, `blue`, `pink`, `orange`, `green`, `purple`.
readwise_delete_highlight(highlight_id=12345)

支持的颜色:`yellow`、`blue`、`pink`、`orange`、`green`、`purple`。

Daily review

每日复习

undefined
undefined

Get today's spaced repetition review

Get today's spaced repetition review

readwise_get_daily_review()

Returns highlights selected by the algorithm plus a URL for interactive review.
readwise_get_daily_review()
返回由算法筛选的高亮内容,以及一个用于交互式复习的URL。

Example Workflows

示例工作流

Triage the inbox: List recent saves, read each one, decide what's worth the user's time.
reader_list_documents(location="new", limit=10, response_fields=["title", "author", "summary", "word_count", "category", "saved_at"])
reader_get_document_details(document_id="<id>")
reader_move_documents(document_ids=["<id>"], location="later")     # worth reading
reader_move_documents(document_ids=["<id>"], location="archive")   # skip
Search across everything: Find all content on a topic — run both in parallel.
reader_search_documents(query="spaced repetition")
readwise_search_highlights(vector_search_term="spaced repetition")
Quiz on a recent read: Find a finished document, get its content and highlights.
reader_list_documents(location="archive", limit=10, response_fields=["title", "author", "summary", "word_count"])
reader_get_document_details(document_id="<id>")
reader_get_document_highlights(document_id="<id>")
Catch up on RSS: Browse feed items, surface the best ones, mark the rest as seen.
reader_list_documents(location="feed", limit=20, response_fields=["title", "author", "summary", "word_count", "site_name"])
reader_bulk_edit_document_metadata(documents=[{"document_id": "<id1>", "seen": true}, {"document_id": "<id2>", "seen": true}])
reader_move_documents(document_ids=["<id>"], location="later")
Save and annotate: Save a URL, highlight key passages, tag and organize.
reader_create_document(url="https://example.com/article", tags=["research"])
reader_create_highlight(document_id="<id>", html_content="<p>Key passage here</p>", note="This connects to...")
reader_add_tags_to_document(document_id="<id>", tag_names=["important"])
Build a reading recap: See what you've finished and highlighted recently.
reader_list_documents(location="archive", updated_after="2025-03-10T00:00:00Z", response_fields=["title", "author", "word_count", "reading_progress"])
reader_get_document_highlights(document_id="<id>")
readwise_list_highlights(highlighted_at_gt="2025-03-10T00:00:00Z", page_size=50)
收件箱分类: 列出最近保存的内容,逐一阅读,判断哪些值得用户花费时间。
reader_list_documents(location="new", limit=10, response_fields=["title", "author", "summary", "word_count", "category", "saved_at"])
reader_get_document_details(document_id="<id>")
reader_move_documents(document_ids=["<id>"], location="later")     # 值得阅读
reader_move_documents(document_ids=["<id>"], location="archive")   # 跳过
全内容搜索: 查找某个主题的所有内容——并行运行以下两个操作。
reader_search_documents(query="spaced repetition")
readwise_search_highlights(vector_search_term="spaced repetition")
近期阅读测验: 查找已完成阅读的文档,获取其内容和高亮笔记。
reader_list_documents(location="archive", limit=10, response_fields=["title", "author", "summary", "word_count"])
reader_get_document_details(document_id="<id>")
reader_get_document_highlights(document_id="<id>")
RSS订阅跟进: 浏览订阅源内容,筛选优质内容,标记其余为已查看。
reader_list_documents(location="feed", limit=20, response_fields=["title", "author", "summary", "word_count", "site_name"])
reader_bulk_edit_document_metadata(documents=[{"document_id": "<id1>", "seen": true}, {"document_id": "<id2>", "seen": true}])
reader_move_documents(document_ids=["<id>"], location="later")
保存与批注: 保存URL,高亮关键段落,添加标签并整理。
reader_create_document(url="https://example.com/article", tags=["research"])
reader_create_highlight(document_id="<id>", html_content="<p>Key passage here</p>", note="This connects to...")
reader_add_tags_to_document(document_id="<id>", tag_names=["important"])
阅读回顾: 查看近期已完成的阅读内容和高亮笔记。
reader_list_documents(location="archive", updated_after="2025-03-10T00:00:00Z", response_fields=["title", "author", "word_count", "reading_progress"])
reader_get_document_highlights(document_id="<id>")
readwise_list_highlights(highlighted_at_gt="2025-03-10T00:00:00Z", page_size=50)