プログラミング
記事内に商品プロモーションを含む場合があります

Obsidian を MCP で opencode から操作する完全ガイド

Aru

本記事では、Obsidian を MCP(Model Context Protocol) 経由で opencode から操作する方法をステップバイステップで解説します。Obsidian側に導入するプラグインは”REST and MCP server”です。これを使うことで、Obsidianをopencodeの永続メモリとして利用することができます。

はじめに

この記事では、ObsidianをopencodeからMCP経由で読み書きする方法を解説します。Claude Codeなどとの連携の記事は多かったのですが、opencodeとの連携は少なかったので自分で調べてまとめています。参考になれば、幸いです。ちなみに、Obsidian を opencode の外部記憶として接続すれば、以下のような運用が可能になります。

  • セッションの内容を記録しておき、他のセッションから参照する
  • 調査結果を自動的にノートとして保存し、後から検索する

つまり、Obsidianを「外部記憶」として利用することができるようになります。この接続を実現するのが MCP(Model Context Protocol) です。MCP は AI エージェントが外部ツールやデータソースと通信するための標準プロトコルで、opencode はこれをネイティブサポートしています。

この構成により、opencode の 揮発性の内部コンテキスト と、Obsidian の 永続的な外部記憶 が連携し、セッションをまたいだ知識の蓄積・再利用が可能になります。

以下連携手順を解説したいと思います。

Obsidian とは

Obsidian はローカルの Markdown ファイルをベースにした知識管理アプリです。ノートはすべてプレーンテキストの .md ファイル として保存され、特別なデータベースやクラウドに依存しません。個人的には、「通常ファイル」で管理されているという部分がポイントが高いです。このおかげでアプリを使わなくなっても「メモ」は残ります

主な特徴

  • 内部リンク(Wikilink)
    [[別のノート名]] と書くだけでノート間リンクが張れ、グラフビューで可視化できる
  • タグ
    #obsidian のようにインラインでタグ付けし検索可能
  • プロパティ(Frontmatter)
    ノートの先頭に YAML 形式でメタデータを付与し、フィルタや検索に活用できる
  • コミュニティプラグイン
    多種多様なプラグインが公開されておりカスタマイズできる

Vault とは

Obsidian ではノートの集合を Vault と呼びます。Vault はただのフォルダであり、その中に置かれた Markdown ファイルがすべてノートとして扱われます。Vault を開くと、そのフォルダ内のファイルが Obsidian 上に表示され、相互リンク・タグ・検索などの機能が使えるようになります。

なぜ外部記憶に適しているか

Obsidian が opencode の外部記憶として有用な理由は、markdownであること です。markdownは AI からの読み書きが容易な形式であり、Git 管理や diff による変更追跡とも相性が良く、他のツールとの連携にも柔軟に対応できます。

opencode とは

opencode は CLI(コマンドライン)で動作する AI エージェントです。ターミナル上で自然言語で指示を出すと、コードの生成・編集・ファイル操作・検索などを自律的に実行します。

Claude Code, Codex CLIなどと似たアプリですが、こちらはオープンソース(OSS)で、接続先(利用するAIの選択)の自由度が高いです。

主な特徴

  • エージェント型
    単なるチャット補完ではなく、ツール呼び出し・リトライ・ストリーミング・マルチターンチェーンを自律的に行う
  • MCP ネイティブ対応
    外部ツールとの連携プロトコルである MCP を標準サポートしており、Obsidian をはじめ様々なサービスと接続できる

なぜ Obsidian と組み合わせるのか

opencode には長期記憶のためのプラグインやスキルが多数存在します(memory plugin、oh-my-openagent の memory 機能、custom skills 等)。これらも有力な選択肢ですが、すでに Obsidian を日常的に使っているなら、それをそのまま外部記憶として流用できる のが本構成の強みです。学習コストが最小限で済み、ノート資産の管理基盤も統一されます。

個人的には作業記録などを一元管理できる点に魅力を感じます

セットアップ手順

Step 1: プラグインのインストールと設定

  1. Obsidian のPreferences… → コミュニティプラグイン → 閲覧 を開く
  2. 「Rest and MCP Server」を検索してインストール
  3. プラグインを有効化
  4. 「コマンドラインインタフェース」 を ON にする
  5. Obsidian アプリを再起動
❶ プラグインの閲覧を開く
❷❸ プラグインをインストールして有効化する
❹コマンドラインインタフェース(最下部)をON

CLI 機能の有効化は Obsidian の再起動が必要です。忘れずに行ってください

Step 2: opencode の設定

.opencode/opencode.json(あるいは、opencode.jsonc)に以下の MCP サーバ設定を追加します:

{
  "mcp": {
    "obsidian": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mcp-remote",
        "http://127.0.0.1:27124/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "environment": {
        "AUTH_HEADER": "Bearer <your-auth-token>"
      },
      "enabled": true
    }
  }
}

