mcpField
M
Milanote by Cotlet

Milanote by Cotlet

リモート
cotlet.dev生産性41 日前に更新
リポジトリ公式サイト

Milanote by Cotlet について

Milanote by Cotletは、技術ユーザー向けのセルフホスト型Milanote API・MCPサーバーです。ローカルのChromeセッションでワークスペースにアクセスし、ボード、カード、ToDoリスト、共有、エクスポートをREST APIやPythonからも操作できます。

主な機能

  1. 01ボードと階層構造の閲覧
  2. 02ノート、リンク、ToDoリストの管理
  3. 03ラベル、コメント、共有の操作
  4. 04複数形式でのボードのエクスポート
  5. 05REST APIとPythonからの呼び出し

活用シーン

  1. 01ボード内のノートやカードの検索
  2. 02指定ボードへの参考リンクの追加
  3. 03期日付きToDoリストへの作業項目の整理
  4. 04ボードとサブボードのMarkdown出力

MCP 対応

stdioまたはHTTP経由でMCPクライアントにMilanoteツールを提供し、読み取り専用モードにも対応します。内容や共有状態を変更するツールは、実行前の確認をクライアントに促す設定です。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://cotlet.dev/mcp/v1/milanote/connect
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

すべてのエンドポイント
Streamable HTTPhttps://cotlet.dev/mcp/v1/milanote/connect
Streamable HTTPhttps://cotlet.dev/mcp/v1/milanote認証が必要
パッケージ
pypimilanote-api-mcp1.0.3

ツール

詳細

Milanote API とセルフホスト型 MCP サーバー

ご自身のパソコンで、ご自身の Google Chrome のセッションを使って実行する Milanote API と Milanote MCP サーバーです。Cotlet の本番環境で運用している 31 個の Milanote ツールのうち 30 個に対応しています。ボード、ノート、リンク、期限付きの ToDo リスト、列、ラベル、ゴミ箱、コメント、共有、エクスポートを利用できます。

Milanote には公開 API も公式 MCP サーバーもありません。このリポジトリでは、その両方を利用できます。

  • Claude Code、Claude Desktop、Cursor、Codex、その他すべての MCP クライアント向け MCP サーバー。stdio または HTTP 経由で利用できます。セットアップ
  • http://127.0.0.1:8787/api/v1/milanote の REST API。OpenAPI ドキュメントは /docs にあります。セットアップ
  • Python:call("get_board", board_id="1XiqwC1Mir4d4N") と、すぐに使える 9 個のスクリプトを examples/ に用意しています。

自分で実行したい技術者向けです。非商用利用に限ります(ライセンス)。サーバー上で 24 時間 365 日稼働させたい場合や、Milanote がアプリを変更しても動作し続ける環境が必要な場合、チームやビジネスで使う場合は、cotlet.dev のホスト版をご利用ください。

Milanote MCP server Python 3.11+ License: PolyForm Noncommercial 1.0.0

git clone https://github.com/cotletdev/milanote-api-mcp-server.git && cd milanote-api-mcp-server
python3 -m venv .venv && . .venv/bin/activate && pip install -e .
milanote-mcp connect                               # reads your Milanote session from Chrome
milanote-mcp call list_boards
claude mcp add milanote -- "$PWD/.venv/bin/milanote-mcp" mcp

目次

仕組み

AI agent (MCP) / script (REST, Python) ──▶ milanote-mcp on your computer ──your Milanote cookies──▶ milanote.com
                                                     ▲
                         milanote-mcp connect ───────┘ reads them once from your Chrome (DevTools Protocol)
  1. いつもと同じように、ご自身の Chrome で Milanote にサインインします。
  2. milanote-mcp connect を実行すると、Chrome DevTools Protocol 経由で Chrome に接続し、milanote.com の Cookie とブラウザーのタイムゾーンを読み取り、~/.config/milanote-api-mcp/session.json に保存します。このファイルを読み取れるのはご自身のユーザーだけです。パスワードを参照したり保存したりすることはありません。
  3. 読み取りには、Milanote の Web アプリが app.milanote.com/api で使用する JSON エンドポイントへのリクエストを使います。変更は、Web アプリが使用するのと同じ socket.io チャネルを通じて、通常の HTTP ポーリングで送信されます。すべての通信は、Chrome の TLS フィンガープリントを複製する curl_cffi を使い、ご自身の Cookie 経由で行われます。ヘッドレスブラウザーは起動しません。

