ClaudeでObsidianのファイルを直接操作できるようになった話
TL;DR
Claude DesktopでMCP(Model Context Protocol)を設定すると、ClaudeがObsidianのファイルを直接読み書きできるようになります。これが思った以上に便利だったので、設定方法と使い方をまとめました。
MCPって何?
Claudeが外部のファイルやツールと連携するための仕組みです。今まではClaudeにファイルの内容をコピペしないといけませんでしたが、MCPを使うとClaudeが直接ファイルにアクセスできます。
何ができるようになるの?
複数ファイルを一気に作成
「新しいプロジェクトのノート構成を作って」
→ 関連する複数のmdファイルが一度に作成される
実際にこんな感じでプロジェクトフォルダが作られます:
project_name/
├── README.md
├── 進捗管理.md
├── アイデアメモ.md
└── 参考資料.md
既存ノートの一括編集
- 複数ファイルのタグを一括で追加・修正
- リンク構造の整理
- ファイル名の一括変更
検索&分析
- 「このテーマに関連するノートを全部探して」
- 「重複してる内容のファイルない?」
- 「このプロジェクトの進捗まとめて」
設定手順
1. 必要なもの
- Claude Desktop(無料版でもOK)
- Obsidian
- Node.js(npxコマンドを使用するため)
2. バックアップを取る(重要!)
設定前に必ずObsidianフォルダのバックアップを取りましょう:
# PowerShellを開いて実行
Copy-Item -Path "$env:USERPROFILE\Documents\Obsidian" -Destination "$env:USERPROFILE\Documents\Obsidian_Backup_$(Get-Date -Format 'yyyyMMdd')" -Recurse -ErrorAction SilentlyContinue
echo "バックアップを作成しました"
3. Obsidianのフォルダ構造を理解する(重要なTips!)
Obsidianは「ボルト名」と「フォルダ名」が同じになる特殊な構造があります。
C:\Users\[ユーザー名]\Documents\Obsidian\
├── ボルト名A\ ← これがボルト(格納庫)
│ └── ボルト名A\ ← 実際のファイルはここ!
│ ├── ファイル1.md
│ └── フォルダ1\
├── ボルト名B\
│ └── ボルト名B\
│ └── ファイル2.md
例えば「MCP連携」というボルトの場合:
C:\Users\[ユーザー名]\Documents\Obsidian\MCP連携\MCP連携\
重要:
- 上位の「MCP連携」フォルダ → ボルトの外枠
- 下位の「MCP連携」フォルダ → 実際のファイルが入る場所
MCPで指定するパスは上位フォルダ(C:\Users\[ユーザー名]\Documents\Obsidian
)で大丈夫です。Claudeが自動的に適切な場所にファイルを作成してくれます。
4. PowerShellでObsidianの構造を確認
# PowerShellで自分のObsidianの構造を確認
echo "=== Obsidianフォルダ構造確認 ==="
echo "メインフォルダ: $env:USERPROFILE\Documents\Obsidian"
if (Test-Path "$env:USERPROFILE\Documents\Obsidian") {
echo "✅ Obsidianフォルダが見つかりました"
# ボルト一覧を表示
echo "\n=== 利用可能なボルト一覧 ==="
Get-ChildItem -Path "$env:USERPROFILE\Documents\Obsidian" -Directory | ForEach-Object {
$vaultName = $_.Name
$innerVaultPath = "$($_.FullName)\$vaultName"
if (Test-Path $innerVaultPath) {
echo "ボルト: $vaultName (二重フォルダ構造 ✅)"
echo " → ファイル実体: $innerVaultPath"
} else {
echo "ボルト: $vaultName (通常フォルダ)"
}
}
} else {
echo "⚠️ 標準的な場所にObsidianフォルダがありません"
echo "以下で探してみてください:"
Get-ChildItem -Path $env:USERPROFILE -Recurse -Directory -Name "Obsidian" -ErrorAction SilentlyContinue | ForEach-Object {
echo "見つかったObsidianフォルダ: $env:USERPROFILE\$_"
}
}
5. 設定ファイルを自動作成
# 設定ディレクトリの確認・作成
if (!(Test-Path "$env:APPDATA\Claude")) {
New-Item -ItemType Directory -Path "$env:APPDATA\Claude"
echo "Claudeの設定ディレクトリを作成しました"
}
# 自分のユーザー名を自動取得
$username = $env:USERNAME
echo "ユーザー名: $username"
# 設定ファイルの内容を作成(ユーザー名を自動で埋め込み)
$configContent = @"
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "C:\\Users\\$username\\Documents\\Obsidian"]
}
}
}
"@
# 設定ファイルに書き込み
$configContent | Out-File -FilePath "$env:APPDATA\Claude\claude_desktop_config.json" -Encoding UTF8
echo "設定ファイルを作成しました: $env:APPDATA\Claude\claude_desktop_config.json"
# 作成した設定の確認
echo "=== 作成された設定内容 ==="
Get-Content "$env:APPDATA\Claude\claude_desktop_config.json"
6. Node.jsの確認
# Node.jsがインストールされているか確認
try {
$nodeVersion = node --version
$npxVersion = npx --version
echo "Node.js: $nodeVersion"
echo "npx: $npxVersion"
echo "Node.jsは正常にインストールされています"
} catch {
echo "Node.jsがインストールされていません"
echo "https://nodejs.org/ からインストールしてください"
}
7. Claude Desktop再起動
-
Claude Desktopを完全に終了
# 念のため、Claude Desktopプロセスを強制終了 Get-Process -Name "Claude" -ErrorAction SilentlyContinue | Stop-Process -Force echo "Claude Desktopプロセスを終了しました"
-
Claude Desktopを再起動
-
左下にMCPサーバーのアイコン(ハンマーのようなマーク)が表示されれば成功!
動作確認
設定完了後、以下で動作確認してみましょう:
- Claude Desktopで「私のObsidianフォルダに何がある?」と聞いてみる
- 「テストフォルダを作って、簡単なメモ.mdを作成して」と頼んでみる
- Obsidianでファイルが作られているか確認
実際の使用例とコツ
Claudeがファイルを作る場所のルール
Claudeは以下のルールでファイルを作成します:
-
ボルト指定がある場合:そのボルト内に作成
「『MCP連携』ボルトに新しいフォルダ作って」 → C:\Users\[ユーザー名]\Documents\Obsidian\MCP連携\MCP連携\ に作成
-
ボルト未指定の場合:自動で適切なボルトを選択
「新しいプロジェクトフォルダ作って」 → 何らかのボルトに自動で作成
こんな指示でファイルが作られる
「Qiita記事の草案を新規フォルダ作って書いてみて」
→ フォルダ作成、記事本文、管理用ファイルが一度に作られる
「このプロジェクト関連のファイルを全部読んで、進捗サマリー作って」
→ 関連ファイルを自動で探して、内容を理解してサマリー作成
時短効果がすごい
- プロジェクト初期化: 30分 → 3分
- 関連ノート作成: 15分 → 2分
- ファイル構造整理: 45分 → 5分
できるようになったこと
- 複数ファイルの同時作成・編集
- ファイル名やパスを覚えなくても内容で検索
- プロジェクト全体の構造を一瞬で把握
- タグやリンクの一括管理
トラブルシューティング
MCPサーバーのアイコンが表示されない
-
JSON構文エラーのチェック
# JSONファイルが正しいかチェック try { Get-Content "$env:APPDATA\Claude\claude_desktop_config.json" | ConvertFrom-Json | Out-Null echo "✅ JSON構文は正しいです" } catch { echo "❌ JSON構文エラー: $_" echo "設定ファイルを再作成してください" }
-
Node.jsの確認
if (Get-Command node -ErrorAction SilentlyContinue) { echo "✅ Node.js は利用可能です" } else { echo "❌ Node.js がインストールされていません" echo "https://nodejs.org/ からインストールしてください" }
-
Claude Desktopの完全再起動
# タスクマネージャーでもClaude関連プロセスがないか確認 Get-Process | Where-Object {$_.ProcessName -like "*Claude*"}
「Obsidianのファイルにアクセスできません」と言われる
-
Obsidianフォルダの実際の場所を探す
# より詳細にObsidianフォルダを探す echo "=== Obsidianフォルダを探しています ===" $found = Get-ChildItem -Path $env:USERPROFILE -Recurse -Directory -Name "*obsidian*" -ErrorAction SilentlyContinue if ($found) { echo "見つかったObsidian関連フォルダ:" $found } else { echo "Obsidianフォルダが見つかりません" }
-
正しいパスで設定ファイル更新
# 例:D:\MyVaultが正しいパスの場合 $correctPath = "D:\\MyVault" # ここを実際のパスに変更 $configContent = @" { "mcpServers": { "obsidian": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "$correctPath"] } } } "@ $configContent | Out-File -FilePath "$env:APPDATA\Claude\claude_desktop_config.json" -Encoding UTF8 echo "設定ファイルを更新しました"
ファイル作成はできるけどObsidianに表示されない
- Obsidianを再起動してみてください
- ファイルエクスプローラーで手動リフレッシュ(F5)してみてください
- Obsidianの設定で「ファイルとリンク」→「削除されたファイルを検出」を有効にしてください
注意点とセキュリティ
アクセス範囲
- 指定したフォルダ内のファイルにしかアクセスできません
- 機密情報がある場合は、専用フォルダを作って分離することをおすすめします
定期的なバックアップ
# 週次バックアップのスクリプト例
$backupPath = "$env:USERPROFILE\Documents\Obsidian_Backup_$(Get-Date -Format 'yyyyMMdd_HHmm')"
Copy-Item -Path "$env:USERPROFILE\Documents\Obsidian" -Destination $backupPath -Recurse
echo "バックアップ完了: $backupPath"
まとめ
MCP連携でClaudeがObsidianのファイルを直接操作できるようになると、ノート作成・管理の効率が劇的に向上します。特に:
- 複数ファイルの一括処理が楽になる
- プロジェクト管理が自動化される
- 情報の整理・検索が高速化される
PowerShellを使った設定手順により、ユーザー名の自動取得やエラーチェックも含めて、より確実に設定できるようになります。
設定は少し手間ですが、一度設定してしまえば毎日の作業が大幅に楽になります。Obsidianユーザーの方はぜひ試してみてください!
参考リンク
タグ
#Obsidian #Claude #MCP #生産性向上 #ノート術 #PowerShell