mcpField
O
obsidian-direct

obsidian-direct

github.com/alphaonedev生産性86 回インストール
リポジトリ

obsidian-direct について

obsidian-directは、Obsidian vaultにプログラムからアクセスするスキルで、ノート作成やクエリの自動化に適しています。ファイル編集やテンプレート挿入、Dataviewクエリ、プラグインAPI呼び出しに対応します。

主な機能

  1. 01ファイルとフォルダーの作成
  2. 02テキストの追記・上書き・挿入
  3. 03Markdownテンプレートの挿入
  4. 04Dataviewクエリの実行
  5. 05プラグインAPIの呼び出し

活用シーン

  1. 01日付別の日次ノート作成
  2. 02クエリ結果のノートへの追記
  3. 03入力に基づくvaultファイルの更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill obsidian-direct

インストール後、Claude Code で/obsidian-directを入力して読み込まれたか確認します。

詳細

obsidian-direct

目的

このスキルを使うと、Obsidian の Vault にプログラムから直接アクセスし、ファイルの作成や編集、テンプレートの挿入、Dataview クエリの実行、プラグイン API の呼び出しなどを行えます。これにより、ノート作成ワークフローを自動化できます。

使用する場面

スクリプトで Obsidian の操作を自動化する場合にこのスキルを使用します。たとえば、外部データからデイリーノートを生成する、ユーザー入力に基づいてファイルを更新する、Dataview クエリを実行してメタデータを取得する、といった用途があります。CI/CD パイプラインや AI 主導のコンテンツ作成など、Vault を手動で管理するのが非効率な場面で使用してください。

主な機能

  • 指定したパスと内容を使って、Vault に新しいファイルやフォルダーを作成します。
  • 既存のファイルにテキストを追記、上書き、または特定の行に挿入して編集します。
  • テンプレート(たとえば、あらかじめ用意した .md テンプレートファイル)を新規または既存のノートに挿入します。
  • Dataview クエリを実行して、ノートのメタデータを取得または操作します。
  • Obsidian のプラグイン API を呼び出して、プラグイン固有のデータを照会するなど、独自の拡張機能を利用します。

使用パターン

call_skill('obsidian-direct', subcommand, params) のような関数呼び出しでスキルを実行します。subcommand には、create-file、edit-file、insert-template、run-query、plugin-call のいずれかを指定します。必須の params は、例のように辞書形式で必ず指定してください。{'path': 'notes/file.md', 'content': 'Text here'}。認証が必要な操作では、環境変数 $OBSIDIAN_API_KEY を使って API キーを渡します。呼び出しは順番に行います。最初にファイルを作成し、その後で編集してください。複雑な params には JSON を使用します。例:{'query': '{"from": "folder", "where": "file.name contains 'key'"}'}。Vault の競合を防ぐため、同時に呼び出すことは避けてください。

一般的なコマンド/API

API エンドポイント:ファイル操作には https://api.openclaw.com/v1/obsidian/vault/{vault-id}/files に POST リクエストを送信し、{"path": "notes/file.md", "content": "Hello"} のような JSON ボディを指定します。CLI で同等の操作を行う場合:obsidian-direct create-file --vault-id myvault --path "notes/file.md" --content "Hello" --api-key $OBSIDIAN_API_KEY。

コードスニペット:

params = {'path': 'Daily/daily.md', 'content': 'Today\'s notes'}
result = call_skill('obsidian-direct', 'create-file', params)
print(result['file_path'])  # Outputs: Daily/daily.md

Dataview の場合:obsidian-direct run-query --vault-id myvault --query "LIST file.name FROM \"folder\" WHERE file.mtime > date(2023-01-01)" --api-key $OBSIDIAN_API_KEY。

設定形式:params は、insert-template の場合は {"template": "path/to/template.md", "insert_at": 5} のような JSON オブジェクトで指定する必要があります。フラグ:--vault-id(必須)、--dry-run(変更を加えずにシミュレーション)、--force(ファイルを上書き)。

統合に関する注意

他のスキルの出力を入力として渡すことで統合できます。たとえば、検索スキルの結果を create-file の content として使用します。認証:環境に $OBSIDIAN_API_KEY を設定します。例:export OBSIDIAN_API_KEY=your_api_key。また、呼び出しにもこのキーを含めてください。リモートの場合は、Obsidian の sync プラグインを使って Vault が同期されていることを確認してください。複数のスキルを使うワークフローでは、返されたファイルパスを引数として使い、file-system スキルなどのツールと連携します。データ損失を防ぐため、まずローカルの Vault で統合をテストしてください。

エラー処理

VaultError(ファイルが見つからない場合の 404 など)や AuthError(API キーが無効な場合の 403 など)の例外を捕捉できるよう、スキルの呼び出しは必ず try-except ブロックで囲んでください。レスポンスコードを確認し、result['status'] == 'error' の場合はメッセージをログに記録し、指数バックオフで再試行します。よくある問題:--force フラグでファイルの競合に対処するか、Dataview のエラーを解析してクエリ構文を確認してください。例:

コードスニペット:

try:
    call_skill('obsidian-direct', 'edit-file', {'path': 'notes/file.md', 'content': 'Updated text'})
except VaultError as e:
    if e.code == 404:
        call_skill('obsidian-direct', 'create-file', {'path': 'notes/file.md', 'content': 'Default'})
    else:
        raise

具体的な使用例

  1. デイリーノートの作成を自動化する:まず別のスキルで現在の日付を取得し、次に obsidian-direct create-file --vault-id myvault --path "Daily/{date}.md" --content "Notes for {date}" --api-key $OBSIDIAN_API_KEY を呼び出します。これにより、初期内容を含む Daily/2023-10-01.md のような新しいファイルが作成されます。
  2. Dataview の結果を取得して挿入する:obsidian-direct run-query --vault-id myvault --query "TASK FROM \"Tasks\" WHERE !completed" でタスクを検索し、その後 obsidian-direct edit-file --path "Summary.md" --append result['query_output'] で出力を使って概要ノートに追記します。

グラフの関連性

  • 関連:コミュニティクラスター(例:ファイル管理スキルとタグを共有)。
  • 接続:ボルトの同期に使う「obsidian-sync」などの Obsidian 関連スキル。
  • 連携:認証処理に使う汎用 API スキル。
  • 重複:コンテンツ操作に使うノート作成クラスター。

コメント