Skip to main content
Glama

note.com MCP Server

note.comのAPIを利用して、Claude Desktop、Claude Code、Cursor、n8nなどのMCPクライアントから記事の検索・投稿・分析ができるMCPサーバーです。

stdio(ローカル)とHTTP(リモート)の両方のトランスポートに対応しています。


🚀 クイックスタート

1. インストール

git clone https://github.com/shimayuz/note-com-mcp.git
cd note-com-mcp
npm install
npx playwright install chromium  # ブラウザ自動ログイン用
npm run build

2. 認証設定

cp .env.sample .env

.env を編集:

NOTE_EMAIL=your-email@example.com
NOTE_PASSWORD=your-password
NOTE_USER_ID=your_note_user_id

起動時にPlaywrightが自動でheadlessログインを行い、セッションCookieを取得・更新します。手動でCookieを設定する必要はありません。

セキュリティ: .envファイルは.gitignoreに含まれているため、リポジトリにコミットされません。

3. 起動

stdioモード(Claude Desktop / Claude Code / Cursor):

npm run start

HTTPモード(n8n / リモート接続):

npm run start:http
# デフォルトポートは3000。変更する場合:
MCP_HTTP_PORT=3001 node build/note-mcp-server.js

Related MCP server: Note Post MCP

🔌 トランスポート

stdioモード(デフォルト)

ローカルのMCPクライアントから直接起動される標準的な接続方式です。

node build/note-mcp-server.js

HTTPモード

リモートクライアントやn8nから接続するためのHTTPベースの接続方式です。MCP_HTTP_PORT環境変数または--httpフラグで有効化されます。

# 環境変数で指定
MCP_HTTP_PORT=3000 node build/note-mcp-server.js

# CLIフラグで指定(ポートはMCP_HTTP_PORTまたはデフォルト3000)
node build/note-mcp-server.js --http

エンドポイント

メソッド

説明

/mcp

POST

MCP JSON-RPCリクエスト

/mcp

GET

SSEストリーム

/mcp

DELETE

セッション終了

/health

GET

ヘルスチェック

デフォルトのバインドアドレスは127.0.0.1です。MCP_HTTP_HOST環境変数で変更できます。

✨ 主な機能

カテゴリ

機能

認証

🔍 検索

記事検索、ユーザー検索、ハッシュタグ検索

不要

📊 分析

記事分析、エンゲージメント分析

不要

✍️ 投稿

下書き作成、画像付き投稿

必須

🖼️ 画像

画像アップロード、アイキャッチ設定

必須

💬 コメント

コメント投稿、スキ機能

必須

📈 統計

PV数、アクセス解析

必須

📋 利用可能なツール

検索・分析(認証不要)

  • search-notes - 記事検索(新着/人気/急上昇)

  • search-all - note全体検索

  • analyze-notes - 記事詳細分析

  • get-note - 記事詳細取得

  • search-users - ユーザー検索

  • get-user - ユーザー情報取得

  • get-user-notes - ユーザーの記事一覧

  • search-magazines - マガジン検索

  • get-magazine - マガジン詳細

  • get-category-notes - カテゴリー別記事一覧

  • list-categories - カテゴリー一覧

  • list-hashtags - ハッシュタグ一覧

  • get-hashtag - ハッシュタグ詳細

  • get-comments - コメント一覧

  • get-likes - スキ一覧

  • list-contests - コンテスト一覧

投稿・編集(認証必須)

  • post-draft-note - 下書き作成(Markdown自動変換)

  • get-my-notes - 自分の記事一覧(下書き含む)

  • open-note-editor - 記事の編集ページを開く

インタラクション(認証必須)

  • post-comment - コメント投稿

  • like-note / unlike-note - スキ機能

  • add-magazine-note / remove-magazine-note - マガジン管理

  • get-stats - PV統計情報

  • get-notice-counts - 通知件数

  • get-search-history - 検索履歴

メンバーシップ(認証必須)

  • get-membership-summaries - 加入済みメンバーシップ一覧

  • get-membership-plans - メンバーシッププラン一覧

  • get-membership-notes - メンバーシップの記事一覧

  • get-circle-info - サークル情報

🔧 設定方法

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "note-api": {
      "command": "node",
      "args": ["/path/to/note-com-mcp/build/note-mcp-server.js"],
      "env": {
        "NOTE_EMAIL": "your_email@example.com",
        "NOTE_PASSWORD": "your_password",
        "NOTE_USER_ID": "your_note_user_id"
      }
    }
  }
}

