Server data from the Official MCP Registry
Access your reMarkable tablet - read documents, browse files, extract text and OCR handwritten notes
Access your reMarkable tablet - read documents, browse files, extract text and OCR handwritten notes
Valid MCP server (2 strong, 1 medium validity signals). No known CVEs in dependencies. Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.
3 files analyzed · 1 issue found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: REMARKABLE_TOKEN
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-wavyrai-rm-mcp": {
"env": {
"REMARKABLE_TOKEN": "your-remarkable-token-here"
},
"args": [
"rm-mcp"
],
"command": "uvx"
}
}
}From the project's GitHub README.
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.
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:
Whether you're researching, writing, or developing ideas, rm-mcp lets you leverage everything on your reMarkable through AI.
Uses the reMarkable Cloud API. Requires a reMarkable Connect subscription.
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.
Go to my.remarkable.com/device/browser/connect and generate a code.
uvx rm-mcp --register YOUR_CODE
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>"
}
}
}
}
| 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.
pages="all", or a range like pages="1-3"grep automatically finds and jumps to the matching pageauto_ocr=False)compact_output=True to reduce token usage in responses# 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)
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
rm-mcp uses sampling OCR — your MCP client's AI model extracts text from handwritten notes. No additional API keys or services needed.
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.
# OCR on a page image
remarkable_image("Handwritten Notes", include_ocr=True)
# OCR when reading a notebook
remarkable_read("Journal", include_ocr=True)
REMARKABLE_OCR_BACKEND=sampling (this is the default)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/Work are not accessibleUseful for:
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., #FFFFFF for white)#RRGGBBAA — RGBA hex (e.g., #00000000 for transparent)Default is #FBFBFB (reMarkable paper color). This affects both the remarkable_image tool and image resources.
| 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 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.
Ask your AI assistant to summarize your recent notes, find action items, or identify patterns across your journal entries.
Find that half-remembered note by searching across your entire library — including handwritten content.
Treat your reMarkable as a second brain that AI can access. Combined with tools like Obsidian, you can build a powerful personal knowledge system.
| 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 |
git clone https://github.com/wavyrai/rm-mcp.git
cd rm-mcp
uv sync --all-extras
uv run pytest test_server.py -v
MIT
Built with rmscene, PyMuPDF, and inspiration from ddvk/rmapi.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.