rm-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| REMARKABLE_TOKEN | Yes | Auth token from `uvx rm-mcp --setup` or `--register` | |
| REMARKABLE_COMPACT | No | Set to 1 or true to omit hints from responses globally | |
| REMARKABLE_CACHE_TTL | No | Collection cache TTL in seconds | 60 |
| REMARKABLE_PAGE_SIZE | No | PDF/EPUB page size in characters | 8000 |
| REMARKABLE_ROOT_PATH | No | Limit access to a specific folder | / |
| REMARKABLE_INDEX_PATH | No | SQLite full-text search index location | ~/.cache/rm-mcp/index.db |
| REMARKABLE_OCR_BACKEND | No | OCR backend (sampling) | sampling |
| REMARKABLE_INDEX_REBUILD | No | Set to 1 to force index rebuild on startup | |
| REMARKABLE_BACKGROUND_COLOR | No | Background color for rendered images (#RRGGBB or #RRGGBBAA) | #FBFBFB |
| REMARKABLE_MAX_OUTPUT_CHARS | No | Maximum characters in tool responses | 50000 |
| REMARKABLE_PARALLEL_WORKERS | No | Parallel workers for metadata fetching | 5 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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_browseA | Browse your reMarkable library folders. List contents of a folder on your reMarkable tablet.
Results include document names, types, paths, and modification dates. Note: If REMARKABLE_ROOT_PATH is configured, only documents within that folder are accessible. Paths are relative to the root path. To search by name or content, use remarkable_search() instead.
|
| 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:
Response FormatsBy default, images are returned 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).
|
| remarkable_renameA | Rename a document or folder on your reMarkable. Changes the visible name. Contents, annotations and page data are untouched. The change is committed as a single atomic update, and the response includes the previous library state so it can be undone.
|
| remarkable_moveA | Move a document or folder into another folder. Changes where something lives. Use "/" as the destination to move it to the top level. The item keeps its name and contents.
|
| remarkable_create_folderA | Create a new empty folder on your reMarkable. Creates one folder. The parent folder must already exist — create nested folders one level at a time.
|
| remarkable_readA | Read and extract text content from a reMarkable document. Extracts content from a document with pagination to preserve context window. Content types:
Reading modes:
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_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. Previews are served from the local index when available (no cloud download). 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 and previously-indexed content (FTS5) for the query. Without grep: returns metadata only (name, path, file_type, modified) — no cloud downloads. With grep: searches document content for the pattern, using cached index when available. Reading a document via remarkable_read indexes its content for future full-text search. The response includes index_coverage showing how many documents are searchable. Limits:
|
| remarkable_statusA | Check connection status and authentication with reMarkable Cloud. Returns authentication status and diagnostic information. Use this to verify your connection or troubleshoot issues. Includes index statistics when available.
|
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 |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct action on the reMarkable system: browsing, reading, searching, rendering images, renaming, moving, creating folders, recent items, and status. There's no functional overlap or ambiguity between tools.
All tools share a clear 'remarkable_' prefix with a descriptive word, which is predictable and readable. However, not all names follow a strict verb_noun pattern (e.g., 'image', 'recent', 'status' are nouns/adjectives rather than verbs), so it loses a point for slight inconsistency.
With 9 tools, the set is well-scoped for managing a reMarkable device. Each tool serves a distinct purpose and there are no redundant or unnecessary entries, matching the typical 3-15 tool range.
The tool surface covers the core workflows: browsing, reading, searching, visualizing, organizing (rename/move/create folder), and status. The main gap is the absence of a delete/trash tool, which prevents full lifecycle management but is not a critical failure for the primary use cases.