reMarkable MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REMARKABLE_TOKEN | No | reMarkable API token for cloud mode | |
| REMARKABLE_CACHE_DIR | No | Directory for cached blobs | ~/.remarkable/cache/blobs |
| REMARKABLE_READ_ONLY | No | Set to '1' to enable read-only mode | 0 |
| REMARKABLE_ROOT_PATH | No | Restrict server to a specific folder path | |
| GOOGLE_VISION_API_KEY | No | Google Vision API Key for handwriting OCR | |
| REMARKABLE_OCR_BACKEND | No | OCR backend: sampling, google, tesseract, auto | auto |
| REMARKABLE_RETRY_DELAY | No | Base delay in seconds for exponential backoff | 2.0 |
| REMARKABLE_SKIP_CONFIRM | No | Set to '1' to skip delete confirmation | |
| REMARKABLE_SYNC_WORKERS | No | Parallel workers for cloud fetches | 16 |
| REMARKABLE_DISABLE_CACHE | No | Set to '1' to disable on-disk blob cache | |
| REMARKABLE_CACHE_MAX_BLOB | No | Max blob size in bytes to cache | 4194304 |
| REMARKABLE_RETRY_ATTEMPTS | No | Maximum number of retry attempts for cloud API | 3 |
| REMARKABLE_BACKGROUND_COLOR | No | Default background color for image rendering | #FBFBFB |
| REMARKABLE_DISABLE_CLOUD_FALLBACK | No | Set to '1' to disable automatic cloud fallback |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| completions | {} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| remarkable_readA | Read and extract text content from a reMarkable document. Extracts content from a document with pagination to preserve context window. Content types:
Use pagination to read large documents without overwhelming context:
Use grep to search for specific content on the current page. When REMARKABLE_OCR_BACKEND=sampling is set and the client supports sampling, OCR will use the client's LLM for handwriting recognition (no API keys needed).
|
| remarkable_browseA | Browse your reMarkable library or search for documents. Three modes:
Results include document names, types, modification dates, and tags. Note: If REMARKABLE_ROOT_PATH is configured, only documents within that folder are accessible. Paths are relative to the root path.
|
| remarkable_recentA | Get your most recently modified documents. Returns documents sorted by modification date (newest first). Optionally includes a text preview of each document's content. Use this to quickly find what you were working on recently. Note: If REMARKABLE_ROOT_PATH is configured, only documents within that folder are included.
|
| remarkable_searchA | Search across multiple documents and return matching content. Searches document names for the query, then optionally searches content with grep. Can filter by tags to narrow results. Returns summaries from multiple documents in a single call. This is efficient for finding information across your library without making many individual tool calls. Limits:
|
| remarkable_statusA | Check connection status, active transport, and write capabilities. Returns authentication status, the active transport (cloud, ssh, or usb-web), the document count, and a capability matrix describing what each transport can do. Use this to verify your connection, choose a transport, or troubleshoot. Capability notes:
|
| remarkable_imageA | Get an image of a specific page from a reMarkable document. Renders a notebook or document page as an image (PNG or SVG). This is useful for:
Merged PDF + Annotation RenderingSet render_merged=True to composite the PDF page with the annotation layer into a single image. This is ideal for annotated PDFs where the annotation-only render is hard to interpret without the printed page context. Only works with PNG format and documents that have a PDF underlay. Response FormatsBy default, images are returned as embedded resources (EmbeddedResource) which include the full image data inline:
If your client doesn't support embedded resources in tool responses, set compatibility=True to receive a JSON response with just the resource URI. The client can then fetch the resource separately. Optionally, enable include_ocr=True to extract text from the image using OCR. When REMARKABLE_OCR_BACKEND=sampling is set and the client supports sampling, the client's own LLM will be used for OCR (no API keys needed). Note: This works best with notebooks and handwritten content. For PDFs/EPUBs, the annotations layer is rendered (not the underlying PDF content) unless render_merged=True is set.
|
| remarkable_uploadA | Upload a PDF or EPUB file to the reMarkable tablet. Uploads a local file to the tablet. Only PDF and EPUB formats are supported. Works in all three transports:
Requires write mode (the default; disabled with --read-only).
|
| remarkable_mkdirA | Create a new folder on the reMarkable tablet. Creates a folder in the tablet's document hierarchy. In SSH mode the folder appears after xochitl restarts; in cloud mode it syncs to all your devices. Works in cloud and SSH modes (default; --read-only disables). Not available over the USB web interface (the firmware exposes no folder-create endpoint).
|
| remarkable_moveA | Move a document or folder to a different location. Moves a document or folder by updating its parent reference in the metadata. Find the document name with remarkable_browse() first. Works in cloud and SSH modes (default; --read-only disables). Not available over the USB web interface.
|
| remarkable_renameA | Rename a document or folder on the reMarkable tablet. Changes the display name of a document or folder by updating its metadata. Find the document name with remarkable_browse() first. Works in cloud and SSH modes (default; --read-only disables). Not available over the USB web interface.
|
| remarkable_deleteA | Delete a document or folder on the reMarkable tablet. DESTRUCTIVE operation. In cloud mode the item is moved to the trash (recoverable from the device's Trash). In SSH mode it is marked deleted in its metadata and disappears from the tablet UI after restart. Works in cloud and SSH modes (default; --read-only disables). Not available over the USB web interface. If the client supports elicitation, this tool asks the user to confirm before deleting. If the client cannot show a confirmation prompt, the delete is refused unless REMARKABLE_SKIP_CONFIRM=1 is set (for headless automation).
|
| remarkable_canvasA | Open a reMarkable page in an interactive canvas viewer. Renders a notebook or document page and, in clients that support MCP Apps interactive UI, opens a canvas viewer that lets the user page through the document. This is the entry point for the interactive viewer. The canvas is currently a read-only viewer (render + page navigation). For plain image extraction without the interactive surface, use remarkable_image instead. Clients that do not support MCP Apps still get the rendered page back as an embedded PNG image, so this tool is useful everywhere; it just won't open the interactive panel.
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| summarize_recent | Get an AI summary of your recent reMarkable notes |
| find_notes | Search your reMarkable tablet for notes on a specific topic |
| daily_review | Review what you worked on today in your reMarkable tablet |
| export_document | Extract and format content from a specific document |
| organize_library | Get suggestions for organizing your reMarkable library |
| meeting_notes | Find and extract meeting notes from your reMarkable |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| remarkable_canvas_ui | HTML for the reMarkable interactive canvas app (MCP Apps surface). |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rbonitz/remarkable-mcp-http-'
If you have feedback or need assistance with the MCP directory API, please join our Discord server