360 Secure SkillHub
360 安全技能中心

Reader MCP

提供六个 Python 命令行脚本,调用 Readwise Reader 接口列出、创建、更新、批量更新和删除文档,并列出标签;通过访问令牌环境变量认证,支持 --dry-run 预演与 JSON 格式输出。

xinthink
xinthink
热度 16.02
最近更新 2026-03-25 23:36:54
分类:知识依赖:代码执行 / 读写文件 / 第三方 API应用场景:笔记整理 / 研究 / 工作流 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add reader-mcp
Metadata
name
reader
description
Interact with Readwise Reader library to list, create, update, and delete documents. Use when the user wants to manage their saved articles, reading lists, or retrieve document content. Triggers on mentions of "Readwise Reader", "Reader API", or requests to save/read/archive web articles.

Reader

Interact with Readwise Reader library using executable scripts.

Quick Start

All Reader operations are available as scripts in the scripts/ subdirectory:

Script Purpose Input
list_documents.py Query documents CLI flags
create_document.py Save URL/content JSON payload
update_document.py Modify document JSON payload
bulk_update_documents.py Batch modify (max 50) JSON payload
delete_document.py Remove documents JSON payload
list_tags.py List all tags CLI flags

Authentication

Set the READWISE_ACCESS_TOKEN environment variable using one of these methods:

Method 1: Using a .env file

Create a .env file in the project directory:

READWISE_ACCESS_TOKEN=your-token-here

The scripts automatically load environment variables from .env using python-dotenv.

Method 2: Command line

Export in shell:

export READWISE_ACCESS_TOKEN=your-token-here

Or inline for a single command:

READWISE_ACCESS_TOKEN=your-token-here python scripts/list_documents.py

Getting your token

Get your token from: https://readwise.io/access_token

Setup

Install the required dependencies before using the scripts:

pip install -r scripts/requirements.txt

The scripts require:

  • httpx - Async HTTP client for API requests
  • python-dotenv - Environment variable management

Common Workflows

List documents in a folder

python scripts/list_documents.py --location later --limit 10

Save a URL with tags

echo '{"url": "https://example.com/article", "tags": ["important"]}' | python scripts/create_document.py

Archive a document

echo '{"id": "doc-id", "location": "archive"}' | python scripts/update_document.py

Bulk archive multiple documents

echo '{"updates": [{"id": "doc1", "location": "archive"}, {"id": "doc2", "location": "archive"}]}' | python scripts/bulk_update_documents.py

Error Handling

Exit Code Meaning Action
0 Success Parse stdout
1 API error Check stderr for details
2 Auth error Verify READWISE_ACCESS_TOKEN
3 Rate limit Wait and retry
4 Invalid input Fix payload/flags

Errors are written to stderr in JSON format:

{"error": {"type": "...", "message": "...", "hint": "..."}}

Rate Limits

Scripts automatically handle retries for rate limits (429) and server errors (5xx). No action needed unless exit code 3.

Resources