Atlas / MCP servers / shimayuz / note.com MCP Server

note.com MCP ServerBLOCK

mcp/shimayuz/note-com-1

note.com用MCPサーバー(移行済)

Verdict
BLOCK
Grade
F
Trust score
55 /100
Exposed tools
47 34r · 12w · 1d
Transport
stdio · streamable-http
License
—
Stars
30
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

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 を編集:

[email protected]
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

🔌 トランスポート

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

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

✨ 主な機能

📋 利用可能なツール

検索・分析(認証不要)

  • search-notes - 記事検索(新着/人気/急上昇)
  • search-all - note全体検索
  • analyze-notes - 記事詳細分析
  • get-note - 記事詳細取得
  • search-users - ユーザー検索
  • get-user - ユーザー情報取得
  • get-user-notes - ユーザーの記事一覧
  • search-magazines - マガジン検索
  • `get
Read from source at commit 606ec8ec5927OBSERVED · 2026-10-08
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add note-exporter --env NOTE_GQL_AUTH_TOKEN=${NOTE_GQL_AUTH_TOKEN} --env NOTE_PASSWORD=${NOTE_PASSWORD} --env NOTE_XSRF_TOKEN=${NOTE_XSRF_TOKEN} --env NOTION_TOKEN=${NOTION_TOKEN} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "note-exporter": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "NOTE_GQL_AUTH_TOKEN": "${NOTE_GQL_AUTH_TOKEN}",
        "NOTE_PASSWORD": "${NOTE_PASSWORD}",
        "NOTE_XSRF_TOKEN": "${NOTE_XSRF_TOKEN}",
        "NOTION_TOKEN": "${NOTION_TOKEN}"
      }
    }
  }
}
03

Exposed tools (47)

34 read · 12 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.

ToolRiskDescription
add-magazine-notewriteマガジンに記事を追加する
analyze-notesread記事の詳細分析を行う(競合分析やコンテンツ成果の比較等)
convert-obsidian-markdownreadObsidian MarkdownをnoteのHTML形式に変換(画像はプレースホルダーに置換)
edit-notewrite既存の記事を編集する
get-category-notesreadカテゴリーに含まれる記事一覧を取得する
get-circle-inforeadサークル情報を取得する
get-commentsread記事へのコメント一覧を取得する
get-hashtagreadハッシュタグの詳細を取得する
get-likesread記事のスキ一覧を取得する
get-magazinereadマガジンの詳細情報を取得する
get-membership-notesreadメンバーシップの記事一覧を取得する
get-membership-plansread自分のメンバーシッププラン一覧を取得する
get-membership-summariesread加入済みメンバーシップ一覧を取得する
get-my-notesread自分の記事一覧(下書きを含む)を取得する
get-noteread記事の詳細情報を取得する
get-notice-countsread通知件数を取得する
get-notion-pagereadGet detailed information about a Notion page
get-search-historyread検索履歴を取得する
get-statsreadダッシュボードのPV統計情報を取得する
get-test-membership-notesreadテスト用:メンバーシップの記事一覧をダミーデータで取得する
get-test-membership-summariesreadテスト用:加入済みメンバーシップ一覧をダミーデータで取得する
get-userreadユーザーの詳細情報を取得する
get-user-notesreadユーザーの記事一覧を取得する
import-notion-to-notewriteImport a Notion page to note.com as a draft
insert-images-to-notewritenoteエディタで本文に画像を挿入(Playwright使用)
like-noteread記事にスキをする
list-categoriesreadカテゴリー一覧を取得する
list-contestsreadコンテスト一覧を取得する
list-hashtagsreadハッシュタグ一覧を取得する
list-notion-pagesreadList pages from a Notion database
open-note-editorread記事の編集ページを開く
post-commentwrite記事にコメントを投稿する
post-draft-notewrite下書き記事を作成・更新
post-draft-note-with-imageswrite画像付きの下書き記事を作成する(API経由で画像を本文に挿入)
prepare-obsidian-draftreadObsidian記事をnote下書き用に準備(画像情報を含む)
preview-notion-to-notereadPreview how a Notion page will be converted to note.com format
publish-from-obsidianwriteObsidian記事をnoteに公開(エディタUI操作で書式を適用、画像を自動挿入)
publish-from-obsidian-remotewriteObsidian記事をnoteに公開(画像データをBase64で受信、リモートサーバー用)
publish-notewrite下書き状態の記事を公開する
remove-magazine-notedestructiveマガジンから記事を削除する
search-allreadnote全体検索(ユーザー、ハッシュタグ、記事など)
search-magazinesreadマガジンを検索する
search-notesreadnote.comの記事を検索
search-usersreadユーザーを検索する
unlike-noteread記事のスキを削除する
upload-imagewritenote.comに画像をアップロード(アイキャッチ画像用。本文画像は publish-from-obsidian を使用)
upload-images-batchwritenote.comに複数の画像を一括アップロード
04

Trust audit

BLOCKgrade F · trust 55/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfaceWARN
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (4 observation(s))
Network
declared (11 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (24)

HIGHNetwork egress · net.env_exfil · CWE-200, CWE-319
scripts/analyze-note-body.mjs:13
'.env' ... fetch(
Why it matters. reads secrets in the same file that sends data out
HIGHPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
scripts/setup-vps.sh:42
echo "   sudo cp /opt/note-mcp-server/config/nginx-note-mcp.conf /etc/nginx/sites-available/"
Why it matters. asks for elevated privileges
HIGHPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
scripts/setup-vps.sh:43
echo "   sudo ln -s /etc/nginx/sites-available/nginx-note-mcp.conf /etc/nginx/sites-enabled/"
Why it matters. asks for elevated privileges
HIGHPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
scripts/setup-vps.sh:44
echo "   sudo nginx -t && sudo systemctl reload nginx"
Why it matters. asks for elevated privileges
HIGHPrivilege escalation / persistence · priv.escalate · CWE-269, CWE-250
scripts/setup.sh:109
npx playwright install-deps || log_warning "依存ライブラリのインストールに失敗(sudo が必要な場合があります)"
Why it matters. asks for elevated privileges
MEDIUMPrivilege escalation / persistence · fs.persistence · CWE-269, CWE-250
scripts/manage-services.sh:118
launchctl load "$LAUNCH_AGENTS_DIR/com.note-mcp-server.plist"
MEDIUMPrivilege escalation / persistence · fs.persistence · CWE-269, CWE-250
scripts/manage-services.sh:119
launchctl load "$LAUNCH_AGENTS_DIR/com.cloudflared.note-mcp.plist"
MEDIUMPrivilege escalation / persistence · fs.persistence · CWE-269, CWE-250
scripts/manage-services.sh:139
if launchctl list | grep -q "com.note-mcp-server"; then
MEDIUMPrivilege escalation / persistence · fs.persistence · CWE-269, CWE-250
scripts/manage-services.sh:146
if launchctl list | grep -q "com.cloudflared.note-mcp"; then
MEDIUMPrivilege escalation / persistence · fs.persistence · CWE-269, CWE-250
scripts/manage-services.sh:166
launchctl start com.note-mcp-server
MEDIUMFilesystem / path · mcp.destructive_tools · CWE-22, CWE-59
remove-magazine-note
Why it matters. 1 tool(s) can delete or overwrite
Fix. prefer a read-only mode or scoped tokens; the page states the blast radius
LOWInventory / provenance · inv.hidden_file · CWE-1104
.env.sample
.env.sample
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.no_license · CWE-1104
Why it matters. no LICENSE file and no repo licence
Fix. add a licence
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/config/environment.ts:10
dotenv.config({ path: path.resolve(__dirname, "../../.env") });
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
src/utils/playwright-session.ts:211
path.resolve(__dirname, "../../.env"),
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
CHANGELOG_HTTP_TRANSPORT.md:50
GET http://127.0.0.1:3000/health
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
CHANGELOG_HTTP_TRANSPORT.md:66
GET http://127.0.0.1:3000/mcp
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
CHANGELOG_HTTP_TRANSPORT.md:67
GET http://127.0.0.1:3000/sse
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
CHANGELOG_HTTP_TRANSPORT.md:92
"url": "http://127.0.0.1:3000/mcp",
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:236
HTTP Stream URL: http://127.0.0.1:3000/mcp
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, @notionhq/client, dotenv, node-fetch, playwright, zod, @types/node, prettier
Why it matters. 10 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
tools/note-exporter/package.json
chalk, commander, glob, @types/node, @types/glob, tsx, typescript
Why it matters. 7 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOInventory / provenance · inv.oversize · CWE-1104
test-articles/images/test-image.png
test-articles/images/test-image.png
Why it matters. 1242746 bytes not read
INFOPrompt injection · scope.undeclared_system · CWE-94, CWE-1427
<declared scope>
system use found in code, not declared in the description
Why it matters. the description does not admit a capability the code has
Fix. declare system use in the description, or remove it

Gates applied: no_behavioural_pass, no_license.

Audited 2026-10-08 · audit v0.4.1 · source sha 606ec8ec5927full audit observations/trust-audit/mcp-server/shimayuz__note-com-1.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-08606ec8ec5927BLOCKF55first audit
06

Questions

What is the Note.com MCP server?

note.com用MCPサーバー(移行済)

What tools does Note.com expose?

47 in total: 34 read-only, 12 that write, and 1 that can delete or overwrite (remove-magazine-note). Every one is listed on this page with its risk.

Is Note.com safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (55/100) and found 5 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.

What credentials does Note.com need?

It reads NOTE_GQL_AUTH_TOKEN, NOTE_PASSWORD, NOTE_XSRF_TOKEN and NOTION_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does Note.com run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as note-exporter at 1.0.0.

How current is this page?

The grade is for one exact copy of the source (606ec8ec5927), read on 2026-10-08. The repository is watched and re-audited when it changes.

Advertisement