Skip to main content

MCP server for accessing reMarkable tablet data

Project description

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

☁️ Cloud Mode

Uses the reMarkable Cloud API. Requires a reMarkable Connect subscription.

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

Install in VS Code Install in VS Code Insiders

Or configure manually in .vscode/mcp.json:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "remarkable-token",
      "description": "reMarkable API Token",
      "password": true
    }
  ],
  "servers": {
    "remarkable": {
      "command": "uvx",
      "args": ["rm-mcp"],
      "env": {
        "REMARKABLE_TOKEN": "${input:remarkable-token}"
      }
    }
  }
}


Tools

Tool Description
remarkable_read Read and extract text from documents (with pagination and search)
remarkable_browse Navigate folders or search by document name
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.

📖 Full Tools Documentation

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)

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")

# Search across documents
remarkable_search("meeting", grep="action items")

# 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)

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 /Work
  • remarkable_browse("/Projects") shows /Work/Projects
  • Documents outside /Work are 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., #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.


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

📖 Development Guide


License

MIT


Built with rmscene, PyMuPDF, and inspiration from ddvk/rmapi.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rm_mcp-0.3.1.tar.gz (492.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rm_mcp-0.3.1-py3-none-any.whl (68.2 kB view details)

Uploaded Python 3

File details

Details for the file rm_mcp-0.3.1.tar.gz.

File metadata

  • Download URL: rm_mcp-0.3.1.tar.gz
  • Upload date:
  • Size: 492.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rm_mcp-0.3.1.tar.gz
Algorithm Hash digest
SHA256 54a8f9ee2b0a79cb1b1c138869ba138575fd77981f9d5885b15cf83b977584bb
MD5 ec66d6702737669ea0d5529f0f3f11a7
BLAKE2b-256 26784df0437eff38cc3038a33c47278b56fa7093ddee355b2cc2bb261554f5e1

See more details on using hashes here.

File details

Details for the file rm_mcp-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: rm_mcp-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 68.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for rm_mcp-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 065ea1c8606a2b5c7c78b6bd2d0c8869d7e8ab6a873366ab8a6562631df3f8ba
MD5 38155d8ebc63dff32fe42e2fb8e6117a
BLAKE2b-256 7e59e080c0d2197772de5117bffd0916dc7521d37ee9b5f6147e65a0e68c36d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page