mcpField
S
Sidenote

Sidenote

远程服务
sidenote-sync.netlify.app生产力0今天更新

关于 Sidenote

Sidenote 是供 AI 助手读取、搜索和编辑同步笔记本、白板及图片的 MCP 服务。支持托管和本地连接,本地模式可在设备上解密,并可设为只读。

主要功能

  1. 01列出、搜索和读取笔记本
  2. 02创建并编辑笔记内容
  3. 03修改白板项目
  4. 04添加和查看图片
  5. 05加星标或归档笔记本

适用场景

  1. 01查找购物清单中的事项
  2. 02将聊天内容整理成笔记本
  3. 03在白板上绘制发布计划
  4. 04查看笔记中的图片

MCP 相关

向 MCP 客户端提供读取和编辑 Sidenote 内容的工具。可通过托管的 Streamable HTTP 端点或本地服务连接。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://sidenote-sync.netlify.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

README 配图

给 AI 助手的说明

让 Claude、ChatGPT、Gemini、Codex、Cursor 或任何其他 MCP 应用,使用你的 Sidenote 同步密钥读取和编辑你的 Sidenote 记事本。

你可以提出诸如 “我的购物清单还剩什么?”、“勾掉鸡蛋”、“把这段聊天整理成 Trip plan 下的记事本”、“制作一块规划发布流程的白板” 或 “我的实验记录里那张照片是什么?” 这样的问题。更改会在几秒内同步显示在所有已同步的电脑上的 Sidenote 中。

工具功能
list_notepads列出记事本树,包含 ID 和简短预览
search_notepads搜索标题和内容中的全文
read_notepad以 Markdown(或存储的 HTML)读取一个记事本
create_notepad创建新记事本,或在某个记事本下创建子记事本
update_notepad重命名、更改强调色、替换、追加或前置内容
edit_notepad查找并替换文本,同时保留其余内容
edit_whiteboard添加、移动、更改样式或移除白板项目(便签、文本、形状、箭头、图片、嵌入内容、记事本卡片)
add_image从网址或 base64 向记事本或白板添加图片;PNG 和 JPEG 会缩小至不超过 1600 px(大多数小于 250 KB)
view_image查看记事本或白板中的图片
organize_notepad加星标或归档

这些工具不会删除任何内容;它们最多只能归档。

无需账号,无需设置:sidenote-sync.netlify.app

sidenote-sync.netlify.app 适用于任何 AI 和任何套餐:

  • 聊天应用(ChatGPT、Claude、Gemini,包括免费套餐):使用同步密钥在那里打开你的笔记,点击 Link for chat apps,然后将链接粘贴到聊天中。聊天应用会以纯文本形式读取每个记事本。该链接是只读的,可一直使用,直到你关闭链接。

  • 带终端的 Agent(Claude Code、Codex、Gemini CLI、Cursor…):sidenote CLI 是一个无需安装的单文件工具。它可以读取和编辑,笔记会在你的电脑上解密。

    curl -fsSL https://sidenote-sync.netlify.app/sidenote.mjs -o sidenote.mjs
    node sidenote.mjs key sync-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx   # once, in your own terminal
    node sidenote.mjs all                                      # every notepad
    node sidenote.mjs tick Groceries eggs
    
  • 网页版 Sidenote:sidenote-sync.netlify.app/notes 可在任何设备的任何浏览器中打开你的记事本,以便读取和编辑,使用的编辑器与扩展程序相同。pad- 或 view- 密钥可打开对应的共享记事本。密钥会放在地址中 # 后面(浏览器不会将其发送到服务器),因此可以为页面添加书签以便日后返回。

  • 供 AI 本身使用:sidenote-sync.netlify.app/llms.txt 会向任何打开它的助手说明以上内容,以及每条 CLI 命令和 Markdown 方言。

你的同步密钥

