mcpField
N
NeuroDock Task Fractionator

NeuroDock Task Fractionator

ローカル
neurodock.org生産性1818 週間前に更新

NeuroDock Task Fractionator について

NeuroDock Task Fractionatorは、目標を細分化したタスクに分け、次の行動を1つ選ぶローカル優先のMCPサーバーです。プロジェクトを整理する人を対象とし、分解にはローカルのヒューリスティックを使います。タスクの永続化は呼び出し側が担います。

主な機能

  1. 01目標を5~90分のタスクに分割
  2. 02受け入れ条件の付与と依存順の設定
  3. 03次のタスクを1つだけ選択
  4. 04理由と確信度の返却
  5. 05分解したタスクを永続化しない

活用シーン

  1. 01曖昧な計画を実行可能なタスクに変換
  2. 02プロジェクトで次に着手できるタスクの選択

MCP 対応

`decompose`と`next_one`のMCPツールを公開します。`next_one`は設定可能なソースから未完了タスクを読み込み、同梱のグラフ連携ソースはスタブです。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"tlennon-ie-neurodock-mcp-task-fractionator": {
"command": "uvx",
"args": [
"neurodock-mcp-task-fractionator"
]
}
}
}
起動コマンドuvx neurodock-mcp-task-fractionator

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

パッケージ
pypineurodock-mcp-task-fractionator0.1.0

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
goalstringはい
time_budgetanyいいえ任意の合計時間予算。ISO-8601 duration 形式で指定します。例:'PT2H'(2 時間)または 'PT90M'(90 分)。'a couple of hours' のような文章での指定は不可です。
max_chunk_sizeanyいいえ任意の神経タイプ調整パラメーター(ADR 0011)。返されるタスク数を、通常の目標値 3~12 件/上限 20 件より少なく制限します。目標に自然により多くの手順が必要な場合、サーバーはシーケンス番号の小さい先頭部分(依存関係が宙に浮かない有効な部分 DAG)を保持し、手順を黙って破棄するのではなく、理由に切り詰めたことを記載します。省略時はデフォルトの動作になります。
motor_fatigue_awareanyいいえ任意の神経タイプ調整パラメーター(ADR 0011)。true の場合、サーバーはこの設定をそのまま返し、理由にも記載するため、クライアントはそれに応じて対応できます。サーバーは実際の運動活動を把握できず、疲労を推測することもありません。
time_buffer_multiplieranyいいえ任意の神経タイプ調整パラメーター(ADR 0011)。1.0 より大きい場合、サーバーは各タスクに 'padded_minutes' を追加します。値は round(estimated_minutes * multiplier) です。'estimated_minutes' は RAW のままなので、二重に上乗せされることはありません。値が 1.0 の場合(または省略時)は上乗せされません。

詳細

neurodock-mcp-task-fractionator

ローカルファーストの目標分解と、次に取るべきアクションを1つ選択する機能を MCP サーバーとして提供します。

  • バージョン: v0.0.3(開発者向けプレビュー)
  • ステータス: フェーズ1の基盤サーバー。
  • ライセンス: AGPL-3.0-or-later。
  • 設計: ADR 0003 — タスク分割ツールの設計を参照してください。
  • スキーマ(契約): schemas/decompose.schema.json と schemas/next_one.schema.json。
  • このサーバーの基盤となるユーザーストーリー:(「ADHDのあるディレクター」— あいまいな取り組みを音声で書き出し、5〜12個のアトミックなタスクと次に取り組むべき1つのタスクを得る)。

ツール

decompose(goal, time_budget?)

ローカルのヒューリスティックにより、目標を所要時間5〜90分のアトミックなタスクに分解します。各タスクには、少なくとも1つの受け入れ基準、依存関係でソートされた連番、小規模なタグセットが含まれます。ステートレスで、サーバーはリストを返すだけで、永続化はしません。永続化は、呼び出し元が mcp-cognitive-graph を使って行います。

  • goal — 5〜500文字の平易な言葉で記述した目標。ログには記録されません。
  • time_budget — 任意の ISO 8601 期間(PT4H、P3D、PT2H30M)。 解析できない入力の場合は TIME_BUDGET_UNPARSEABLE を返します。ADR 0003 §3に従い、P3D は72時間ではなく、4時間の作業ブロック3回として扱われます。