Claude Code

~/.claude/settings.json の mcpServers に追加:

{
  "mcpServers": {
    "note-api": {
      "command": "node",
      "args": ["/path/to/note-com-mcp/build/note-mcp-server.js"],
      "cwd": "/path/to/note-com-mcp",
      "env": {
        "NOTE_EMAIL": "your_email@example.com",
        "NOTE_PASSWORD": "your_password",
        "NOTE_USER_ID": "your_note_user_id"
      }
    }
  }
}

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "note-api": {
      "command": "node",
      "args": ["/path/to/note-com-mcp/build/note-mcp-server.js"],
      "env": {
        "NOTE_EMAIL": "your_email@example.com",
        "NOTE_PASSWORD": "your_password",
        "NOTE_USER_ID": "your_note_user_id"
      }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "note-api": {
      "command": "node",
      "args": ["/path/to/note-com-mcp/build/note-mcp-server.js"],
      "env": {
        "NOTE_EMAIL": "your_email@example.com",
        "NOTE_PASSWORD": "your_password",
        "NOTE_USER_ID": "your_note_user_id"
      }
    }
  }
}

/path/to/note-com-mcp は実際のプロジェクトの絶対パスに置き換えてください。

n8n(HTTP経由)

  1. HTTPサーバーを起動:

npm run start:http
  1. n8nで「MCP Client HTTP Streamable」ノードを設定:

HTTP Stream URL: http://127.0.0.1:3000/mcp
HTTP Connection Timeout: 60000

🌐 リモートアクセス(Cloudflare Tunnel)

VPSでn8nを使用する場合、Cloudflare Tunnelで安全に接続できます:

# 1. Cloudflare Tunnelを設定
cloudflared tunnel run note-mcp

# 2. n8nでHTTPS URLを設定
# HTTPS Stream URL: https://your-domain.com/mcp

🔐 認証フロー

起動時に以下の順序で認証情報を取得します:

  1. NOTE_EMAIL / NOTE_PASSWORD が設定されている場合、Playwrightでheadlessログインを実行し、最新のセッションCookieを自動取得

  2. Playwright失敗時は .env の既存Cookie情報にフォールバック

  3. どちらもない場合はPlaywrightがブラウザを開き、手動ログインを求める

セッションCookieは自動で.envに永続化されるため、次回起動時にも利用可能です。

📝 Markdown変換ルール

投稿時のMarkdownは自動的にnote.com用HTMLに変換されます。

Markdown

note.com

HTML

# H1 / ## H2

大見出し

<h2>

### H3

小見出し

<h3>

#### H4-H6

太字

<strong>

![[image.png]]

画像

<figure><img>

- リスト

箇条書き

<ul><li>

💡 使い方の例

記事検索(認証不要)

noteで「プログラミング」に関する人気記事を検索して

画像付き投稿(認証必須)

タイトル「技術メモ」、本文「## 概要\n\n![[screenshot.png]]」で下書きを作成して

記事分析(認証不要)

ユーザー「username」の記事を分析して、人気の要因を教えて

⚠️ 注意点

  • 投稿機能: 下書き作成のみ対応です。公開はnote.comから直接行ってください

  • 画像: サポート形式はPNG、JPEG、GIFです(最大10MB)

  • 検索結果: 最大20件まで取得できます

  • 認証: セッションCookieは約1~2週間で期限切れになりますが、メール/パスワード設定済みなら自動更新されます

🛠️ 開発

# ビルド
npm run build

# 開発モード(ファイル監視)
npm run dev:watch

# HTTPサーバー開発
npm run dev:http

📄 ライセンス

MIT License

Available Tools

33 tools
add-magazine-noteC

マガジンに記事を追加する

Inputs: magazineId (required), noteId (required).

analyze-notesC

記事の詳細分析を行う(競合分析やコンテンツ成果の比較等)

Inputs: query (required), size, start, sort, +5 more.

get-category-notesC

カテゴリーに含まれる記事一覧を取得する

Inputs: category (required), page, sort.

get-circle-infoC

サークル情報を取得する

Inputs: no named parameters.

get-commentsC

記事へのコメント一覧を取得する

Inputs: noteId (required).

get-hashtagC

ハッシュタグの詳細を取得する

Inputs: tag (required).

get-likesC

記事のスキ一覧を取得する

Inputs: noteId (required).

get-magazineC

マガジンの詳細情報を取得する

Inputs: magazineId (required).

