任务管理MCP服务API参考

April 14, 2025 · View on GitHub

本文档详细说明了任务管理MCP服务提供的所有API,包括参数、返回值和示例。

工具列表

工具ID功能描述
decompose_prd解析PRD文档,自动拆解为任务列表
add_task创建新任务
update_task更新现有任务信息,包括状态、依赖关系、代码引用等
get_task获取任务详情
get_task_list获取任务列表
get_next_executable_task获取下一个可执行任务
expand_task为指定任务生成子任务
update_task_code_references更新任务的代码引用
use_description获取所有工具的描述和参数信息

详细API说明

decompose_prd

解析PRD文档,自动拆解为任务列表。

参数:

参数名类型必填说明
prd_contentstringPRD文档内容或文件路径,支持直接文本或以file://开头的文件路径。注意:使用file://格式时必须提供绝对路径

返回值:

{
  "success": true,
  "tasks": [
    {
      "id": "1",
      "name": "用户认证模块",
      "description": "实现用户注册、登录和认证功能",
      "status": "todo",
      "priority": "high",
      "dependencies": [],
      "blocked_by": [],
      "subtasks": [],
      "tags": ["核心功能", "前端", "后端"],
      "estimated_hours": 24,
      "code_references": []
    },
    // 更多任务...
  ],
  "message": "已从PRD中提取13个主任务"
}

示例调用:

@task-manager decompose_prd prd_content="file:///D:/projects/my-project/docs/prd.md"

add_task

创建新任务。

参数:

参数名类型必填说明
namestring任务名称
descriptionstring任务描述
idstring任务ID(可选,如未提供则自动生成)
prioritystring任务优先级,可选值为:low, medium, high, critical
tagsstring任务标签,多个标签以逗号分隔
assigned_tostring任务分配给谁
estimated_hoursstring预估完成时间(小时)
dependenciesstring依赖的任务ID,多个依赖以逗号分隔

返回值:

{
  "success": true,
  "task": {
    "id": "4",
    "name": "实现用户注册功能",
    "description": "开发用户注册界面和后端处理",
    "status": "todo",
    "priority": "high",
    "dependencies": ["1", "2"],
    "blocked_by": ["1", "2"],
    "subtasks": [],
    "parent_task_id": null,
    "tags": ["前端", "用户功能"],
    "code_references": [],
    "complexity": "medium",
    "estimated_hours": 8,
    "created_at": "2025-03-31T15:00:00Z",
    "updated_at": "2025-03-31T15:00:00Z"
  },
  "task_json_path": "/path/to/output/tasks/task-4.json"
}

示例调用:

@task-manager add_task name="实现用户注册功能" description="开发用户注册界面和后端处理" priority="high" tags="前端,用户功能" dependencies="1,2"

update_task

更新现有任务信息,包括标记任务为完成和更新依赖关系。

参数:

参数名类型必填说明
task_idstring任务ID,对于子任务使用父任务ID.子任务编号格式,如1.1
namestring新任务名称
descriptionstring新任务描述
statusstring新任务状态,包括标记任务为完成(done)、进行中(in_progress)、阻塞(blocked)或取消(cancelled)
prioritystring新的任务优先级 (low, medium, high, critical)
tagsstring新的任务标签,多个标签以逗号分隔
assigned_tostring新的任务负责人
estimated_hoursstring新的预估工时
actual_hoursstring实际工时
dependenciesstring逗号分隔的新依赖任务ID列表。此操作会覆盖任务现有的所有依赖关系。如果提供空字符串 "",则会清空任务的所有依赖。如果不提供此参数,则依赖关系保持不变。

返回值:

{
  "success": true,
  "task": {
    "id": "4",
    "name": "实现用户注册功能",
    "description": "正在实现后端注册逻辑",
    "status": "in_progress",
    "priority": "high",
    "dependencies": ["1"],
    "blocked_by": ["1"],
    "subtasks": [],
    "parent_task_id": null,
    "tags": ["前端", "用户功能"],
    "code_references": [],
    "complexity": "medium",
    "estimated_hours": 8,
    "created_at": "2025-03-31T15:00:00Z",
    "updated_at": "2025-04-20T11:00:00Z"
  },
  "message": "Task 4 updated successfully",
  "task_json_path": "/path/to/output/tasks/task-4.json"
}

子任务更新说明:

