Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
作者提供的说明(英文原文)
Capture the screen, read/render notes, and upload files on a Ratta Supernote from an AI agent.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
SUPERNOTE_IP, SUPERNOTE_DISCOVER你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"supernote": {
"command": "npx",
"args": [
"-y",
"supernote-mcp"
],
"env": {
"SUPERNOTE_IP": "your-value",
"SUPERNOTE_DISCOVER": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add supernote --env SUPERNOTE_IP=your-value --env SUPERNOTE_DISCOVER=your-value -- npx -y supernote-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"supernote": {
"command": "npx",
"args": [
"-y",
"supernote-mcp"
],
"env": {
"SUPERNOTE_IP": "your-value",
"SUPERNOTE_DISCOVER": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"supernote": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"supernote-mcp"
],
"env": {
"SUPERNOTE_IP": "your-value",
"SUPERNOTE_DISCOVER": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
SUPERNOTE_IP envSUPERNOTE_DISCOVER env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 ridget 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.2.2)于5个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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:
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.
npx install path: Node.js ≥ 18. For bunx: Bun. The standalone binary needs neither.192.168.1.42. That's the device IP. The mirror serves on port 8080 (http:// :8080/screencast.mjpeg); the server appends :8080 for you.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).
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.
http://192.168.1.42:8089 and stays open while it's active. The device IP is the same as for mirroring; the tools target port 8089 automatically.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.
The mirror address is a DHCP lease and can change between sessions. Two ways to stay robust:
SUPERNOTE_IP never goes stale.SUPERNOTE_IP. The scan only runs as a fallback (never on the fast path) and probes port 8080 across your subnet for the mirror's multipart stream. Disable it with SUPERNOTE_DISCOVER=0 if you'd rather it fail fast than scan the LAN.Pick whichever distribution suits you — none require this repo to be checked out.
# Recommended: published npm package via Node's npx
claude mcp add supernote --scope user --env SUPERNOTE_IP=192.168.1.42 -- npx -y supernote-mcp
claude mcp add supernote --scope user --env SUPERNOTE_IP=192.168.1.42 -- bunx supernote-mcp
chmod +x ./supernote-mcp-darwin-arm64 claude mcp add supernote --scope user --env SUPERNOTE_IP=192.168.1.42 -- /path/to/supernote-mcp-darwin-arm64
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.
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.
| Tool | Needs | Input | Returns |
|---|---|---|---|
supernote_snapshot | Screen Mirroring (8080) | ip? | the live screen as image/png |
supernote_list_files | Browse & Access (8089) | ip?, path? | a listing — name, folder?, size, date, and a path to pass on |
supernote_read_note | Browse & Access (8089) | ip?, path | a note's recognized handwriting/text per page (or a note that recognition hasn't run) |
supernote_render_note | Browse & Access (8089) | ip?, path, pages? | note pages as image/png (all pages, capped at 20, or the pages you pick) |
supernote_download_file | Browse & Access (8089) | ip?, path, out? | downloads a file from the device to the local filesystem |
supernote_upload_file | Browse & Access (8089) | ip?, path, directory?, filename? | uploads a local file to the device (the only tool that writes to it) |
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.
The server also ships this routing as MCP instructions, so a connected agent picks the right tool on its own. The map:
| You want… | Say something like | Tool |
|---|---|---|
| What's on the screen *right now* | "what did I just draw?", "look at my screen" | supernote_snapshot |
| To find a saved note | "what notes do I have?", "find my note about X" | supernote_list_files |
| To read a note's words | "read / summarise my meeting notes" | supernote_read_note |
| To see a note's pages | "show me that sketch", "look at page 2" | supernote_render_note |
| To put a file on the tablet | "send this PDF to my Supernote" | supernote_upload_file |
| To get a file off the tablet | "download my annotated PDF" | supernote_download_file |
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).
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 install
bun run src/capture.ts --ip 192.168.1.42 --out frame.png
bun run src/browse.ts list --ip 192.168.1.42 --path /Note bun run src/browse.ts get --ip 192.168.1.42 --path /Note/obsidian/x.note --out x.note bun run src/browse.ts put --ip 192.168.1.42 --path ./doc.pdf --dir /INBOX
bun run src/server.ts
bunx @modelcontextprotocol/inspector bun run src/server.ts
bun run test # unit tests (bun:test) bun run typecheck # tsc --noEmit bun run build # node-compatible bundle -> dist/server.js (the npx/bunx entry) bun run build:binary # self-contained executable -> dist/supernote-mcp
bun build --compile cross-compiles too, e.g. bun build --compile --target=bun-linux-x64 src/server.ts --outfile dist/supernote-mcp-linux-x64.
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.
MIT