mcpField
O
Obsidian Tasks MCP Server

Obsidian Tasks MCP Server

ローカル
github.com/jfimメモリ・ナレッジ1533 週間前に更新

Obsidian Tasks MCP Server について

Obsidian Tasks MCP Serverは、ObsidianのMarkdownファイルからタスクを抽出・検索し、ClaudeなどのMCPクライアントによるタスク管理を支援します。Obsidian TasksとDataviewのメタデータ形式に対応し、多様な条件で絞り込めます。

主な機能

  1. 01Markdownタスクの再帰的な抽出
  2. 02完了・未完了状態の判別
  3. 03日付、タグ、優先度などの取得
  4. 04Obsidian Tasks構文による検索

活用シーン

  1. 01Vault内のタスク一覧の取得
  2. 02期限前の未完了タスクの検索
  3. 03タグやファイルパスによる絞り込み

MCP 対応

MCP経由でlist_all_tasksとquery_tasksツールを公開し、クライアントがタスクの取得や条件検索を行えます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"obsidian-tasks": {
"command": "npx",
"args": [
"-y",
"@jfim/obsidian-tasks-mcp"
]
}
}
}
起動コマンドnpx -y @jfim/obsidian-tasks-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@jfim/obsidian-tasks-mcp

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Obsidian Tasks MCP Server

npm version

Markdown ファイルから Obsidian Tasks を抽出して検索するための Model Context Protocol(MCP)サーバーです。MCP プロトコルを介して Claude と連携し、AI を活用したタスク管理を可能にするよう設計されています。

機能

  • Obsidian Tasks プラグインと互換性のある形式で、Obsidian の Markdown ファイルからタスクを抽出します
  • 完了済みタスクと未完了タスクを識別します
  • 次のようなタスクのメタデータにアクセスできます:
    • ステータス(完了/未完了)
    • 期限
    • 予定日
    • 開始日
    • 作成日
    • タグ
    • 優先度
    • 繰り返しルール

ツール

この MCP サーバーでは、次のツールを利用できます:

list_all_tasks

ディレクトリ内の Markdown ファイルからすべてのタスクを抽出し、サブフォルダーを再帰的にスキャンします。

入力パラメーター:

  • path(文字列、任意):Markdown ファイルをスキャンするディレクトリです。指定しない場合、最初の許可済みディレクトリがデフォルトで使用されます。

戻り値: それぞれに次の情報が含まれるタスクオブジェクトの JSON 配列:

{
  "id": "string",          // Unique identifier (filepath:linenumber)
  "description": "string", // Full text description of the task
  "status": "complete" | "incomplete", // Task completion status
  "filePath": "string",    // Path to the file containing the task
  "lineNumber": "number",  // Line number in the file
  "tags": ["string"],      // Array of tags found in the task
  "dueDate": "string",     // Optional - YYYY-MM-DD format 
  "scheduledDate": "string", // Optional - YYYY-MM-DD format
  "startDate": "string",   // Optional - YYYY-MM-DD format
  "createdDate": "string", // Optional - YYYY-MM-DD format
  "priority": "string",    // Optional - "high", "medium", or "low"
  "recurrence": "string"   // Optional - recurrence rule
}
query_tasks

Obsidian Tasks のクエリ構文に基づいてタスクを検索します。複数のフィルターを適用して、一致するタスクを抽出します。

入力パラメーター:

  • path(文字列、任意):Markdown ファイルをスキャンするディレクトリです。指定しない場合は、最初に許可されたディレクトリがデフォルトで使用されます。
  • query(文字列、必須):Obsidian Tasks のクエリ構文を使用したクエリ文字列です。各行がフィルターとして扱われます。

戻り値: クエリに一致するタスクオブジェクトの JSON 配列です。構造は list_all_tasks と同じです。

