Skip to main content
Glama

Task MCP - 滴答清单 MCP 服务器

一个基于 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

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Clearner1/task-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server