笔记管理服务

一个用于管理note.com文章的MCP服务器,支持通过AI助手创建、编辑和发布文章,提供Markdown支持、图片上传、数学公式插入等功能。

  • by drillan
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 drillan/note-mcp

使用说明

注释mcp

note.com文章管理用MCP服务器。AI直接从助手(Claude Code,Claude Desktop等)note.com的文章。

⚠️ 注意:此项目包括note.com非公式API中所述修改相应参数的值。了解更多信息免责声明.md来修改标记元素的显示属性。

特性

  • 🔐 浏览器验证: Playwright的note.com登录并安全保存会话
  • 📝 记事作成: Markdown创建文章并保存为草稿
  • 📖 记事取得:取得已有报道的内容(标题、正文、标签等)
  • ✏️ 记事编集:更新现有文章(检索-编辑-保存工作流)
  • 🚀 记事公开:从草稿到公开的一步变更
  • 🗑️ 记事削除:下书き记事の削除(単体・一括)、2段阶确认で误操作防止
  • 🖼️ 上传图像:上传眼部捕捉图像、文章内嵌入图像
    • 眼部捕捉图像:文章的缩略图用
    • 正文图像:S3直接上传不影响眼捕捉
  • 📋 记事一覧:获取自己的文章列表
  • 👁️ 预览: API通过高速的报道预览显示HTMLobtain
  • 🔄 Markdown→HTML变换:自动note.com兼容HTML转换为格式
  • 📐 公式支持: KaTeX兼容公式符号($${...}$$),模板名称将采用不同的格式
  • 📑 目录支持: [TOC]用符号从标题自动生成目录
  • 🔗 嵌入式支持:外部URL在文章中嵌入(外部文章的丰富预览显示)

安装

# Install from GitHub
uv pip install git+https://github.com/drillan/note-mcp.git

# Install Playwright browser
playwright install chromium

开发安装

# Clone the repository
git clone https://github.com/drillan/note-mcp.git
cd note-mcp

# Install dependencies
uv sync

# Install Playwright browser
uv run playwright install chromium

配置

MCP在客户端配置文件中添加以下内容:。了解更多信息快速入门指南来修改标记元素的显示属性。

基本设定

{
  "mcpServers": {
    "note-mcp": {
      "command": "uv",
      "args": ["run", "python", "-m", "note_mcp"],
      "cwd": "/path/to/note-mcp"
    }
  }
}

备注: cwd 类型的多个类型参数的着色器的编译器中可能发生的故障。指定包安装的项目目录,开发安装的克隆存储库。了解更多信息按安装方法设置来修改标记元素的显示属性。

eachMCP有关客户端(Claude Code,Claude Desktop,VS Code,Cursor,Windsurf)配置文件的位置和详细信息,请参见MCP按客户端设置来修改标记元素的显示属性。

用法

1.登录

note.comにログインしてください

浏览器启动note.com的明细栏样式中定义的设置。手动完成登录后,会话OS的明细栏样式中定义的设置。

2.记事作成

以下の内容でnote.comに下書きを作成してください:

タイトル: AIと記事を書く
本文:
# はじめに
AIアシスタントと一緒に記事を書いてみましょう。

3.上传图像

眼部捕捉(标题)图像

記事ID 12345678 に /path/to/eyecatch.png をアイキャッチ画像としてアップロードしてください

眼部捕捉图像显示为文章的缩略图。

文章内嵌入图像

記事ID 12345678 に /path/to/inline.png を本文用画像としてアップロードし、記事に埋め込んでください

当上传正文用图像时Markdown返回格式的插入代码。通过将其添加到文章正文中,可以嵌入图像。

带说明的图像:

单击功能区上的Markdown的,之title使用属性:

![代替テキスト](画像URL "キャプションテキスト")

例:

