mcpField
K
Kobsidian

Kobsidian

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

Kobsidian について

Kobsidianは、ObsidianのVaultを扱うファイルシステム優先のMCPサーバーです。LLMでノートや資料を管理する人向けに、複数Vaultの切り替えや任意のREST操作を含むLLM-Wikiワークフローを備えています。

主な機能

  1. 01ファイルシステム優先のVault・ノート操作
  2. 02Vault内コンテンツ向けの型付きMCPツール66種
  3. 03セッション中の複数Vault切り替え
  4. 04LLM-Wikiの資料取り込みとインデックス管理
  5. 05孤立ページ、リンク切れ、古いページの検出
  6. 06stdioとStreamable HTTPに対応

活用シーン

  1. 01Obsidianを起動せずにノートを管理
  2. 02MCPセッション中にVaultを切り替え
  3. 03整理した資料からWikiを構築・維持
  4. 04REST API経由でワークスペースやライブDataviewツールを利用

MCP 対応

ObsidianのVault、ノート、リンク、タグ、タスク、LLM-Wiki操作用のツールをMCPクライアントに公開します。ローカルstdioとStreamable HTTPに対応し、一部のワークスペースおよびライブクエリ機能にはObsidian Local REST APIを使います。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"kObsidian": {
"command": "npx",
"args": [
"-y",
"kobsidian-mcp"
],
"env": {
"OBSIDIAN_VAULT_PATH": "<OBSIDIAN_VAULT_PATH>",
"OBSIDIAN_API_URL": "<OBSIDIAN_API_URL>",
"OBSIDIAN_API_VERIFY_TLS": "<OBSIDIAN_API_VERIFY_TLS>",
"OBSIDIAN_REST_API_KEY": "<OBSIDIAN_REST_API_KEY>"
}
}
}
}
起動コマンドnpx -y kobsidian-mcp
設定が必要な環境変数
OBSIDIAN_VAULT_PATHAbsolute path to the Obsidian vault this server should operate on.
OBSIDIAN_API_URLBase URL of the Obsidian Local REST API plugin. Only required for workspace.* / commands.* / live dataview.query* tools.
OBSIDIAN_API_VERIFY_TLSSet to 'true' if you've trusted the Local REST API's self-signed certificate.
OBSIDIAN_REST_API_KEYシークレットBearer key for the Obsidian Local REST API plugin (only needed for REST-bridged tools).

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

パッケージ
npmkobsidian-mcp0.2.1

ツール

66

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
refreshbooleanいいえtrue の場合、キャッシュが有効でもファイルシステムと obsidian.json を強制的に再スキャンします。デフォルトは false です。

詳細

kObsidian MCP

Obsidian ボルト向けのファイルシステム優先 MCP サーバー — LLM Wiki レイヤーを備えています。

Andrej Karpathy の LLM Wiki のアイデアに着想を得ています。 ソースはご自身で整理し、記録の管理は LLM に任せましょう。


npm version npm downloads GitHub release license Release CI

MCP Bun TypeScript Tools Resources Prompts Smithery MCP Registry VirusTotal


インストール · クイックスタート · アーキテクチャ · LLM Wiki · ツール · ドキュメント

ドキュメント:简体中文 / 日本語 / 한국어

kObsidian MCP server


🧰 ワークスペースを備えた唯一の Obsidian MCP です。 vault.list / vault.select により、LLM はセッション中に Obsidian ボルトを検出して切り替えられます — 再起動も、設定ファイルの編集も、ツールごとにパスを渡す必要もありません。OBSIDIAN_VAULT_PATH との 下位互換性があります。v0.3.0 で追加されました。 docs/WORKSPACES.md をご覧ください。


v0.3.7 の新機能

.kobsidian.json を使って各ボルトを個別に設定できます。wiki フォルダー、ファイル名、見出し、古いページとみなすしきい値をカスタマイズでき、すべてのボルトで設定を共有する必要はありません。notes.edit の見出し挿入では、段落間のスペースも維持され、既存のリストにも自然につながります。

設定例とアップグレード時の注意事項。

kObsidian を選ぶ理由

  • ファイルシステムを最優先。 Vault を直接操作します。66 個のツールのうち 55 個以上は、Obsidian を起動していなくても使用できます。
  • 型付きの MCP ツールを 66 個搭載。 Vault、ノート、リンク、タグ、タスク、Dataview、Canvas、Kanban、フェンス付きブロック、Marp、Templates に対応し、すべてのツールで Zod による検証と structuredContent 出力を行います。また、MCP アノテーションの 4 つのヒント(readOnlyHint、destructiveHint、idempotentHint、openWorldHint)をすべて備えています。
  • 複数の Vault に対応した vault.*(v0.3.0)。 LLM は vault.list を使って、既知の Obsidian Vault(Obsidian 独自のレジストリまたは OBSIDIAN_VAULT_<NAME> 環境変数から検出)を一覧表示し、セッション中に vault.select で切り替えられます。完全な後方互換性があり、OBSIDIAN_VAULT_PATH が引き続きデフォルトとして使われ、呼び出しごとの vaultPath 引数が常に優先されます。
  • LLM-Wiki オーケストレーション。 wiki.* 名前空間を使って、Vault を知識が蓄積されるナレッジベースに変えます。ソースを取り込み、インデックスと grep 可能なログを自動更新し、孤立したページ、リンク切れ、古くなったページを検査します。エージェントは proposedEdits コントラクトを介して相互参照を適用するため、すべての書き込みがトランスクリプトで確認できます。
  • 両方のトランスポートに対応。 ローカルの MCP クライアント向けの従来型 stdio と、リモート向けの Streamable HTTP(Hono)に対応し、CORS プリフライト、MCP-Protocol-Version の処理、オリジンへの 403 応答、オプションのベアラー認証を備えています。すべて 2025-11-25 仕様に準拠しています。
  • Claude Code のスキーマ互換性(v0.3.5 以降、v0.3.6 で改良)。 ツールは stdio とステートレスな Streamable HTTP の両方で JSON Schema 2020-12 を公開します。Union 形式のツールはフィールドとセレクターをクライアントに公開し、Zod は引き続き各呼び出しと構造化出力を検証します。詳しくは互換性の詳細をご覧ください。
  • あらゆる場所で利用可能。 npm(npx -y kobsidian-mcp)、Claude Desktop にドラッグ&ドロップできるクロスプラットフォーム対応の .mcpb バンドル、Smithery 用の smithery.yaml、MCP Registry 用の server.json を提供します。各 .mcpb リリースアセットは VirusTotal でスキャンされ、リンクがリリース本文に追加されます。

