Skip to main content
Glama
praveensehgal

io.github.praveensehgal/remarkable

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REMARKABLE_HOSTNoTablet IP address for WiFi mode (e.g., http://10.11.99.1)
REMARKABLE_TOKENNoreMarkable API token (required for cloud mode)
REMARKABLE_ROOT_PATHNoLimit operations to a specific folder on the tablet
GOOGLE_VISION_API_KEYNoGoogle Cloud Vision API key for handwriting OCR
REMARKABLE_OCR_BACKENDNoOCR backend (sampling, google, tesseract, auto)
REMARKABLE_BACKGROUND_COLORNoDefault background color for images (e.g., '#FFFFFF')

Capabilities

Features and capabilities supported by this server

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_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 (PDF/EPUB content + annotations)

  • "raw": Original PDF/EPUB text only (no annotations). SSH mode only.

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

Use pagination to read large documents without overwhelming context:

  • Start with page=1 (default)

  • Check "more" field - if true, there's more content

  • Use "next_page" value to get the next page

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

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

  • content_type: "text" (full), "raw" (PDF/EPUB only), "annotations" (notes only)

  • page: Page number (default: 1). For notebooks, this is the notebook page.

  • grep: Optional regex pattern to filter content (searches current page)

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

remarkable_browseA

Browse your reMarkable library or search for documents. Three modes:

  1. Browse mode (default): List contents of a folder

    • Use path="/" for root folder

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

  2. Search mode: Find documents by name

    • Set query="search term" to search across all documents

  3. Filter by tags: Find documents with specific tags

    • Set tags=["tag1", "tag2"] to filter by tags

    • Works in both browse and search 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.

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

  • query: Search term to find documents by name (optional, triggers search mode)

  • tags: List of tags to filter documents (optional, case-insensitive)

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.

  • 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 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:

  • Max 5 documents per search (to keep response size manageable)

  • Returns first page (~8000 chars) of each matching document

  • Use grep to filter to relevant sections

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.

  • remarkable_status()

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 as embedded resources (EmbeddedResource) which include the full image data inline:

  • PNG: Returned as BlobResourceContents with base64-encoded data

  • SVG: Returned as TextResourceContents with 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_uploadA

Upload a PDF or EPUB file to your reMarkable tablet. Uploads a local file from your computer to the tablet. Only PDF and EPUB formats are supported.

The destination is a folder path on the tablet where the file will be placed. If the destination folder doesn't exist, use remarkable_mkdir first.

  • file_path: Absolute path to the local PDF or EPUB file

  • destination: Folder path on tablet (default: "/" for root)

remarkable_mkdirA

Create a folder (or nested folders) on your reMarkable tablet. Creates the folder at the given path. If intermediate folders don't exist, they are created automatically (like mkdir -p).

Use this to set up your folder structure before uploading documents.

  • path: Full folder path to create (e.g., "/01 Work/NN Inc/Galaxy")

remarkable_deleteA

Delete a document or folder from your reMarkable tablet. Permanently deletes the item at the given path. This cannot be undone.

For folders, all contents are deleted recursively. Use remarkable_browse to verify the path before deleting.

  • path: Exact path to the document or folder to delete

remarkable_moveA

Move or rename a document/folder on your reMarkable tablet. Move a document or folder to a new location, optionally renaming it.

To rename without moving, set destination to the current parent folder. To move without renaming, omit new_name.

  • source: Current path of the item

  • destination: New parent folder path

  • new_name: Optional new name for the item

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

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/praveensehgal/remarkable-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server