TriliumNext Notes' MCP Server について
TriliumNext Notes' MCP Server は TriliumNext Notes 向けの MCP サーバーで、MCP クライアントからノートや属性の検索・読み取り・作成・編集を行えます。プロトタイプで開発者向けとされ、利用前のバックアップが推奨されています。
主な機能
- 01ノートの検索とタイトルからのID解決
- 02ノート内容の読み取りと正規表現による抽出
- 03ノートの作成、更新、移動、削除
- 04ラベルとリレーションの読み取りと管理
- 05PERMISSIONS による読み書き権限の制御
活用シーン
- 01AI アシスタントに最近編集したノートを探させる
- 02作業ログに当日の更新を追記する
- 03属性や子ノートを一括で整理する
MCP 対応
このプロジェクトは MCP サーバーであり、ノート検索、編集、属性管理のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
TriliumNext Notes の MCP サーバー
⚠️ 免責事項:これは https://github.com/TriliumNext/Notes/issues/705 向けのプロトタイプです。開発者向けの使用のみを想定しています。このツールを使用する前に、Trilium のノートをバックアップしてください。 ⚠️
TriliumNext Notes 用のモデルコンテキストプロトコルサーバーです。このサーバーは、MCP を通じて Trilium Notes のインスタンスとやり取りするためのツールを提供します。この MCP は triliumnext-skills と一緒に使用できます。
また、Trilium のインスタンスを cloudflare R2、AWS S3、google drive など複数のクラウドストレージプロバイダーに同時にバックアップしたい場合は、こちらをご覧ください: https://github.com/tan-yong-sheng/trilium-backup
提案する代替ツール:
クイックスタート
まず、環境変数を設定してください:
TRILIUM_API_URL(デフォルト:http://localhost:8080/etapi)TRILIUM_API_TOKEN(必須。Trilium Notes の設定から取得してください)PERMISSIONS(任意。デフォルトは 'READ;WRITE'。READ はsearch_notes、get_note、resolve_note_id、read_attributesへのアクセスを許可し、WRITE はcreate_note、update_note、delete_note、manage_attributesへのアクセスを許可します)VERBOSE(任意。デフォルトは 'false'。true にすると、詳細なデバッグログを出力します)
インストール
以下では、Claude Desktop、Claude Code、Cursor、Cline など、各種 MCP クライアントでこの MCP をインストールする方法を説明します。
Claude Desktop
Claude Desktop の設定に追加します:
{
"mcpServers": {
"triliumnext-mcp": {
"command": "npx",
"args": ["triliumnext-mcp"],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
"PERMISSIONS": "READ;WRITE"
}
}
}
}
Claude Code
claude mcp add triliumnext-mcp \
-e TRILIUM_API_URL=http://localhost:8080/etapi \
-e TRILIUM_API_TOKEN=<YOUR_TRILIUM_API_TOKEN> \
-e PERMISSIONS='READ;WRITE' \
-- npx triliumnext-mcp
注:~\.claude\settings.json を以下のように更新し、MCP の起動タイムアウトを 1 分、MCP ツールの実行タイムアウトを約 5 分に延長してください:
{
"env": {
"MCP_TIMEOUT": "60000",
"MCP_TOOL_TIMEOUT": "300000"
}
}
Cursor
次の場所に移動します:Settings -> Cursor Settings -> MCP -> Add new global MCP server
以下の設定を Cursor の ~/.cursor/mcp.json ファイルに貼り付ける方法を推奨します。プロジェクトフォルダーに .cursor/mcp.json を作成すれば、特定のプロジェクトにインストールすることもできます。詳しくは Cursor MCP docs をご覧ください。
{
"mcpServers": {
"triliumnext-mcp": {
"command": "npx",
"args": ["triliumnext-mcp"],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
"PERMISSIONS": "READ;WRITE"
}
}
}
}
Cline
Cline は、MCP サーバーの管理に JSON 設定ファイルを使用します。提供されている MCP サーバー設定を統合するには:
- Cline を開き、上部のナビゲーションバーにある MCP Servers アイコンをクリックします。
- Installed タブを選択し、Advanced MCP Settings をクリックします。
- cline_mcp_settings.json ファイルに、以下の設定を追加します:
(i) Google AI Studio Provider を使用する場合
{
"mcpServers": {
"timeout": 300,
"type": "stdio",
"triliumnext-mcp": {
"command": "npx",
"args": ["triliumnext-mcp"],
"env": {
"TRILIUM_API_URL": "http://localhost:8080/etapi",
"TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
"PERMISSIONS": "READ;WRITE"
}
}
}
}
その他の MCP クライアント
このサーバーは stdio トランスポートを使用し、標準の MCP プロトコルに準拠しています。以下を実行すれば、MCP 対応の任意のクライアントに統合できます:
npx triliumnext-mcp
Docker を使用して MCP を実行する(ベータ版)
GitHub Container Registry のビルド済みイメージを使用する
最新のイメージをプルして実行します:
docker pull ghcr.io/tan-yong-sheng/triliumnext-mcp:latest
次に、お使いの MCP に以下の設定を追加します: (注:ここで TRILIUM_API_URL と TRILIUM_API_TOKEN を必ず変更してください)
{
"mcpServers": {
"triliumnext-mcp-docker": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"TRILIUM_API_URL",
"-e",
"TRILIUM_API_TOKEN",
"-e",
"PERMISSIONS",
"-e",
"VERBOSE",
"ghcr.io/tan-yong-sheng/triliumnext-mcp:latest"
],
"env": {
"TRILIUM_API_URL": "https://trilium:8080/etapi",
"TRILIUM_API_TOKEN": "<YOUR_TRILIUM_API_TOKEN>",
"PERMISSIONS": "READ;WRITE",
"VERBOSE": "false"
}
}
}
}
利用可能なツール
このサーバーは、ノート管理用に以下のツールを提供します:
検索と探索のツール
search_notes- キーワード検索、日付範囲、フィールド別検索、属性検索、ノートのプロパティ、テンプレートベースの検索、ノートタイプによる絞り込み、MIME タイプによる絞り込み、階層ナビゲーションなど、包括的な絞り込み機能を備えた統合検索です。resolve_note_id- タイトルからノートの ID を検索します。他のツールで使用するノート ID の取得に不可欠です。list_children_notes- 決定的な検索クエリを使用して、親ノートの直接の子ノートを一覧表示します。作成日とタイトルで並べ替えた子ノートの概要を返します。
ノート管理ツール
get_note- ID でノートとその内容を取得します。正規表現を使用して、内容から特定のパターンを抽出することもできます。create_note- 新しいノートを作成します。10 種類のノートタイプに対応しており、同じ手順で属性(ラベルとリレーション)も作成できます。update_note- ノートのタイトルまたは内容を更新します。更新方法を指定するためにmode('overwrite'または'append')が必要です。また、競合を防ぐためにexpectedHashも必要です。move_note- ノートを新しい親フォルダーに移動します。ノートに複数の親ブランチがある場合にのみbranchIdを使用してください。patch_note- モードベースのパッチ(css、xpath、line、fragment、literal、regex)を使用して、対象を絞った一括編集を適用し、アトミックに検証します。リテラルパッチでは、繰り返し出現するテキストを対象にするためにoccurrenceと、任意のcontextを指定できます。delete_note- ノートを完全に削除します(⚠️ 元に戻せません)。
属性管理ツール
read_attributes- 指定したノートのすべての属性(ラベルとリレーション)を読み取ります。manage_attributes- ノートの属性を作成、更新、または削除します。一括作成にも対応しています。
📖 詳しい使い方:改訂管理の戦略とベストプラクティスについては、ノート管理ガイドを参照してください。
クエリの例
検索と探索
- 「2024 年の初め以降に作成した、『n8n』に関する最新のノートを 10 件探して」
- 「過去 7 日間に編集したノートを表示して」
- 「サブフォルダーも含めて、『n8n Template』フォルダー内のすべてのノートを一覧表示して」
- 「このフォルダーの直下にあるノートを一覧表示して」
コンテンツ管理
- 「今日の更新を作業ログに追加して」(
mode: 'append'を指定してupdate_noteを使用) - 「この下書きを最終版に置き換えて」(
mode: 'overwrite'を指定してupdate_noteを使用) - 「ジャーナルフォルダーに『Weekly Review』という新しいノートを作成して」
📖 その他の例:包括的な使用例については、ユーザークエリの例を参照してください。
ドキュメント
- Docker デプロイガイド - Docker で実行するための完全ガイド
- ノート管理ガイド - 改訂管理による安全なコンテンツ編集
- ノートのパッチ適用ガイド - 対象を絞ったノートの一括編集
- ノート移動ガイド - ノートを別の親に移動
- 子ノート一覧表示ガイド - 直下の子ノートの一覧表示
- ユーザークエリの例 - 自然言語クエリの例
- 検索クエリの例 - 高度な検索構文とフィルター
開発
サーバーに貢献したり、変更したりする場合は、以下をご確認ください。
# Clone the repository
git clone https://github.com/tan-yong-sheng/triliumnext-mcp.git
# Install dependencies
npm install
# Build the server
npm run build
# For development with auto-rebuild
npm run watch
貢献
貢献を歓迎します!サーバーの改善に取り組む場合は、検索クエリの構築方法を理解するため、公式のTrilium Search DSL ドキュメントと、プロジェクト内の検索クエリの例をご確認ください。
お気軽にイシューを作成するか、プルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。