当更新子任务状态时,系统会自动同步父任务状态,遵循以下规则:

  1. 如果所有子任务都完成,则父任务自动更新为完成状态
  2. 如果有任何子任务被阻塞,则父任务自动更新为阻塞状态
  3. 如果有任何子任务进行中,则父任务自动更新为进行中状态

示例调用:

更新任务状态、描述并设置新的依赖:

@task-manager update_task task_id="4" status="in_progress" description="正在实现后端注册逻辑" dependencies="1"

清空任务依赖:

@task-manager update_task task_id="4" dependencies=""

更新子任务状态:

@task-manager update_task task_id="1.1" status="done" actual_hours="5.5"

get_task

获取任务详情。

参数:

参数名类型必填说明
task_idstring要获取的任务ID

返回值:

返回包含任务详细信息的格式化文本,包括基本信息、详细内容、工时信息、标签、依赖关系和代码引用。

示例调用:

@task-manager get_task task_id="1"

get_task_list

获取任务列表。

参数:

参数名类型必填说明
statusstring按状态筛选,可选值为:todo, in_progress, done, blocked, cancelled
prioritystring按优先级筛选,可选值为:low, medium, high, critical
tagstring按标签筛选
assigned_tostring按负责人筛选
pagestring页码,默认为1
page_sizestring每页任务数量,默认为100

返回值:

返回符合条件的任务列表,以表格和JSON格式展示。

示例调用:

@task-manager get_task_list status="todo" priority="high" tag="前端"

get_next_executable_task

获取下一个可执行任务。此接口只返回一个最优先的任务,而不是任务列表。

参数:

参数名类型必填说明
limitstring内部查询任务的数量限制,默认为5。该参数仅影响内部查询流程,最终只会返回一个任务。

返回值:

返回一个最优先的可执行任务,如果没有可执行的任务,则返回相应提示。

示例调用:

@task-manager get_next_executable_task

expand_task

为指定任务生成子任务。

参数:

参数名类型必填说明
task_idstring要展开的任务ID
num_subtasksstring希望生成的子任务数量,默认为5

返回值:

返回父任务信息和生成的子任务列表,以及保存的文件路径。

示例调用:

@task-manager expand_task task_id="1" num_subtasks="3"

update_task_code_references

更新任务的代码引用。

参数:

参数名类型必填说明
task_idstring任务ID
code_filesstring代码文件路径列表,以逗号分隔

返回值:

返回更新后的任务信息,包括更新后的代码引用。

示例调用:

@task-manager update_task_code_references task_id="1" code_files="src/auth/login.py,src/models/user.py"

use_description

获取所有可用工具的描述和参数信息。

参数:

返回值:

{
  "tools": [
    {
      "name": "decompose_prd",
      "description": "解析PRD文档,自动拆解为任务列表",
      "parameters": {
        "prd_content": {
          "type": "string",
          "description": "PRD文档内容或资源标识符",
          "required": true
        }
      }
    },
    ... // 其他工具的描述
  ]
}

示例调用:

<mcp:tool name="use_description">
</mcp:tool>

Cursor IDE中的调用:

@task-manager 列出所有可用工具

错误响应

当API调用出现错误时,将返回以下格式的错误信息:

{
  "success": false,
  "error": "指定的任务ID不存在",
  "error_code": "task_not_found"
}

常见错误代码:

错误代码说明
task_not_found任务ID不存在
invalid_status无效的任务状态
circular_dependency检测到循环依赖
invalid_parameter无效的参数值
missing_parameter缺少必要参数
prd_parse_errorPRD解析失败
expand_task_error任务展开失败

数据模型

Task

任务对象的数据结构:

字段类型说明
idstring任务唯一标识符
namestring任务名称
descriptionstring任务详细描述
statusstring任务状态 (todo, in_progress, done, blocked, cancelled)
prioritystring任务优先级 (low, medium, high, critical)
complexitystring任务复杂度 (low, medium, high)
dependenciesarray依赖的前置任务ID列表
blocked_byarray阻塞该任务的任务ID列表
subtasksarray子任务对象列表,结构与Task相同
parent_task_idstring父任务ID
code_referencesarray实现该任务的代码文件路径列表
created_atstring创建时间 (ISO 8601格式)
updated_atstring最后更新时间 (ISO 8601格式)
completed_atstring完成时间 (ISO 8601格式)
estimated_hoursnumber预估工时
actual_hoursnumber实际工时
assigned_tostring任务负责人
tagsarray任务标签列表