什么是 reMarkable MCP Server?
连接你的 reMarkable 平板,可读取文档、浏览文件、提取文本,并对手写笔记执行 OCR。
README
reMarkable MCP Server
Unlock the full potential of your reMarkable tablet as a second brain for AI assistants. This MCP server lets Claude, VS Code Copilot, and other AI tools read, search, and traverse your entire reMarkable library — including handwritten notes via OCR.
<!-- mcp-name: io.github.wavyrai/rm-mcp -->Why rm-mcp?
Your reMarkable tablet is a powerful tool for thinking, note-taking, and research. But that knowledge stays trapped on the device. This MCP server changes that:
- Full library access — Browse folders, search documents, read any file
- Typed text extraction — Native support for Type Folio and typed annotations
- Handwriting OCR — Convert handwritten notes to searchable text
- PDF & EPUB support — Extract text from documents, plus your annotations
- Smart search — Find content across your entire library
- Second brain integration — Use with Obsidian, note-taking apps, or any AI workflow
Whether you're researching, writing, or developing ideas, rm-mcp lets you leverage everything on your reMarkable through AI.
Quick Install
Uses the reMarkable Cloud API. Requires a reMarkable Connect subscription.
One-command setup (recommended)
uvx rm-mcp --setup
This opens your browser, prompts for the one-time code, and prints the ready-to-paste config for Claude Code and Claude Desktop.
Manual setup
1. Get a One-Time Code
Go to my.remarkable.com/device/browser/connect and generate a code.
2. Convert to Token
uvx rm-mcp --register YOUR_CODE
3. Add to your MCP client
Claude Code:
claude mcp add remarkable \
-e REMARKABLE_TOKEN='<paste token from step 2>' \
-e REMARKABLE_OCR_BACKEND=sampling \
-- uvx rm-mcp@latest
Claude Desktop — add to claude_desktop_config.json (use full path to uvx, e.g. from which uvx):
{
"mcpServers": {
"remarkable": {
"command": "/Users/YOU/.local/bin/uvx",
"args": ["rm-mcp@latest"],
"env": {
"REMARKABLE_TOKEN": "<paste token from step 2>"
}
}
}
}
<!-- Screenshots section - uncomment when screenshots are added ## Screenshots ### MCP Resources Documents appear as resources that AI assistants can access directly:  ### Tool Calls in Action AI assistants use the tools to read documents, search content, and more:  -->
Tools
| Tool | Description |
|---|---|
remarkable_read | Read and extract text from documents (with pagination and search) |
remarkable_browse | Navigate folders in your library |
remarkable_search | Search content across multiple documents |
remarkable_recent | Get recently modified documents |
remarkable_status | Check connection status |
remarkable_image | Get PNG/SVG images of pages (supports OCR via sampling) |
All tools are read-only and return structured JSON with hints for next actions.
Smart Features
- Multi-page read — Read all pages at once with
pages="all", or a range likepages="1-3" - Grep auto-redirect —
grepautomatically finds and jumps to the matching page - Auto-redirect — Browsing a document path returns its content automatically
- Auto-OCR — Notebooks with no typed text automatically enable OCR (opt out with
auto_ocr=False) - Full-text search — Reading a document indexes it for fast future searches
- Compact mode — Use
compact_output=Trueto reduce token usage in responses - Batch search — Search across multiple documents in one call
- Vision support — Get page images for visual context (diagrams, mockups, sketches)
- Sampling OCR — Use client's AI for OCR on images (no API key needed)
Example Usage
# Read a document
remarkable_read("Meeting Notes")
# Read all pages at once
remarkable_read("Meeting Notes", pages="all")
# Read a range of pages
remarkable_read("Research Paper", pages="1-3")
# Search for keywords (auto-redirects to matching page)
remarkable_read("Project Plan", grep="deadline")
# Enable OCR for handwritten notes
remarkable_read("Journal", include_ocr=True)
# Browse your library
remarkable_browse("/Work/Projects")
# Search across documents
remarkable_search("meeting", grep="action items")
# Get recent documents with previews
remarkable_recent(limit=5, include_preview=True)
# Get a page image
remarkable_image("UI Mockup", page=1)
# Get image with OCR text extraction
remarkable_image("Handwritten Notes", include_ocr=True)
Resources
Documents are automatically registered as MCP resources:
| URI Scheme | Description |
|---|---|
remarkable:///{path}.txt | Extracted text content |
remarkableimg:///{path}.page-{N}.png | PNG image of page N (notebooks only) |
remarkablesvg:///{path}.page-{N}.svg | SVG vector image of page N (notebooks only) |
📖 Full Resources Documentation
OCR for Handwriting
rm-mcp uses sampling OCR — your MCP client's AI model extracts text from handwritten notes. No additional API keys or services needed.
How It Works
When you use include_ocr=True, rm-mcp sends page images to your client's LLM (Claude, GPT-4, etc.) via MCP sampling. The model reads the handwriting and returns the text.
Usage
# OCR on a page image
remarkable_image("Handwritten Notes", include_ocr=True)
# OCR when reading a notebook
remarkable_read("Journal", include_ocr=True)
Requirements
- Your MCP client must support the sampling capability (VS Code + Copilot, Claude Desktop, etc.)
REMARKABLE_OCR_BACKEND=sampling(this is the default)
Advanced Configuration
Root Path Filtering
Limit the MCP server to a specific folder on your reMarkable. All operations will be scoped to this folder:
{
"servers": {
"remarkable": {
"command": "uvx",
"args": ["rm-mcp"],
"env": {
"REMARKABLE_TOKEN": "your-token",
"REMARKABLE_ROOT_PATH": "/Work"
}
}
}
}
With this configuration:
remarkable_browse("/")shows contents of/Workremarkable_browse("/Projects")shows/Work/Projects- Documents outside
/Workare not accessible
Useful for:
- Focusing on work documents during office hours
- Separating personal and professional notes
- Limiting scope for specific AI workflows
Custom Background Color
Set the default background color for image rendering:
{
"servers": {
"remarkable": {
"command": "uvx",
"args": ["rm-mcp"],
"env": {
"REMARKABLE_TOKEN": "your-token",
"REMARKABLE_BACKGROUND_COLOR": "#FFFFFF"
}
}
}
}
Supported formats:
#RRGGBB— RGB hex (e.g.,#FFFFFFfor white)#RRGGBBAA— RGBA hex (e.g.,#00000000for transparent)
Default is #FBFBFB (reMarkable paper color). This affects both the remarkable_image tool and image resources.
All Environment Variables
| Variable | Default | Description |
|---|---|---|
REMARKABLE_TOKEN | (required) | Auth token from uvx rm-mcp --setup |
REMARKABLE_ROOT_PATH | / | Limit access to a specific folder |
REMARKABLE_OCR_BACKEND | sampling | OCR backend (sampling) |
REMARKABLE_BACKGROUND_COLOR | #FBFBFB | Background color for rendered images (#RRGGBB or #RRGGBBAA) |
REMARKABLE_CACHE_TTL | 60 | Collection cache TTL in seconds |
REMARKABLE_COMPACT | (off) | Set to 1 or true to omit hints from responses globally |
REMARKABLE_MAX_OUTPUT_CHARS | 50000 | Maximum characters in tool responses |
REMARKABLE_PAGE_SIZE | 8000 | PDF/EPUB page size in characters |
REMARKABLE_PARALLEL_WORKERS | 5 | Parallel workers for metadata fetching |
REMARKABLE_INDEX_PATH | ~/.cache/rm-mcp/index.db | SQLite full-text search index location |
REMARKABLE_INDEX_REBUILD | (off) | Set to 1 to force index rebuild on startup |
Most users only need REMARKABLE_TOKEN. The rest are for advanced tuning.
Use Cases
Research & Writing
Use rm-mcp while working in an Obsidian vault or similar to transfer knowledge from your handwritten notes into structured documents. AI can read your research notes and help develop your ideas.
Daily Review
Ask your AI assistant to summarize your recent notes, find action items, or identify patterns across your journal entries.
Document Search
Find that half-remembered note by searching across your entire library — including handwritten content.
Knowledge Management
Treat your reMarkable as a second brain that AI can access. Combined with tools like Obsidian, you can build a powerful personal knowledge system.
Documentation
| Guide | Description |
|---|---|
| Tools Reference | Detailed tool documentation |
| Resources Reference | MCP resources documentation |
| Capability Negotiation | MCP protocol capabilities |
| Development | Contributing and development setup |
| Future Plans | Roadmap and planned features |
Development
git clone https://github.com/wavyrai/rm-mcp.git
cd rm-mcp
uv sync --all-extras
uv run pytest test_server.py -v
License
MIT
Built with rmscene, PyMuPDF, and inspiration from ddvk/rmapi.
常见问题
reMarkable MCP Server 是什么?
连接你的 reMarkable 平板,可读取文档、浏览文件、提取文本,并对手写笔记执行 OCR。
相关 Skills
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
MCP服务构建器
by alirezarezvani
从 OpenAPI 一键生成 Python/TypeScript MCP server 脚手架,并校验 tool schema、命名规范与版本兼容性,适合把现有 REST API 快速发布成可生产演进的 MCP 服务。
✎ 帮你快速搭建 MCP 服务与后端 API,脚手架完善、扩展顺手,尤其适合想高效验证服务能力的开发者。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。