mcpField
J
joplin-mcp-server

joplin-mcp-server

ローカル
github.com/jordanburke生産性86 週間前に更新

joplin-mcp-server について

joplin-mcp-serverは、AIツールからJoplinのノートにアクセスしたいユーザー向けのMCPサーバーです。既定でJoplin Terminalのsidecarを起動するためデスクトップアプリは不要で、既存インスタンスへの接続や複数の同期先にも対応します。

主な機能

  1. 01ノートの検索、読み取り、編集
  2. 02ノートとノートブックの作成
  3. 03同期の実行と同期先の設定
  4. 04Joplin Terminal sidecarの内蔵実行
  5. 05既存Joplinインスタンスへの接続

活用シーン

  1. 01AIツールによるJoplinノートの検索と閲覧
  2. 02ノートブック内のコンテンツ作成や編集
  3. 03sidecarのクラウドまたはファイルシステム同期設定
  4. 04別のマシンにあるJoplinインスタンスへの接続

MCP 対応

MCPクライアント向けに、Joplinのノートとノートブックを検索、読み取り、作成、編集、削除、同期するツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"jordanburke-joplin": {
"command": "npx",
"args": [
"-y",
"joplin-mcp-server"
],
"env": {
"JOPLIN_TOKEN": "<JOPLIN_TOKEN>",
"JOPLIN_HOST": "<JOPLIN_HOST>",
"JOPLIN_PORT": "<JOPLIN_PORT>",
"JOPLIN_PROFILE": "<JOPLIN_PROFILE>",
"JOPLIN_CLI": "<JOPLIN_CLI>",
"JOPLIN_SYNC_TARGET": "<JOPLIN_SYNC_TARGET>",
"JOPLIN_SYNC_PATH": "<JOPLIN_SYNC_PATH>",
"JOPLIN_SYNC_USERNAME": "<JOPLIN_SYNC_USERNAME>",
"JOPLIN_SYNC_PASSWORD": "<JOPLIN_SYNC_PASSWORD>",
"JOPLIN_SYNC_REGION": "<JOPLIN_SYNC_REGION>",
"JOPLIN_SYNC_ENDPOINT": "<JOPLIN_SYNC_ENDPOINT>",
"JOPLIN_SYNC_FORCE_PATH_STYLE": "<JOPLIN_SYNC_FORCE_PATH_STYLE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドnpx -y joplin-mcp-server
設定が必要な環境変数
JOPLIN_TOKENシークレットJoplin API token, for external mode only (see JOPLIN_HOST). Sidecar mode manages its own token and ignores this.
JOPLIN_HOSTConnect to an existing Joplin instance at this host instead of running a sidecar
JOPLIN_PORTPort of the existing Joplin instance (default: 41184)
JOPLIN_PROFILEJoplin data directory for sidecar mode (default: ~/.config/joplin-mcp)
JOPLIN_CLIPath to the joplin CLI binary, overriding auto-detection
JOPLIN_SYNC_TARGETSync target: none, filesystem, webdav, nextcloud, joplin-cloud, joplin-server, s3, dropbox, onedrive (default: none)
JOPLIN_SYNC_PATHSync target URL or path; the bucket name for the s3 target
JOPLIN_SYNC_USERNAMESync username or email; the access key for the s3 target
JOPLIN_SYNC_PASSWORDシークレットSync password; the secret key for the s3 target
JOPLIN_SYNC_REGIONS3 region (default: us-east-1)
JOPLIN_SYNC_ENDPOINTS3 endpoint URL for non-AWS providers such as Backblaze B2, MinIO, R2 or Wasabi (default: https://s3.amazonaws.com/)
JOPLIN_SYNC_FORCE_PATH_STYLEUse path-style S3 URLs, which self-hosted providers such as MinIO usually require: true or false (default: false)
LOG_LEVELLog verbosity: debug, info, warn or error (default: info)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmjoplin-mcp-server2.3.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Joplin MCP サーバー

npm version CI License: MIT

Joplin 用の自己完結型 MCP(Model Context Protocol)サーバーです。Joplin Terminal CLI を依存関係として同梱しているため、デスクトップアプリもグローバルインストールも不要で、管理が必要な外部プロセスもありません。ポートを自動ネゴシエーションするため、Joplin Desktop と共存できます。

クイックスタート

npx joplin-mcp-server --token your_joplin_token

これだけです。サーバーは独自の Joplin Terminal インスタンス(サイドカーモード)を起動し、設定済みのバックエンドと同期して、MCP 経由でノートを公開します。

アーキテクチャ

サイドカーモード(デフォルト)

サーバーは joplin を npm の依存関係として同梱し、独自の Joplin Terminal プロセスを管理します。Joplin のデスクトップアプリは不要です。サイドカーがデータの保存、同期、REST API をすべて処理します。

Joplin Desktop がすでに実行中の場合、サイドカーは自動的に空きポート(41184-41193 をスキャン)を見つけて、並行して実行します。同じ同期先が設定されていれば、両方のインスタンスは同期された状態を保ちます。

# Basic usage — sidecar starts automatically
npx joplin-mcp-server --token your_token

# With cloud sync
npx joplin-mcp-server --token your_token \
  --sync-target joplin-cloud \
  --sync-username [email protected] --sync-password pass

# With filesystem sync (e.g. OneDrive folder)
npx joplin-mcp-server --token your_token \
  --sync-target filesystem \
  --sync-path /mnt/c/Users/you/OneDrive/Joplin

Joplin CLI は次の順序で解決されます。JOPLIN_CLI 環境変数 > node_modules/.bin/joplin(同梱) > グローバルインストール > npx フォールバック。

データはデフォルトで ~/.config/joplin-mcp に保存されます(デスクトップ版 Joplin のインストール先とは別です)。

外部モード

サイドカーを起動する代わりに、既存の Joplin インスタンスへ接続します。JOPLIN_HOST または JOPLIN_PORT を設定すると有効になります。

# Connect to Joplin desktop on another machine or Windows host
JOPLIN_HOST=192.168.0.40 JOPLIN_PORT=41184 npx joplin-mcp-server --token your_token

設定

環境変数
変数説明デフォルト
JOPLIN_TOKENAPI トークン(必須)--
JOPLIN_HOSTこのホスト上の既存の Joplin に接続(サイドカーをスキップ)--
JOPLIN_PORTこのポート上の既存の Joplin に接続(サイドカーをスキップ)--
JOPLIN_CLIjoplin CLI バイナリへのパス(自動検出を上書き)--
JOPLIN_PROFILEサイドカーモード用の Joplin データディレクトリ~/.config/joplin-mcp
JOPLIN_SYNC_TARGET同期先の種類none
JOPLIN_SYNC_PATH同期先の URL/パス--
JOPLIN_SYNC_USERNAME同期用ユーザー名/メールアドレス--
JOPLIN_SYNC_PASSWORD同期用パスワード--
JOPLIN_SYNC_REGIONS3 リージョンus-east-1
JOPLIN_SYNC_ENDPOINTS3 エンドポイント URL(AWS 以外のプロバイダー用)AWS S3
JOPLIN_SYNC_FORCE_PATH_STYLEパス形式の S3 URL を使用(true/false)false
LOG_LEVELログレベル:debug、info、warn、errorinfo
コマンドラインオプション
OPTIONS:
  --env-file <file>          Load environment variables from file
  --token <token>            Joplin API token
  --transport <type>         Transport type: stdio (default) or http
  --http-port <port>         HTTP server port (default: 3000, only with --transport http)
  --profile <dir>            Joplin data directory (default: ~/.config/joplin-mcp)
  --sync-target <type>       Sync target: none, filesystem, webdav, nextcloud,
                             joplin-cloud, joplin-server, s3, dropbox, onedrive
  --sync-path <url>          URL or path for sync target
  --sync-username <user>     Username/email for sync
  --sync-password <pass>     Password for sync
  --help, -h                 Show help message
パスの展開

--profile オプションと、filesystem 同期ターゲットの --sync-path は、クロスプラットフォーム互換性のために ~ と環境変数の展開をサポートしています。それ以外のターゲットでは、--sync-path に URL またはバケット名を指定するため、そのまま渡されます。

# Tilde expands to home directory (Linux, macOS, Windows)
--sync-path ~/OneDrive/Apps/Joplin

# Environment variables (both forms supported)
--sync-path ${HOME}/OneDrive/Apps/Joplin
--sync-path $HOME/OneDrive/Apps/Joplin

# Windows example using USERPROFILE
--sync-path ${USERPROFILE}/OneDrive/Apps/Joplin

これは、シェルによる展開が利用できない MCP クライアントの設定(.mcp.json、Claude Desktop)でも機能します。

WSL の自動検出: WSL では、~/ パスが空または存在しない場合、サーバーは対応する Windows パス(/mnt/c/Users/<user>/...)を自動的に確認します。そのため、WSL では --sync-path ~/OneDrive/Apps/Joplin を指定するだけで、/mnt/c/... のフルパスを指定する必要なく動作します。

同期ターゲット
ターゲット必須オプション
none(デフォルト、同期なし)
filesystem--sync-path /path/to/dir
webdav--sync-path <url> --sync-username --sync-password
nextcloud--sync-path <url> --sync-username --sync-password
joplin-cloud--sync-username --sync-password
joplin-server--sync-path <url> --sync-username --sync-password
s3--sync-path <bucket> --sync-username <access-key> --sync-password <secret-key>
dropbox(OAuth フロー)
onedrive(OAuth フロー)
S3 互換プロバイダー

s3 ターゲットは、デフォルトで AWS(https://s3.amazonaws.com/、リージョン us-east-1)を使用します。--sync-region と --sync-endpoint を指定すると、任意の S3 互換プロバイダーを指定できます。

# Backblaze B2
joplin-mcp-server --token my_token \
  --sync-target s3 --sync-path my-bucket \
  --sync-region us-west-004 \
  --sync-endpoint https://s3.us-west-004.backblazeb2.com \
  --sync-username <access-key> --sync-password <secret-key>

# MinIO / self-hosted: path-style URLs are usually required
joplin-mcp-server --token my_token \
  --sync-target s3 --sync-path my-bucket \
  --sync-endpoint https://minio.example.com \
  --sync-force-path-style true \
  --sync-username <access-key> --sync-password <secret-key>

Cloudflare R2 と Wasabi も同様に利用できます。--sync-endpoint にプロバイダーの S3 エンドポイントを設定してください。

MCP クライアントの設定

Claude Code

このリポジトリには、Claude Code の環境変数展開に対応した .mcp.json が含まれています。

{
  "mcpServers": {
    "joplin": {
      "command": "node",
      "args": ["dist/bin.js"],
      "env": {
        "JOPLIN_TOKEN": "${JOPLIN_TOKEN}"
      }
    }
  }
}

シェルで JOPLIN_TOKEN を設定します(~/.bashrc または ~/.zshrc に追加してください)。

export JOPLIN_TOKEN="your_actual_token_here"
Claude Desktop

Claude Desktop は ${VAR} の展開に対応していません。値を直接指定してください。

{
  "mcpServers": {
    "joplin": {
      "command": "npx",
      "args": ["joplin-mcp-server", "--token", "your_actual_token_here"]
    }
  }
}
同期を使用する場合(Claude Desktop)
{
  "mcpServers": {
    "joplin": {
      "command": "npx",
      "args": [
        "joplin-mcp-server",
        "--token",
        "your_token",
        "--sync-target",
        "filesystem",
        "--sync-path",
        "/path/to/sync/dir"
      ]
    }
  }
}
外部モード
{
  "mcpServers": {
    "joplin": {
      "command": "npx",
      "args": ["joplin-mcp-server"],
      "env": {
        "JOPLIN_TOKEN": "your_actual_token_here",
        "JOPLIN_HOST": "192.168.0.40",
        "JOPLIN_PORT": "41184"
      }
    }
  }
}
Docker
docker build -t joplin-mcp .
docker run -e JOPLIN_TOKEN=your_token -p 3000:3000 joplin-mcp

WSL のセットアップ

WSL で実行しますか? サイドカーアーキテクチャにより簡単に設定できます。Windows のポート転送は不要です。サーバーは WSL を自動検出し、Linux と Windows のファイルシステム間のパス解決を処理します。

OneDrive 経由のファイルシステム同期(推奨)

Windows 上の Joplin デスクトップアプリと WSL のサイドカーが、同じ OneDrive フォルダーに同期します。両者が直接通信する必要なく、同じノートを参照できます。

# Uses ~/OneDrive — automatically resolves to /mnt/c/Users/YourName/OneDrive on WSL
npx joplin-mcp-server --token your_token \
  --sync-target filesystem \
  --sync-path ~/OneDrive/Apps/Joplin

# Or specify the Windows path explicitly
npx joplin-mcp-server --token your_token \
  --sync-target filesystem \
  --sync-path /mnt/c/Users/YourName/OneDrive/Apps/Joplin

Joplin デスクトップアプリで、同じ OneDrive フォルダーへの同期を設定します:Tools > Options > Synchronisation > File system > /Users/YourName/OneDrive/Apps/Joplin

Joplin Desktop との併用: Desktop がポート 41184 で実行中の場合、サイドカーは自動的に次に利用可能なポートを使用します。起動時に警告が記録され、両方のインスタンスは別々のデータベースを使用するため、同期を保つには同じ同期ターゲットが必要であることが通知されます。

クラウド同期

別の方法として、両方のインスタンスを Joplin Cloud またはその他のクラウドバックエンドに同期できます。

npx joplin-mcp-server --token your_token \
  --sync-target joplin-cloud \
  --sync-username [email protected] --sync-password pass
外部モード(ポート転送)

サイドカーを実行する代わりに Windows の Joplin に直接接続する場合:

Windows 上(管理者として PowerShell を実行):

netsh interface portproxy add v4tov4 listenport=41184 listenaddress=0.0.0.0 connectport=41184 connectaddress=127.0.0.1

WSL 内:

JOPLIN_HOST=192.168.0.40 JOPLIN_PORT=41184 npx joplin-mcp-server --token your_token

Windows で ipconfig を実行するか、WSL から cat /etc/resolv.conf | grep nameserver を実行すると、Windows の IP アドレスを確認できます。

利用可能なツール

ツール説明
list_notebooksノートブックの階層全体を取得します
search_notesクエリ文字列でノートを検索します
read_notebook特定のノートブックの内容を読み取ります
read_note特定のノートの全内容を読み取ります
read_multinote複数のノートを一度に読み取ります
create_note新しいノートを作成します
create_folder新しいノートブックを作成します
edit_note既存のノートを編集します
edit_folder既存のノートブックを編集します
delete_noteノートを削除します(確認が必要です)
delete_folderノートブックを削除します(確認が必要です)
sync同期を開始します(デフォルトでは5分ごとに自動同期します)

開発

pnpm install          # Install dependencies
pnpm build            # Build to dist/
pnpm test             # Run tests
pnpm validate         # Format + lint + typecheck + test + build
pnpm serve:dev        # Dev mode with hot reload (stdio)
pnpm serve:dev:http   # Dev mode with hot reload (HTTP)
pnpm inspect          # Build and open MCP Inspector

ライセンス

MIT

コメント

MCP は初めてですか?

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

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