以前、Claudeと小説執筆に関する壁打ちをする際に、Obsidianの保管庫にある原稿にClaudeからアクセスしてもらい、会話をする方法を書きました。当該原稿の場所や名前を指定するだけで、Claudeが勝手に見に行って、読んで、議論ができるのでとても便利です。
ただ、ひとつ問題が残っていました。原稿のレビューやファクトチェック、様々な情報をClaudeとはやりとりしますが、それを一過性のものではなく、再活用可能な非構造化データベースとして利用したいという思惑があります。以前の設定では、議論した内容をいちいち手動でログとして残さなければなりませんでした。以前紹介したプラグインは、書庫に対して読み取ることはできても書き込みができないのです。
その後ネットを調べたり、それこそClaudeに調べてもらった結果、別のMCPサーバーを使うと、Claudeが書庫に書き込むことができることが分かりました。今回わたしが使ったのは、MarkusPfundstein / mcp-obsidian になります(尚、以前使ったmcp-obsidianプラグインは削除しました)。
その手順をこちらでまとめておきます。この手順は、正直かなり技術的なものになりますが、なるべく、分かりやすいように書いてみます。
今回の目的は、mcp-obsidian(ClaudeとObsidianをつなぐプログラム)を使えるようにすることです。このツールを使うためには、下記の手順が必要となります。
- mcp-obsidianをインストールする
- gitを使えるようにする
- gitからmcp-obsidianをダウンロードしてインストール
- mcp-obsidianを使えるようにする
- uvのインストール
- MCP環境を構築
- Obsidianでの作業
- MCPサーバー側の作業
- Claudeでの作業
今回登場するツールとその役割を建築に例えて書いてみましょう。
- Git = 設計図を管理する仕組み(建築会社が図面をやり取りするシステム)
- Python = 電気系統(家の中で様々な機能を動かす基盤)
- uv = 電気工事士の道具箱(Pythonという電気系統を管理・設置するための専用ツール)
- Obsidian = 実際の書斎(メモを書く場所)
- Claude = 執事(書斎で作業をしてくれるAI)
- MCP = 執事と書斎をつなぐインターホン(ClaudeとObsidianの通信システム)
まず、Gitは、昨日の投稿にも書きましたが、ソースコードのバージョンを管理するツールです。mcp-obsidianがGit上でソースコードを管理されているため、そこからダウンロードして使うのです。 → 上記1にあたります
次に、MCPというClaudeとObsidianをつなぐ仕組みは、Pythonというプログラム言語で作成されているために、Pythonを管理するパッケージであるuvというツールもインストールする必要があります。 → 上記2にあたります
ここまでは準備です、上記3が本番、mcp-obsidianを使える環境を構築します。3つのステップに分かれていて、1つはObsidianでREST APIを使えるプラグインを導入します。これは、ClaudeとObsidianが通信する取り決めがREST APIに準拠しているからです。REST APIとは、インターネット上でアプリケーション同士がデータをやり取りするための仕組み(電話の共通ルールのようなもの)です。2つめは、MCPサーバー側、つまりmcp-obsidianを設定します。3つめは、Claudeでの設定です。
1.mcp-obsidianをインストールする
gitを使えるようにする
昨日の投稿でも触れましたとおり、わたしはHomebrewを使っています。
brew install git
gitからmcp-obsidianをダウンロードしてインストール
正確に言うと、gitにあるプログラムをクローン(コピーしてもってくる)します。
cd ~
git clone https://github.com/MarkusPfundstein/mcp-obsidian.git
2.mcp-obsidianを使えるようにする
uvのインストール
上記の通り、uvとはmcp-obusidianというPythonというプログラム言語で実装された仕組を管理するために必要です。
sudo curl -LsSf https://astral.sh/uv/install.sh | sh
3.MCP環境を構築
Obsidianでの作業
他のプラグインと同じです。設定画面からコミュニティプラグインを検索し、Local REST APIプラグインをインストールします。
Local REST APIプラグインの設定画面からREST APIキーを取得します(コピーしてメモ帳に貼り付けておきます)
MCPサーバー側の作業
ターミナルで、クローンしてきたリポジトリ「mcp-obsidian」に移動します。
cd ~/mcp-obsidian
リポジトリの場所を取得します。
pwd
この値は、後で使用しますので、メモ帳などに保管しておいてください。
次に、リポジトリ内で、「.env」という名前のファイルを作成・編集します。
vi .env
このファイルに下記を書き込みます。
OBSIDIAN_API_KEY={Local REST APIキー}
Claudeでの作業
Claudeアプリの設定から「Developer(開発者)」メニューを選びます。出てきた画面で、「Edit Config(設定を編集)」というボタンがあるので、クリックします。
すると、Finderで「claude_desktop_config.json」というファイルが選択された状態で表示されます。このファイルを好きなエディタで開いてください。ファイルの内容は、初期値では大して書かれていませんが、下記の内容に上書きしてください。
{
"mcpServers": {
"mcp-obsidian": {
"command": "1",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "2",
"OBSIDIAN_HOST": "3"
}
}
}
}
ダブルクオーテーション内の数字のところは、下記の値を入れます。
- ターミナルで、
which uvx
を実行したときに出てくるパス - 先ほど取得したLocal REST APIのキー
pwd
コマンドの実行結果
ちなみに、JSONとは、プログラム間でデータを交換するためのテキスト形式(設定内容を整理して書くための決まった書き方)のことです。HTMLなどと同じですね。
編集が終わったら、保存して、Claudeアプリを一度終了します。 再度起動して、Claudeデスクトップのチャットを入力する部分の下にある「検索とツール」をクリックします。ここに mcp-obsidian と表示されていれば、設定は完了です。
ここまでくれば、ClaudeはObsidian保管庫を認識できるようになっています。しかも、参照したり、検索するだけでなく、書き込むことも出来るようになります。ですので、例えば原稿についてClaudeと議論した後に、下記のように書いてみます。
今回の検討内容のログを私のObsidianボルトの下にある対話ログテンプレートに従って作成してください。作成したログは 小説/作品名/Claude対話ログ の下に出力してください。
そうすると、下記のようにClaudeから返ってきます。
対話ログを作成いたしました。テンプレートに従って、今回の検討内容を整理し、
小説/作品名/Claude対話ログ/プロット検討_20250816.md
として保存いたしました。検討した内容のポイント、採用決定事項、今後の課題なども含めて記録しておきましたので、原稿の修正作業や今後の執筆の参考にお使いください。
いちいち原稿の場所や、ログの場所を指示するのが面倒であれば、Claudeのプロジェクト機能を使うとよいです。プロジェクトの手順に下記の内容を加えておくと、指定しなくてもClaudeがその場所を見つけてくれます。
小説のレビューの際は、私のObsidian Vaultsの下にある 小説/作品 を参照するようにしてください。会話の最後に「セッションを終わります」と書いたら、会話のログを テンプレート/対話ログテンプレート.md に従って作成し、小説/作品名/Claude対話ログ に保存してください。
すごくないですか。対話ログテンプレートもClaudeが考えてくれたものを使っていますが、きれいに整形してまとめてくれています。これで、もともとやりたかった、二つのこと、つまり、一つは、自動的にエディタ(今回の場合はObsidian)とClaudeを連携させたいということ、もう一つは、Claudeとの会話のログを作品のディレクトリの下にまとめておきたい、ということが完璧に実現できるようになりました。
コメント