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.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม 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": "ใส่ค่าของคุณ",
"SUPERNOTE_DISCOVER": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add supernote --env SUPERNOTE_IP='ใส่ค่าของคุณ' --env SUPERNOTE_DISCOVER='ใส่ค่าของคุณ' -- npx -y supernote-mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"supernote": {
"command": "npx",
"args": [
"-y",
"supernote-mcp"
],
"env": {
"SUPERNOTE_IP": "ใส่ค่าของคุณ",
"SUPERNOTE_DISCOVER": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"supernote": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"supernote-mcp"
],
"env": {
"SUPERNOTE_IP": "ใส่ค่าของคุณ",
"SUPERNOTE_DISCOVER": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
SUPERNOTE_IP envSUPERNOTE_DISCOVER envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub ridget ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.2) เข้า registry 5 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Agent-Native Google Calendar - manage events, sync, and public booking
ให้ AI สร้างและแก้ไฟล์ Excel ได้เอง ทั้งสูตร กราฟ และ PivotTable โดยไม่ต้องมีโปรแกรม Excel ในเครื่อง
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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