Milanote のセッション Cookie は約 1 か月間有効です。Milanote からサインアウトされた場合、Chrome がリモートデバッグを有効にした状態で開いていれば、サーバーが再び Cookie を読み取ります。

必要条件

  • Python 3.11 以降。
  • Google Chrome 144 以降。Milanote にサインインしてください。デバッグポートを使えば、どの Chrome または Chromium でも動作します。
  • macOS、Linux、または Windows。
  • Milanote のすべてのプラン。無料アカウントは 100 枚のカードまでです。Milanote に拒否された場合、ツールがその旨を通知します。共有されたボードを変更するには、そのボードへの編集権限が必要です。

インストール

git clone https://github.com/cotletdev/milanote-api-mcp-server.git
cd milanote-api-mcp-server
python3 -m venv .venv
. .venv/bin/activate              # Windows: .venv\Scripts\activate
pip install -e .
milanote-mcp --version

uv を使う場合:uv venv && uv pip install -e . を実行し、その後 uv run milanote-mcp ... を実行します。

AI エージェント(Claude Code、Codex、Cursor)を使ってセットアップしますか?このフォルダーを開き、リポジトリのセットアップを依頼してください。AGENTS.md にすべての手順が記載されており、Chrome での操作が必要な手順だけを案内します。

更新するには、git pull && pip install -e . を実行します。ホスト版の Milanote ツールへの変更は、すべてこのリポジトリにも反映しています。

Chrome の接続

オプション A:普段使いの Chrome(推奨)
  1. Chrome で chrome://inspect/#remote-debugging を開き、リモートデバッグをオンにします。Chrome はこのコンピューター上のプログラムからの DevTools 接続を受け付けるようになり、接続ごとに確認を求めます。

  2. app.milanote.com にサインインしていることを確認します。

  3. 次を実行します。

    milanote-mcp connect
    
  4. Chrome が接続を許可するか確認します。許可をクリックします。

Saved 8 Milanote cookies to /Users/you/.config/milanote-api-mcp/session.json
Signed in to Milanote as Ana Lopez

その後、リモートデバッグをオフに戻すことができます。Milanote からサインアウトされたあと、サーバーが新しいセッションを自動的に取得するようにするには、オンのままにしておきます。

connect は、Chrome のデフォルトのプロファイルフォルダーにある DevToolsActivePort ファイルを探します。Chrome Beta、Canary、またはカスタムのプロファイルフォルダーを使う場合は、--profile-dir "<folder>" を渡します。

オプション B:デバッグポートを開いた Chrome

Chrome はデフォルトのプロファイルでデバッグポートを開かないため、別のプロファイルを起動して、そこで一度 Milanote にサインインしてから接続します。

# macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-milanote"
# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.chrome-milanote"
# Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="%USERPROFILE%\.chrome-milanote"

milanote-mcp connect --cdp http://127.0.0.1:9222

--cdp には ws:// DevTools URL も指定できます。たとえば、SSH トンネル経由で接続した別のマシン上の Chrome の URL を指定できます。

オプション C:Cookie を手動で貼り付ける

Chrome がないサーバーの場合:Chrome で app.milanote.com の DevTools を開き、Application > Cookies > https://app.milanote.com を選択して、__Secure-milanote.session_token の値をコピーし、次を実行します。

milanote-mcp connect --token       # paste it, input is hidden
# or, without a session file:
export MILANOTE_AUTH_TOKEN=...

貼り付けたトークンは自動では更新されません。Milanote からサインアウトされたら、新しいトークンを貼り付けてください。時刻はこのマシンのタイムゾーンで表示されます。

セッションはいつでも次のコマンドで確認できます。

milanote-mcp status

MCP サーバー