在 Sidenote 中,打开完整视图 → 设置 → 同步与设备。如果同步尚未开启,请先开启,然后点击同步密钥旁边的 显示(sync-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx)。任何拥有此密钥的人都可以读取和编辑你的所有记事本,因此只能将它粘贴到这些说明指定的位置。

两种连接方式

  • 托管连接器:https://sidenote-sync.netlify.app/mcp,适用于通过 URL 连接的应用(ChatGPT、claude.ai、Gemini 应用)。你会在 Sidenote 自己的页面上登录,因此 AI 应用不会看到你的密钥。连接器只会在响应请求期间于内存中解密笔记。如果不希望助手更改任何内容,请在登录时选择 只读。
  • 本地服务(此仓库中的 server/index.js),适用于在你的电脑上运行工具的应用(Claude Code、Claude Desktop、Gemini CLI、Codex)。密钥会保留在你的电脑上,笔记也会在那里解密;同步服务始终只会看到加密数据。设置 SIDENOTE_READ_ONLY=1 即可启用只读模式。

安装

Claude Code
claude plugin marketplace add ElMagoCT/sidenote-mcp
claude plugin install sidenote@sidenote

Claude Code 会提示你输入同步密钥,并将其保存在系统密钥链中。运行在本地。

Claude Desktop

从最新版本下载 sidenote.mcpb,打开 设置 → 扩展,将文件拖入,然后粘贴你的同步密钥。在本地运行。

claude.ai(网页、桌面和移动端)

自定义 → 连接器 → 添加自定义连接器,URL 为 https://sidenote-sync.netlify.app/mcp,然后点击 连接并使用同步密钥登录。

ChatGPT

在 chatgpt.com/plugins,点击 + → 添加自定义 MCP 服务,URL 为 https://sidenote-sync.netlify.app/mcp,身份验证选择 OAuth,然后使用同步密钥登录。哪些 ChatGPT 套餐可以添加自定义服务由 OpenAI 决定(帮助文章)。

Codex
codex mcp add sidenote --url https://sidenote-sync.netlify.app/mcp
codex mcp login sidenote

或者作为插件使用:codex plugin marketplace add ElMagoCT/sidenote-mcp,然后在 Codex 中运行 /plugins。

Gemini CLI
gemini extensions install https://github.com/ElMagoCT/sidenote-mcp

它会要求你提供同步密钥,并将其保存在系统钥匙串中。在本地运行。Antigravity CLI:agy plugin install https://github.com/ElMagoCT/sidenote-mcp。

Gemini app

设置 → 已连接的应用 → 添加自定义应用,URL 为 https://sidenote-sync.netlify.app/mcp,然后登录。(Google 为美国的个人账户提供自定义应用,且用户须年满 18 周岁。)

Cursor、VS Code、Windsurf 和其他 MCP 应用

托管版(应用会打开登录页面):

{ "mcpServers": { "sidenote": { "url": "https://sidenote-sync.netlify.app/mcp" } } }

本地版(需要 Node 20+ 和 git;使用 npm 12 时,在 -y 后添加 --allow-git=root):

{
  "mcpServers": {
    "sidenote": {
      "command": "npx",
      "args": ["-y", "github:ElMagoCT/sidenote-mcp"],
      "env": { "SIDENOTE_SYNC_KEY": "sync-xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" }
    }
  }
}

只接受请求头的应用可跳过登录,向托管版 URL 发送 Authorization: Bearer <your sync key>(添加 X-Sidenote-Read-Only: 1 可设为只读)。

Sidenote Markdown

记事本以 Markdown 格式读写,并与 Sidenote 编辑器一一对应,因此助手可以更改一行,而不影响其他内容。每行都是一个独立段落。除常见的标题、强调、链接、列表、- [ ] 待办事项、引用、表格和代码块外:

Markdown在 Sidenote 中
==text==, <u>text</u>高亮、下划线
[Title](sidenote:<id>)指向另一个记事本的链接
<details><summary>Title</summary> … </details>折叠项
## Heading 折叠标题
仅包含 <br> 的一行空行
<time data-at="1767254400000">Jan 1, 9:00 AM</time>提醒(纪元毫秒)
<span data-m="person">Ana</span>提及(person 或 place)
![image](sidenote-image:img-… "1600x1050")图片(加密存储,独占一行;标题中的 small 或 medium 可设置宽度)
![YouTube](https://www.youtube.com/watch?v=…)YouTube 视频或在框架中显示的 Google Drive / Docs / Sheets / Slides / Forms 文件

白板不是 Markdown:read_notepad 会列出其中的项目、ID、位置(白板像素坐标,x 向右,y 向下)和文本,edit_whiteboard 可修改这些项目。没有指定位置的新项目会排列在现有内容下方的行中;一起添加的项目可通过设置 ref 用箭头连接。

隐私与安全

  • Sidenote 不设账户。所有内容都通过你的同步密钥访问,记事本存储在同步服务上,并使用从该密钥派生的密钥进行 AES-256-GCM 加密。
  • **本地服务:**你的密钥和笔记都保存在你的电脑上。它只会向同步服务发送 Sidenote 扩展本身发送的内容:哈希、写入令牌和密文。
  • **托管连接器:**你在 Sidenote 的登录页面输入密钥。密钥会使用只有连接器持有的秘密密钥进行 AES-256-GCM 封装,并写入 AI 应用保存的令牌中,因此应用永远无法看到密钥。连接器不存储密钥或笔记;它会在内存中解密请求所需的内容,然后立即清除。访问令牌有效期为一小时,最多可续期 180 天。断开 AI 应用会在一小时内将所有应用从账户中登出。
  • **聊天应用链接:**创建链接时,密钥会被发送到连接器一次,由连接器将其封装到链接中(密钥不会出现在链接里)。聊天应用打开链接时,连接器会在内存中解密你的记事本以便回答,不会存储任何内容。任何拥有链接的人都可以读取你的笔记,直到你关闭链接(这也会将已连接的应用登出)。链接标记为 noindex。
  • **命令行和网页上的 Sidenote:**二者都像本地服务一样在你自己的设备上解密。命令行还支持共享记事本的 pad- 或 view- 密钥。
  • 助手读取的任何内容都会根据相应 AI 提供商(Anthropic、OpenAI、Google……)自己的隐私政策发送给该提供商。
  • 完整政策:elmagoct.github.io/sidenote-privacy · 条款 · 问题与错误:issues

工作原理

src/keys.js 会像扩展一样派生相同的 ID、写入令牌和 AES 密钥。src/client.js 从同步服务读取加密的账户索引和记事本,并通过比较并交换写回,因此写入不会覆盖尚未读取到的编辑;扩展会合并期间输入的内容。src/md.js 在编辑器的 HTML 和 Markdown 之间进行转换,不依赖 DOM。src/tools.js 和 src/rpc.js 是 MCP 层(无 SDK、无依赖项),由 server/index.js 通过 stdio 提供服务;src/remote.js 则通过 Streamable HTTP 和 OAuth 2.1(客户端 ID 元数据文档或动态注册、PKCE)提供服务。它作为 Netlify Edge Function 运行在同步服务旁边,也提供聊天链接。server/cli.js 是命令行工具(由 scripts/build-cli.sh 打包成单个文件),web/ 则是 sidenote-sync.netlify.app 上的页面,会将 src/ 直接加载到浏览器中。

npm test                    # converter, tools, OAuth, links and CLI against an in-memory sync service
./scripts/build-cli.sh      # dist/sidenote.mjs, the one-file CLI the website serves
./scripts/build-mcpb.sh     # dist/sidenote.mcpb for Claude Desktop

采用 MIT 许可证。src/vendor/ 包含 jpeg-js 0.4.4(BSD-3-Clause;其解码器来自 pdf.js,采用 Apache-2.0 许可证),用于缩小图像;许可证文件位于 src/vendor/jpeg-js.LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。