インストール

以下からクライアントを選んでください。すべてのクライアントが完全なハイブリッドモードに対応しています — ファイルシステム優先のツール(80 個以上)はボルトのパスだけで動作し、同じ設定に Local REST API キーを同時に指定すると、workspace.*、commands.*、および dataview.query* によるライブ DQL が利用可能になります。環境変数のブロック全体をクライアントごとに一度設定すれば、すべてのツール名前空間が使えるようになります。REST キーを空欄にしても、ファイルシステム優先のツールは引き続き動作します。

環境変数必要な用途
OBSIDIAN_VAULT_PATHすべての場合に必須です。 ボルトの絶対パスです。
OBSIDIAN_API_URLLocal REST API プラグインのベース URL です。デフォルトは https://127.0.0.1:27124 です。
OBSIDIAN_API_VERIFY_TLS任意です。 デフォルトは false です(Local REST API プラグインは 127.0.0.1 で自己署名証明書を使用します)。OS のキーチェーンで証明書を信頼した場合に限り、true に設定してください。
OBSIDIAN_REST_API_KEYLocal REST API プラグインのベアラーキーです — workspace.* / commands.* /ライブ dataview.query* にのみ使用します。

全項目は docs/ENVIRONMENT.md をご覧ください。コールドスタートを約 200 ms から約 10 ms に短縮したい場合は、どこでも npx を bunx に置き換えてください。

Claude Code — claude mcp add
claude mcp add kobsidian -s user \
  --env OBSIDIAN_VAULT_PATH=/absolute/path/to/vault \
  --env OBSIDIAN_API_URL=https://127.0.0.1:27124 \
  --env OBSIDIAN_REST_API_KEY=only-if-you-use-workspace-or-commands-tools \
  -- npx -y kobsidian-mcp

Windows では、コマンドを cmd /c でラップしてください: -- cmd /c npx -y kobsidian-mcp。

Claude Desktop — .mcpb をドラッグ&ドロップ

最新リリースから kobsidian-<platform>.mcpb をダウンロードし、Claude Desktop にドラッグしてください。インストーラーでボルトのパスと、任意の API URL /キーを指定します。各リリースのアセットはすべて VirusTotal でスキャン済みです — リンクはリリース本文に記載されています。

ローカルでビルドする場合:

bun install
bun run build:compile   # → dist/kobsidian (or .exe on Windows)
bun run bundle:mcpb     # → kobsidian.mcpb
Codex CLI(OpenAI)— codex mcp add
codex mcp add kobsidian \
  --env OBSIDIAN_VAULT_PATH=/absolute/path/to/vault \
  --env OBSIDIAN_API_URL=https://127.0.0.1:27124 \
  --env OBSIDIAN_REST_API_KEY=only-if-you-use-workspace-or-commands-tools \
  -- npx -y kobsidian-mcp
Cursor — ~/.cursor/mcp.json またはディープリンク

~/.cursor/mcp.json(またはプロジェクトごとの .cursor/mcp.json)を編集します:

{
  "mcpServers": {
    "kobsidian": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "kobsidian-mcp"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/absolute/path/to/vault",
        "OBSIDIAN_API_URL": "https://127.0.0.1:27124",
        "OBSIDIAN_REST_API_KEY": "only-if-you-use-workspace-or-commands-tools"
      }
    }
  }
}

または、ワンクリックでインストールできるディープリンクをユーザーに渡します: cursor://anysphere.cursor-deeplink/mcp/install?name=kobsidian&config=<base64-encoded-config>。

VS Code(Copilot)— code --add-mcp
code --add-mcp '{"name":"kobsidian","command":"npx","args":["-y","kobsidian-mcp"],"env":{"OBSIDIAN_VAULT_PATH":"/absolute/path/to/vault","OBSIDIAN_API_URL":"https://127.0.0.1:27124","OBSIDIAN_REST_API_KEY":"only-if-you-use-workspace-or-commands-tools"}}'

または、ワークスペースに .vscode/mcp.json を作成し、トップレベルの servers キーの下に同じ形式で記述します。

