kexin-todo
v1.0.3
Published
A Personal Task Schedule Mcp Support LLM To Manage Users Tasks
Readme
Todo MCP Server
一个基于 Model Context Protocol (MCP) 的个人任务管理服务器,支持 LLM 管理用户任务。
功能特性
- ✅ 创建任务 - 支持创建新的任务,包含标题、描述、状态、优先级、截止日期和标签
- ✏️ 修改任务 - 支持更新任务的各种属性
- 🗑️ 删除任务 - 支持删除指定的任务
- 📋 查询任务列表 - 支持按状态、优先级、标签筛选任务列表
- 🔍 查询任务详情 - 获取单个任务的完整信息
- 📊 获取分析数据 - 提供任务统计和分析数据
- 🕐 获取当前时间 - 支持多种格式和时区的当前时间获取
- 📅 日期计算 - 支持日期的加减运算和差值计算
数据库设计
使用 SQLite 数据库存储任务数据,表结构如下:
CREATE TABLE tasks (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
description TEXT,
status TEXT DEFAULT 'pending' CHECK(status IN ('pending', 'in_progress', 'completed', 'cancelled')),
priority TEXT DEFAULT 'medium' CHECK(priority IN ('low', 'medium', 'high', 'urgent')),
due_date TEXT,
tags TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);安装和运行
- 安装依赖:
npm install- 启动服务器:
npm startMCP 客户端配置
如果你使用支持 MCP 的客户端(如 Claude Desktop),可以在配置文件中添加:
{
"mcpServers": {
"todo": {
"command": "node",
"args": ["index.js"],
"cwd": "/path/to/your/todo/directory"
}
}
}故障排除
ENOENT 错误
如果遇到 spawn index.js ENOENT 错误,请确保:
- 文件有执行权限:
chmod +x index.js - 使用正确的启动命令:
node index.js而不是直接执行index.js - 在 MCP 配置中使用
"command": "node"和"args": ["index.js"]
测试服务器
可以通过以下命令测试服务器是否正常启动:
echo 'test' | node index.js如果看到 "Todo MCP 服务器已启动" 和 "数据库表初始化成功" 消息,说明服务器运行正常。
MCP 工具列表
1. create_task
创建新任务
参数:
title(必填): 任务标题description: 任务描述status: 任务状态 (pending, in_progress, completed, cancelled)priority: 优先级 (low, medium, high, urgent)due_date: 截止日期 (YYYY-MM-DD格式)tags: 标签,多个标签用逗号分隔
2. update_task
更新任务信息
参数:
id(必填): 任务ID- 其他参数同 create_task
3. delete_task
删除任务
参数:
id(必填): 要删除的任务ID
4. get_task
获取任务详情
参数:
id(必填): 任务ID
5. list_tasks
获取任务列表
参数:
status: 按状态筛选priority: 按优先级筛选tags: 按标签筛选limit: 限制返回数量
6. get_analytics
获取任务分析数据
参数: 无
7. get_current_time
获取当前时间
参数:
format: 时间格式 (iso, date, time, datetime, timestamp)iso: ISO 8601 格式 (默认)date: YYYY-MM-DD 格式time: HH:MM:SS 格式datetime: YYYY-MM-DD HH:MM:SS 格式timestamp: Unix 时间戳
timezone: 时区,如 Asia/Shanghai, UTC, America/New_York
8. calculate_date
计算日期
参数:
operation(必填): 操作类型 (add, subtract, diff)base_date: 基准日期 (YYYY-MM-DD格式),不提供则使用当前日期value: 数值(用于 add 和 subtract 操作)unit: 时间单位 (days, weeks, months, years)target_date: 目标日期 (YYYY-MM-DD格式,用于 diff 操作)
使用示例
在支持 MCP 的 LLM 客户端中,你可以这样使用:
创建一个高优先级的任务:"完成项目文档"
更新任务状态为进行中
查看所有待办任务
获取任务统计数据
获取当前时间(北京时间)
计算30天后的日期
计算两个日期之间的差值技术栈
- Node.js - 运行环境
- SQLite3 - 数据库
- @modelcontextprotocol/sdk - MCP SDK
- ES Modules - 模块系统
许可证
MIT License