エラー:GOAL_REQUIRED、GOAL_TOO_LONG、TIME_BUDGET_UNPARSEABLE、 BUDGET_INFEASIBLE、DEPENDENCY_CYCLE、ACCEPTANCE_CRITERIA_REQUIRED、 DECOMPOSITION_UNAVAILABLE

next_one(project)

タスクをちょうど1つ返します。つまり、ユーザーが次に行うべき唯一の作業に、 簡潔な理由の段落と [0, 1] の信頼度スコアを添えて返します。

  • project — 1〜120文字のプロジェクト名(大文字と小文字を区別し、あいまい一致はしません)。
  • 未完了のタスクは、プラグイン可能な PendingTaskSource から読み取ります。
  • 選択方法:dependencies がすべて未完了タスクの集合内ですでに完了しているもののうち、sequence が最も小さいタスクを選びます。

エラー:PROJECT_REQUIRED、NO_TASKS_AVAILABLE、ALL_TASKS_BLOCKED、 COGNITIVE_GRAPH_UNAVAILABLE

クイックスタート

# From the repo root
uv sync
uv run pytest packages/mcp-task-fractionator/tests/ -v

# Run the server over stdio (the MCP transport):
uv run neurodock-mcp-task-fractionator

メモリー内のみの next_one(v0.0.3の注意点)

next_one は PendingTaskSource から未完了タスクを読み取ります。v0.0.3には2つの実装が含まれています。

  • InMemoryPendingTaskSource — デフォルトで、テストに使用されます。タスクをプロセスのメモリー内に保持します。このソースを明示的に指定してサーバーをビルドし、next_one を呼び出す前にタスクを登録してください。

    from neurodock_mcp_task_fractionator import (
        InMemoryPendingTaskSource, build_server,
    )
    
    source = InMemoryPendingTaskSource()
    source.add("founding-scope-rfc", [task_1, task_2, task_3])
    server = build_server(source=source)
    
  • CognitiveGraphPendingTaskSource — フェーズ2のスタブです。常に COGNITIVE_GRAPH_UNAVAILABLE を発生させます。mcp-cognitive-graph の Python クライアントが公開された時点で、実際の接続が実装されます。

環境変数による選択:NEURODOCK_TASK_SOURCE=memory|graph(デフォルトは memory)。不明な値の場合はクラッシュせず、memory にフォールバックします。

プライバシー

ADR 0003 §7に従い、目標のテキストとプロジェクト名は機密性の高い ユーザーデータとして扱われます。

  • リモート呼び出しはありません。サーバー内での LLM 呼び出しもありません。
  • 目標のテキストは、どのログレベルでも決して記録されません。
  • 検証エラーではユーザーの入力内容ではなく、フィールド名を参照します。
  • 理由の段落は、認識された語彙トークンのみを使って構成されます。ユーザーが入力した元の目標テキストをそのまま含めることはありません。

テスト(test_decompose.py::test_rationale_does_not_contain_goal_text)で プライバシーの不変条件を確認しています。

開発ゲート

# Lint + format check
uv run ruff check packages/mcp-task-fractionator/
uv run ruff format --check packages/mcp-task-fractionator/

# Strict type check
uv run mypy --strict packages/mcp-task-fractionator/src/

# Tests
uv run pytest packages/mcp-task-fractionator/tests/ -v

PRをマージ可能にするには、4項目すべてに合格する必要があります。

関連情報

  • アーキテクチャの設計根拠:ADR 0003 — タスク分割ツールの設計。
  • このサーバーが遵守する必要のある5原則のマニフェスト:MANIFESTO.md。
  • 関連サーバー:mcp-chronometric(時間、アイドル、休憩)と mcp-cognitive-graph(永続状態 — 未完了タスクの保存先)。

コメント

MCP は初めてですか?

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

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