
Supernote
io.github.ridget由 GitHub 账号 ridget 发布v0.2.2更新于 Oct 25, 2026
Capture the screen, read/render notes, and upload files on a Ratta Supernote from an AI agent.
概览
本地 MCP 服务器,让 AI 助手通过局域网在 Ratta Supernote 墨水屏平板上截取实时屏幕、读取与渲染笔记,并上传或下载文件。
- 可以做什么
- 在你手写或绘图时把平板实时屏幕截取为 PNG 图像,并浏览设备文件列表,按路径查找已保存的笔记本和文件。按页读取已保存笔记中识别出的手写文字,或将笔记页面渲染为 PNG 图像(全部页面,最多 20 页,或指定页面)。从平板下载文件到本地文件系统,例如带批注的 PDF 或导出的笔记。把本地文件上传到设备,可选择目标目录和文件名。
- 适用场景
- 适合让助手把 Supernote 上的手写草图或笔记带入对话、总结已保存的会议笔记,或在规划与回顾时在平板和电脑之间传输 PDF 和导出文件。
- 运行要求
- 以 stdio 在本地运行;可通过 npx(Node.js 18 及以上)、bunx(Bun)或独立二进制安装。需要支持屏幕镜像的 Supernote 设备,并与运行服务器的主机处于同一 Wi-Fi 网络且未启用 VPN 或代理。快照需要屏幕镜像(端口 8080),文件和笔记工具需要 Browse & Access(端口 8089)。通过 SUPERNOTE_IP 设置设备地址,或在每次调用时传入 ip;若未设置或不可达,服务器会扫描局域网,除非设置 SUPERNOTE_DISCOVER=0。
安装
在 SourceWeft 中
- 打开 控制台中的 Supernote,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
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
来源:README.md,提交 b15cad1
工具
0版本历史
1- v0.2.2最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
