Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REMARKABLE_TOKENYesAuth token from `uvx rm-mcp --setup` or `--register`
REMARKABLE_COMPACTNoSet to 1 or true to omit hints from responses globally
REMARKABLE_CACHE_TTLNoCollection cache TTL in seconds60
REMARKABLE_PAGE_SIZENoPDF/EPUB page size in characters8000
REMARKABLE_ROOT_PATHNoLimit access to a specific folder/
REMARKABLE_INDEX_PATHNoSQLite full-text search index location~/.cache/rm-mcp/index.db
REMARKABLE_OCR_BACKENDNoOCR backend (sampling)sampling
REMARKABLE_INDEX_REBUILDNoSet to 1 to force index rebuild on startup
REMARKABLE_BACKGROUND_COLORNoBackground color for rendered images (#RRGGBB or #RRGGBBAA)#FBFBFB
REMARKABLE_MAX_OUTPUT_CHARSNoMaximum characters in tool responses50000
REMARKABLE_PARALLEL_WORKERSNoParallel workers for metadata fetching5

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
completions
{}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
remarkable_browseA

Browse your reMarkable library folders. List contents of a folder on your reMarkable tablet.

  • Use path="/" for root folder

  • Use path="/FolderName" to navigate into folders

  • If you browse to a document path, it auto-redirects to remarkable_read

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.

  • path: Folder path to browse (default: "/" for root)

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:

  • Viewing hand-drawn diagrams, sketches, or UI mockups

  • Getting visual context that text extraction might miss

  • Implementing designs based on hand-drawn wireframes

  • SVG format for scalable vector graphics that can be edited

Response Formats

By default, images are returned inline:

  • PNG: Returned as ImageContent with base64-encoded data

  • SVG: Returned as EmbeddedResource with TextResourceContents containing SVG markup

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

  • document: Document name or path (use remarkable_browse to find documents)

  • page: Page number (default: 1, 1-indexed)

  • background: Background color as hex code. Supports RGB (#RRGGBB) or RGBA (#RRGGBBAA). Default is "#FBFBFB" (reMarkable paper color), or set REMARKABLE_BACKGROUND_COLOR env var to override. Use "#00000000" for transparent.

  • output_format: Output format - "png" (default) or "svg" for vector graphics

  • compatibility: If True, return resource URI in JSON instead of embedded resource. Use this if your client doesn't support embedded resources in tool responses.

  • include_ocr: Enable OCR text extraction from the image (default: False). When REMARKABLE_OCR_BACKEND=sampling, uses the client's LLM via MCP sampling.

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.

  • item: Current name or full path of the document or folder

  • new_name: The new name (just the name, not a path)

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.

  • item: Name or full path of the document or folder to move

  • destination: Path of the destination folder, or "/" for the top level

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.

  • path: Full path of the folder to create, e.g. "/Work/Archive", or just a name to create it at the top level

remarkable_readA

Read and extract text content from a reMarkable document. Extracts content from a document with pagination to preserve context window.

Content types:

  • "text" (default): Full extracted text (annotations, highlights, OCR)

  • "annotations": Only annotations, highlights, and handwritten notes

Reading modes:

  • Single page: page=N returns the real page N (PDF pages, EPUB sections, notebook pages)

  • Multi-page: pages="all", pages="1-3", pages="2,4,5" — returns multiple pages concatenated

  • grep auto-redirects to the first matching page when no match on 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).

  • document: Document name or path (use remarkable_browse to find documents)

  • content_type: "text" (full), "annotations" (notes only)

  • page: Page number for single-page mode (default: 1)

  • pages: Multi-page spec: "all", "1-3", "2,4,5" (overrides the page param)

  • grep: Regex pattern to filter content (auto-redirects to matching page)

  • include_ocr: Enable handwriting OCR for annotations (default: False)

  • auto_ocr: Auto-retry with OCR on empty notebooks (default: True, set False to skip)

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.

  • limit: Maximum documents to return (default: 10, max: 50 without preview, 10 with preview)

  • include_preview: Include first ~200 chars of text content (default: False)

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:

  • Max 10 documents per search

  • Use grep to search within document content

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.

  • remarkable_status()

  • remarkable_status(compact_output=True) # Omit hints

Prompts

Interactive templates invoked by user choice

NameDescription
summarize_recentGet an AI summary of your recent reMarkable notes
find_notesSearch your reMarkable tablet for notes on a specific topic
daily_reviewReview what you worked on today in your reMarkable tablet
export_documentExtract and format content from a specific document
organize_libraryGet suggestions for organizing your reMarkable library
meeting_notesFind and extract meeting notes from your reMarkable

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 9 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive