AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Remarkable Mcp

mcp-sammorrowdrums-remarkable-mcp · by SamMorrowDrums

MCP server for accessing reMarkable tablet data - sync files, extract text from highlights, and browse your reMarkable cloud

— No reviews yet
0 installs
57 views
0.0% view→install

Install

$ agentstack add mcp-sammorrowdrums-remarkable-mcp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-sammorrowdrums-remarkable-mcp)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 3mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Remarkable Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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:

  1. Connect your reMarkable via USB
  2. On your tablet: Settings → Storage → Enable "USB web interface"
  3. 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:

  1. 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.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.4 Imported from the upstream source.