mcpField
N
NeuroDock Task Fractionator

NeuroDock Task Fractionator

本地服务
neurodock.org生产力1818 周前更新

关于 NeuroDock Task Fractionator

NeuroDock Task Fractionator 是一款本地优先的 MCP 服务,可将目标拆分为原子任务,并选出一个下一步行动,适合规划项目的人使用。拆分依靠本地启发式方法,任务持久化由调用方负责。

主要功能

  1. 01将目标拆为 5–90 分钟任务
  2. 02添加验收标准并按依赖排序
  3. 03只选出一个下一步任务
  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

优先本地运行的目标拆解与单一下一步行动选择,通过 MCP 服务提供。

工具

decompose(goal, time_budget?)

使用本地启发式方法,将目标拆解为耗时 5–90 分钟的原子任务。每个任务 至少包含一项验收标准、按依赖关系排序的序号,以及少量标签。无状态: 服务返回任务列表,不会持久化。持久化由调用方通过 mcp-cognitive-graph 负责。

  • goal — 5..500 个字符的自然语言目标。绝不记录日志。
  • time_budget — 可选的 ISO 8601 时长(PT4H、P3D、PT2H30M)。 无法解析的输入会返回 TIME_BUDGET_UNPARSEABLE。根据 ADR 0003 §3,P3D 视为 3 个 4 小时的工作时段,而不是 72 小时。

错误:GOAL_REQUIRED、GOAL_TOO_LONG、TIME_BUDGET_UNPARSEABLE、 BUDGET_INFEASIBLE、DEPENDENCY_CYCLE、ACCEPTANCE_CRITERIA_REQUIRED、 DECOMPOSITION_UNAVAILABLE。

next_one(project)

恰好返回一个任务——用户接下来应该做的唯一事项—— 并附上一段简短的推理说明和 [0, 1] 范围内的置信度分数。

  • project — 1..120 个字符的项目名称(区分大小写,不进行模糊匹配)。
  • 待处理任务从可插拔的 PendingTaskSource 中读取。
  • 选择规则:选取 sequence 最小且其 dependencies 均已在待处理任务集中完成的任务。

错误: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 提供两种 实现:

  • 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,目标文本和项目名称均视为敏感 用户数据:

  • 不进行远程调用。服务内部不调用大模型。
  • 任何级别的日志都绝不记录目标文本。
  • 验证错误只引用字段名称,不包含用户内容。
  • 推理说明仅由识别出的词汇词元生成; 绝不原样嵌入用户的原始目标文本。

测试(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 前,以上四项必须全部通过。

参考

  • 架构设计依据:ADR 0003 — task-fractionator 工具设计。
  • 此服务必须遵循的五项原则宣言:MANIFESTO.md。
  • 同级服务:mcp-chronometric(时间、空闲、休息)和 mcp-cognitive-graph(持久化状态——待处理任务将存放于此)。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。