MCP サーバーには、各ツールの入力スキーマ、エージェント向けの説明、ヒントが記載されています。読み取りツールには読み取り専用のマークが付き、コメント、招待、公開、削除を行うツールには、クライアントが実行前に確認を求めるようマークが付いています。

Claude Code
claude mcp add milanote -- /path/to/milanote-api-mcp-server/.venv/bin/milanote-mcp mcp
# read only:
claude mcp add milanote -- /path/to/milanote-api-mcp-server/.venv/bin/milanote-mcp mcp --read-only
Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "milanote": {
      "command": "/path/to/milanote-api-mcp-server/.venv/bin/milanote-mcp",
      "args": ["mcp"]
    }
  }
}
Cursor

~/.cursor/mcp.json。Claude Desktop と同じブロックを使います。すぐに使えるコピーは mcp.json にあります。

Codex

~/.codex/config.toml:

[mcp_servers.milanote]
command = "/path/to/milanote-api-mcp-server/.venv/bin/milanote-mcp"
args = ["mcp"]
HTTP 経由

milanote-mcp serve は、URL を受け取るクライアント向けに、http://127.0.0.1:8787/mcp でストリーミング可能な HTTP 経由の MCP も提供します。

milanote-mcp serve
claude mcp add --transport http milanote http://127.0.0.1:8787/mcp

次のようなことをエージェントに依頼できます。

Brand refresh の Moodboard サブボードに参考リンクを 12 件追加し、すでにあるものはスキップしてください。

Novel outline ボードと各章のサブボードを Markdown として ./outline にエクスポートしてください。

通話のメモはこちらです。合意した日付を付けて、アクションアイテムを Q1 campaign の ToDo リストに追加してください。

カラーパレットについてのメモはどこに保存しましたか?

REST API

milanote-mcp serve                 # http://127.0.0.1:8787, MCP at /mcp, docs at /docs

各ツールには /api/v1/milanote 以下に独自のルートがあり、cotlet.dev のホスト型 API と同じパスを使うため、どちらかを対象に書いたコードをもう一方でも使えます。パスの各部分とクエリ文字列が引数となり、JSON ボディで残りの引数を追加します。

curl 'http://127.0.0.1:8787/api/v1/milanote/boards'
curl 'http://127.0.0.1:8787/api/v1/milanote/boards/1XiqwC1Mir4d4N'
curl -X POST http://127.0.0.1:8787/api/v1/milanote/boards/1XiqwC1Mir4d4N/notes \
  -H 'Content-Type: application/json' \
  -d '{"text": "Kickoff moved to Tuesday."}'

名前でツールを指定し、ボディを引数として渡します。

curl -X POST http://127.0.0.1:8787/api/v1/milanote/tools/export_board -d '{"board_id": "1XiqwC1Mir4d4N", "format": "markdown"}'
  • GET /api/v1/milanote/tools:すべてのツールと、そのルート、入力スキーマ、回答例を返します。
  • GET /docs:対話型の OpenAPI ドキュメントです。GET /openapi.json はスキーマを返し、n8n、Postman、または生成されたクライアントで利用できます。
  • 回答は JSON です。リストの取得が途中で終わった場合は has_more: true が返されます。残りを取得するには limit を大きくしてください。

サーバーは 127.0.0.1 のみでリッスンします。別のデバイスからアクセスするにはトークンを設定します。以降、すべてのリクエストに Authorization: Bearer <token> が必要になります。

MILANOTE_MCP_TOKEN=$(openssl rand -hex 24) milanote-mcp serve --host 0.0.0.0

Python とサンプルスクリプト

Python から直接実行でき、サーバーは不要です。

from milanote_api_mcp import call

boards = call("list_boards")["boards"]
board = call("get_board", board_id=boards[0]["id"])
call(
    "add_todo_list",
    board_id=board["board_id"],
    title="This week",
    tasks=[{"text": "Send the brief", "due_date": "2026-10-28"}, {"text": "Book the photographer"}],
)

または、シェルからツールを 1 つ実行します:milanote-mcp call get_board board_id=1XiqwC1Mir4d4N。JSON オブジェクトを使うこともできます。

