Obsidian Brain について
Obsidian Brain は、Obsidian の Vault や Markdown ファイル群を検索、分析、編集するローカル MCP サーバーです。セマンティック検索と全文検索、グラフ分析を組み合わせ、Obsidian プラグインなしで動作します。
主な機能
- 01見出し単位のセマンティック検索とハイブリッド順位付け
- 02グラフの経路、テーマ、PageRank の分析
- 03ノートの読み取り、作成、編集、移動、リンク
- 04ローカル埋め込みと SQLite インデックス
- 05ディスク上の Markdown ファイルを直接処理
活用シーン
- 01大規模な Vault から関連箇所を探す
- 02重要なノートやテーマ群を特定する
- 03MCP クライアントからノートを作成・更新する
MCP 対応
ローカル stdio プロセスを介して、検索、ノート、グラフ、メンテナンス用のツールを MCP クライアントに提供します。オプションの連携プラグインにより、エディターのライブ状態や Dataview、Bases のクエリにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y obsidian-brainVAULT_PATHAbsolute path to your Obsidian vault (or any folder of .md files).DATA_DIRWhere to store the SQLite index + embedding cache. Defaults to $XDG_DATA_HOME/obsidian-brain or ~/.local/share/obsidian-brain.EMBEDDING_PRESETPreset name: english (default, bge-small-en-v1.5), english-fast, english-quality, multilingual, multilingual-quality, multilingual-ollama. Ignored when EMBEDDING_MODEL is set.EMBEDDING_MODELPower-user override: any transformers.js checkpoint or Ollama model id. Takes precedence over EMBEDDING_PRESET. Switching auto-reindexes.EMBEDDING_PROVIDEREmbedding backend. 'transformers' (local, default) or 'ollama' (requires a running Ollama server).OLLAMA_BASE_URLBase URL of a local Ollama server. Only used when EMBEDDING_PROVIDER=ollama.OLLAMA_EMBEDDING_DIMOverride the embedding dimensionality when EMBEDDING_PROVIDER=ollama. If unset, the server probes the model on startup.OLLAMA_NUM_CTXOverride Ollama's num_ctx for embed requests. Leave UNSET to let obsidian-brain auto-detect via `/api/show`'s `context_length` (e.g. nomic-embed-text=2048, bge-m3=8192, qwen3-embedding:0.6b=32 768). Setting this manually imposes a hard cap and may silently truncate longer inputs — see https://github.com/ollama/ollama/issues/14259. Ollama's own default is 2048 which truncates for any model trained on a larger context. See also https://github.com/ollama/ollama/issues/7008. Fallback when both env is unset AND /api/show is unreachable: 8192.OBSIDIAN_BRAIN_OLLAMA_AUTO_PULLAuto-pull the configured Ollama model when /api/show returns 404 (model not present). Default ON — choosing an Ollama-backed preset is implicit consent to download its model. Streams /api/pull progress to stderr. Set to '0' to disable auto-pull entirely (master kill-switch) and fall back to the actionable error path (`HTTP 404 — try: ollama pull <model>`).OBSIDIAN_BRAIN_OLLAMA_BYOM_AUTO_PULLOpt-in to auto-pull for BYOM (custom EMBEDDING_MODEL) Ollama models OUTSIDE Ollama's official `library/` namespace. Default OFF — third-party models (e.g. `user/custom-fork`, `myregistry.com/team/model`) require this env var to be set to `1` before they will auto-pull, to prevent silent downloads of arbitrary user-named artifacts. Preset-known models (via EMBEDDING_PRESET) and bare model ids in the official library (e.g. `qwen3-embedding:0.6b`, `library/llama3:8b`) continue to auto-pull by default per the existing OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL behavior.OBSIDIAN_BRAIN_NO_WATCHSet to '1' to disable the live chokidar file watcher. Useful on SMB/NFS vaults where FSEvents/inotify don't fire reliably — fall back to running `obsidian-brain index` on a schedule (launchd/systemd).OBSIDIAN_BRAIN_NO_CATCHUPSet to '1' to skip the startup catchup reindex pass that picks up edits made while the server was down. The live file watcher still starts (via OBSIDIAN_BRAIN_NO_WATCH=1 to disable that separately), and first-time indexing on an empty DB is unaffected — this knob only governs the post-restart `enqueueBackgroundReindex` walk.OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MSPer-file reindex debounce for the live watcher, in milliseconds.OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MSGraph-wide community-detection (Louvain) debounce for the live watcher, in milliseconds. Louvain is the only expensive op — batching it prevents per-edit CPU spikes.OBSIDIAN_BRAIN_TOOL_TIMEOUT_MSPer-tool-call timeout in milliseconds. Tools exceeding this return an MCP error instead of hanging.OBSIDIAN_BRAIN_MAX_CHUNK_TOKENSシークレットOverride the adaptive chunk-size budget (in tokens). When set, this beats the capacity probed from the model's tokenizer or Ollama /api/show. Use for debugging or for models with stale tokenizer configs.OBSIDIAN_BRAIN_CONFIG_DIROverride the per-user config directory where obsidian-brain stores model overrides (`model-overrides.json`) and the user-fetched seed (`seed-models.json`). Default is `$XDG_CONFIG_HOME/obsidian-brain` on macOS/Linux (or `~/.config/obsidian-brain`) and `%APPDATA%/obsidian-brain` on Windows. Both files survive `npm update obsidian-brain` because they live outside the package.OBSIDIAN_BRAIN_DEBUGSet to "1" to print a verbose synchronous startup trace to stderr — every preflight, createContext, server.connect, and shutdown step is logged with a monotonic timestamp. The LAST line before any silent failure tells you exactly which step the server reached. No-op when unset (no overhead). Use to diagnose silent-crash failure modes.OBSIDIAN_BRAIN_LOG_FORMATSet to 'ndjson' for one-JSON-object-per-line stderr output (timestamp + level + message + structured fields). Default is human-readable plain text (`obsidian-brain: <message>`). Useful for piping logs into aggregators (Datadog, Loki, Vector, journald) that index structured fields.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
obsidian-brain
Obsidian Vaultに対して、Claude(およびその他のMCPクライアント)にセマンティック検索+ナレッジグラフ+Vaultの編集機能を提供する、スタンドアロンのNode MCPサーバーです。ローカルのstdioプロセスとして動作し、プラグインもHTTPブリッジもAPIキーもホスト先も不要です。Vaultのコンテンツがマシンの外に出ることはありません。
📖 詳細なドキュメント → sweir1.github.io/obsidian-brain 連携プラグイン →
sweir1/obsidian-brain-plugin(任意 —active_note、dataview_query、base_queryが使えるようになります)
目次 — 選ばれる理由 · クイックスタート · 利用できる機能 · 仕組み · 連携プラグイン · トラブルシューティング · 最近のリリース
obsidian-brainが選ばれる理由
- Obsidianを起動しなくても動作 — Local REST APIベースのサーバーとは異なり、obsidian-brainは
.mdファイルをディスクから直接読み取ります。Obsidianを閉じても、Vaultは単なるフォルダーです。 - Local REST APIプラグインは不要 — 基本機能を使うためにObsidian内へインストールするものはありません。
- RRFハイブリッド検索によるチャンク単位のセマンティック検索 — Markdownの見出し単位で埋め込みを生成し、Reciprocal Rank Fusionを使ってFTS5 BM25と統合します。該当するチャンクを見つけ、意味に基づいて順位付けします。
- PageRank+Louvain+グラフ分析を備えた唯一のObsidian MCPサーバー — Vault内で最も影響力のあるノート、橋渡しとなるノート、テーマのクラスターを検索できます。この機能を提供しているものは他にありません。
- 高品質なローカル埋め込みに対応するOllamaプロバイダー — 環境変数を1つ設定するだけで、
qwen3-embedding:0.6b、nomic-embed-text、bge-m3などに切り替えられます。 npxでまとめてインストール — リポジトリのクローンも、ビルドも、APIキーも、ホストされたエンドポイントも不要です。Vaultのコンテンツがマシンの外に出ることはありません。
クイックスタート
1行でインストール(macOS+Claude Desktop)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/sweir1/obsidian-brain/main/scripts/install.sh)"
HomebrewとNode 20以降がまだインストールされていない場合はそれらをインストールし、Claude Desktopに必要な/usr/local/binのシンボリックリンクを追加して、obsidian-brainの設定をclaude_desktop_config.jsonに統合します。Claudeのアクセスを有効にするため、Full Disk Accessの設定画面を開き、Claudeを再起動します。macOSのパスワード(Homebrewとシンボリックリンク用)とVaultのパスをそれぞれ一度入力するだけで、あとはすべて自動です。実行内容はこちらで確認できます:scripts/install.sh。
手動インストール
Node 20以降と、Obsidian Vault(または.mdファイルを含む任意のフォルダー)が必要です。Obsidian自体は不要です。
obsidian-brainをMCPクライアントに接続します。Claude Desktopの場合の例(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"obsidian-brain": {
"command": "npx",
"args": ["-y", "obsidian-brain@latest", "server"],
"env": { "VAULT_PATH": "/absolute/path/to/your/vault" }
}
}
}
Claude Desktopを終了(macOSでは⌘Q)して、再起動します。これで完了です。
メモ
初回起動時に、サーバーがVaultを自動でインデックス化し、約34 MBの埋め込みモデルをダウンロードします。クライアントにツールが表示されるまで、30~60秒かかることがあります。2回目以降の起動はすぐに完了します。
ヒント
開発者ではありませんか? macOSの手順ガイドでは、Homebrew、Node、GUIアプリのPATH修正、Full Disk Accessの設定を順に説明しています。
その他すべてのMCPクライアント(Claude Code、Cursor、VS Code、Jan、Windsurf、Cline、Zed、LM Studio、JetBrains AI、Opencode、Codex CLI、Gemini CLI、Warp)については、MCPクライアントへのインストールをご覧ください。
→ 環境変数の完全な一覧:設定
→ モデル/プリセット/Ollamaの詳細:埋め込みモデル
→ aaronsbのプラグインからの移行:移行ガイド
利用できる機能
目的別にグループ化された18個のMCPツール:
- 検索と読み取り —
search、list_notes、read_note - グラフの把握 —
find_connections、find_path_between、detect_themes、rank_notes - 書き込み —
create_note、edit_note、apply_edit_preview、link_notes、move_note、delete_note - ライブエディター(コンパニオンプラグインが必要)—
active_note、dataview_query、base_query - メンテナンス —
reindex、index_status
→ 引数、例、レスポンスの形式:ツールリファレンス
仕組み
flowchart LR
Client["<b>MCP Client</b><br/>Claude Desktop · Claude Code<br/>Cursor · Jan · Windsurf · ..."]
subgraph OB ["obsidian-brain (Node process)"]
direction TB
SQL["<b>SQLite index</b><br/>nodes · edges<br/>FTS5 · vec0 embeddings"]
Vault["<b>Vault on disk</b><br/>your .md files"]
Vault -->|"parse + embed"| SQL
SQL -.->|"writes"| Vault
end
Client <-->|"stdio JSON-RPC"| OB
取得も書き込みもSQLiteインデックスを経由します。読み取りはマイクロ秒単位で実行でき、書き込みは即座にディスクへ反映され、変更されたファイルを逐次再インデックスします。埋め込みはチャンク単位で行われます(見出しを考慮した再帰的チャンク分割により、コードブロックとLaTeXブロックを保持)。また、searchのデフォルトのhybridモードでは、チャンク単位のセマンティックランキングとFTS5 BM25をReciprocal Rank Fusionで統合します。
→ 技術解説 — stdio、SQLite、ローカル埋め込みを選んだ理由:アーキテクチャ → ライブウォッチャーの動作とデバウンス:ライブ更新 → 定期的な再インデックス(macOS launchd/Linux systemd):定期インデックス作成(macOS) · (Linux)
コンパニオンプラグイン(任意)
任意のObsidianプラグインsweir1/obsidian-brain-pluginを使用すると、ライブのObsidianランタイム状態(アクティブなエディター、Dataviewの結果、Basesの行)がlocalhost HTTPエンドポイント経由で公開されます。インストールしてObsidianを起動すると、active_note、dataview_query、base_queryが利用可能になります。BRATでリポジトリID sweir1/obsidian-brain-pluginを指定してインストールしてください。
プラグインとサーバーは同じメジャー・マイナーバージョンで運用してください。サーバーv1.7.xにはプラグインv1.7.xを組み合わせます。パッチバージョンの違いは問題ありません。
→ セキュリティモデル、機能ハンドシェイク、Dataview/Basesの機能対応状況:コンパニオンプラグイン
トラブルシューティング
特によくある問題は次の4つです:
- Claude Desktopで**「Connector has no tools available」**と表示される — 通常、サーバーが起動時にクラッシュしています。
~/Library/Logs/Claude/mcp-server-obsidian-brain.logを確認してください。解決方法:npm install -g obsidian-brain@latestを実行し、Claudeを終了(⌘Q)してから再起動します。 ERR_DLOPEN_FAILED/NODE_MODULE_VERSIONの不一致 —better-sqlite3が異なるNode ABIに対してビルドされています。解決方法:PATH=/opt/homebrew/bin:$PATH npm rebuild -g better-sqlite3を実行します。Vault path not configured—VAULT_PATHが設定されていません。クライアント設定またはシェルのenvブロックで設定してください。npx経由で古いバージョンが読み込まれる(公開後もクライアントに以前のリリースが表示される)— npxのキャッシュが古くなっています。解決方法:rm -rf ~/.npm/_npxを実行してから、クライアントを再起動します。設定で@latestを指定しておくと、この問題を防げます。
→ 詳細なトラブルシューティングガイド(ウォッチャーが動作しない、インデックスが古い、複数のクライアントの実行、タイムアウト、埋め込み次元の不一致、ログの場所):docs/troubleshooting.md
最近のリリース
- v1.7.24(2026-05-16)— embeddings.mdにBYOMの説明を追加+開発依存関係を5件更新
- v1.7.23(2026-05-16)— BYOM Ollamaの自動プル制御+ロガーの一斉更新+SIGTERMの単体テスト
- v1.7.22(2026-05-15)— 構造化stderr(NDJSON)+Ollamaの準備状態+Dependabotのセキュリティ更新+SIGTERMのドレイン統合テスト
- v1.7.21(2026-04-27)— install.shのVault選択機能を修正+
ollama pullの自動実行+ドキュメント/テストの改善 - v1.7.20(2026-04-27)— Ollamaのプレフィックス検索バグを修正+監査関連の改善13項目
→ 変更履歴の全文:docs/CHANGELOG.md · 今後の計画:docs/roadmap.md · ソースからビルド:docs/development.md
謝辞
このプロジェクトが着想やコードの参考にした obra/knowledge-graph と aaronsb/obsidian-mcp-plugin に感謝します。また、Xenova/transformers.js(ローカルでの埋め込み生成)、graphology(グラフ分析)、sqlite-vec(SQLite でのベクトル検索)にも感謝します。
関連プロジェクト
apple-notes-brain— 関連プロジェクト macOS 上の Apple Notes 用 MCP サーバーです。Markdown の完全な双方向ラウンドトリップに対応し、読み取り、書き込み、検索を行えます。
ライセンス
Apache License 2.0 — Copyright 2026 sweir1.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。