Task MCP

Task MCP

Enables AI assistants to manage Dida365 (滴答清单) tasks through the Model Context Protocol. It supports full task lifecycle management including creating, updating, and filtering tasks with automatic timezone handling.

Category
访问服务器

README

Task MCP - 滴答清单 MCP 服务器

<p align="center"> <img src="https://img.shields.io/badge/MCP-1.0.0-blue?style=flat-square" alt="MCP Version"> <img src="https://img.shields.io/badge/TypeScript-5.0-blue?style=flat-square&logo=typescript" alt="TypeScript"> <img src="https://img.shields.io/badge/Node.js-20+-green?style=flat-square&logo=node.js" alt="Node.js"> <img src="https://img.shields.io/badge/License-MIT-yellow?style=flat-square" alt="License"> </p>

一个基于 Model Context Protocol (MCP) 的 TypeScript 项目,用于与 滴答清单 (Dida365) 进行 API 集成,允许 AI 助手(如 Claude、Gemini 等)通过 MCP 协议管理用户的滴答清单任务。

✨ 功能特性

  • 🔄 完整的任务管理: 支持获取、创建、更新、删除、完成任务
  • 📅 智能日期筛选: 支持今天、昨天、最近7天等多种筛选模式
  • 🏷️ 项目管理: 自动匹配项目名称,支持模糊匹配
  • 🕐 时区处理: 自动处理 UTC 与北京时间的转换
  • 参数验证: 使用 Zod 进行严格的输入校验

📁 项目结构

task-mcp/
├── .env                    # 环境变量配置
├── .env.example            # 环境变量示例
├── package.json            # 项目配置
├── tsconfig.json           # TypeScript 配置
├── didaAPI.md              # 滴答清单 OpenAPI 完整文档
└── src/
    ├── index.ts            # 主入口:MCP 服务器 + HTTP 端点
    ├── api/
    │   └── dida.ts         # 滴答清单 API 客户端封装
    ├── tools/
    │   └── task.ts         # 任务工具实现(核心业务逻辑)
    ├── types/
    │   └── index.ts        # TypeScript 类型定义
    └── utils/
        └── date.ts         # 日期工具(UTC ↔ 北京时间转换)

🚀 快速开始

1. 安装依赖

yarn install
# 或
npm install

2. 配置环境变量

复制 .env.example.env 并填写配置:

cp .env.example .env

编辑 .env 文件:

# 滴答清单 API 访问令牌
DIDA_ACCESS_TOKEN=your_access_token_here

# 服务端口(可选,默认 3000)
PORT=3010

💡 获取 Access Token: 访问 滴答清单开发者中心 注册应用并完成 OAuth 授权流程。

3. 启动服务

# 开发模式(热重载)
yarn dev

# 生产模式
yarn start

服务启动后,MCP 端点为:http://localhost:3010/mcp

🔧 MCP 工具

本项目提供以下 5 个 MCP 工具:

get_tasks - 获取任务列表

获取任务列表,支持多种筛选条件。

参数 类型 必需 说明
mode string 筛选模式:all(默认)、todayyesterdayrecent_7_days
keyword string 关键词,匹配任务标题或内容
priority number 优先级:0-无、1-低、3-中、5-高
project_name string 项目名称筛选
completed boolean 完成状态:true-已完成、false-未完成

create_task - 创建任务

创建新任务。

参数 类型 必需 说明
title string 任务标题
content string 任务内容/描述
priority number 优先级:0-无、1-低、3-中、5-高
project_name string 项目名称
start_date string 开始日期,格式:YYYY-MM-DDYYYY-MM-DD HH:MM:SS
due_date string 截止日期,格式同上
is_all_day boolean 是否全天任务
reminder string 提醒选项:"0"(准时)、"-5M"(提前5分钟)、"-1H"(提前1小时)、"-1D"(提前1天)

update_task - 更新任务

更新现有任务的属性。

参数 类型 必需 说明
task_id string 任务 ID 或任务标题
title string 新任务标题
content string 新任务内容
priority number 新优先级
project_name string 新项目名称
start_date string 新开始日期
due_date string 新截止日期
status number 新状态:0-未完成、2-已完成

⚠️ 注意: 将 status 设置为 2 会调用完成任务接口。取消完成(status=0)不受官方 API 支持。

delete_task - 删除任务

删除指定任务。

参数 类型 必需 说明
task_id string 任务 ID 或任务标题

complete_task - 完成任务

将任务标记为已完成。

参数 类型 必需 说明
task_id string 任务 ID 或任务标题

🌐 技术架构

┌─────────────────┐     HTTP/MCP      ┌─────────────────┐     HTTPS     ┌─────────────────┐
│   AI 助手       │ ◄──────────────► │   Task MCP      │ ◄───────────► │  滴答清单 API   │
│ (Claude/Gemini) │                   │   (本服务)       │               │  api.dida365.com│
└─────────────────┘                   └─────────────────┘               └─────────────────┘
  • 传输协议: StreamableHTTPServerTransport
  • HTTP 端点: /mcp(MCP 通信)、/health(健康检查)
  • API 客户端: 基于 Fetch API 封装滴答清单 OpenAPI
  • 时区处理: 自动处理 UTC ↔ 北京时间 (Asia/Shanghai) 转换

📝 使用示例

在 MCP 客户端中配置

{
  "mcpServers": {
    "task-mcp": {
      "url": "http://localhost:3010/mcp"
    }
  }
}

示例对话

用户:帮我查看今天的任务

AI:调用 get_tasks 工具,参数 mode="today"

用户:创建一个任务"完成项目报告",高优先级,截止日期是明天

AI:调用 create_task 工具,参数 title="完成项目报告", priority=5, due_date="2026-01-30"

用户:把"完成项目报告"标记为完成

AI:调用 complete_task 工具,参数 task_id="完成项目报告"

🔑 优先级对照表

含义 滴答清单显示
0 无优先级 无标记
1 低优先级 🔵 蓝色
3 中优先级 🟡 黄色
5 高优先级 🔴 红色

📚 相关文档

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选