すぐに使えるスクリプトは examples/ にあります。どのスクリプトも --help を指定でき、一覧を表示するスクリプトは JSON を出力するか、--out file.csv/--out file.json に保存します。

スクリプト機能
list_boards.pyHome または任意のボードから、--depth で指定した階層までのボードをツリー形式で表示します。
search_boards.pyすべてのボードを検索し、一致したカードをそれぞれのボード名とパスとともに表示します。
export_boards.pyボードとそのサブボードを Markdown、テキスト、Word、PDF、PNG にエクスポートします。ボードごとに 1 ファイルを作成し、階層に沿ったフォルダーに保存します。
board_card_counts.pyボードごとのカード数を種類別に表示します。多い順に並べ、無料プランの上限の使用状況も表示します。
open_tasks.pyボードとそのサブボードにあるすべての ToDo リストから、未チェックのタスクを期限が近い順に表示します。--due-before を指定できます。
save_links.pyURL のリストをリンクカードとして保存します。ボードにすでにある URL はスキップします。まず --dry-run を実行できます。
add_todo_list.pyテキストファイルから ToDo リストを作成します。1 行につき 1 つのタスクを指定し、任意で期限を YYYY-MM-DD HH:MM 形式で設定できます。
add_note.py--text、ファイル、または標準入力からノートカードを作成します。
publish_board.pyボードの読み取り専用リンクを有効にして表示します。--off で無効にできます。
python examples/export_boards.py --board 1XiqwC1Mir4d4N --dir ./outline
python examples/save_links.py --board 1XiqwC1Mir4d4N --file links.txt --dry-run

定期実行する場合は、コンピューターの電源が入っている間、自分のコンピューター上の cron を利用できます:0 18 * * 5 cd ~/milanote-api-mcp-server && .venv/bin/python examples/export_boards.py --board 1XiqwC1Mir4d4N --dir ~/backups/milanote。

30 個のツールすべて