対応するクエリ構文:

  • ステータスフィルター:

    • done - 完了したタスクを表示します
    • not done - 未完了のタスクを表示します
  • 日付フィルター(期限):

    • 意味に関する注意:due today は完全一致です(今日が期限のタスクのみ)。それ以前または以後の日付を含めるには、範囲演算子を使用します。
    • due today - 今日が期限のタスク
    • due before today - 今日より前が期限のタスク(今日を含まない)
    • due after today - 今日より後が期限のタスク(今日を含まない)
    • due on or before today - 今日以前が期限のタスク(今日を含む)
    • due on or after today - 今日以降が期限のタスク(今日を含む)
    • due on YYYY-MM-DD または due YYYY-MM-DD - 指定した日付が期限のタスク
    • due before YYYY-MM-DD - 指定した日付より前が期限のタスク(指定日を含まない)
    • due after YYYY-MM-DD - 指定した日付より後が期限のタスク(指定日を含まない)
    • due on or before YYYY-MM-DD - 指定した日付以前が期限のタスク(指定日を含む)
    • due on or after YYYY-MM-DD - 指定した日付以降が期限のタスク(指定日を含む)
    • no due date - 期限のないタスク
    • has due date - 期限のあるタスク
  • 開始日フィルター:

    • 意味に関する注意:starts today は完全一致です(今日開始するタスクのみ)。それ以前または以後の日付を含めるには、範囲演算子を使用します。
    • starts today - 今日開始するタスク
    • starts on YYYY-MM-DD または starts YYYY-MM-DD - 指定した日付に開始するタスク
    • starts before YYYY-MM-DD - 指定した日付より前に開始するタスク(指定日を含まない)
    • starts after YYYY-MM-DD - 指定した日付より後に開始するタスク(指定日を含まない)
    • starts on or before YYYY-MM-DD - 指定した日付以前に開始するタスク(指定日を含む)
    • starts on or after YYYY-MM-DD - 指定した日付以降に開始するタスク(指定日を含む)
    • no start date - 開始日のないタスク
    • has start date - 開始日のあるタスク
  • タグフィルター:

    • no tags - タグのないタスク
    • has tags - タグが1つ以上あるタスク
    • tag includes #tag - 「tag」を含むタグが付いたタスク
    • tag does not include #tag - 「tag」を含むタグが付いていないタスク
  • パスフィルター:

    • path includes string - パスに「string」を含むファイル内のタスク
    • path does not include string - パスに「string」を含まないファイル内のタスク
  • 説明フィルター:

    • description includes string - 説明に「string」を含むタスク
    • description does not include string - 説明に「string」を含まないタスク
  • 優先度フィルター:

    • priority is highest - 最も高い優先度のタスク
    • priority is high - 高い優先度のタスク
    • priority is medium - 中程度の優先度のタスク
    • priority is low - 低い優先度のタスク
    • priority is lowest - 最も低い優先度のタスク
    • priority is none - 優先度が設定されていないタスク

クエリ例:

not done
due before 2025-05-01
tag include #work

これは、2025年5月1日より前が期限で、#work タグが付いた未完了のタスクをすべて返します。

包含的 OR の例(1行):

due on or before today OR starts on or before today

使用方法

インストール

npm から(推奨):

# Install globally
npm install -g @jfim/obsidian-tasks-mcp

# Or use directly with npx without installing
npx @jfim/obsidian-tasks-mcp /path/to/obsidian/vault

ソースから:

git clone https://github.com/jfim/obsidian-tasks-mcp.git
cd obsidian-tasks-mcp
npm install
npm run build
サーバーの実行

npm パッケージを使用(推奨):

# If installed globally
obsidian-tasks-mcp /path/to/obsidian/vault

# Or with npx (no installation required)
npx @jfim/obsidian-tasks-mcp /path/to/obsidian/vault

ソースから:

node dist/index.js /path/to/obsidian/vault
テスト

テストスイートを実行するには:

npm test

テストスイートの詳しい情報は、TESTING.md を参照してください。

Claude での使用

MCP に対応した Claude クライアントに、次の設定を追加してください:

{
  "mcpServers": {
    "obsidian-tasks": {
      "command": "npx",
      "args": [
        "@jfim/obsidian-tasks-mcp",
        "/path/to/obsidian/vault"
      ]
    }
  }
}

ソースからインストールした場合:

{
  "mcpServers": {
    "obsidian-tasks": {
      "command": "node",
      "args": [
        "/path/to/obsidian-tasks-mcp/dist/src/index.js",
        "/path/to/obsidian/vault"
      ]
    }
  }
}
Docker

Docker イメージをビルドします:

docker build -t @jfim/obsidian-tasks-mcp .

Docker で実行します:

docker run -i --rm --mount type=bind,src=/path/to/obsidian/vault,dst=/projects/vault @jfim/obsidian-tasks-mcp /projects

Claude Desktop の設定:

{
  "mcpServers": {
    "obsidian-tasks": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--mount", "type=bind,src=/path/to/obsidian/vault,dst=/projects/vault",
        "@jfim/obsidian-tasks-mcp",
        "/projects"
      ]
    }
  }
}

タスク形式

サーバーは、タスクのメタデータ形式として Obsidian Tasks の絵文字形式とDataview 形式の両方をサポートしています。

  • タスクの構文:- [ ] Task description
  • 完了したタスク:- [x] Task description
  • 期限:
    • 🗓️ YYYY-MM-DD
    • 📅 YYYY-MM-DD
  • 予定日:⏳ YYYY-MM-DD
  • 開始日:🛫 YYYY-MM-DD
  • 作成日:➕ YYYY-MM-DD
  • 優先度:⏫(高)、🔼(中)、🔽(低)
  • 繰り返し:🔁 every day/week/month/etc.
  • タグ:#tag1 #tag2

タスクの例:- [ ] Complete project report 🗓️ 2025-05-01 ⏳ 2025-04-25 #work #report ⏫

ライセンス

MIT License

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。