get-membership-notesC

メンバーシップの記事一覧を取得する

Inputs: membershipKey (required), page, perPage.

get-membership-plansB

自分のメンバーシッププラン一覧を取得する

Inputs: no named parameters.

get-membership-summariesC

加入済みメンバーシップ一覧を取得する

Inputs: no named parameters.

get-my-notesC

自分の記事一覧(下書きを含む)を取得する

Inputs: page, perPage, status.

get-noteC

記事の詳細情報を取得する

Inputs: noteId (required).

get-notice-countsC

通知件数を取得する

Inputs: no named parameters.

get-search-historyC

検索履歴を取得する

Inputs: no named parameters.

get-statsC

ダッシュボードのPV統計情報を取得する

Inputs: filter, page, sort.

get-test-membership-notesB

テスト用:メンバーシップの記事一覧をダミーデータで取得する

Inputs: membershipKey (required), page, perPage.

get-test-membership-summariesA

テスト用:加入済みメンバーシップ一覧をダミーデータで取得する

Inputs: no named parameters.

get-userC

ユーザーの詳細情報を取得する

Inputs: username (required).

get-user-notesC

ユーザーの記事一覧を取得する

Inputs: username (required), page.

like-noteC

記事にスキをする

Inputs: noteId (required).

list-categoriesB

カテゴリー一覧を取得する

Inputs: no named parameters.

list-contestsB

コンテスト一覧を取得する

Inputs: no named parameters.

list-hashtagsB

ハッシュタグ一覧を取得する

Inputs: no named parameters.

open-note-editorC

記事の編集ページを開く

Inputs: noteId (required).

post-commentC

記事にコメントを投稿する

Inputs: noteId (required), text (required).

post-draft-noteC

下書き状態の記事を投稿する(Markdown形式の本文を自動でHTMLに変換)

Inputs: title (required), body (required), tags, id.

remove-magazine-noteC

マガジンから記事を削除する

Inputs: magazineId (required), noteId (required).

search-allC

note全体検索(ユーザー、ハッシュタグ、記事など)

Inputs: query (required), context, mode, size, +1 more.

search-magazinesC

マガジンを検索する

Inputs: query (required), size, start.

search-notesC

記事を検索する

Inputs: query (required), size, start, sort.

search-usersC

ユーザーを検索する

Inputs: query (required), size, start.

unlike-noteC

記事のスキを削除する

Inputs: noteId (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3/5.0

    Scored across 33 tools

    Disambiguation4/5

    Most tools have distinct purposes targeting specific resources and actions, such as 'get-note' for article details versus 'get-user-notes' for user articles. However, some overlap exists, like 'search-notes' and 'search-all' which might cause confusion, and 'get-membership-notes' versus 'get-test-membership-notes' are similar but differentiated by test data. Overall, descriptions help clarify boundaries, but minor ambiguities remain.

    Naming Consistency4/5

    The tools follow a consistent kebab-case pattern throughout, with clear verb-noun structures like 'get-note', 'post-comment', and 'search-users'. There are minor deviations, such as 'analyze-notes' using a verb that doesn't align with the common 'get' or 'list' patterns, and 'open-note-editor' being more specific. The naming is mostly predictable and readable, supporting easy identification.

    Tool Count3/5

    With 33 tools, the count is borderline high for a note-taking or content platform server, as it includes many specific retrieval and search functions. While the scope covers articles, users, magazines, and memberships comprehensively, the number feels heavy and could overwhelm agents. It's reasonable but leans toward being over-scoped, especially with test tools that might not be necessary in production.

    Completeness5/5

    The tool set provides complete coverage for the note.com domain, including CRUD operations for articles (e.g., 'post-draft-note', 'get-note'), social interactions ('like-note', 'post-comment'), and management features for magazines, memberships, and categories. There are no obvious gaps; agents can perform full workflows from creation to analysis and interaction without dead ends.

    Maintenance

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      C
      maintenance
      Enables integration with Kibela API for searching and retrieving notes, allowing LLMs to interact with Kibela content seamlessly.
      12
      96 npm
      7
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables interaction with Qiita, a Japanese developer community platform, through its API v2. Supports comprehensive operations including article management, user interactions, tag following, and commenting with Japanese language support.
      30
      11 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      F
      maintenance
      Enables interaction with SiYuan Note through its API for comprehensive note management. Supports searching, creating, editing documents, managing notebooks, and daily notes operations through natural language commands.
      31 npm
      15
      Apache 2.0