reMarkable MCP Server

io.github.wavyraiPublished by GitHub account wavyraiv0.7.0Updated Oct 27, 2026

Access your reMarkable tablet - read documents, browse files, extract text and OCR handwritten notes

Overview

AI-generated overview

Connects an AI assistant to a reMarkable tablet library via the reMarkable Cloud API, so it can browse, read, search and OCR notes and documents.

What you can do
  • Browse folders and list recently modified documents in the reMarkable library
  • Read and extract text from documents, PDFs and EPUBs, with page ranges, pagination and grep-to-page
  • Search content across multiple documents and index read documents for faster later searches
  • Render page images as PNG or SVG for visual context
  • OCR handwritten notes through the client's own model via MCP sampling
  • Rename, move and create folders (nothing is deleted), and expose documents as MCP resources
When to use it
Useful when your notes, research or journals live on a reMarkable tablet and you want an assistant to summarize, search or pull them into writing and knowledge-management workflows such as Obsidian.
Requirements
Runs locally as a Python package (uvx rm-mcp) over stdio. Needs a reMarkable Connect subscription and a REMARKABLE_TOKEN obtained through the setup or register command. OCR requires an MCP client that supports sampling. Optional variables scope the root path, force read-only mode, and tune caching and output size.
Before you install
The token grants access to your reMarkable Cloud library; keep it out of shared configs. Library changes such as renaming, moving and creating folders are enabled by default, so set REMARKABLE_READ_ONLY to 1 if you want read-only use. With OCR, page images are sent to your client's model through sampling. Document text is stored in a local SQLite index.

Installation

In SourceWeft

  1. Open reMarkable MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

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
  • Organise your library — Rename, move, and create folders (nothing is ever deleted)
  • 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)

bash
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
bash
uvx rm-mcp --register YOUR_CODE
3. Add to your MCP client

Claude Code:

bash
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):

json
{  "mcpServers": {    "remarkable": {      "command": "/Users/YOU/.local/bin/uvx",      "args": ["rm-mcp@latest"],      "env": {        "REMARKABLE_TOKEN": "<paste token from step 2>"      }    }  }}


Tools

ToolDescription
remarkable_readRead and extract text from documents (with pagination and search)
remarkable_browseNavigate folders in your library
remarkable_searchSearch content across multiple documents
remarkable_recentGet recently modified documents
remarkable_statusCheck connection status
remarkable_imageGet 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

  • Multi-page read — Read all pages at once with pages="all", or a range like pages="1-3"
  • Grep auto-redirect — grep automatically 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=True to 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

python
# Read a documentremarkable_read("Meeting Notes")
# Read all pages at onceremarkable_read("Meeting Notes", pages="all")
# Read a range of pagesremarkable_read("Research Paper", pages="1-3")
# Search for keywords (auto-redirects to matching page)remarkable_read("Project Plan", grep="deadline")
# Enable OCR for handwritten notesremarkable_read("Journal", include_ocr=True)
# Browse your libraryremarkable_browse("/Work/Projects")
# Search across documentsremarkable_search("meeting", grep="action items")
# Get recent documents with previewsremarkable_recent(limit=5, include_preview=True)
# Get a page imageremarkable_image("UI Mockup", page=1)
# Get image with OCR text extractionremarkable_image("Handwritten Notes", include_ocr=True)

Resources

Documents are automatically registered as MCP resources:

URI SchemeDescription
remarkable:///{path}.txtExtracted text content
remarkableimg:///{path}.page-{N}.pngPNG image of page N (notebooks only)
remarkablesvg:///{path}.page-{N}.svgSVG 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

python
# OCR on a page imageremarkable_image("Handwritten Notes", include_ocr=True)
# OCR when reading a notebookremarkable_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:

json
{  "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:

json
{  "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.

All Environment Variables

VariableDefaultDescription
REMARKABLE_TOKEN(required)Auth token from uvx rm-mcp --setup
REMARKABLE_ROOT_PATH/Limit access to a specific folder
REMARKABLE_READ_ONLY(off)Set to 1 to disable renaming, moving and creating folders
REMARKABLE_OCR_BACKENDsamplingOCR backend (sampling)
REMARKABLE_BACKGROUND_COLOR#FBFBFBBackground color for rendered images (#RRGGBB or #RRGGBBAA)
REMARKABLE_CACHE_TTL60Collection cache TTL in seconds
REMARKABLE_COMPACT(off)Set to 1 or true to omit hints from responses globally
REMARKABLE_MAX_OUTPUT_CHARS50000Maximum characters in tool responses
REMARKABLE_PAGE_SIZE8000PDF/EPUB page size in characters
REMARKABLE_PARALLEL_WORKERS5Parallel workers for metadata fetching
REMARKABLE_INDEX_CONTENT1Set to 0 to disable background indexing of PDF/EPUB text
REMARKABLE_INDEX_PATH~/.cache/rm-mcp/index.dbSQLite 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

GuideDescription
Tools ReferenceDetailed tool documentation
Resources ReferenceMCP resources documentation
Capability NegotiationMCP protocol capabilities
DevelopmentContributing and development setup
Future PlansRoadmap and planned features

Development

bash
git clone https://github.com/wavyrai/rm-mcp.gitcd rm-mcpuv sync --all-extrasuv run pytest test_server.py -v

📖 Development Guide


License

MIT


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

Source: README.md at commit 8e0f74d

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.7.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts