一个本地的模型上下文协议(MCP)服务器,提供用于客户端驱动的项目和任务管理的后端工具,使用SQLite数据库。
此服务器作为本地MCP客户端(如AI代理或脚本)的持久后端,这些客户端需要在不同的项目中管理结构化的任务数据。它处理数据存储,并提供一套标准化的交互工具,而策略性的工作流逻辑则存在于客户端。
关键特性:
./data/taskmanager.db)进行简单、自包含的数据存储。以下工具可供MCP客户端使用:
createProject:
projectName(字符串,可选,最大长度255){ project_id: string }addTask:
project_id(字符串,必需,UUID),description(字符串,必需,长度1-1024),dependencies(字符串数组,可选,最大长度50),priority(枚举 'high'|'medium'|'low',可选,默认值'medium'),status(枚举 'todo'|'in-progress'|'review'|'done',可选,默认值'todo')TaskData对象。listTasks:
project_id(字符串,必需,UUID),status(枚举 'todo'|'in-progress'|'review'|'done',可选),include_subtasks(布尔值,可选,默认值false)TaskData或StructuredTaskData对象数组。showTask:
project_id(字符串,必需,UUID),task_id(字符串,必需)FullTaskData对象。setTaskStatus:
project_id(字符串,必需,UUID),task_ids(字符串数组,必需,长度1-100),status(枚举 'todo'|'in-progress'|'review'|'done',必需){ success: true, updated_count: number }expandTask:
project_id(字符串,必需,UUID),task_id(字符串,必需),subtask_descriptions(字符串数组,必需,长度1-20,每个长度1-512),force(布尔值,可选,默认值false)FullTaskData对象。getNextTask:
project_id(字符串,必需,UUID)FullTaskData对象,如果没有准备好则返回null。exportProject:
project_id(字符串,必需,UUID),format(枚举 'json',可选,默认值'json')importProject:
project_data(字符串,必需,JSON),new_project_name(字符串,可选,最大长度255){ project_id: string }。updateTask:
project_id(字符串,必需,UUID),task_id(字符串,必需,UUID),description(字符串,可选,长度1-1024),priority(枚举 'high'|'medium'|'low',可选),dependencies(字符串数组,可选,最大长度50,替换现有)FullTaskData对象。deleteTask:
project_id(字符串,必需,UUID),task_ids(字符串数组,必需,长度1-100){ success: true, deleted_count: number }deleteProject:
project_id(字符串,必需,UUID){ success: true }(注意:请参阅对应的src/tools/*Params.ts文件获取详细的Zod模式和参数描述。)
前提条件: Node.js(推荐长期支持版本),npm。
安装依赖:
npm install
开发模式运行: (使用ts-node和nodemon自动重新加载)
npm run dev
服务器将通过stdio连接。日志(JSON格式)将打印到stderr。SQLite数据库将在./data/taskmanager.db创建/更新。
构建生产环境:
npm run build
运行生产构建:
npm start
DATABASE_PATH环境变量覆盖SQLite数据库文件的位置。默认位置是./data/taskmanager.db。LOG_LEVEL环境变量(例如,debug,info,warn,error)。默认值是info。/src:源代码。
/config:配置管理。/db:数据库管理器和模式(schema.sql)。/repositories:数据访问层(SQLite交互)。/services:核心业务逻辑。/tools:MCP工具定义(*Params.ts)和实现(*Tool.ts)。/types:共享TypeScript接口(目前较少,主要在repos/services)。/utils:日志记录、自定义错误等。createServer.ts:服务器实例创建。server.ts:主应用程序入口点。/dist:编译后的JavaScript输出。/docs:项目文档(PRD,功能规格,RFC)。/data:SQLite数据库文件的默认位置(自动创建)。tasks.md:开发期间的手动任务跟踪文件。package.json,tsconfig.json,.eslintrc.json等)。npm run lintnpm run format(代码在提交时会自动通过Husky/lint-staged进行检查和格式化)。