note-post-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@note-post-mcppublish the note in ./posts/hello.md"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Note Post MCP
note.comへの記事投稿を自動化するMCPサーバーです。Markdownファイルからタイトル、本文、タグ、価格設定を読み取り、Playwrightを使用してnote.comに投稿します。
⚠️ 免責事項: 本ツールは自己責任でご利用ください。note.comの利用規約やサービス変更により、予告なく動作しなくなる可能性があります。詳細は「利用規約に関する注意事項」をご確認ください。
主な機能
MCP経由での単体投稿 - Claude等のAIアシスタントから直接記事を投稿
バッチ投稿スクリプト - 複数の記事を連続して自動投稿
有料記事対応 - 価格設定と有料ラインの位置指定(
<!-- paid -->)画像対応 - サムネイル画像と本文中の画像挿入
下書き保存 - 公開せずに下書きとして保存
タグ設定 - Front Matterで指定したタグを自動入力
Related MCP server: Markdown-To-Notion
クイックスタート
# 1. Playwrightブラウザをインストール
npx playwright install chromium
# 2. ログインして認証状態を取得
npx note-post-mcp-login
# 3. Claude Desktopの設定ファイルに追加(後述)インストール
必要要件
Node.js 18+
note.comアカウント
認証状態ファイル
note-state.json(後述の手順で取得)
npmからインストール(推奨)
npm install -g @gonuts555/note-post-mcpGitHubからインストール
git clone https://github.com/nullponull/note-post-mcp.git
cd note-post-mcp
npm install
npm run buildPlaywrightブラウザのインストール
重要: Playwrightはブラウザを別途インストールする必要があります。
# GitHubからクローンした場合
npm run install-browser
# または直接実行
npx playwright install chromium注意:
npx note-post-mcpでMCPサーバーとして使用する場合も、事前に上記コマンドでChromiumをインストールしてください。Playwrightのブラウザはシステムグローバルにインストールされるため、一度インストールすれば再インストールは不要です。
認証状態ファイルの取得
note.comの認証状態を取得するには、ログインスクリプトを実行します。
GitHubからクローンした場合
npm run loginnpmでグローバルインストールした場合
# ログインスクリプトを実行
npx note-post-mcp-login注意: 事前に
npx playwright install chromiumでブラウザをインストールしてください。
保存場所
ブラウザが開くので、note.comにログインしてからターミナルでEnterを押してください。認証状態は以下に保存されます:
OS | パス |
macOS/Linux |
|
Windows |
|
環境変数 NOTE_POST_MCP_STATE_PATH で保存先を変更できます。
MCPサーバーとして使用
Claude Code (CLI)
claude mcp add note-post-mcp -s user -e NOTE_POST_MCP_STATE_PATH="/path/to/note-state.json" -- npx note-post-mcpCursor
.cursor/mcp.jsonを作成:
{
"mcpServers": {
"note-post-mcp": {
"command": "npx",
"args": ["note-post-mcp"],
"env": {
"NOTE_POST_MCP_STATE_PATH": "/path/to/note-state.json"
},
"autoStart": true
}
}
}Claude Desktop
claude_desktop_config.jsonに追加:
{
"mcpServers": {
"note-post-mcp": {
"command": "npx",
"args": ["note-post-mcp"],
"env": {
"NOTE_POST_MCP_STATE_PATH": "/path/to/note-state.json"
}
}
}
}MCPツール
publish_note
Markdownファイルからnote.comに記事を公開します。
パラメータ:
markdown_path(string, 必須): Markdownファイルのパスthumbnail_path(string, 任意): サムネイル画像のパスstate_path(string, 任意): 認証状態ファイルのパスprice(number, 任意): 有料記事の価格(100〜50000円)post_to_twitter(boolean, 任意): Twitter(X)に投稿するかmagazine(string, 任意): 追加するマガジン名timeout(number, 任意): タイムアウト(ミリ秒)
save_draft
Markdownファイルから下書きを保存します。
パラメータ:
markdown_path(string, 必須): Markdownファイルのパスthumbnail_path(string, 任意): サムネイル画像のパスstate_path(string, 任意): 認証状態ファイルのパスtimeout(number, 任意): タイムアウト(ミリ秒)
Markdownファイル形式
テンプレートファイルは templates/ ディレクトリにあります。
基本形式(無料記事)
---
title: 記事タイトル
tags:
- タグ1
- タグ2
---
本文をここに書きます。

