项目简介

Windsurf Task Master 是一个基于 Model Context Protocol (MCP) 的服务器实现,专为在 Claude Desktop 等大型语言模型 (LLM) 客户端与 Windsurf 应用之间实现项目级任务管理而设计。它通过文件系统进行任务数据的存储和同步,无需依赖外部 API,提供了一种轻量级且高效的任务协作方式。

主要功能点

  • 项目隔离: 按项目组织任务,确保任务管理清晰有序。
  • 进度追踪: 详细记录任务完成百分比和状态。
  • LLM客户端集成: 允许LLM客户端(如Claude Desktop)直接创建、管理和查询任务。
  • Windsurf同步: 与 Windsurf 应用通过共享任务文件自动同步任务状态和进度。
  • 无API依赖: 数据存储和同步完全通过本地文件实现。
  • 实时更新: 文件监听机制检测Windsurf对任务文件的更改,并同步状态。
  • 全面的任务管理: 支持任务的创建、更新、列表、完成和进度跟踪。
  • 性能优化: 内置缓存、防抖和索引机制,提升数据访问效率。

安装步骤

  1. 克隆仓库: 使用 Git 命令将仓库克隆到本地目录。
    git clone https://github.com/htooayelwinict/windsurf-task-master
    cd windsurf-task-master
  2. 安装依赖: 进入仓库目录,使用 npm 或 yarn 安装项目依赖。
    npm install
    # 或者 yarn install
  3. 启动服务器: 运行启动命令来启动MCP服务器。
    npm start
    服务器将开始运行并监听客户端连接。

服务器配置

本 MCP 服务器专为与兼容 MCP 协议的客户端(如 Claude Desktop)配合使用。您需要在客户端的配置中添加此服务器的信息,以便客户端能够发现并调用服务器提供的工具。

通常,MCP 客户端会有一个 JSON 配置文件(例如 Claude Desktop 的 'mcpServers' 配置),您需要添加类似以下结构的配置项来指定如何启动和连接到 Windsurf Task Master 服务器:

{
  "mcpServers": {
    "windsurf-task-master": {
      "command": "node", // 启动服务器的可执行文件
      "args": ["/path/to/windsurf-task-master/mcp-server/server.js"], // 传递给可执行文件的参数,指定服务器脚本路径
      "env": {} // 可选:设置服务器进程的环境变量
    }
  }
}

请根据您实际克隆仓库的路径,修改 '"args"' 数组中的 '/path/to/windsurf-task-master/mcp-server/server.js' 为服务器脚本的绝对路径。配置完成后,重新启动您的MCP客户端,客户端将尝试连接并加载此服务器提供的工具。

基本使用方法

一旦MCP客户端成功连接到 Windsurf Task Master 服务器,LLM 模型即可通过调用服务器暴露的工具来进行任务管理:

  1. 创建任务: 使用 'create_task' 工具创建一个新任务,需要指定任务标题、描述和一个项目ID。 例如:调用 'create_task({ title: "编写用户文档", description: "撰写关于新功能的帮助文档", projectId: "my-app-project" })'
  2. 列出任务: 使用 'list_tasks' 工具查看特定项目的所有任务,或按状态过滤。 例如:调用 'list_tasks({ projectId: "my-app-project", status: "in-progress" })'
  3. 更新任务: 使用 'update_task' 工具修改现有任务的属性(标题、描述、状态、优先级等)。 例如:调用 'update_task({ id: 5, projectId: "my-app-project", status: "in-progress", priority: "high" })'
  4. 分配给Windsurf: 使用 'assign_to_windsurf' 工具将任务标记为分配给 Windsurf 处理。 例如:调用 'assign_to_windsurf({ id: 5, projectId: "my-app-project" })'
  5. 更新Windsurf进度: 使用 'update_windsurf_progress' 工具(通常由系统或Windsurf间接触发)更新分配给Windsurf任务的进度百分比。 例如:调用 'update_windsurf_progress({ id: 5, projectId: "my-app-project", progress: 75 })'
  6. 完成任务: 使用 'complete_task' 工具将任务标记为已完成。 例如:调用 'complete_task({ id: 5, projectId: "my-app-project" })'
  7. 获取Windsurf任务: 使用 'get_windsurf_tasks' 工具列出分配给Windsurf的所有任务,可按项目过滤。 例如:调用 'get_windsurf_tasks({ projectId: "my-app-project" })' 或 'get_windsurf_tasks({})'
  8. 显示任务状态: 使用 'display_task_status' 工具获取项目或所有项目的任务状态概览和进度。 例如:调用 'display_task_status({ projectId: "my-app-project" })' 或 'display_task_status({})'

服务器将根据这些工具调用,读写 'tasks/{projectId}/tasks.json' 文件,与 Windsurf 应用实现任务数据的同步和协作。

信息

分类

生产力应用