mcpField
O
Obsidian Brain

Obsidian Brain

ローカル
sweir1.github.ioメモリ・ナレッジ1424 週間前に更新

Obsidian Brain について

Obsidian Brain は、Obsidian の Vault や Markdown ファイル群を検索、分析、編集するローカル MCP サーバーです。セマンティック検索と全文検索、グラフ分析を組み合わせ、Obsidian プラグインなしで動作します。

主な機能

  1. 01見出し単位のセマンティック検索とハイブリッド順位付け
  2. 02グラフの経路、テーマ、PageRank の分析
  3. 03ノートの読み取り、作成、編集、移動、リンク
  4. 04ローカル埋め込みと SQLite インデックス
  5. 05ディスク上の Markdown ファイルを直接処理

活用シーン

  1. 01大規模な Vault から関連箇所を探す
  2. 02重要なノートやテーマ群を特定する
  3. 03MCP クライアントからノートを作成・更新する

MCP 対応

ローカル stdio プロセスを介して、検索、ノート、グラフ、メンテナンス用のツールを MCP クライアントに提供します。オプションの連携プラグインにより、エディターのライブ状態や Dataview、Bases のクエリにも対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"sweir1-obsidian-brain": {
"command": "npx",
"args": [
"-y",
"obsidian-brain"
],
"env": {
"VAULT_PATH": "<VAULT_PATH>",
"DATA_DIR": "<DATA_DIR>",
"EMBEDDING_PRESET": "<EMBEDDING_PRESET>",
"EMBEDDING_MODEL": "<EMBEDDING_MODEL>",
"EMBEDDING_PROVIDER": "<EMBEDDING_PROVIDER>",
"OLLAMA_BASE_URL": "<OLLAMA_BASE_URL>",
"OLLAMA_EMBEDDING_DIM": "<OLLAMA_EMBEDDING_DIM>",
"OLLAMA_NUM_CTX": "<OLLAMA_NUM_CTX>",
"OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL": "<OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL>",
"OBSIDIAN_BRAIN_OLLAMA_BYOM_AUTO_PULL": "<OBSIDIAN_BRAIN_OLLAMA_BYOM_AUTO_PULL>",
"OBSIDIAN_BRAIN_NO_WATCH": "<OBSIDIAN_BRAIN_NO_WATCH>",
"OBSIDIAN_BRAIN_NO_CATCHUP": "<OBSIDIAN_BRAIN_NO_CATCHUP>",
"OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MS": "<OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MS>",
"OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MS": "<OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MS>",
"OBSIDIAN_BRAIN_TOOL_TIMEOUT_MS": "<OBSIDIAN_BRAIN_TOOL_TIMEOUT_MS>",
"OBSIDIAN_BRAIN_MAX_CHUNK_TOKENS": "<OBSIDIAN_BRAIN_MAX_CHUNK_TOKENS>",
"OBSIDIAN_BRAIN_CONFIG_DIR": "<OBSIDIAN_BRAIN_CONFIG_DIR>",
"OBSIDIAN_BRAIN_DEBUG": "<OBSIDIAN_BRAIN_DEBUG>",
"OBSIDIAN_BRAIN_LOG_FORMAT": "<OBSIDIAN_BRAIN_LOG_FORMAT>"
}
}
}
}
起動コマンドnpx -y obsidian-brain
設定が必要な環境変数
VAULT_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmobsidian-brain1.7.24

ツール

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

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

詳細

obsidian-brain

npm version License: Apache 2.0 Node ≥ 20 GitHub stars

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.

コメント

MCP は初めてですか?

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

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