Skip to main content

MCP server for accessing reMarkable tablet data

Project description

reMarkable MCP Server

An MCP (Model Context Protocol) server for accessing your reMarkable tablet data through the reMarkable Cloud.

Quick Install

Install with UVX in VS Code Install with UVX in VS Code Insiders

What It Does

  • Read typed text directly from notebooks (v3+ software, no OCR needed)
  • Browse and search your document library
  • Access recent files with content previews
  • OCR for handwritten content via pytesseract
  • MCP resources and prompts for deeper integration

Installation

Using uvx (Recommended)

# Get your reMarkable token
uvx remarkable-mcp --register YOUR_ONE_TIME_CODE

Click the Quick Install badges above, or configure manually.

From Source

git clone https://github.com/SamMorrowDrums/remarkable-mcp.git
cd remarkable-mcp
uv sync
uv run python server.py --register YOUR_ONE_TIME_CODE

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. Configure MCP

VS Code — Add to .vscode/mcp.json:

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

Your token is stored securely using VS Code's input system with password: true.

Claude Desktop — Add to claude_desktop_config.json:

{
  "mcpServers": {
    "remarkable": {
      "command": "uvx",
      "args": ["remarkable-mcp"],
      "env": {
        "REMARKABLE_TOKEN": "your-token-from-step-2"
      }
    }
  }
}

Tools

Tool Description
remarkable_read Extract text from a document
remarkable_browse List files or search by name
remarkable_recent Get recently modified documents
remarkable_status Check connection status

All tools are read-only and return structured JSON with hints for next actions.

Resources

Recent documents are automatically registered as MCP resources on startup (if authenticated). Each document becomes available at remarkable://doc/{name}.

URI Description
remarkable://doc/{name} Content of a recent document
remarkable://folders Complete folder hierarchy

Prompts

summarize_recent · find_notes · daily_review · export_document · organize_library · meeting_notes

Usage

remarkable_read("Meeting Notes - Nov 2025")
remarkable_browse("/")
remarkable_browse(query="meeting")
remarkable_recent(limit=5, include_preview=True)

Text Extraction

Typed text from v3+ notebooks is extracted natively via rmscene — no OCR required.

Handwritten content uses pytesseract for OCR. Make sure Tesseract is installed on your system:

# macOS
brew install tesseract

# Ubuntu/Debian
sudo apt-get install tesseract-ocr

# Arch
sudo pacman -S tesseract

PDF highlights and annotations are also extracted.

Design

Intent-based tools that map to what you actually want to do. Responses include hints for logical next steps. Errors explain what went wrong and how to fix it. Four tools cover most use cases.

Authentication

Set REMARKABLE_TOKEN in your MCP config (recommended), or the server will fall back to ~/.rmapi.

Development

uv sync --all-extras
uv run pytest test_server.py -v
uv run ruff check .
uv run ruff format .

Project Structure

remarkable-mcp/
├── server.py           # Entry point
├── remarkable_mcp/     # Main package
│   ├── server.py       # FastMCP server
│   ├── api.py          # Cloud API helpers
│   ├── extract.py      # Text extraction
│   ├── tools.py        # MCP tools
│   ├── resources.py    # MCP resources
│   └── prompts.py      # MCP prompts
└── test_server.py      # Tests

License

MIT


Built with rmapy, rmscene, and inspiration from Scrybble.

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

remarkable_mcp-0.1.4.tar.gz (102.9 kB view details)

Uploaded Source

Built Distribution

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

remarkable_mcp-0.1.4-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file remarkable_mcp-0.1.4.tar.gz.

File metadata

  • Download URL: remarkable_mcp-0.1.4.tar.gz
  • Upload date:
  • Size: 102.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for remarkable_mcp-0.1.4.tar.gz
Algorithm Hash digest
SHA256 bf3bf5e5b077121abbbd263542835368cb107f7edf2a7983f7c6caa4d25065aa
MD5 d9881c3ae298ba8d39d77d83cf99bdfd
BLAKE2b-256 eabc5fbaec0f24628c4589e45021c3d919d44d627d33113e7828a2947fc3c464

See more details on using hashes here.

Provenance

The following attestation bundles were made for remarkable_mcp-0.1.4.tar.gz:

Publisher: publish.yml on SamMorrowDrums/remarkable-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file remarkable_mcp-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: remarkable_mcp-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for remarkable_mcp-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4c05071f1db3f326b62805453e05c4762d1a3989d5c57b0bbf06fa6a92761d27
MD5 8bf31a9f5c28526beee1b2b69bfe5328
BLAKE2b-256 ed741a31a07b44cbc8efb58c273fa2eb95a81175f23a7b12ce80dbdd6ef6d93c

See more details on using hashes here.

Provenance

The following attestation bundles were made for remarkable_mcp-0.1.4-py3-none-any.whl:

Publisher: publish.yml on SamMorrowDrums/remarkable-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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