画像も挿入できます。有料記事
---
title: 有料記事タイトル
price: 300
tags: [AI, 機械学習, 論文解説]
---
ここは無料部分です。

<!-- paid -->
ここから有料部分です。
画像の挿入
本文中に画像を挿入するには、Markdown形式で記述します:
対応フォーマット: PNG, JPEG, GIF, WebP
注意事項:
画像パスはMarkdownファイルからの相対パスで指定
URLの画像(
http://、https://)はそのまま表示されますローカル画像は自動的にnote.comにアップロードされます
ディレクトリ構成例
my-article/
├── article.md # 記事ファイル
├── images/
│ ├── thumbnail.png # サムネイル画像
│ ├── image1.png # 本文中の画像
│ └── image2.jpgFront Matterオプション
オプション | 型 | 説明 |
| string | 記事タイトル |
| number | 価格(100〜50000円)。設定すると有料記事 |
| array | タグ( |
| boolean | Twitter(X)に投稿するか |
| string | 追加するマガジン名 |
| boolean | メンバーシップ限定にするか |
バッチ投稿スクリプト
複数の記事を連続して投稿するためのスクリプトです。
使い方
# 環境変数で設定
export NOTE_POST_MCP_STATE_PATH="~/.note-state.json"
export NOTE_ARTICLES_DIR="/path/to/articles"
export NOTE_LOG_FILE="./publish_log.txt"
node batch-publish.cjs [開始番号] [終了番号] [デフォルト価格]例:
# 記事0〜10を300円で投稿
node batch-publish.cjs 0 10 300
# 記事20〜30を500円で投稿
node batch-publish.cjs 20 30 500バッチスクリプトの環境変数
環境変数 | 説明 | デフォルト |
| 認証状態ファイルのパス |
|
| 記事ディレクトリ |
|
| ログファイル |
|
記事ファイルの命名規則
バッチスクリプトは以下の形式のファイル名を想定しています:
0_ファイル名.md
1_ファイル名.md
2_ファイル名.md
...ファイル名の先頭の数字でソート・処理されます。
記事ディレクトリ構成
バッチスクリプトは以下のディレクトリ構成に対応しています:
articles/
├── 01_記事タイトル/
│ ├── article.md # 記事ファイル
│ └── images/
│ ├── thumbnail.png # サムネイル画像(自動検出)
│ ├── 01.png # 本文中の画像(番号順に挿入)
│ └── 02.png
├── 02_別の記事/
│ ├── article.md
│ └── images/
│ └── thumbnail.jpg
└── ...フラット構成も対応:
articles/
├── 01_記事.md
├── 02_記事.md
└── ...画像の自動アップロード
バッチスクリプトは画像を自動的に検出・アップロードします:
画像タイプ | ファイル名 | 処理 |
サムネイル |
| 公開設定画面でアップロード |
本文画像 |
| エディタで番号順に挿入 |
画像検出パス(優先順):
{markdownファイルのディレクトリ}/images/{記事ディレクトリ}/images/{親ディレクトリ}/note/{記事名}/images/
バッチ投稿の流れ
タイトルと本文を入力
本文中の画像をアップロード(images/内の番号付き画像)
「公開に進む」をクリック
タグを入力
サムネイル画像をアップロード(thumbnail.*)
「有料」ラベルをクリック
価格を入力
「有料エリア設定」をクリック
「このラインより先を有料にする」をクリック(有料ラインの設定)
「投稿する」をクリック
確認モーダルのOKをクリック
有料ラインの位置指定
概要
<!-- paid --> コメントを本文中に挿入することで、有料部分の開始位置を正確に指定できます。
使い方
---
title: 有料記事のサンプル
price: 300
tags: [AI, 機械学習]
---
# 記事タイトル
この部分は無料で読めます。
導入部分や概要をここに書きます。
<!-- paid -->
ここから有料部分です。
詳細な解説や本編をここに書きます。動作の仕組み(検索テキスト方式)
<!-- paid -->コメントの直前の段落テキストを検索キーとして記録「有料エリア設定」画面で、note.com上の段落から検索テキストを含む段落を特定
対応する「ラインをこの場所に変更」ボタンをクリックして正確な位置に設定
この方式により、画像や特殊要素があっても正確な位置に有料ラインを設定できます。
注意事項
<!-- paid -->がない場合は、記事の先頭に有料ラインが設定されます(記事全体が有料)<!-- paid -->の直前には5文字以上のテキストを含む段落を置くことを推奨<!-- paid -->マーカー自体は本文に含まれません(自動的に除去されます)検索テキストが見つからない場合は、段落インデックスにフォールバックします
実装で使用するセレクター
機能 | セレクター |
有料ライン移動 |
|
既知の制限事項
有料ラインの設定について
有料記事を投稿する際、note.comの「有料エリア設定」画面で有料ライン(境界線)を設定する必要があります。
「このラインより先を有料にする」ボタンをクリックして境界を設定
これをスキップすると「投稿する」ボタンが機能しません
確認モーダル
「投稿する」ボタンをクリックした後、確認モーダルが表示されます。
モーダルは
[role="dialog"]要素として表示される「OK」ボタンをクリックして投稿を完了
モーダルが表示されるまで最大5秒待機
レート制限
連続投稿時にnote.comのレート制限に引っかかる可能性があります。
実測データ(2026-01)
項目 | 値 |
安全な連続投稿数 | 30記事以下 |
推奨待機時間 | 記事間30秒 |
1記事あたり所要時間 | 約43秒(待機含む) |
30記事の所要時間 | 約22分 |
症状
31記事目以降で以下の症状が発生:
「確認モーダルが見つかりませんでした」警告
URLが
/publish/のままでlandingページに遷移しない記事が下書き状態になる
推奨設定
// 記事間の待機時間(30秒推奨)
await page.waitForTimeout(30000);
// 確認モーダルの待機(最大15秒)
for (let attempt = 0; attempt < 30; attempt++) { // 30 × 500ms
await page.waitForTimeout(500);
// モーダル検出処理
}対策
バッチサイズ: 30記事以下で一旦停止
バッチ間休憩: 5〜10分の休憩を挟む
記事間待機: 30秒以上(現在のスクリプトは対応済み)
note.com公式の制限情報(参考)
note.comは投稿数制限を非公開としています。以下は他のアクションの制限:
アクション | 1日の上限 | 1時間の上限 |
スキ | 200回 | 49回 |
フォロー | 100人 | 15人 |
コメント | 不明 | 短時間で一定数以上でロック |
注意: note.comは自動投稿を推奨していません。サーバーに負荷をかけないよう節度ある利用を心がけてください。
下書きになってしまう場合
投稿が下書きになる主な原因:
確認モーダルをクリックできていない - モーダルの表示待機時間を増やす
有料ラインが設定されていない - 「このラインより先を有料にする」をクリック
セッション切れ -
npm run loginで再認証
環境変数
NOTE_POST_MCP_STATE_PATH: 認証状態ファイルのパス(デフォルト:~/.note-state.json)NOTE_POST_MCP_TIMEOUT: タイムアウト(ミリ秒、デフォルト:180000)
ユーティリティスクリプト
マガジン一括登録(add-to-magazine.cjs)
記事をタイトルのパターンマッチでマガジンに自動振り分け:
# 2026年1月の記事をマガジンに振り分け
node add-to-magazine.cjs 2026 1
# 特定マガジンのみ
node add-to-magazine.cjs 2026 1 --magazine "AI論文読み放題"
# 全記事を強制的に指定マガジンに登録
node add-to-magazine.cjs 2026 1 --magazine "副業×AI" --force-all
# 全期間対象
node add-to-magazine.cjs 2026 1 --all
# ドライラン
node add-to-magazine.cjs 2026 1 --dry-runマガジン判定ルール:
マガジン | パターン |
AI論文読み放題 | 論文, 翻訳, Paper, Research, GPT-SoVITS, 音声合成 等 |
副業×AI | 副業, ニュース×AI, 株, 経済, 投資, DMM, 楽天 |
メンバーシップ特典一括追加(add-membership-benefit.cjs)
記事をメンバーシップ特典として一括登録:
node add-membership-benefit.cjs 2026 1
node add-membership-benefit.cjs 2026 1 --dry-run
node add-membership-benefit.cjs 2026 1 --limit 10ディレクトリ構造
note-post-mcp/
├── src/
│ └── index.ts # MCPサーバーのメインコード
├── build/ # ビルド出力(gitignore)
├── scripts/
│ └── login.mjs # ログインスクリプト
├── templates/
│ ├── article-template.md # 有料記事テンプレート
│ ├── free-article-template.md # 無料記事テンプレート
│ └── batch-article-template.md # バッチ投稿用テンプレート
├── batch-publish.cjs # バッチ投稿スクリプト(汎用)
├── batch-publish-october.cjs # 10月版バッチ(成功パターン)
├── batch-publish-november.cjs # 11月版バッチ
├── batch-publish-december.cjs # 12月版バッチ
├── add-to-magazine.cjs # マガジン一括登録
├── add-membership-benefit.cjs # メンバーシップ特典一括追加
├── package.json
├── tsconfig.json
└── README.mdトラブルシューティング
認証エラー
npm run loginで認証状態ファイルを再生成してください。
ブラウザが起動しない / Playwrightブラウザがインストールされていない
Playwrightはブラウザを別途ダウンロードする必要があります。
# Chromiumをインストール
npx playwright install chromium
# システム依存関係もインストールする場合(Linux)
npx playwright install-deps chromiumエラー例:
Executable doesn't exist at /home/user/.cache/ms-playwright/chromium-xxx/chrome-linux/chrome解決方法:
上記コマンドでChromiumをインストール
Claude Desktopを再起動
macOS/Windows: 通常は
npx playwright install chromiumだけで動作します。 Linux: システムライブラリが不足している場合はnpx playwright install-deps chromiumも実行してください。
タイムアウトエラー
NOTE_POST_MCP_TIMEOUTを増やすか、timeoutパラメータを指定してください。
投稿が下書きになる
ログを確認して「確認モーダルをクリック」が出ているか確認
有料記事の場合、「有料ラインを設定」が出ているか確認
セッションが切れていないか確認
ページ読み込みエラー(2026-01以降)
note.comのUI変更により、ページ読み込みが遅くなる場合があります。
症状:
textarea[placeholder*="タイトル"]が見つからない「投稿する」ボタンが見つからない
対処法:
batch-publish.cjsは以下の対策済みです:
waitUntil: 'networkidle'→'domcontentloaded'に変更ページ遷移後に5秒の追加待機
セレクターを汎用的なもの(
textarea)に変更
開発
ビルド
npm run buildローカルテスト
npx note-post-mcp利用規約に関する注意事項
免責事項
本ツールは自己責任でご利用ください。以下の点にご注意ください:
note.comは公式の投稿APIを提供しておらず、本ツールはブラウザ自動化による非公式な方法を使用しています
note.comの利用規約やUI変更により、予告なく動作しなくなる可能性があります
本ツールの使用によって生じたいかなる損害(アカウント停止等を含む)についても、開発者は責任を負いません
note.comの利用規約について
2026年1月時点の調査結果:
項目 | 状況 |
公式API | 未提供(将来の公開予定も未定) |
自動投稿の明示的禁止 | 利用規約に直接的な禁止条項なし |
スクレイピングの禁止 | 明確な記載なし(robots.txtでは記事ページへの制限なし) |
スパム行為 | 明確に禁止(自動スキ、自動フォロー、自動コメント等) |
禁止されている行為
以下の行為は明確に禁止されています:
自動スキ、自動フォロー、自動コメント(スパム行為)
短時間での大量リクエスト(サーバー負荷)
他者への迷惑行為
推奨される使い方
自分の記事の投稿補助として使用する
適切な間隔を空けて投稿する(記事間30秒以上推奨)
1日の投稿数は節度ある範囲に抑える
スパム目的や大量投稿には使用しない
参考リンク
ライセンス
MIT
謝辞
MCP SDK - Model Context Protocol
Playwright - ブラウザ自動化
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nullponull/note-post-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server