项目简介
Windsurf Task Master 是一个基于 Model Context Protocol (MCP) 的服务器实现,专为在 Claude Desktop 等大型语言模型 (LLM) 客户端与 Windsurf 应用之间实现项目级任务管理而设计。它通过文件系统进行任务数据的存储和同步,无需依赖外部 API,提供了一种轻量级且高效的任务协作方式。
主要功能点
- 项目隔离: 按项目组织任务,确保任务管理清晰有序。
- 进度追踪: 详细记录任务完成百分比和状态。
- LLM客户端集成: 允许LLM客户端(如Claude Desktop)直接创建、管理和查询任务。
- Windsurf同步: 与 Windsurf 应用通过共享任务文件自动同步任务状态和进度。
- 无API依赖: 数据存储和同步完全通过本地文件实现。
- 实时更新: 文件监听机制检测Windsurf对任务文件的更改,并同步状态。
- 全面的任务管理: 支持任务的创建、更新、列表、完成和进度跟踪。
- 性能优化: 内置缓存、防抖和索引机制,提升数据访问效率。
安装步骤
- 克隆仓库:
使用 Git 命令将仓库克隆到本地目录。
git clone https://github.com/htooayelwinict/windsurf-task-master cd windsurf-task-master - 安装依赖:
进入仓库目录,使用 npm 或 yarn 安装项目依赖。
npm install # 或者 yarn install - 启动服务器:
运行启动命令来启动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 模型即可通过调用服务器暴露的工具来进行任务管理:
- 创建任务: 使用 'create_task' 工具创建一个新任务,需要指定任务标题、描述和一个项目ID。 例如:调用 'create_task({ title: "编写用户文档", description: "撰写关于新功能的帮助文档", projectId: "my-app-project" })'
- 列出任务: 使用 'list_tasks' 工具查看特定项目的所有任务,或按状态过滤。 例如:调用 'list_tasks({ projectId: "my-app-project", status: "in-progress" })'
- 更新任务: 使用 'update_task' 工具修改现有任务的属性(标题、描述、状态、优先级等)。 例如:调用 'update_task({ id: 5, projectId: "my-app-project", status: "in-progress", priority: "high" })'
- 分配给Windsurf: 使用 'assign_to_windsurf' 工具将任务标记为分配给 Windsurf 处理。 例如:调用 'assign_to_windsurf({ id: 5, projectId: "my-app-project" })'
- 更新Windsurf进度: 使用 'update_windsurf_progress' 工具(通常由系统或Windsurf间接触发)更新分配给Windsurf任务的进度百分比。 例如:调用 'update_windsurf_progress({ id: 5, projectId: "my-app-project", progress: 75 })'
- 完成任务: 使用 'complete_task' 工具将任务标记为已完成。 例如:调用 'complete_task({ id: 5, projectId: "my-app-project" })'
- 获取Windsurf任务: 使用 'get_windsurf_tasks' 工具列出分配给Windsurf的所有任务,可按项目过滤。 例如:调用 'get_windsurf_tasks({ projectId: "my-app-project" })' 或 'get_windsurf_tasks({})'
- 显示任务状态: 使用 'display_task_status' 工具获取项目或所有项目的任务状态概览和进度。 例如:调用 'display_task_status({ projectId: "my-app-project" })' 或 'display_task_status({})'
服务器将根据这些工具调用,读写 'tasks/{projectId}/tasks.json' 文件,与 Windsurf 应用实现任务数据的同步和协作。
信息
分类
生产力应用