![スクリーンショット](https://example.com/image.png "図1: システム構成図")

标题是note.com的明细栏样式中定义的设置。

备注:正文图像S3对较大场景进行渲染期间已观察到该故障。

4.引用和出处

可以在引用块中添加出处(引用源)。Markdown引用— (em破折号+空格)开头的行被识别为出处。

基本出处:

> 知識は力なり
> — フランシス・ベーコン

出处URL添加:

> 知識は力なり
> — フランシス・ベーコン (https://ja.wikipedia.org/wiki/知識は力なり)

来源URL将转换为链接。如果没有出处行,则与以往一样只显示引用。

小贴士:支持多行引用。出处请写在引用块的最后一行。

5.文章编辑(推荐工作流)

编辑现有文章时,首先获取内容,然后进行编辑:

記事ID ne1c111d2073c の内容を取得してください

确认取得的内容后,委托编辑:

取得した記事の末尾に「まとめ」セクションを追加してください

AI中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

6.记事公开

下書きを公開してください

7.删除草稿文章

単体削除

記事 n1234567890ab を削除してください

2阶段确认流程:

  1. 第一个调用将显示删除确认
  2. 确认后,再次调用时实际删除

一括削除

すべての下書き記事を削除してください

同样,在2阶段确认流程中,首先显示删除对象一览,确认后执行批量删除。

注意:无法取消删除。无法删除已发布的文章(出于安全考虑)。

8.使用公式

note.com公式符号Markdown中所述修改相应参数的值。

内嵌公式(嵌入文中):

ピタゴラスの定理は $${a^2 + b^2 = c^2}$$ で表されます。

显示公式(显示在独立行上):

二次方程式の解の公式:

$$
x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$

备注:公式是KaTeX遵守记法。了解更多信息公式功能文档来修改标记元素的显示属性。

9.插入目录

可以在文章中自动生成目录。

# 記事タイトル

[TOC]

## はじめに
導入文...

## 本論
メインコンテンツ...

### サブセクション
詳細...

## まとめ
結論...

[TOC]标题(H2・H3)中所述修改相应参数的值。

备注:了解更多信息目录功能文档来修改标记元素的显示属性。

10.文章预览

您可以预览草稿文章。

在浏览器中预览:

記事 n1234567890ab のプレビューを表示してください

浏览器将启动并显示预览页面。API中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。

HTML获取为:

記事 n1234567890ab のプレビューHTMLを取得してください

单击功能区上HTML将条目添加到文档注册表。E2E可用于测试和内容验证。

备注:预览只能显示自己的文章。验证错误时会自动重试。

11.嵌入外部内容

URL在单独的行中记述的话,会作为外部报道嵌入。

# 参考記事

https://example.com/interesting-article

上記の記事では...

嵌入显示链接目标的标题、说明文和缩略图图像。

备注:了解更多信息嵌入功能文档来修改标记元素的显示属性。

MCP工具

工具 说明
note_login 在浏览器中note.com登录到
note_check_auth 确认认证状态
note_logout 注销(删除会话)
note_set_username 设置用户名(恢复会话时需要)
note_create_draft 创建草稿文章
note_get_article 取得报道内容(标题、正文、标签、状态等)
note_update_article 更新文章(先note_get_article建议在中获取内容
note_publish_article 发布文章
note_list_articles 获取文章列表
note_delete_draft 删除草稿文章(2阶段确认)
note_delete_all_drafts |一并删除所有草稿文章(2阶段确认)|
note_upload_eyecatch 上传眼部捕捉(标题)图像
note_upload_body_image 上传文章正文用的嵌入图像
note_insert_body_image 在文章正文中直接插入图像
note_show_preview 在浏览器中显示文章预览(通过API高速)
note_get_preview_html |文章预览的HTML获得

安全

保存凭据

会话信息(Cookie,用户ID等)表示OS的安全存储加密保存:

OS 保存先
macOS 钥匙扣
Windows 凭据管理器
Linux GNOME密钥环/libsecret

保存的信息:

  • 认证Cookie(_note_session_v5等)
  • 用户ID・用户名
  • 会话创建时间

安全特性

  • OS暗号化:每个OS使用的本地加密功能
  • 用户隔离:仅允许登录用户访问
  • 自动管理: note_login保存note_logout删除

Linux 中的其他设置

Linux那么,您需要:

# Ubuntu/Debian
sudo apt install gnome-keyring

# または
sudo apt install libsecret-1-0

需求

  • Python 3.11+
  • 桌面环境(Playwright运行的环境)
  • note.com账户

码头工人

Docker来修改标记元素的显示属性Playwright可以构建环境。支持多种执行模式。

构建

docker build -t note-mcp .

运行模式

1. Headless(默认值)

CI/CD适用于环境和后台:

# docker-compose使用
docker compose run --rm test

# 直接実行
docker run --rm --ipc=host note-mcp uv run pytest -v

2.以Xvfb为首

Xvfb使用headed模式(在虚拟显示器上启动浏览器):

docker compose run --rm test-headed

# 直接実行
docker run --rm --ipc=host -e USE_XVFB=1 -e HEADED=1 note-mcp uv run pytest -v

备注: HEADED=1要使用环境变量,请在测试代码中os.environ.get("HEADED")查看项目中可用的所有族headless中描述的相应参数的值。

3. VNC通过视觉确认

VNC客户端或Web在浏览器中实时确认浏览器操作:

# バックグラウンドで起動
docker compose up -d test-vnc

# 方法1: noVNC(Webブラウザ経由、クリップボード共有対応)
# ブラウザで http://localhost:6080/vnc.html にアクセス

# 方法2: VNCクライアント
vncviewer localhost:5900

# ログ確認(必要な場合)
docker compose logs -f test-vnc

# 終了時
docker compose down

小贴士: noVNC可以从左侧的剪贴板面板在主机和容器之间复制和粘贴文本。

4.X11转发(Linux/WSL2)

直接显示在主机显示器上:

# X11アクセスを許可(必要な場合)
xhost +local:docker

# 実行
docker compose run --rm test-x11

# または直接
docker run --rm --ipc=host \
  -e DISPLAY=$DISPLAY \
  -e HEADED=1 \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  note-mcp uv run pytest -v

开发用外壳

在容器中交互:

# VNCなしで実行(ポートマッピングなし)
docker compose run --rm dev bash

# VNC経由でブラウザを確認する場合(ポートマッピングあり)
docker compose run --rm --service-ports dev bash

备注: docker compose run默认情况下,不执行端口映射。VNC(端口5900)或noVNC(端口6080)时--service-ports需要标记。

要在容器中打开浏览器,请执行以下操作:

# コンテナ内で実行
uv run python scripts/open_browser.py https://note.com --wait 120

要查看浏览器,请执行以下操作:

  • noVNC(推奨): http://localhost:6080/vnc.html访问(支持剪贴板共享)
  • VNC客户机: vncviewer localhost:5900 连接到

Claude Code + Chrome扩张机能

Docker开发环境Claude Code中所述修改相应参数的值。noVNC经过Claude in Chrome扩展功能可用。

首次安装

# 開発コンテナを起動
docker compose run --rm --service-ports dev bash

# コンテナ内でChromeを起動(--no-sandboxは必須)
google-chrome-stable --no-sandbox &

noVNC(http://localhost:6080/vnc.html)或VNC客户机(vncviewer localhost:5900)连接并按以下步骤安装扩展:

  1. Chrome网络商店にアクセス: https://chromewebstore.google.com/detail/claude/danfoghgkjjpomlapfijehgjhbhnphnf
  2. 「Chrome添加到
  3. 启用扩展

Chrome永久扩展

Chrome扩展和设置Docker卷(chrome-data),模板名称将采用不同的格式。重新创建容器时仍保留扩展。

# ボリュームの確認
docker volume ls | grep chrome-data

# ボリュームの削除(設定をリセットする場合)
docker volume rm note-mcp_chrome-data

Claude Code使用

# コンテナ内で
claude --version  # バージョン確認
claude            # Claude Code起動

环境变数

|变量|说明|默认| |------|------|------------| | USE_XVFB | Xvfb启动(1 或 true) | 0 | | VNC_PORT | VNC服务器端口(TigerVNC)|(无效)| | NOVNC_PORT | noVNC Web访问端口 6080 | | DISPLAY | X11显示 :99 | | XVFB_WHD | Xvfb解像度 | 1920x1080x24 | | CHROME_FLAGS | Chrome启动选项 --no-sandbox (dev)|

备注: VNC_PORT来定义自定义外观TigerVNC启动noVNC进行动态观察时的轴心点。剪贴板共享noVNC来定义自定义外观。

故障排除

Chromium崩溃时:

  • --ipc=host 添加标记(已在docker-compose中设置)
  • 共享内存不足可能是原因

Chrome如果未在“已操作”下启动:

  • google-chrome-stable --no-sandbox & 请在启动
  • Docker内部Chrome的砂箱功能受到限制

claude缺少命令:

  • PATH确认是否正确设置: echo $PATH
  • /home/ubuntu/.local/bin 的PATH包含在

X11连接错误:

  • xhost +local:docker 执行
  • WSL2在…的情况下/mnt/wslg/确认目录存在

VNC缺少支持的问题:

  • 检查其他进程是否使用了端口5900(VNC)或6080(noVNC)
  • docker compose logs test-vnc 查看日志
  • noVNC的双曲正切值http://localhost:6080/vnc.html访问

剪贴板共享不起作用:

  • noVNC(http://localhost:6080/vnc.html),模板名称将采用不同的格式
  • VNC不能通过客户端共享剪贴板
  • noVNC在左侧面板中单击剪贴板图标

“服务器已对显示器99处于活动状态”エラー:

  • 还有上次的集装箱
  • docker compose down 之后由应用程序进行调用

发展

# Install dev dependencies
uv sync --group dev

# Run tests
uv run pytest

# Run E2E tests
uv run pytest tests/e2e/ -v

# Run linter
uv run ruff check .

# Run type checker
uv run mypy .

E2E测试详细信息测试指南来修改标记元素的显示属性。

许可证

MIT许可证

免责声明

这个项目note.com和无关的非正式工具。了解更多信息免责声明.md来修改标记元素的显示属性。