Skip to main content
Glama

obsidian-mcp-server

Obsidian学習Vault用のMCPサーバー(Model Context Protocol)です。 Claudeにノート検索、ノート内容、Decks形式のフラッシュカード作成、Lerntrackerプラグインの学習計画へのアクセスを提供します。

Python、MCP SDK 2.x、stdioトランスポート。

目的

これまで、ロジックは2つのObsidianプラグインで実行されていました:

  • Decks(外部プラグイン)はフラッシュカードをレンダリングしますが、作成はしません。カードは手書きでした。

  • Lerntracker(自作プラグイン)は学習進捗と学習計画を管理しますが、教材を自動的に日々に割り当てることは意図的にしていません。

このサーバーは両方のギャップを埋めます:Claudeは既存のファイル形式でカードを直接作成でき、Lerntrackerのdata.jsonに書き戻される学習計画を計算できます。

Related MCP server: Nexus MCP for Obsidian

インストール

cd ~/Projects/obsidian-mcp-server
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

設定

両方のパスは環境変数から取得されます。ハードコードはありません。

Variable

Default

意味

OBSIDIAN_VAULT_PATH

~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Sem_4

Vaultのルート

LERNTRACKER_DATA_PATH

$OBSIDIAN_VAULT_PATH/.obsidian/plugins/lerntracker/data.json

Lerntrackerのデータベース

VaultパスのデフォルトはiCloud同期のObsidianに適しています。別のセットアップの場合は、OBSIDIAN_VAULT_PATHを設定するだけで十分です。

Lerntrackerパスは個別に設定可能です。Obsidian Vaultは入れ子になる可能性があるためです。サブフォルダーに別のVaultがある場合、それには独自のdata.jsonがあります。デフォルトはメインVaultのものを指します。

ツール

Tool

効果

search_notes(query, limit=20)

ファイル名と内容を大文字小文字を区別せず検索します。名前の一致はより高い重み付けがされます。パスとテキストの位置を返します。読み取り専用

get_note(path)

ノートの完全な内容を返します。読み取り専用

create_flashcard(front, back, note_path, deck="")

書き込み。 <Kurs>/Flashcards/<deck>.md にカードを追加します

generate_summary(note_path)

ノートを構造的に準備します。読み取り専用

save_summary(note_path, summary)

書き込み。 <Kurs>/Zusammenfassungen/<Notiz>.md を作成します

generate_study_plan(courses, deadlines, hours_per_subtopic=1.5, dry_run=False)

書き込み。 未完了のサブトピックを日々に割り当て、data.json に記録します

すべてのスキーマはSDKによって型ヒントとdocstringから生成されます。コードには手書きのJSONスキーマはありません。

フラッシュカード形式

create_flashcardは、Vault内の既存のカードが使用する形式(ヘッダーパラグラフ)を正確に書き込み、ソースへのウィキリンクを追加します:

---
tags: [decks]
---

## Was ist ein Signal?

Eine zeitabhängige, messbare physikalische Größe.

Quelle: [[01_Physikalische_Schicht]]

ターゲットファイルはソースノートのコースフォルダーから決まります。deckはファイル名を上書きします。ファイルが存在しない場合は、tags: [decks] で作成されます。同一の表面を持つカードは、重複して作成される代わりにスキップされます。

Decksの学習状態はMarkdownファイルではなくSQLiteデータベースにあります。サーバーはそれに触れません。FSRS履歴は変更されません。

generate_summaryが自分で要約しない理由

サーバーには言語モデルがありません。ノートを構造化して返します(概要、指標、全文)。要約はクライアント側、つまりClaude Desktopのモデルが書きます。その後、save_summaryで保存されます。これは通常のMCPの役割分担です:サーバーはコンテキストを提供しアクションを実行し、モデルが文章を作成します。

代わりにサーバーが自分で要約するには、Anthropic APIを呼び出し、独自のAPIキーが必要になります。

学習計画ロジック

generate_study_planは、未完了の各サブトピックを具体的な日付に割り当てます:

  1. コースは試験日で並べ替えられます。最も早い試験が最初です。

  2. 学習終了日 = examDate − bufferDays。バッファ日は復習のために空けておきます。

  3. 学習日はsettings.weeklyHoursから取得されます(0 = 日曜日 … 6 = 土曜日)。0時間の日とすべてのblockedDatesはスキップされます。

  4. 各サブトピックはhours_per_subtopic(デフォルト1.5時間)を消費し、残り容量のある最も早い日に配置されます。1日に収まらない場合は、複数日に分割されます。プラグインは複数のdatesをサポートしています。

  5. 既に完了したサブトピックと、既存のdatesを持つものは変更されません。

  6. 学習終了日までに収まらないものは、黙って破棄されるのではなく警告として報告されます。

