こんにちは フリューのピクトリンク開発をしているあわたです。
フリュー – Qiita Advent Calendar 2025 – Qiita6日目の記事になります。
Obsidianと生成AI(Kiro CLI/旧Amazon Q cli)を連携させて、自然言語でメモを作成・管理できる環境を構築してます。この記事では、Obsidianのデイリーノート設定、MCPサーバ設定、Kiro CLIの設定、そしてUnisonによるバックアップまでの全体構成を解説します。
構成概要
┌─────────────────┐
│ Kiro CLI │ ← 生成AIインターフェース
│ (AWS Bedrock) │
└────────┬────────┘
│ MCP Protocol
↓
┌─────────────────┐
│ MCP Servers │
│ - Obsidian │ ← ノート操作
│ - Joplin │
└────────┬────────┘
│
↓
┌─────────────────┐
│ Obsidian │ ← ローカルVault
│ + Plugins │
└────────┬────────┘
│
↓
┌─────────────────┐
│ Unison │ ← 双方向同期
│ (Backup Sync) │
└────────┬────────┘
│
↓
┌─────────────────┐
│ 外部ストレージ │ ← クラウドストレージ
└─────────────────┘
1. Obsidianのデイリーノート設定
AIが読み書きして良い専用のvaultを作成しましょう。
そうしたら、AIが読んではいけない情報が入っていない環境が分離できます。
パスワードとかAIに読み込まれたくないですよね!
1.1 デイリーノートプラグイン設定
Obsidianのデイリーノート機能を使って、日付ベースでノートを生成する設定を変更してます。
設定ファイル: .obsidian/daily-notes.json
{ "format": "YYYY/MM/YYYY-MM-DD", "folder": "Daily" }
ポイント:
– format: 年/月/日付の階層構造でファイルを作成
– folder: すべてのデイリーノートをDailyフォルダに集約
– 実際のパス例: Daily/2025/12/2025-12-01.md
1.2 カレンダープラグイン設定
週の開始日や週次ノートの設定を実施。好みで良いかと。
設定ファイル: .obsidian/plugins/calendar/data.json
{ "shouldConfirmBeforeCreate": true, "weekStart": "monday", "wordsPerDot": 250, "showWeeklyNote": true, "weeklyNoteFormat": "", "weeklyNoteTemplate": "", "weeklyNoteFolder": "Daily", "localeOverride": "system-default" }
ポイント:
– weekStart: 月曜始まり
– showWeeklyNote: 週次ノート表示を有効化
– weeklyNoteFolder: 週次ノートもデイリーノートと同じフォルダに配置
2. Obsidian MCPサーバ設定
2.1 Local REST APIプラグイン
Obsidianを別のPCからも参照できる様に、Local REST APIプラグインを設定。
必要なのはプラグイン設定の「Show Advanced Settings」をonにしてbindingHostに 0.0.0.0 を設定する。それ以外はデフォルトのまま。
これで、Ubuntu環境で公開してるメモにWindowsから接続できる用にしてます。
社内LANだから良いかなーって。
設定ファイル: .obsidian/plugins/obsidian-local-rest-api/data.json
{ "port": 27124, "insecurePort": 27123, "enableInsecureServer": false, "apiKey": "YOUR_API_KEY_HERE", "enableSecureServer": true, "bindingHost": "0.0.0.0" }
セキュリティ設定:
– HTTPSのみ有効化(enableSecureServer: true)
– 自己署名証明書を自動生成
– APIキーによる認証
2.2 MCPサーババイナリ
Obsidianプラグインディレクトリに配置されたMCPサーババイナリ:
.obsidian/plugins/mcp-tools/bin/mcp-server
このバイナリがKiro CLIからのリクエストを受け付け、Obsidian APIを呼び出す。
ちなみに「コミュニティプラグイン→MCP Tools」のインストールボタンはUbuntuで成功したことがないので、GitHub repositoryリンクからリリースバイナリを取ってきて、Server install folderに入れて実行権限付けてます。
3. Kiro CLI設定
3.1 MCP設定
Kiro CLIからObsidian MCPサーバに接続する設定。
環境変数が効かなかったので、キーは直書きだったりします。
設定ファイル: ~/.kiro/settings/mcp.json
{ "mcpServers": { "obsidian": { "command": "/home//Documents/obsidian/ ", "args": [], "env": { "OBSIDIAN_API_KEY": "YOUR_API_KEY_HERE" }, "disabled": false, "timeout": 120000 } } }/.obsidian/plugins/mcp-tools/bin/mcp-server
ポイント:
– command: MCPサーババイナリの絶対パス
– env.OBSIDIAN_API_KEY: Local REST APIプラグインのAPIキーと一致させる
– timeout: 長時間実行される操作に対応(120秒)
3.2 エージェント設定
agentファイルを作成してエージェント切り替えてます。
デフォルトにsre-expertって付けて色々調べてもらってます。
設定ファイル: ~/.kiro/agents/sre-expert.json
{ "name": "sre-expert", "description": "SRE領域に特化したエージェント", "instructions": "~/.kiro/instructions.md", "steering": [ "~/.kiro/steering/save_to_obs.md" ] }
3.3 ステアリングファイル(メモ作成ルール)
設定ファイル: ~/.kiro/steering/save_to_obs.md
Obsidianにメモを作成する際の重要なルール
**必須チェックリスト**: - [ ] メモ作成時に現在日時を確認済み - [ ] タイトルにyyyy-mm-dd形式で日付を反映済み - [ ] デイリーノートパス形式を確認済み - [ ] 禁止ツールを使用していないことを確認済み **パス形式**: - デイリーノート: `Daily/yyyy/mm/yyyy-mm-dd.md` - 例: `Daily/2025/12/2025-12-01.md` - 週次ノート: `Daily/yyyy-Www.md` - 例: `Daily/2025-W48.md` **絶対禁止事項**: - `patch_vault_file`ツールは一切使用しない - 理由: 日本語ヘッダーでエラーが発生するため **ファイル修正時の優先順位**: 1. `append_to_vault_file` - 追記の場合 2. `create_vault_file` - 新規作成の場合 3. `update_active_file` - 全体更新の場合 **デイリーノート取得の手順**: 1. 日付からパスを直接構築(探索しない) 2. `get_vault_file`で直接取得 3. エラー時のみ`list_vault_files`使用
この設定で、AIに確実にデイリーノート形式を守り、エラーを低減できる。
4. Unisonによるバックアップ設定
4.1 Unison設定ファイル
設定ファイル: ~/.unison/obsidian.prf
# Unison preferences file times = true prefer = newer auto = true perms = 0 dontchmod = true root = /home//Documents/ root = /mnt/ /Applications/ path = obsidian # Obsidian cache files exclusion ignore = Name *.ajson ignore = Path obsidian/private # Environment-specific settings exclusion ignore = Path obsidian/*/\.obsidian/plugins/obsidian-local-rest-api/data.json ignore = Path obsidian/*/\.obsidian/plugins/mcp-tools ignore = Path obsidian/*/\.obsidian/workspace.json ignore = Path obsidian/*/\.obsidian/workspace-mobile.json ignore = Name *.tmp ignore = Name .DS_Store
設定のポイント:
- 同期方向: 双方向同期(
prefer = newerで新しい方を優先) - 自動同期:
auto = trueで確認なしに同期 - 除外設定:
- キャッシュファイル(
*.ajson) - プライベートフォルダ
- 環境依存の設定ファイル(APIキー、ワークスペース設定)
- MCPサーババイナリ(環境依存)
- キャッシュファイル(
4.2 同期実行
unison -auto -batch obsidian
5. 実際の使用フロー
5.1 メモ作成
なんか、色々聞いたあと…
この結果をobsにメモして
とか
今までの流れをobsに残しといて
など
Kiroが自動的に:
1. 現在日時を確認(2025-12-01)
2. デイリーノートパス構築(Daily/2025/12/2025-12-01.md)
3. get_vault_fileで既存ノート取得(存在しない場合は新規作成)
4. append_to_vault_fileでメモを追記
5.2 デイリーノート参照
> 今週のデイリーノートから今週やった作業一覧作って
Kiroが:
1. 日付からパスを直接構築(探索しない)
2. get_vault_fileで取得
3. 内容を表示
4. そこから手動で週報を書く!
6. まとめ
この構成により、以下が実現できた:
- とりあえずで調べてもらったメモでも残す習慣
- デイリーメモから週報にまとめるときに一覧が簡単に
- Unisonによる双方向バックアップ
- AIが書き込む、つまり読んでいいvaultを切り分け
7. おまけ
WSL上のunisonからWindowsで動いているobsidian向けに双方向バックアップしたいときの設定のおまけしておきます。
/etc/wsl.conf
[automount]
enabled=true # Cドライブなどの DrvFs の自動マウントする
mountFsTab=true # WSLの起動時に /etc/fstab を読み込んで自動的にマウントする
root="/mnt/" # DrvFsのマウント先
options="" # DrvFsのマウントオプション
# 規定値: "uid=1000,gid=1000,umask=000,fmask=000,dmask=000"
[interop]
enabled=true # WSL内からWindowsプログラムの起動をサポートする (ver1809以降)
appendWindowsPath=true # WSL内のPATH環境変数に、WindowsのPATH環境変数を追加する (ver1809以降)
[filesystem]
umask=0022 # デフォルトのパーミッションを指定する (ver2004以降)
を追記して、/etc/fstabに
d: /mnt/drvfs metadata,noatime,uid=1000,gid=1000,defaults 0 0
を記述して、
sudo mkdir /mnt/sudo mount -a
したら、.unison/obsidian.prfの
root = /mnt//
とかしたら動きます。