Obsidian Tasks MCP Server について
Obsidian Tasks MCP Serverは、ObsidianのMarkdownファイルからタスクを抽出・検索し、ClaudeなどのMCPクライアントによるタスク管理を支援します。Obsidian TasksとDataviewのメタデータ形式に対応し、多様な条件で絞り込めます。
主な機能
- 01Markdownタスクの再帰的な抽出
- 02完了・未完了状態の判別
- 03日付、タグ、優先度などの取得
- 04Obsidian Tasks構文による検索
活用シーン
- 01Vault内のタスク一覧の取得
- 02期限前の未完了タスクの検索
- 03タグやファイルパスによる絞り込み
MCP 対応
MCP経由でlist_all_tasksとquery_tasksツールを公開し、クライアントがタスクの取得や条件検索を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Obsidian Tasks MCP Server
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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。