Install
$ agentstack add mcp-sammorrowdrums-remarkable-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.4 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.4. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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.
Why remarkable-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
- Robust page rendering — Renders pages locally and automatically falls back to a source PDF when the local stroke renderer can't (USB/SSH use the tablet's own PDF export; cloud uses the original source PDF), so images work across firmware versions and even without system graphics libraries installed
- 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, remarkable-mcp lets you leverage everything on your reMarkable through AI.
Quick Install
🔌 USB Web Interface (Recommended)
Connect via USB and enable the web interface in your tablet's Storage Settings.
[](https://insiders.vscode.dev/redirect/mcp/install?name=remarkable&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22googlevisionapikey%22%2C%22description%22%3A%22Google%20Vision%20API%20Key%20(for%20handwriting%20OCR)%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22remarkable-mcp%22%2C%22--usb%22%5D%2C%22env%22%3A%7B%22GOOGLEVISIONAPIKEY%22%3A%22%24%7Binput%3Agooglevisionapikey%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=remarkable&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22googlevisionapikey%22%2C%22description%22%3A%22Google%20Vision%20API%20Key%20(for%20handwriting%20OCR)%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22remarkable-mcp%22%2C%22--usb%22%5D%2C%22env%22%3A%7B%22GOOGLEVISIONAPIKEY%22%3A%22%24%7Binput%3Agooglevisionapikey%7D%22%7D%7D&quality=insiders)
Setup:
- Connect your reMarkable via USB
- On your tablet: Settings → Storage → Enable "USB web interface"
- Install via the button above
Why USB Web?
- ✅ Fast offline access over USB
- ✅ No subscription required
- ✅ Simple — just enable in Storage Settings
📋 Manual USB Web Configuration
Add to .vscode/mcp.json:
{
"servers": {
"remarkable": {
"command": "uvx",
"args": ["remarkable-mcp", "--usb"],
"env": {
"GOOGLE_VISION_API_KEY": "your-api-key"
}
}
}
}
Troubleshooting:
- Make sure your reMarkable is connected via USB and unlocked
- Verify USB web interface is enabled in Settings → Storage
- The tablet should be accessible at
http://10.11.99.1
⚡ SSH Mode (Advanced)
For power users who need direct filesystem access. Faster than USB Web but requires developer mode (factory reset).
[](https://insiders.vscode.dev/redirect/mcp/install?name=remarkable&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22googlevisionapikey%22%2C%22description%22%3A%22Google%20Vision%20API%20Key%20(for%20handwriting%20OCR)%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22remarkable-mcp%22%2C%22--ssh%22%5D%2C%22env%22%3A%7B%22GOOGLEVISIONAPIKEY%22%3A%22%24%7Binput%3Agooglevisionapikey%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=remarkable&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22googlevisionapikey%22%2C%22description%22%3A%22Google%20Vision%20API%20Key%20(for%20handwriting%20OCR)%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22remarkable-mcp%22%2C%22--ssh%22%5D%2C%22env%22%3A%7B%22GOOGLEVISIONAPIKEY%22%3A%22%24%7Binput%3Agooglevisionapikey%7D%22%7D%7D&quality=insiders)
Requirements: [Developer mode enabled](docs/ssh-setup.md) + USB connection to your reMarkable
📋 Manual SSH Configuration
Add to .vscode/mcp.json:
{
"servers": {
"remarkable": {
"command": "uvx",
"args": ["remarkable-mcp", "--ssh"],
"env": {
"GOOGLE_VISION_API_KEY": "your-api-key"
}
}
}
}
See [SSH Setup Guide](docs/ssh-setup.md) for detailed instructions.
☁️ Cloud Mode (Wireless)
Wireless access with no device connection required — your reMarkable syncs to the cloud and the MCP reads from there, so it works from anywhere. Requires a reMarkable Connect subscription.
Cloud mode fetches your whole library in parallel and caches content-addressed blobs on disk, so after the first run startups and document reads are near-instant (a 388-document library lists in ~4s cold, ~0.5s warm). See [Cloud Performance & Caching](#cloud-performance--caching) to tune it.
📋 Cloud Mode Setup
1. Get a One-Time Code
Go to my.remarkable.com/device/desktop/connect and generate a code.
2. Convert to Token
uvx remarkable-mcp --register YOUR_CODE
3. Install
[](https://insiders.vscode.dev/redirect/mcp/install?name=remarkable&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22token%22%2C%22description%22%3A%22reMarkable%20API%20token%22%2C%22password%22%3Atrue%7D%2C%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22googlevisionapikey%22%2C%22description%22%3A%22Google%20Vision%20API%20Key%20(for%20handwriting%20OCR)%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22remarkable-mcp%22%5D%2C%22env%22%3A%7B%22REMARKABLETOKEN%22%3A%22%24%7Binput%3Atoken%7D%22%2C%22GOOGLEVISIONAPIKEY%22%3A%22%24%7Binput%3Agooglevisionapikey%7D%22%7D%7D) [](https://insiders.vscode.dev/redirect/mcp/install?name=remarkable&inputs=%5B%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22token%22%2C%22description%22%3A%22reMarkable%20API%20token%22%2C%22password%22%3Atrue%7D%2C%7B%22type%22%3A%22promptString%22%2C%22id%22%3A%22googlevisionapikey%22%2C%22description%22%3A%22Google%20Vision%20API%20Key%20(for%20handwriting%20OCR)%22%2C%22password%22%3Atrue%7D%5D&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22remarkable-mcp%22%5D%2C%22env%22%3A%7B%22REMARKABLETOKEN%22%3A%22%24%7Binput%3Atoken%7D%22%2C%22GOOGLEVISIONAPIKEY%22%3A%22%24%7Binput%3Agooglevisionapikey%7D%22%7D%7D&quality=insiders)
Or configure manually in .vscode/mcp.json:
{
"inputs": [
{
"type": "promptString",
"id": "remarkable-token",
"description": "reMarkable API Token",
"password": true
},
{
"type": "promptString",
"id": "google-vision-key",
"description": "Google Vision API Key",
"password": true
}
],
"servers": {
"remarkable": {
"command": "uvx",
"args": ["remarkable-mcp"],
"env": {
"REMARKABLE_TOKEN": "${input:remarkable-token}",
"GOOGLE_VISION_API_KEY": "${input:google-vision-key}"
}
}
}
}
Connection Modes
All three modes share the same read, render, and upload tools. Cloud and SSH additionally support full library management — create folders, move, rename, and delete (all enabled by default) — so capability is near-identical and you can genuinely pick whichever matches how your tablet is connected:
- ☁️ Cloud — device-free, works from anywhere. Reads your library straight from reMarkable's cloud over Wi‑Fi with a Connect subscription — no cable, no developer mode. Full read/render plus full write (upload, create folder, move, rename, delete → trash). Parallel fetching and an on-disk blob cache make it fast after the first sync. Best for remote/headless setups or when you don't want to plug in.
- 🔌 USB Web Interface — best when the tablet is plugged in. Enable the web interface in Storage Settings — no subscription, no developer mode. Full read/render plus upload (to your root folder). The tablet's USB web firmware exposes no folder/move/rename/delete endpoints, so for those over a cable use SSH.
- ⚡ SSH — for power users who want filesystem-level access. Requires developer mode over USB. Full read/render plus full write including folder create/move/rename/delete, straight from the tablet filesystem.
| Mode | Setup | Subscription | Offline | Read + render | Raw PDF/EPUB | Upload | Folder ops¹ | |------|-------|--------------|---------|---------------|--------------|--------|-------------| | ☁️ Cloud | One-time code | Connect | ❌ | ✅ | ✅ PDF/EPUB | ✅ | ✅ | | 🔌 USB Web | Enable in Settings | Not required | ✅ | ✅ | ✅ PDF | ✅ (to root) | ❌ | | ⚡ SSH | Developer mode | Not required | ✅ | ✅ | ✅ PDF/EPUB | ✅ | ✅ |
¹ Folder ops = create folder / move / rename / delete. Upload and folder ops are enabled by default; pass --read-only to expose a read-only server. Deletes move items to the trash and prompt for confirmation when your client supports elicitation, and are refused without it unless REMARKABLE_SKIP_CONFIRM=1 is set.
Automatic cloud fallback
If you select a device transport (--usb or --ssh) but the tablet isn't reachable at startup and a cloud token is configured (REMARKABLE_TOKEN or ~/.rmapi), the server automatically falls back to cloud mode and logs a warning. This means a single configuration works whether or not the tablet is plugged in — plug in for fast local access, unplug to keep working over the cloud. remarkable_status reports the effective transport and a fell_back_to_cloud flag when this happens.
Pass --no-cloud-fallback (or set REMARKABLE_DISABLE_CLOUD_FALLBACK=1) to disable this and fail instead when the device is unreachable.
📖 Detailed Setup Guides:
- [USB Web Interface Setup](docs/usb-web-setup.md) — recommended — simple setup, full feature support
- [SSH Setup Guide](docs/ssh-setup.md) — for advanced users who need filesystem access
- Cloud setup is documented in the Quick Install section above; tuning in [Cloud Performance & Caching](#cloud-performance--caching)
OpenClaw Integration
remarkable-mcp works as an OpenClaw skill. Add to your openclaw.json:
{
"mcpServers": {
"remarkable": {
"command": "uvx",
"args": ["remarkable-mcp", "--usb"]
}
}
}
Install from ClawHub:
clawhub install remarkable-mcp
Or copy the SKILL.md from this repository into your ~/.openclaw/skills/remarkable-mcp/ directory.
Tools
| Tool | Description | |------|-------------| | remarkable_read | Read and extract text from documents (with pagination and search) | | remarkable_browse | Navigate folders, search by document name, or filter by tags | | remarkable_search | Search content across multiple documents (with tag filtering) | | remarkable_recent | Get recently modified documents | | remarkable_status | Check connection status and the per-transport capability matrix | | remarkable_image | Get PNG/SVG images of pages (supports OCR via sampling) |
These six tools are read-only and return structured JSON with hints for next actions. Write tools (remarkable_upload, remarkable_mkdir, remarkable_move, remarkable_rename, remarkable_delete, and remarkable_author for native ink/notebooks) are enabled by default — pass --read-only to disable them — see [Write Tools](#write-tools-cloud-ssh--usb-web). An interactive canvas app (remarkable_canvas) is also registered automatically for clients that support [MCP Apps](#interactive-canvas-app-mcp-apps).
📖 [Full Tools Documentation](docs/tools.md)
Smart Features
- Auto-redirect — Browsing a document path returns its content automatically
- Auto-OCR — Notebooks with no typed text automatically enable OCR
- 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)
- Tag support — Filter and organize documents by tags
Example Usage
# Read a document
remarkable_read("Meeting Notes")
# Search for keywords
remarkable_read("Project Plan", grep="deadline")
# Enable OCR for handwritten notes
remarkable_read("Journal", include_ocr=True)
# Browse your library
remarkable_browse("/Work/Projects")
# Filter by tags
remarkable_browse("/", tags=["important"])
remarkable_browse("/Work", tags=["project", "active"])
# Search across documents
remarkable_search("meeting", grep="action items")
# Search with tag filter
remarkable_search("project", tags=["work"])
# Get recent documents
remarkable_recent(limit=10)
# Get a page image (for visual content like UI mockups or diagrams)
remarkable_image("UI Mockup", page=1)
# Get SVG for editing in design tools
remarkable_image("Wireframe", output_format="svg")
# Get image with OCR text extraction (uses sampling if configured)
remarkable_image("Handwritten Notes", include_ocr=True)
# Transparent background for compositing
remarkable_image("Logo Sketch", background="#00000000")
# Compatibility mode: return resource URI instead of embedded resource
remarkable_image("Diagram", compatibility=True)
> Note: PNG rendering automatically falls back to a source PDF when the > local stroke renderer can't produce an image (empty pages, newer .rm > formats, or a machine without libcairo). USB and SSH modes use the tablet's > native PDF export; cloud mode uses the document's original source PDF. This > keeps remarkable_image working across firmware versions and platforms. > Cloud mode has no native export, so it relies on the local renderer.
Resources
Documents are automatically registered as MCP resources:
| URI Scheme | Description | |------------|-------------| | remarkable:///{path}.txt | Extracted text content | | remarkableraw:///{path}.pdf | Original PDF file (SSH only) | | remarkableraw:///{path}.epub | Original EPUB file (SSH only) | | 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](docs/resources.md)
OCR for Handwriting
For handwritten content, remarkable-mcp offers several OCR backends. Choose based on your setup and requirements:
| Backend | Setup | Quality | Offline | Best For | |---------|-------|---------|---------|----------| | Sampling | No API key | Depends on client model | ✅ | Users with capable AI clients | | Google Vision | API key | Excellent | ❌ | Best handwriting accuracy | | Tesseract | System install | Poor for handwriting | ✅ | Printed text, offline fallback |
Quick Setup
Set REMARKABLE_OCR_BACKEND in your MCP config:
{
"env": {
"REMARKABLE_OCR_BACKEND": "sampling"
}
}
Options: sampling, google, tesseract, auto
📖 Sampling OCR (No API Key)
Uses your MCP client's AI model for OCR. Works with clients that support MCP sampling (VS Code + Copilot, Claude Desktop, etc.).
Pros:
- No additional API keys needed
- Quality depends on your client's model (GPT-4, Claude, etc.)
- Private — handwriting stays local to your client
Cons:
- Only available with sampling-capable clients
- Falls back to Google Vision (if API key configured) or Tesseract if sampling unavailable
📖 Google Cloud Vision
Provides consistently excellent handwriting recognition.
Setup:
- Enable [Cloud Vision API](https://console.cloud.google.com/apis/li
…
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: SamMorrowDrums
- Source: SamMorrowDrums/remarkable-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.4 Imported from the upstream source.