<your-auth-token> はプラグイン設定画面で確認できる認証トークンに置き換えます。認証トークンはObsidianの設定画面のREST and MCP serverの設定(歯車)マークをクリックする表示されてる項目にあるAPI keyです。これをコピーして貼り付けます。

ポート番号も、この設定画面にありますので、そこの値と合わせてください。デフォルトのポート番号は 27124 でしたので特に変更しなければこの値でOKだと思います。

認証トークンは機密情報です。例では、直接書き込んでいますが、設定ファイルに直書きせず、環境変数で管理することを推奨します

# macOS / Linux / WSL
export AUTH_HEADER="Bearer xxxxx"

GitHub などで管理せずローカルのみで保存するなら直書きでも実用上問題はありません。ただし public リポジトリに公開する場合は認証トークンが含まれないよう注意 が必要です。.opencode/ ごと .gitignore に追加するか、環境変数経由の設定にしておけば安全です。

Step 3: 接続確認

opencode を起動し、Obsidian の vault が認識されているか確認します

/mcps

/mcps コマンドで MCP サーバ一覧が表示され、obsidian が含まれていれば接続成功です。

また、以下のように自然言語で指示して動作確認もできます:

Obsidian のバージョンを確認して

vault 内のファイル一覧を表示して

opencodeからの操作の詳細

ノートの読み取り

[[プロジェクト計画]] を読んで

特定のノート名を指定して内容を取得できます。曖昧な名前でも、opencode が vault 内を検索して最適なものを選びます。

ノートの作成・編集

MTG 議事録 2026-07-29 というノートを作成して。
テンプレートは daily を使って。

テンプレートエンジンと連携すれば、定型フォーマットのノートを即座に生成できます。

高度な検索

#todo と #urgent の両方のタグを持つノートを検索して、
期限が今日のものだけリストアップして

タグ・プロパティ・ファイル名を組み合わせた複合検索も自然言語で指示できます。

実用的なユースケース

ここでは、Obsidian を opencode の 外部記憶 として活用する具体的なシナリオを紹介します。共通するテーマは「セッションをまたいでも知識が失われない」ことです。

セッション間のコンテキスト引継ぎ

opencode はセッションを終了するとコンテキストが全て消えますが、Obsidian に書き出しておけば次回以降も参照できます。

前回のセッションで決めたAPIの設計方針を
「設計判断ログ」から読み出して。

完了したタスクとその実装方法を
「2026-07-29_実装ログ」として保存して。

調査・試行錯誤の記録

opencode に調べさせた内容や試行錯誤の過程を、そのままナレッジとして蓄積できます。

ここまでの調査結果を
「技術調査」にまとめて保存して。

このエラーの原因と解決手順を
「トラブルシューティング」ノートに追記して。

設計判断の蓄積

コード生成の過程で行った設計判断とその理由を記録し、後から振り返れるようにします。

ここまでの議論をもとに、判断基準をノートに追記して

デイリーノートの運用

毎朝のルーティンを自動化

今日のデイリーノートを作成して。
前日のデイリーノートの「未完了タスク」セクションをコピーし、
「本日の予定」は空欄で作成して。

未完了になっているタスクをデイリーノートから調べて

プロジェクト管理

projects/ 以下の全タスクを収集し、
優先度順に並べた「全体タスク一覧」ノートを作成して。
各タスクには元のノートへのリンクを付けて。

ナレッジベースのメンテナンス

#untagged のノートをリストアップし、内容を分析して適切なタグを提案して。
承認するまで実際の変更はしないで。

注意点

便利ですが、一点だけ注意事項があります。それは、Obsidian を閉じると使えない
ということです。これは、MCP サーバは Obsidian プロセス内で動作するためで、アプリが立ち上がっていないと接続できなくなるからです。

まとめ

私自身、opencodeの永続メモリとして、プラグインやスキルをいくつか利用してきましたが、結局Chatフォルダなどにmarkdown形式でメモさせておく方法を使っていました。この方法だと、複数のプロジェクトを横断してメモをみたい時など、各フォルダを参照しなければならず面倒でした。特にopencodeに他プロジェクトのフォルダを参照させるのはちょっと抵抗がありました。

Obsidianを使うと、メモだけ共通して参照することができ、また、GUI経由で内容を検索、確認することができかなり便利になりました。永続メモリの選択肢の1つとしてObsidianは魅力的だと感じます。

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
ある/Aru
ある/Aru
IT&機械学習エンジニア/ファイナンシャルプランナー(CFP®)
専門分野は並列処理・画像処理・機械学習・ディープラーニング。プログラミング言語はC, C++, Go, Pythonを中心として色々利用。現在は、Kaggle, 競プロなどをしながら悠々自適に活動中 保有資格:CFP, マンション管理士、管理業務主任、宅建士など
記事URLをコピーしました