
Supernote
io.github.ridgetPublished by GitHub account ridgetv0.2.2Updated Oct 25, 2026
Capture the screen, read/render notes, and upload files on a Ratta Supernote from an AI agent.
Overview
Local MCP server that lets an AI assistant capture the live screen, read and render notes, and upload or download files on a Ratta Supernote e-ink tablet over a
- What you can do
- Capture the tablet's live screen as a PNG image while you sketch or handwrite on it, and browse the device's file listing to find saved notebooks and files by path. Read a saved note's recognized handwriting as text per page, or render note pages as PNG images (all pages, capped at 20, or selected pages). Download files from the tablet to the local filesystem, such as annotated PDFs or exported notes. Upload a local file to the device, optionally choosing the target directory and filename.
- When to use it
- Useful when you want an assistant to pull handwritten sketches or notes from a Supernote into a conversation, summarize saved meeting notes, or move PDFs and exported files between the tablet and your machine during a planning or review session.
- Requirements
- Runs locally over stdio; install via npx (Node.js 18 or later), bunx (Bun), or a standalone binary. A Supernote device that supports Screen Mirroring, on the same Wi-Fi network with no VPN or proxy. Screen Mirroring (port 8080) is needed for snapshots and Browse & Access (port 8089) for file and note tools. Set SUPERNOTE_IP to the device address, or pass ip per call; if unset or unreachable, the server scans the LAN unless SUPERNOTE_DISCOVER=0.
Installation
In SourceWeft
- Open Supernote in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
supernote-mcp
An MCP server for the Ratta Supernote e-ink tablet. It lets an AI agent see and work with your Supernote over the local Wi-Fi network:
- Grab the live screen while you sketch or handwrite — "what did I just draw?"
- Browse and read your saved notebooks — recognized handwriting as text, or pages as images.
- Upload files to the device for you to read or annotate.
- Download files from the device — retrieve annotated PDFs, exported notes, or any stored file.
The idea is collaborative prompting: handwrite on the tablet during a planning session and pull it straight into the conversation, or have the agent read and reason over notes you saved earlier.
Every tool is lazy — it touches the device only when invoked, so a session that never calls one makes no network calls to the tablet.
[!IMPORTANT] Unofficial, community-built project — not affiliated with, authorised by, or endorsed by Ratta / Supernote. "Supernote" and "Ratta" are trademarks of their respective owner, used here only for identification. It relies on reverse-engineered, undocumented LAN interfaces (screen mirror + Browse & Access) that may change or break with firmware updates. Provided as-is under the MIT license — use at your own risk.
Built on supernote-typescript for screen
capture and .note parsing.
Prerequisites
- A Supernote that supports Screen Mirroring (Manta / Nomad / A5X / A6X-class devices).
- The tablet and the machine running this server on the same Wi-Fi network, with no VPN or proxy active — either will break the LAN mirror connection.
- For the
npxinstall path: Node.js ≥ 18. Forbunx: Bun. The standalone binary needs neither.
Enable mirroring and find the IP
- On the Supernote, open the sidebar and turn on Screen Mirroring (a.k.a. "Cast"/"Screencast").
- A popup shows an address like
192.168.1.42. That's the device IP. The mirror serves on port 8080 (http://<ip>:8080/screencast.mjpeg); the server appends:8080for you. - Keep mirroring on while you want the agent to be able to snapshot the canvas.
Set the IP once via the SUPERNOTE_IP environment variable, or pass it per-call as the tool's
ip argument (an explicit argument wins over the env var).
Browse & Access (for the file tools)
supernote_list_files (and the note tools) use a separate device feature from screen mirroring:
Browse & Access, the built-in Wi-Fi file server on port 8089.
- On the Supernote, swipe down from the top of the screen to open the drop-down toolbar and tap Browse & Access.
- A popup shows an address like
http://192.168.1.42:8089and stays open while it's active. The device IP is the same as for mirroring; the tools target port 8089 automatically. - Keep the popup open while you want the agent to read or upload files.
Browse & Access and Screen Mirroring are independent toggles — enable whichever the task needs (or both). Discovery probes each port, so the device can be found with only one of them on.
Coping with a changing IP
The mirror address is a DHCP lease and can change between sessions. Two ways to stay robust:
- Pin it (recommended): add a DHCP reservation on your router so the tablet always gets the
same IP, then
SUPERNOTE_IPnever goes stale. - Automatic fallback: if the configured address is unreachable — or none is set — the server
scans the local network for the mirror, uses the device it finds, and logs the new IP so you
can update
SUPERNOTE_IP. The scan only runs as a fallback (never on the fast path) and probes port 8080 across your subnet for the mirror'smultipartstream. Disable it withSUPERNOTE_DISCOVER=0if you'd rather it fail fast than scan the LAN.
Install & register with Claude Code
Pick whichever distribution suits you — none require this repo to be checked out.
Restart Claude Code, then try: "Snapshot my Supernote and tell me what I drew."
On macOS the downloaded binary is unsigned; the first run may be blocked by Gatekeeper. Right-click → Open once, or run
xattr -d com.apple.quarantine /path/to/supernote-mcp-darwin-arm64.
The tools
All tools accept an optional ip (device IP, optionally :port; defaults to SUPERNOTE_IP, else a
LAN scan) and return a clear, actionable message on failure rather than hanging.
Failures point at the usual causes — wrong IP, the relevant feature turned off, or the host/device not sharing a VPN-free Wi-Fi network — and time out fast (10s) rather than hanging.
All tools except supernote_upload_file are read-only. supernote_upload_file writes a file to
the device (it reads a local file the server can access and POSTs it over Browse & Access).
supernote_download_file reads a file from the device and saves it locally — use it to retrieve
annotated PDFs, exported notes, or any file stored on the tablet.
Choosing the right tool
The server also ships this routing as MCP instructions, so a connected agent picks the right tool
on its own. The map:
Saved-note flow: supernote_list_files → take the entry's path → supernote_read_note (text,
cheap — prefer for words) or supernote_render_note (images, for drawings or notes without
recognized text). supernote_snapshot is separate — it's the current screen, not a saved file.
Download flow: supernote_list_files → find the file → supernote_download_file with the
entry's path → file is saved locally for processing (e.g. rendering an annotated PDF's pages).
Local development
Bun is used only to run, typecheck, and build — it is not required by end users. This repo ships an optional devbox environment that provides Bun reproducibly; you can equally use a system Bun install.
bun build --compile cross-compiles too, e.g.
bun build --compile --target=bun-linux-x64 src/server.ts --outfile dist/supernote-mcp-linux-x64.
How it works
src/capture.ts wraps fetchMirrorFrame(${ip}:8080), which parses the device's
multipart/x-mixed-replace stream, extracts a frame, and decodes it via
image-js. The frame is re-encoded to PNG (sidestepping
PNG-vs-JPEG part-encoding differences across firmwares) and returned as base64. src/browse.ts
is a client for the Browse & Access HTTP file server (port 8089): it lists directories (parsing the
listing page's embedded JSON) and downloads files. src/resolve.ts holds the shared address
resolution + LAN-scan fallback used by both, and src/discover.ts does the subnet scan (probing the
mirror or Browse & Access endpoint to recognise the device). src/server.ts registers the tools on
an McpServer over the stdio transport.
License
Source: README.md at commit b15cad1
Tools
0Version history
1- v0.2.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