各書き込み操作の前に、ファイルの隣にバックアップ(data.backup-<Zeitstempel>.json)が作成されます。書き込みは一時ファイルを介して原子的に行われます。dry_run=Trueは計画のみを表示します。

Obsidianで書き込んだ後、プラグインを再読み込みするためにCmd+Rを押してください。

リソース

URI

内容

vault://structure

Vaultのフォルダーツリー(各フォルダーのノート数付き)

note://{+path}

個々のノートの内容、読み取り専用

テンプレートは意図的に{path}ではなく{+path}(予約拡張)を使用しています。通常のテンプレート変数はスラッシュに一致しません。{path}ではサブフォルダー内のノートは静かに見つからず、Vault内のほぼすべてのノートはコースフォルダーにあります。

MCP Inspectorでローカルテスト

InspectorはSDKのCLIから起動され、ツールとリソースを個別に呼び出せるWebインターフェースを開きます。npx(Node.js)とuvが必要です。

source .venv/bin/activate && mcp dev main.py

コマンドはhttp://localhost:6274のようなURLを出力します(セッショントークンが付加されます)。ブラウザで開き、左側のConnectをクリックします。次に:

  • ツールタブ → List Tools → ツールを選択し、引数を入力してRun Tool

  • リソースタブ → List Resourcesvault://structureをクリック

  • テンプレート化されたリソースの場合は、note://<Kursordner>/Flashcards/<Datei>.mdのパターンでURIを直接入力します

異なるVaultを使用する場合:

OBSIDIAN_VAULT_PATH="$HOME/Pfad/zu/deinem/Vault" mcp dev main.py

書き込みツールを試すには、使い捨てVaultが便利です:

OBSIDIAN_VAULT_PATH=/tmp/testvault mcp dev main.py

Claude Desktopへの接続

設定ファイル:~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "obsidian-vault": {
      "command": "/Users/DEIN_NAME/Projects/obsidian-mcp-server/.venv/bin/python",
      "args": ["/Users/DEIN_NAME/Projects/obsidian-mcp-server/main.py"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/Users/DEIN_NAME/Pfad/zu/deinem/Vault"
      }
    }
  }
}

重要:絶対パスを使用してください。~$HOMEはここでは展開されません。commandにはvenvからのPythonを指定してください。Claude Desktopは有効化された環境なしでサーバーを起動するため、単なる"python3"ではmcpパッケージが見つかりません。

ファイルが既に存在する場合は、既存のmcpServersオブジェクトに"obsidian-vault"エントリを追加するだけです。その後、Claude Desktopを完全に終了して再起動します。サーバーは入力フィールドのツールメニューに表示されます。

セキュリティ

ツールまたはリソース呼び出しからのすべてのパスはVaultに対して検証されます。絶対パスと..トラバーサルは拒否され、解決されたターゲットはOBSIDIAN_VAULT_PATH内にある必要があります。.obsidian.git.trash.claudenode_modulesは検索と構造リストから除外されます。プラグインバンドルが結果を圧倒するのを防ぐためです。

save_summaryは既存のファイルを上書きせず、create_flashcardは重複カードを作成せず、generate_study_planは書き込む前にdata.jsonをバックアップします。

テスト済み

mcp 2.0.0、Python 3.14に対して:ツールスキーマ、リソーステンプレート、実際のClientSessionとのstdioハンドシェイク、パスガード、および使い捨てVaultに対する書き込みツール(複数日分割、ブロックされた日、0時間の曜日、オーバーフローケースを含む)をテストしました。

ライセンス

MIT — LICENSEを参照してください。

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Turns your Obsidian vault into an MCP-enabled workspace with tools for reading/writing notes, managing folders, running semantic searches, and maintaining long-term memory—all while keeping data local to your vault.
    173,522
    150
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Bridges Obsidian vaults with MCP-compatible AI tools, enabling read/write/search of notes, task management, and vault operations through 34 tools and prompt templates.
    34
    57
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.

  • Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MzaKhn/obsidian-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server