任务管理服务器

一个高级的模型上下文协议(MCP)服务器,用于全面的任务管理,支持任务组、自定义状态、任务关系和AI集成。

  • by jimfisher
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 jimfisher/mcp-tasks

使用说明

MCP任务管理服务器

一个高级的模型上下文协议(MCP)服务器,用于进行全面的任务管理,包括组、自定义状态、任务关系和人工智能集成。现在由SQLite提供支持,以提高性能和可靠性。

特性

  • 任务管理:使用丰富的元数据创建、更新、删除和搜索任务
  • 批量操作:同时创建、更新和更改多个任务的状态
  • 任务组:将任务组织到项目、区域或任何自定义分组中
  • 自定义状态:使用颜色和描述定义自己的工作流状态
  • 任务参考:创建任务之间的关系(块、关联、子任务等)
  • 状态历史:使用时间戳自动跟踪状态变化
  • Markdown支持:任务描述支持完整的markdown格式
  • AI友好:专为AI助手在对话过程中自动管理任务而设计
  • 永久存储:SQLite数据库,可自动从JSON格式迁移

安装

  1. 克隆或下载此存储库
  2. 安装依赖项:
    npm install
    
  3. 构建项目:
    npm run build
    

用法

作为MCP服务器

添加到您的MCP客户端配置中(例如,Claude Desktop):

{
  "mcpServers": {
    "mcp-task": {
      "command": "node",
      "args": ["/path/to/mcp-task/build/index.js"]
    }
  }
}

直接使用

您也可以直接运行服务器:

npm start

数据存储

SQLite数据库(默认)

服务器现在使用 SQLite 作为默认数据库,可提高性能、可靠性和数据完整性。任务存储在 ~/.mcp-tasks.sqlite.

SQLite的优点:

  • 大型数据集的性能更好
  • ACID事务确保数据一致性
  • 结构化查询和索引
  • 从JSON格式自动迁移

传统JSON支持

为了兼容性,服务器仍然可以通过设置环境变量来使用JSON存储:

export MCP_TASK_USE_SQLITE=false

自动迁移: 从JSON升级到SQLite时,服务器会自动迁移您现有的 ~/.mcp-tasks.json 将数据转换为新的SQLite格式。

可用工具

任务操作

  • 创建任务:使用标题、描述、状态、组、优先级、标签、受让人、截止日期和时间估计值创建新任务
  • update_task:更新任何任务属性。状态更改会自动跟踪时间戳
  • 获取任务:获取详细的任务信息,包括历史和参考
  • list_tasks:按状态、组、受让人、标签、优先级、截止日期或搜索词列出和筛选任务
  • 删除任务:删除任务并删除对它的所有引用

批量操作

  • bulk_create_tasks:使用共享属性(组、状态、受让人、标签)一次创建多个任务
  • bulk_update_tasks:使用相同的更改同时更新多个任务
  • bulk_change_status:使用可选注释一次更改多个任务的状态

组管理

  • 创建组:创建任务组以组织相关任务(项目、区域等)
  • list_groups:列出所有包含元数据的组
  • 删除组:删除组(任务保留但未分组)

状态管理

  • 创建状态:使用颜色和描述创建自定义工作流状态
  • list_status:列出所有可用状态
  • 删除状态:删除自定义状态(不能删除默认或正在使用的状态)

任务关系

  • add_task_reference:创建任务之间的关系:
    • blocks / blocked-by:依赖关系
    • relates-to:一般关系
    • duplicates:重复任务
    • child-of / parent-of:层次关系
  • remove_task_reference:删除任务关系
  • get_task_references:查看所有传入和传出的任务引用

人工智能集成

此MCP服务器专为AI助手设计,用于:

  1. 自动创建任务 当用户提到他们需要做的工作时
  2. 更新任务状态 随着对话中工作的进展
  3. 分解复杂的请求 转化为具有引用的可管理子任务
  4. 跟踪项目进度 通过将任务组织成小组
  5. 管理依赖关系 通过创建任务引用
  6. 提供上下文 通过搜索和过滤现有任务
  7. 处理批量操作 高效的项目设置和团队管理

AI使用模式示例

从对话中创建任务:

User: "I need to implement user authentication and then build the dashboard"
AI: Creates two tasks:
- "Implement user authentication"
- "Build dashboard" (with "blocked-by" reference to auth task)

状态跟踪:

User: "I finished the login form"
AI: Updates relevant task status to "Done" and adds completion timestamp

项目组织:

User: "Let's start working on the mobile app redesign"
AI: Creates a "Mobile App Redesign" group and organizes related tasks

批量项目设置:

User: "I need to set up tasks for the Q1 marketing campaign"
AI: Uses bulk_create_tasks to create multiple related tasks at once:
- "Design campaign assets", "Write copy", "Set up analytics", etc.

团队工作流程管理:

User: "Move all the design tasks to review status"
AI: Uses bulk_change_status to transition multiple tasks simultaneously

数据模型

任务属性

  • 基本信息:ID、标题、描述、摘要
  • 组织:状态、组、优先级、标签、受让人
  • 时机:截止日期、预计小时数、实际小时数
  • 追踪:创建/更新的时间戳、完成日期
  • 关系:引用其他任务
  • 历史:完整的状态更改历史记录

任务状态

默认状态包括“待办事项”、“进行中”和“完成”,但您可以创建自定义状态,如“审核”、“测试”、“阻止”等。

任务组

将任务组织成逻辑组,如:

  • 项目(“网站重新设计”、“移动应用程序”)
  • 领域(“营销”、“开发”、“运营”)
  • 背景(“家”、“办公室”、“旅行”)

任务参考

模型复杂关系:

  • 依赖项:任务A阻止任务B
  • 层级:父/子任务关系
  • 相关工作:相互关联的任务
  • 重复项:标记重复任务

完整的工具参考

服务器提供 17个综合工具 专为AI助手设计:

任务操作:创建任务、更新任务、获取任务、列表任务、删除任务 批量操作:bulk_create_tasks、bulk_update_tasks和bulk_change_status 群组:创建组、列表组、删除组 状态:创建状态、列表状态、删除状态 参考文献:add_task_reference、remove_task_rereference、get_task_references

批量操作详解

bulk_create_tasks:非常适合项目初始化、将大型计划分解为子任务或导入任务列表。支持应用于所有任务的共享属性(组、状态、受让人、标签),同时允许对单个任务进行自定义。

bulk_update_tasks:非常适合团队管理场景,如重新分配多个任务、更新整个项目的优先级或将截止日期更改应用于相关任务。

bulk_change_status:对于工作流管理至关重要,例如在管道阶段移动多个任务、将冲刺任务标记为已完成或转换项目阶段。

每个工具都包括全面的错误处理、详细的结果报告,即使在部分故障期间也能保持数据完整性。

发展

构建

npm run build

自动重建开发模式

npm run dev

项目结构

src/
├── types.ts      # TypeScript type definitions
├── database.ts   # Data persistence and management
└── index.ts      # MCP server implementation

许可证

ISC许可证