Gemini CLI — gemini mcp add
gemini mcp add kobsidian \
  --env OBSIDIAN_VAULT_PATH=/absolute/path/to/vault \
  --env OBSIDIAN_API_URL=https://127.0.0.1:27124 \
  --env OBSIDIAN_REST_API_KEY=only-if-you-use-workspace-or-commands-tools \
  -- npx -y kobsidian-mcp

または、~/.gemini/settings.json の mcpServers の下を直接編集します。

Antigravity(Google)— mcp_config.json

~/.gemini/antigravity/mcp_config.json (Windows の場合:%USERPROFILE%\.gemini\antigravity\mcp_config.json)を編集します:

{
  "mcpServers": {
    "kobsidian": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "kobsidian-mcp"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/absolute/path/to/vault",
        "OBSIDIAN_API_URL": "https://127.0.0.1:27124",
        "OBSIDIAN_REST_API_KEY": "only-if-you-use-workspace-or-commands-tools"
      }
    }
  }
}
Zed — context_servers の下の settings.json

~/.config/zed/settings.json に記述します:

{
  "context_servers": {
    "kobsidian": {
      "source": "custom",
      "command": "npx",
      "args": ["-y", "kobsidian-mcp"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/absolute/path/to/vault",
        "OBSIDIAN_API_URL": "https://127.0.0.1:27124",
        "OBSIDIAN_REST_API_KEY": "only-if-you-use-workspace-or-commands-tools"
      }
    }
  }
}
OpenCode — mcp の下の opencode.json
{
  "mcp": {
    "kobsidian": {
      "type": "local",
      "command": ["npx", "-y", "kobsidian-mcp"],
      "environment": {
        "OBSIDIAN_VAULT_PATH": "/absolute/path/to/vault",
        "OBSIDIAN_API_URL": "https://127.0.0.1:27124",
        "OBSIDIAN_REST_API_KEY": "only-if-you-use-workspace-or-commands-tools"
      }
    }
  }
}
Factory Droid — droid mcp add
droid mcp add kobsidian "npx -y kobsidian-mcp" \
  --env OBSIDIAN_VAULT_PATH=/absolute/path/to/vault \
  --env OBSIDIAN_API_URL=https://127.0.0.1:27124 \
  --env OBSIDIAN_REST_API_KEY=only-if-you-use-workspace-or-commands-tools
その他のクライアント(Cline、JetBrains AI、Continue、カスタムホスト)— 汎用の mcpServers JSON

標準の mcpServers オブジェクトを読み込む MCP クライアントなら、次の設定を使用できます:

{
  "mcpServers": {
    "kobsidian": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "kobsidian-mcp"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/absolute/path/to/vault",
        "OBSIDIAN_API_URL": "https://127.0.0.1:27124",
        "OBSIDIAN_REST_API_KEY": "only-if-you-use-workspace-or-commands-tools"
      }
    }
  }
}

command からトランスポートを推定するクライアント(Claude Code)では "type": "stdio" は任意ですが、Claude Desktop、Cursor、VSCode、Antigravity では必須です — 最大限の互換性を確保するため、含めてください。

Smithery

smithery.ai は smithery.yaml から直接インストール UI を生成し、4 つの環境変数を収集します — ボルトのパスに加えて、任意の Local REST API URL / TLS /ベアラーキーの 3 項目です。これにより、ハイブリッドモードをすぐに利用できます。

ソースから(コントリビューション/開発)
git clone https://github.com/bezata/kObsidian
cd kObsidian
bun install
bun run dev:stdio    # or dev:http

Obsidian プラグイン

kObsidian はファイルシステム優先です。66 個のツールのうち 55 個以上は、Obsidian のプラグインがインストールされていない状態でも、Vault ディレクトリだけで動作します。以下のプラグインが必要なのは、それらに依存する特定のツール名前空間を使いたい場合のみです。

コミュニティプラグインを有効にする(まだ有効にしていない場合、初回のみ)

Obsidian では、コミュニティプラグインはデフォルトで無効になっています。Vault ごとに一度、有効にしてください。

  1. Obsidian で Vault を開きます。
  2. 設定(⚙️、左下)→ コミュニティプラグインを開きます。
  3. コミュニティプラグインを有効にするをクリックします。
  4. 閲覧 → 検索 → インストール → 有効化の順に操作します。
REST ブリッジ経由のツールに必須

Obsidian Local REST API(Adam Coddington 作)が必要なもの:

  • workspace.*(activeFile、openFile、navigate、closeActiveFile、toggleEditMode)
  • commands.*(execute、list)
  • dataview.query / dataview.listByTag / dataview.listByFolder / dataview.table(実行時の DQL。オフラインの dataview.fields.* / dataview.index / blocks.* ツールは不要です)
  • engine: "templater" を指定した templates.use