board_id は list_boards で取得する ID、またはボードの URL(https://app.milanote.com/1XiqwC1Mir4d4N/...)です。ツールが追加するカードはボードの Unsorted パネルに配置されます。これは Milanote がアップロードを配置する場所と同じなので、キャンバス上のカードを覆うことはありません。milanote-mcp tools はこの一覧を出力し、milanote-mcp tools --json は入力スキーマも表示します。

ボード
ツールアクセスREST ルート機能
list_boards読み取りGET /boards1 つのボード内のボードを一覧表示します。デフォルトでは Home 上のボードを、タイトル、ID、リンクとともに表示します。
list_recent_boards読み取りGET /boards/recentボードツリー内の場所を問わず、最近開いたボードを新しい順に表示します。
search_boards読み取りGET /boards/searchMilanote の検索アイコンのように、すべてのボードを対象にテキストでボードとカードを検索します。
get_board読み取りGET /boards/{board_id}ボード上のすべてのカードを取得します:ノート、リンク、画像、ファイル、ToDo リスト、カラム、サブボード。
create_board書き込みPOST /boardsHome 上、または別のボード内に新しいボードを作成します。
rename_board書き込みPATCH /boards/{board_id}ボードのタイトルを変更します。
duplicate_board書き込みPOST /boards/{board_id}/duplicateサブボードも含め、ボード上のすべての内容をテンプレートとして複製します。
export_board読み取りGET /boards/{board_id}/exportエクスポートメニューと同様に、ボードを Markdown、プレーンテキスト、Word、PDF、PNG としてエクスポートします。
カード
ツールアクセスREST ルート説明
add_note書き込みPOST /boards/{board_id}/notesプレーンテキストのノートカードをボードの未整理パネルに追加します。
edit_note書き込みPATCH /boards/{board_id}/notes/{card_id}ノートカードのテキストを置き換えます。
add_link書き込みPOST /boards/{board_id}/linksウェブアドレスのリンクカードを、ページのタイトルとプレビューとともに未整理に追加します。
add_todo_list書き込みPOST /boards/{board_id}/todo-listsタスクを含むToDoリストカードを未整理に追加します。各タスクには任意で期限の日付と時刻を設定できます。
set_task_done書き込みPUT /boards/{board_id}/cards/{card_id}/tasks/{task}/doneToDoリスト内のタスクを1つチェック、またはチェック解除します。
add_column書き込みPOST /boards/{board_id}/columnsカードをスタックにまとめるための空の列をボードに追加します。
カードの整理
ツールアクセスREST ルート説明
move_card書き込みPOST /boards/{board_id}/cards/{card_id}/moveカードまたはサブボードを別のボードに移動するか、列に入れる、または列から出します。
set_card_color書き込みPUT /boards/{board_id}/cards/{card_id}/colorノート、ToDoリスト、リンク、ファイル、列の上部にあるバーに色を付けるか、色を消します。
add_label書き込みPOST /boards/{board_id}/cards/{card_id}/labelsカードにラベルを付けます。新しい名前の場合はラベルを作成します。
list_labels読み取りGET /labelsカードに付けられるラベルと、その名前および色を一覧表示します。
ゴミ箱
ツールアクセスREST ルート説明
trash_cards書き込みPOST /boards/{board_id}/cards/trashDeleteキーを押したときと同様に、カードまたはサブボードをゴミ箱に移動します。
list_trash読み取りGET /trashゴミ箱に移動したカードとボード、およびそれぞれの移動元のボードを一覧表示します。
restore_card書き込みPOST /trash/{card_id}/restoreカードまたはボードをゴミ箱から取り出し、元の場所に戻します。
コメント
ツールアクセスREST ルート説明
add_comment書き込みPOST /boards/{board_id}/commentsボードにコメントカードを追加するか、コメントスレッドに返信します。自分の名前で投稿されます。
edit_comment書き込みPATCH /boards/{board_id}/comments/{comment_id}自分が書いたコメントのテキストを置き換えます。
delete_comment書き込みDELETE /boards/{board_id}/comments/{comment_id}自分が書いたコメントを全員から削除します。
共有
ツールアクセスREST ルート説明
get_sharing読み取りGET /boards/{board_id}/sharingボードを開ける人(オーナー、編集者)と、設定を含む読み取り専用リンクを確認します。
invite_editor書き込みPOST /boards/{board_id}/editorsメールで相手を招待し、ボードとその中のボードを編集できるようにします。
remove_editor書き込みDELETE /boards/{board_id}/editorsボードへのアクセス権を取り消すか、相手が承諾していない招待をキャンセルします。
publish_board書き込みPOST /boards/{board_id}/publishボードの読み取り専用リンクを有効にします。このリンクは、サインアップしなくても誰でも開けます。
unpublish_board書き込みDELETE /boards/{board_id}/publishボードの読み取り専用リンクを無効にします。リンクを持っていた人は、ボードを開けなくなります。
アカウント
ツールアクセスREST ルート説明
get_usage読み取りGET /usageアカウントで使用しているカードの数を、カードの種類別に無料プランの上限と照らして確認します。
このバージョンにはありません
ツール理由
upload_imageホスト版では、Cotletのファイル処理を通じて、画像をリンク、アップロード、またはbase64として渡します。このリポジトリにはまだその機能がありません。画像はMilanoteにアップロードするか、ホスト版のツールを使用してください。

意図的に実装していないもの:Milanoteのサインイン、メールアドレス、パスワード、プロフィール設定、プランおよび請求。

設定

変数デフォルト説明
MILANOTE_MCP_HOME~/.config/milanote-api-mcpsession.json の保存フォルダーです。
MILANOTE_AUTH_TOKENmilanote-mcp connect の代わりに使用する、Milanote の __Secure-milanote.session_token Cookie です。
MILANOTE_PROXYMilanote へのすべてのリクエストに使用するプロキシです。例:http://user:pass@host:port
MILANOTE_MCP_READ_ONLY1 を指定すると、Milanote を変更するすべてのツールが非表示になり、使用できなくなります(--read-only と同じです)。
MILANOTE_MCP_TOKENserve で必要となるベアラートークンです。127.0.0.1 以外で待ち受ける場合に必要です。
MILANOTE_MCP_HOST、MILANOTE_MCP_PORT127.0.0.1、8787serve のアドレスです。

セキュリティと Milanote アカウント

  • パスワードがこのコードに渡ることはありません。 Cookie のみを読み取り、milanote.com の Cookie だけを対象とします。
  • セッションファイルはご自身で管理してください。 session.json はモード 0600 で作成されます。このファイルを持つ人は Milanote であなたとして操作できるため、Git や共有フォルダーに置かないでください。
  • デフォルトではローカルで動作します。 serve は 127.0.0.1 にバインドされ、MILANOTE_MCP_TOKEN がない場合は別のアドレスを拒否します。
  • milanote.com のみを対象とします。 milanote.com 以外へのリクエストとリダイレクトは拒否されます。
  • 読み取り専用モード。 --read-only または MILANOTE_MCP_READ_ONLY=1 を指定すると、9 つの読み取りツールのみが公開されます。
  • 一部の操作は他の人に影響します。 コメントにはあなたの名前が表示され、invite_editor は招待する人にメールを送信し、publish_board はリンクを知っている人なら誰でもボードを閲覧できるようにします。MCP クライアントはこれらの操作を実行する前に確認を求めますが、スクリプトは確認しません。
  • ゴミ箱への移動は元に戻せますが、コメントは元に戻せません。 trash_cards はカードをボードのゴミ箱に移動し、restore_card はカードを元に戻します。delete_comment は全員のコメントを削除します。

エラー

REST API は {"error": "<code>", "message": "..."} を返します。MCP サーバーはツールエラーとして同じコードとメッセージを返します。

ステータスコード対処方法
401auth_required、auth_expiredセッションがないか、Milanote からサインアウトされています。Chrome で Milanote にサインインし、milanote-mcp connect を実行してください。
403scope_deniedサーバーが読み取り専用で動作しています。
403target_blockedMilanote がリクエストを拒否したか、ボット確認を表示しました。Chrome で app.milanote.com を一度開いてから、再試行してください。
422invalid_input引数が不足しているか、正しくありません。メッセージに該当する引数が示されます。
429rate_limitedMilanote がアカウントの利用を制限しています。数分待ってください。
502target_errorMilanote がエラーを返しました。たとえば、無料プランのカード数上限に達した場合や、アプリが変更された場合です。最新のツールを取得するには git pull を実行するか、issue を作成してください。
504timeoutMilanote が時間内に変更を確認できませんでした。変更が反映されている可能性があるため、再試行する前にボードを確認してください。

セルフホストとホステッド

このリポジトリCotlet、ホステッド版
ツール3031、upload_image を含む
実行場所コンピューターが起動している間は、お使いのコンピューター上クラウド上、24 時間 365 日
Milanote セッションご自身の Chrome、ローカルファイル内の CookieEU 内の専用 Cloud Browser、AES-256-GCM で暗号化されたプロファイル
Milanote のアプリが変更された場合修正後に git pull を一度実行お客様に代わって修正。すべてのツールを毎日テスト
承認MCP クライアントが呼び出しごとに確認コメント、招待、公開、ゴミ箱への移動は OK を待機。ツールごとに切り替え可能
対応環境お使いのマシン上の MCP クライアント、ローカルスクリプトClaude.ai と ChatGPT のコネクター、n8n、Make、Zapier、任意の HTTP クライアント
利用対象非商用目的での個人利用チーム、企業、代理店
料金無料クレジットカード不要の 7 日間無料トライアル(2,000 クレジット付き)。その後は 5,000 クレジットで $29 からの買い切りパック

ホステッド版では、成功した呼び出しは 20~30 クレジット(ほとんどのツールは 25 クレジット)を使用し、失敗した呼び出しは無料です。また、Cloud Browser でエージェント向けアプリを有効にしている間は、1 日あたり 50 クレジットを使用します。料金の詳細。

よくある質問

Milanote に公式 API はありますか? いいえ。Milanote には公開 API、Webhook、公式 MCP サーバーはありません(2026 年 10 月確認)。公開 API と MCP サーバーは、公開ロードマップで要望として挙げられています。コンテンツを取り出す方法は、ボードごとにエクスポートボタンを使うことだけです。詳細はこちら:cotlet.dev/integrations/milanote-api-mcp-server。

Claude、ChatGPT、Cursor で使える Milanote MCP サーバーはありますか? はい。この MCP サーバーはお使いのマシン上で動作します。Claude Code、Claude Desktop、Cursor、Codex では milanote-mcp mcp を実行してください。ChatGPT と Claude.ai のコネクターには公開 HTTPS URL が必要です。ホスト型 Milanote MCP サーバーを使えば、その URL を利用できます。

Milanote のボードを Markdown にエクスポートできますか? はい。サブボードも対象にできます。python examples/export_boards.py --board <board URL> --dir ./outline を実行すると、階層に沿ったフォルダーに、ボードごとの Markdown ファイルが作成されます。--format を使えば、Word、PDF、PNG、プレーンテキストも同様にエクスポートできます。

すべてのボードをバックアップできますか? cron から Home の各ボードに対して export_boards.py を実行してください。ボード上の画像とファイルは Milanote に残ります。Milanote のエクスポートメニューにある「Generate ZIP」を使うと、オリジナルをダウンロードできます。

共有されたボードに追加できますか? はい。そのボードを編集できるアカウントであれば可能です。読み取り専用のボードは閲覧とエクスポートはできますが、変更はできません。

無料プランでも使えますか? はい。無料プランの 100 カード制限は適用されます。get_usage で現在の利用状況を確認でき、上限を超えてカードを追加しようとすると、Milanote 独自のメッセージが表示されて失敗します。

なぜ自分の Chrome が必要なのですか? パスワードを使わずに Milanote のセッションを読み取り、期限日の設定に使うタイムゾーンを取得するためです。Chrome を使うのはサインインごとに 1 回だけで、呼び出しのたびに使うわけではありません。

Milanote からサインアウトされたらどうなりますか? 呼び出しは auth_expired で失敗します。Chrome のリモートデバッグが有効であれば、次の呼び出し時にサーバーが新しい Cookie を読み取ります(Chrome の確認画面で「許可」をクリックしてください)。そうでない場合は、もう一度 milanote-mcp connect を実行してください。

VPS や Docker で実行できますか? 技術的には可能で、MILANOTE_AUTH_TOKEN を使います。ただし、その場合 Milanote にはデータセンターの IP アドレスからセッションにアクセスしているように見えるため、本人の利用ではないと判断されやすくなります。常時稼働させるには、ホスト型バージョンを使うと、固定 IP の専用 Cloud Browser にセッションを保持できます。

Milanote アカウントが停止されることはありますか? リクエストには Chrome のフィンガープリントが含まれ、ユーザーがクリックするように 1 件ずつ送信されます。プラットフォームが決して措置を取らないとは保証できません。通常の利用範囲を守ってください。

職場やクライアントのために使えますか? いいえ。このライセンスでは非商用利用のみが許可されています。チーム、会社、クライアントの業務で使う場合は、Cotlet を利用するか、[email protected] までお問い合わせください。

オープンソースですか? ソースコードは公開されていますが、ライセンスはオープンソースライセンスではありません。非商用利用のみで、業務での利用はできません。

ツールが動かなくなった、または別のツールが必要です。 Issue を作成し、ツール名とエラーメッセージを記載してください。

ライセンス

PolyForm Noncommercial License 1.0.0。概要は次のとおりです。

  • 許可される利用: 非商用利用。個人の目的で自分の Milanote アカウントを使う場合、または慈善団体、学校、公的研究機関、政府機関による利用。コードの変更、および同じライセンスでの共有。
  • 許可されない利用: 自分の事業を含むあらゆる商用利用、クライアント業務、このソフトウェアやこれを基にしたサービスの販売または提供。

Cotlet

Cotlet(@cotletdev)がメンテナンスしています。Milanote は、その所有者の商標です。このプロジェクトは非公式であり、Milanote との提携、承認、後援を受けていません。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。