インストール後の設定:

  1. プラグインを有効にします。
  2. プラグインの設定を開き、API keyまでスクロールしてコピーをクリックします(新しいキーが必要な場合は、先にリセットをクリックしてください)。
  3. キーを、MCP クライアント設定の env: ブロックにある OBSIDIAN_REST_API_KEY として貼り付けます。デフォルトの OBSIDIAN_API_URL(https://127.0.0.1:27124)はそのまま使えます。

REST ブリッジ経由のツールを使っている間は、プラグインを起動したままにしてください。エンドポイントはローカル専用(127.0.0.1)なので、データがマシンの外に送信されることはありません。

特定のツール名前空間を強化するプラグイン(必須ではありません)
プラグインリンク利用できる機能
Dataviewid=dataviewすべての dataview.* ツールは生の Markdown 上でも引き続き動作します。dataview.query* の DQL クエリを実際に実行するには、Dataview プラグインが必要です。また、Obsidian 内でフィールドやクエリを視覚的に表示します。
Templaterid=templater-obsidianREST API 経由でテンプレートを実行時にレンダリングします(engine:"templater" を指定した templates.use)。オフラインのファイルシステムエンジン(engine:"filesystem" を指定した templates.use)と templates.list は、プラグインなしで動作します。
Marpid=marp-slidesMarp の marp.* ツールは、プラグインがなくても Marp のフロントマターを含む Markdown を解析・編集できます。Obsidian 内でスライドをレンダリングしたり PDF にエクスポートしたりするには、プラグインが必要です。
Kanbanid=obsidian-kanbankanban.* ツールは、プラグインの有無にかかわらず、プレーンな Markdown のボード形式を読み書きします。Obsidian 内でボードをドラッグ可能な列として表示するには、プラグインが必要です。
Tasksid=obsidian-tasks-plugintasks.* ツールは、プラグインの有無にかかわらず、Tasks プラグインの絵文字構文(📅 ⏳ 🛫 ✅ 🔼 🔁)を理解します。Obsidian 内でフィルタリング、クエリ、切り替えを行うには、プラグインが必要です。

obsidian://show-plugin?id=… リンクをクリックすると、Obsidian のアプリ内ブラウザーで該当するプラグインが直接開きます。Obsidian を開いた状態でリンクをクリックすると、インストール画面に直接移動します。

要約
使用したい機能最低限必要なもの
notes.* / tags.* / links.* / stats.vault / tasks.* / wiki.* / kanban.* / blocks.* / marp.* / canvas.* / templates.list + templates.use(engine:"filesystem")/ オフラインの dataview.* を使うVault のパスだけです。 プラグインは不要です。
workspace.* / commands.* を使う+ Local REST API プラグイン + API キーの環境変数
DQL クエリをリアルタイムで実行する(dataview.query / dataview.listBy* / dataview.table)+ Local REST API + Dataview
Templater テンプレートを実行時に実行する+ Local REST API + Templater

どのプラグインの組み合わせでも、kObsidian が Obsidian の起動に依存することはありません。プラグインに接続できない場合、REST ブリッジ経由のツールは明確なエラーを返し、ファイルシステム優先のツールは引き続き動作します。


クイックスタート

初回セッションの前に — kObsidian は Obsidian の空の保管庫で動作しますが、 いくつかの Obsidian プラグインを有効にすると、利用できるツールがすべて使えるようになります。 5 分でできるセットアップ(Local REST API、Dataview、Templater、Marp、Kanban、Tasks)については、 以下のObsidian プラグインをご覧ください。 ファイルシステム中心の 80 以上のツールだけで十分な場合は、読み飛ばしてください。

インストール後、通常のセッションは自然言語のプロンプト 3 つから始まります。 残りは wiki.* ツールと .claude スキルが処理します。

You:  "Set up a wiki in this vault."
LLM:  wiki.init  →  wiki/{Sources,Concepts,Entities}/ + index.md + log.md + wiki-schema.md

You:  "Ingest this: https://… (paper on Memex)"
LLM:  wiki.ingest  →  creates wiki/Sources/as-we-may-think.md + log entry
      returns proposedEdits:
        - insertAfterHeading  index.md#Sources
        - createStub          Concepts/memex.md
        - createStub          Entities/vannevar-bush.md
      LLM applies each via notes.*  (you see every write in the transcript)

You:  "What does the wiki say about memex vs hypertext?"
LLM:  wiki.query memex  →  top-ranked pages
      notes.read on each  →  cited synthesis
      offers to file the synthesis back via wiki.summaryMerge

You:  "Audit the wiki."
LLM:  wiki.lint  →  {orphans, brokenLinks, stale, missingPages, tagSingletons, indexMismatch}
      proposes concrete fixes; applies after you confirm

一連の流れ、フロントマターの契約、proposedEdits の設計については、 docs/wiki.mdをご覧ください。


使用例

同じ基本要素で、実際のさまざまなナレッジベースに対応できます。 以下に 3 つの具体例を示します。詳しい手順はdocs/examples.mdをご覧ください。

A. 個人用リサーチ Wiki
You: "Ingest this paper on in-context learning: <url or pasted markdown>"
LLM:  wiki.ingest title="In-Context Learning — A Survey" sourceType=paper
        tags=[icl, prompting] relatedConcepts=[In-Context Learning, Few-Shot Prompting]
        relatedEntities=[Brown 2020]
      → wiki/Sources/in-context-learning-a-survey.md
      → proposedEdits:
          • createStub  wiki/Concepts/in-context-learning.md
          • createStub  wiki/Concepts/few-shot-prompting.md
          • createStub  wiki/Entities/brown-2020.md
          • insertAfterHeading  wiki/index.md#Sources
      LLM applies each via notes.create / notes.edit (mode: "after-heading").
B. コードベースのアーキテクチャ決定記録(ADR)

各 ADR を Source、アーキテクチャパターンを Concepts、サービス/チーム/ライブラリを Entities としてモデル化します。 Wiki は、手作業で保守する必要のない相互リンク付きの ADR アーカイブになります。

You: "Record ADR-004: we're switching internal service comms from REST
      to gRPC. Context: <paste>"
LLM:  wiki.ingest title="ADR-004 — gRPC for internal service comms"
        sourceType=note tags=[adr, architecture, rpc]
        relatedConcepts=[gRPC, Service Mesh, Internal RPC]
        relatedEntities=[order-service, payment-service, inventory-service]
      → wiki/Sources/adr-004-grpc-for-internal-service-comms.md
      → proposedEdits:
          • createStub   wiki/Concepts/grpc.md
          • createStub   wiki/Concepts/service-mesh.md
          • insertAfterHeading  wiki/Entities/order-service.md#Notable Facts
          • insertAfterHeading  wiki/Entities/payment-service.md#Notable Facts
          • …

Three weeks later —
You: "Why did we pick gRPC for internal comms?"
LLM:  wiki.query "grpc internal comms"
      notes.read top matches
      → "Per [[wiki/Sources/adr-004-grpc-for-internal-service-comms.md|ADR-004]],
         chosen over REST because of native streaming + typed schemas; tradeoff
         accepted: browser clients still use REST via an edge gateway
         ([[wiki/Concepts/service-mesh.md]])."
C. コードベース Wiki(設計ドキュメント+事後分析+RFC)

エンジニアリングチームが Wiki を使わなくなるのは、誰も更新しないからです。LLM に任せましょう。設計ドキュメント、RFC、事後分析を Sources として取り込み、アーキテクチャパターンを Concepts、サービスやチームを Entities にします。

You: "We had an incident today — payment-service timeouts cascaded
      into order-service. Here's the post-mortem: <paste>"
LLM:  wiki.ingest title="Postmortem 2026-04-10 — Payment timeouts cascade"
        sourceType=other tags=[postmortem, incident, reliability]
        relatedConcepts=[Circuit Breaker, Cascade Failure, Timeout Budget]
        relatedEntities=[payment-service, order-service]
      → wiki/Sources/postmortem-2026-04-10-payment-timeouts-cascade.md
      → proposedEdits:
          • createStub  wiki/Concepts/circuit-breaker.md
          • createStub  wiki/Concepts/cascade-failure.md
          • insertAfterHeading  wiki/Entities/payment-service.md#Notable Facts
          • insertAfterHeading  wiki/Entities/order-service.md#Notable Facts

Periodic housekeeping —
You: "Audit the codebase wiki."
LLM:  wiki.lint
      → 3 orphan RFCs (unlinked from any Concept; link or archive?)
      → 1 broken link: [[wiki/Entities/legacy-auth-service.md]]
        (deprecated in Q1; remove the link from
         [[wiki/Sources/adr-002-session-migration.md]]?)
      → 4 post-mortems past the 180-day stale threshold — tag with
        "needs-review" or re-ingest with updated lessons-learned?
      → 2 tag singletons: `retry-logic` (merge into `retry-policy`?),
        `observability` (first use; keep).

エンジニアリングチームで効果を発揮する理由

  • proposedEdits の契約により、すべての相互参照の書き込みがトランスクリプトに表示されます。決定がどのサービスに影響するかについて LLM が幻覚しても、保管庫が気付かないうちに破損することはありません。
  • 検索しやすいログ形式(## [YYYY-MM-DD] ingest | ADR-004 …)により、grep '^## \[' wiki/log.md | tail -20 を「チームが最近決定したこと」を調べるクエリとして使えます。
  • wiki.lint は、何か月も前に廃止されたサービスへのリンク切れを検出します。人間がなかなか手を付けられない記録管理を任せられます。

アーキテクチャ

┌──────────────────────────────────────────────────────────────────────┐
│                           MCP Clients                                │
│   Claude Code · Claude Desktop · Cursor · VSCode · Antigravity · Zed │
│   JetBrains AI · Cline · Continue · ChatGPT · Smithery · …           │
└────────────────────────────┬─────────────────────────────────────────┘
                             │ JSON-RPC 2.0 · MCP 2025-11-25
         ┌───────────────────┴──────────────────────┐
         ▼                                          ▼
┌──────────────────┐                   ┌─────────────────────────┐
│ stdio transport  │                   │ Streamable HTTP (Hono)  │
│                  │                   │ + OPTIONS / CORS        │
│                  │                   │ + MCP-Protocol-Version  │
│                  │                   │ + Origin 403 / bearer   │
└────────┬─────────┘                   └────────┬────────────────┘
         │                                      │
         └──────────────────┬───────────────────┘
                            ▼
          ┌──────────────────────────────────┐
          │          McpServer               │
          │  ┌────────────┐ ┌─────────────┐  │
          │  │  90 Tools  │ │ 4 Resources │  │
          │  └────────────┘ └─────────────┘  │
          │  ┌────────────┐ ┌─────────────┐  │
          │  │ 3 Prompts  │ │ structured  │  │
          │  │            │ │   content   │  │
          │  └────────────┘ └─────────────┘  │
          └────────────┬─────────────────────┘
                       │
                       ▼
          ┌──────────────────────────────────┐
          │      Domain layer (pure)         │
          │  notes · links · tags · tasks    │
          │  dataview · canvas · kanban      │
          │  blocks · marp · templates       │
          │  wiki/ orchestration             │
          └──────┬─────────────────┬─────────┘
                 │                 │
                 ▼                 ▼
         ┌──────────────┐   ┌──────────────────────┐
         │  vault/ (FS) │   │ Obsidian Local REST  │
         │ authoritative│   │ API plugin (optional)│
         └──────────────┘   └──────────────────────┘

モジュールの全体図についてはdocs/architecture.mdをご覧ください。


LLM Wiki(60 秒)

ナレッジベースの維持管理で面倒なのは、読むことでも考えることでもなく、記録を整理することです。人間が Wiki を使わなくなるのは、保守の負担が価値を上回るためです。LLM は飽きません。

kObsidian はAndrej Karpathy の gistにあるLLM Wikiパターンを実装しています。これは LLM が維持する、継続的に蓄積されるナレッジベースです。保管庫は、Vannevar Bush が 1945 年に提唱した Memex のような、非公開でキュレーションされた知識基盤になります。相互参照、ログの記録、Lint は LLM に任せ、あなたはソースのキュレーションと質問に集中できます。

「クエリ時に生のドキュメントから情報を取得するだけでなく、LLM が永続的な Wiki を段階的に構築して維持します。構造化され、相互にリンクされた Markdown ファイルのコレクションが、あなたと生のソースの間に置かれます。」— Andrej Karpathy

              User drops a source
                      │
                      ▼
            ┌──────────────────────┐    proposedEdits
            │     wiki.ingest      │ ─────────────────────┐
            └──────────┬───────────┘                      │
                       │ creates 1 file                   ▼
                       │              ┌──────────────────────────────┐
                       ▼              │ LLM applies edits via        │
              wiki/Sources/           │  notes.edit (after-heading)  │
              <slug>.md               │  notes.edit (replace)        │
                       │              │  notes.create                │
                       │ appends      └──────────────────────────────┘
                       ▼
                 wiki/log.md

   Anytime: wiki.query   → top pages → notes.read → cited synthesis
   Periodic: wiki.lint   → orphans · broken · stale · missing · tag-drift
   Curate:   wiki.summaryMerge — add cited section to concept/entity page

保管庫内のデフォルトのレイアウト:

wiki/
├── Sources/           per-source summary pages
├── Concepts/          topic / idea pages (LLM-maintained)
├── Entities/          people / places / orgs / works
├── index.md           categorized catalog (wiki.indexRebuild)
├── log.md             greppable chronological log
└── wiki-schema.md     vault-local copy of the contract

重要な設計上の決定として、wiki.ingest は相互参照を無条件に書き換えることはありません。ファイルを 1 つだけ作成(Sources ページ)し、ファイルを 1 つ(log.md)に追記したうえで、エージェントが既存の notes.* ツールで適用する proposedEdits 配列を返します。すべての書き込みがトランスクリプトに表示されるため、LLM の幻覚は、気付かないうちに保管庫を破損させるのではなく、レビュー可能な編集として確認できます。

契約の詳細はdocs/wiki.mdをご覧ください。

Claude Code スキル

skills/にある 4 つのスキルは、自然言語に反応して起動します。 wiki-bootstrap、wiki-ingest、wiki-query、wiki-lint。~/.claude/skills/ にコピーするかシンボリックリンクを作成してください。詳しくは skills/README.mdをご覧ください。


ツール一覧

16 の名前空間にわたる 66 個の MCP ツール(v0.2.5 で約 90 個から 62 個に統合; v0.3.0 では複数の Vault をサポートする vault.* 名前空間が追加されました。全履歴については CHANGELOG を参照してください)。常に最新の一覧は docs/tool-inventory.json にあります。

名前空間数主な機能
vault.*4list · current · select · reset — 複数の Vault の検出とセッションの切り替え(v0.3.0)
notes.*8read(include によるコンテンツ/メタデータ/統計情報) · create(ノートまたはフォルダー) · edit(置換/追記/先頭への追加/見出しの後への追加/ブロックの後への追加) · frontmatter · delete · move · list · search
tags.*4modify(追加/削除/置換/統合) · search · analyze · list
links.*8バックリンク · 外部リンク · リンク切れ · 孤立ノート · ハブ · グラフ · 健全性 · 接続
stats.*1stats.vault(ノートごとの統計情報は notes.read に移動しました)
tasks.*5Tasks プラグイン形式(📅 ⏳ 🛫 ✅ 🔼 🔁)— 検索 · 作成 · 切り替え · updateMetadata · 統計情報
dataview.*7query と糖衣構文のラッパー(listByTag/listByFolder/table) · index · fields.read · fields.write
blocks.*3dataview、dataviewjs、mermaid に対応する統一フェンス付きブロック API(list/read/update)
marp.*2read(デッキ/スライド/個別スライド) · update(スライド/frontmatter)
kanban.*3parse · stats · card(追加/移動/切り替え)
canvas.*4create · parse · connections · edit(ノードの追加/エッジの追加/ノードの削除)
templates.*2list · use(エンジン × アクション)
workspace.*5Obsidian UI へのライブブリッジ(Local REST API プラグインが必要です)
commands.*2list(任意のクエリを指定可能) · execute
wiki.*7初期化 · 取り込み · ログ · インデックスの再構築 · クエリ · lint · summaryMerge
system.*1version

クライアントの安全性に関する注釈(MCP 2025-11-25):

ヒントツール数
readOnlyHint: true(クライアントが自動承認できます)47
destructiveHint: true(クライアントがより慎重に確認します)6
idempotentHint: true(安全に再試行できます)12
openWorldHint: true(Vault の外部にアクセスします)16

MCP リソース(URI で指定可能。ツール呼び出しなしで、どのクライアントからも参照できます):

kobsidian://wiki/index              wiki/index.md
kobsidian://wiki/log                wiki/log.md
kobsidian://wiki/schema             wiki/wiki-schema.md
kobsidian://wiki/page/{+path}       any Sources/Concepts/Entities page

MCP プロンプト(skills/ ファイルを利用しないクライアント向け): ingest-source、answer-from-wiki、health-check-wiki。

詳細は docs/tools.md を参照してください。


設定

環境変数デフォルト用途
OBSIDIAN_VAULT_PATH—必須。 Vault への絶対パスです。
OBSIDIAN_API_URLhttps://127.0.0.1:27124Obsidian Local REST API のベース URLです。workspace.* / commands.* / dataview.query* のみに使用されます。
OBSIDIAN_API_VERIFY_TLSfalseREST API の自己署名証明書を信頼している場合は、true に設定します。
OBSIDIAN_REST_API_KEY—REST API プラグイン用のベアラーキーです(使用する場合)。
KOBSIDIAN_HTTP_HOST127.0.0.1dev:http のバインド先ホストです。
KOBSIDIAN_HTTP_PORT3000dev:http のバインド先ポートです。
KOBSIDIAN_HTTP_BEARER_TOKEN—Streamable HTTP トランスポート用の任意のベアラーです。
KOBSIDIAN_ALLOWED_ORIGINShttp://localhost,http://127.0.0.1許可する CORS オリジンのカンマ区切りリストです。
KOBSIDIAN_WIKI_ROOTwikiVault 内の Wiki ディレクトリです。
KOBSIDIAN_WIKI_SOURCES_DIRSourcesソースごとの要約ページです。
KOBSIDIAN_WIKI_CONCEPTS_DIRConceptsトピック/アイデアのページです。
KOBSIDIAN_WIKI_ENTITIES_DIREntities人物/場所/組織/作品のページです。
KOBSIDIAN_WIKI_INDEX_FILEindex.mdWiki カタログのファイル名です。
KOBSIDIAN_WIKI_LOG_FILElog.mdWiki ログのファイル名です。
KOBSIDIAN_WIKI_SCHEMA_FILEwiki-schema.mdシードスキーマのファイル名です。
KOBSIDIAN_WIKI_STALE_DAYS180wiki.lint の古いページのしきい値です。
KOBSIDIAN_WIKI_INDEX_SOURCES_HEADINGSourcesソースを一覧表示する index.md のセクションです。wiki.ingest はその下に新しい項目を追加します。
KOBSIDIAN_WIKI_INDEX_CONCEPTS_HEADINGConceptsコンセプトを一覧表示する index.md のセクションです。
KOBSIDIAN_WIKI_INDEX_ENTITIES_HEADINGEntitiesエンティティを一覧表示する index.md のセクションです。
KOBSIDIAN_WIKI_CONCEPT_PAGE_HEADINGDiscussionwiki.ingest の引用や wiki.summaryMerge のセクションを追加するコンセプトページの見出しです。
KOBSIDIAN_WIKI_ENTITY_PAGE_HEADINGNotable Factswiki.ingest の引用や wiki.summaryMerge のセクションを追加するエンティティページの見出しです。
KOBSIDIAN_VAULT_CONFIG_FILE.kobsidian.jsonVault ルートからの相対パスで指定する、Vault ごとの設定ファイルのパスです(下記参照)。

すべての Wiki ツールでは、呼び出しごとに wikiRoot を上書きできます。また、wiki.ingest では、ページの見出しがローカライズされている Vault(例:## Fontes)向けに、呼び出しごとの indexHeading / conceptHeading / entityHeading の上書きが可能です。ページに対象の見出しがない場合、提案は append に切り替わるため、notes.edit で適用できます。

Vault ごとの設定ファイル

ローカライズされた Wiki のフォルダー名、ファイル名、セクション見出しなど、サーバーではなく個々の Vault に属する設定は、Vault ルートにある .kobsidian.json に記述します。すべてのキーは省略可能で、対応する環境変数より優先されます。呼び出しごとのツール引数は、その両方より優先されます (呼び出しごと → .kobsidian.json → 環境変数 → デフォルト)。

{
  "$schema": "https://raw.githubusercontent.com/bezata/kObsidian/main/docs/kobsidian.config.schema.json",
  "wiki": {
    "root": "wiki",
    "sourcesDir": "Fontes",
    "staleDays": 90,
    "headings": {
      "indexSources": "Fontes",
      "indexConcepts": "Conceitos",
      "indexEntities": "Entidades",
      "conceptPage": "Discussão",
      "entityPage": "Fatos Notáveis"
    }
  }
}

不明なキーや不正な JSON は、エラーにファイルパスを含めて拒否されるため、入力ミスをすぐに確認できます。vault.current は、有効な設定を config の下に返します(またはエラーを返します)。


ドキュメント

ローカライズされたドキュメントは、簡体字中国語、 日本語、および **韓国語**で利用できます。

architecture.md技術スタック、モジュール構成、レイヤリングルール
wiki.mdLLM-Wiki の仕様、ループ、フロントマター、Lint カテゴリー
examples.md個人研究 Wiki・エンジニアリング ADR・コードベース Wiki — エンドツーエンド
tools.md名前空間の表、注釈、リソース、プロンプト
SECURITY.mdオリジン/CORS、VirusTotal スキャン、環境変数の管理
TESTING.mdbun run … コマンドとカバレッジ
ENVIRONMENT.mdデフォルト値を含むすべての環境変数
MIGRATION.mdアップグレードに関する注意事項

ロードマップ

次の2つのマイルストーンは、TODO.mdで管理されています。

  • v0.4 — Obsidian LiveSync ブリッジ。 コミュニティ製プラグイン Self-Hosted LiveSync (CouchDB / S3 / R2 / WebRTC ピア)を介して、無料でエンドツーエンド暗号化された Vault にアクセスできます。これにより、Obsidian 自体が起動していなくても、 MCP クライアントからユーザーが所有する任意のマシン上の同じ Obsidian Vault に アクセスできます。
  • v0.5 — Vault のセマンティクス横断検証。 2つ以上の LiveSync ペアリング済み Vault を Wiki レイヤーで照合する wiki.crossCheck ツールを追加します。互換性の契約としてプロジェクトのセマンティックバージョニング の方針に従う、新しい schema_version フロントマター項目によって制御されます。

TODO.mdには、背景、各マイルストーンのタスクの内訳、項目をそこからCHANGELOGへ 移す際のルールが記載されています。


開発

bun install
bun run typecheck
bun run lint
bun run test          # 56 tests across 14 files
bun run build         # node-target stdio.js + bun-target http.js
bun run inventory     # regenerate docs/tool-inventory.json

プロジェクトの規約については、AGENTS.mdを参照してください。


セキュリティとサプライチェーン

  • すべての.mcpbリリースアセットはVirusTotalでスキャンされます。 Release ワークフローは、リリースの公開直後に crazy-max/ghaction-virustotal@v4 を介して、各kobsidian-<platform>.mcpbバンドルを VirusTotalにアップロードし、分析リンクをリリース本文に 追記します。GitHubリリースからインストールするユーザーは、実行する 前に、自分のプラットフォーム用バンドルの公開VirusTotalレポートを開いて確認できます。 メンテナーを信頼する必要はありません。

  • トランスポートの強化。 Streamable HTTPはOriginを許可リストと照合して検証し (不一致の場合は403)、CORSプリフライト(OPTIONS /mcp → 204 + Access-Control-*) を実装し、MCP-Protocol-Versionを必須とするか既定値を設定し、 KOBSIDIAN_HTTP_BEARER_TOKENによるオプションのベアラー認証をサポートします。 stdioにはネットワークに接する部分がありません。

  • SDKの最低バージョンを固定。 @modelcontextprotocol/sdk@^1.26.0 — GHSA-345p-7cg4-v4c7(クライアント間のレスポンス漏えい)と CVE-2026-0621(UriTemplateのReDoS)を軽減します。このリポジトリでは 1.30.0に固定しています。

  • npm Trusted Publishing。 リポジトリには長期有効なNPM_TOKENを保存していません。 GitHub Actionsはタグがプッシュされるたびに有効期間の短いOIDCトークンを発行し、 npm CLIはこれを、この正確なワークフローファイル(bezata/kObsidianリポジトリの .github/workflows/release.yml)にスコープされた1回限りの公開トークンと交換します。 プロベナンス証明は自動的に付与されます。公開された各バージョンには、 そのバージョンを生成した正確なActionsの実行を示す、暗号学的に関連付けられた ビルド証明が付属します。フォーク、別のブランチ、または変更されたワークフローファイルからは 公開できません。OIDCのオーディエンスクレームが一致しないためです。

詳細はdocs/SECURITY.mdを参照してください。


互換性に関する注意事項

  • プロトコルバージョン — 2025-11-25(現行のMCP仕様)。MCP-Protocol-Versionを 指定しないHTTPクライアントは、仕様に従って2025-03-26にフォールバックします。 明示的に指定された未対応バージョンには400を返します。
  • Dataviewの分割 — オフラインツールは、フロントマター/インライン/リスト/ タスク/フェンス付きdataview/フェンス付きdataviewjsブロックをインデックス化します。 実行時のDQLはLocal REST APIを介してObsidian + Dataviewに委任されます。 DataviewJSはソースを保持しますが、このサーバー内では実行されません。
  • Mermaid + Marp — ソースを保持した解析/編集のみです。レンダリングは クライアント側で行います。
  • SDKの最低バージョン — @modelcontextprotocol/sdk@^1.26.0(GHSA-345p-7cg4-v4c7 クライアント間のレスポンス漏えいとCVE-2026-0621 UriTemplateのReDoSを軽減します)。 このリポジトリでは1.30.0に固定しています。

謝辞

  • LLM Wiki のパターン — Andrej Karpathy 氏の gist。 kObsidian は、このアイデアを具体化した、ファイルシステムを優先する TypeScript 実装の 1 つです。
  • Memex — Vannevar Bush 氏、As We May Think, 1945。 関連づけによる経路の概念は、この wiki の相互参照グラフが目指すものです。
  • Model Context Protocol — Anthropic + Agentic AI Foundation。
  • Obsidian — obsidian.md。Vault の形式が正式な仕様であり、kObsidian はそれを尊重し、移行しません。

ライセンス

MIT — LICENSE をご覧ください。貢献を歓迎します。重要な変更については、まず issue を作成してください。

コメント

MCP は初めてですか?

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

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