关于 Dida MCP Server
Dida MCP Server 通过 TickTick/Dida365 API 管理任务、项目和标签,供 AI 助手整理日程与待办事项。它包含基于 GTD 的内置提示词,并支持批量任务操作。
主要功能
- 01创建、查询、更新和删除任务
- 02管理项目并移动任务
- 03批量更新、删除和移动任务
- 04OAuth 与用户名密码认证
- 05内置 GTD 整理提示词
- 06缓存项目与标签数据
适用场景
- 01在 TickTick/Dida365 中维护任务和项目
- 02批量整理或移动待办任务
- 03按 GTD 方法处理收件箱任务
- 04查看缓存的项目与标签数据
MCP 相关
该 MCP 服务向兼容客户端提供 TickTick/Dida365 的任务、项目、认证和缓存数据工具,并附带 GTD 相关提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Dida MCP 服务
用于与 TickTick/Dida365 任务管理服务交互的模型上下文协议(MCP)服务。此服务通过 TickTick API 提供用于管理任务、项目和标签的工具。
概览
Dida MCP 服务基于模型上下文协议框架构建,可让 AI 助手与您的 TickTick/Dida365 账户交互。它提供了一套全面的任务和项目管理工具,让 AI 助手能够根据 GTD(搞定)原则帮助整理任务。
功能
- 身份验证:通过 OAuth 对 TickTick/Dida365 API 进行身份验证
- 任务管理:创建、读取、更新、删除和移动任务
- 项目管理:创建、读取、更新和删除项目
- 批量操作:高效地一次管理多个任务
- GTD 助手:内置用于基于 GTD 整理任务的系统提示词
- 缓存数据:高效缓存项目和标签数据
先决条件
- Node.js(v16 或更高版本)
- npm(v7 或更高版本)
- TickTick/Dida365 账户
- 从 Dida365 开发者中心获取的客户端 ID 和客户端密钥(用于 OAuth 身份验证)
安装
选项 1:从 npm 安装(推荐)
# Install globally
npm install -g dida-mcp-server
# Or install locally in your project
npm install dida-mcp-server
选项 2:从源代码安装
# Clone the repository
git clone https://github.com/zhongwencool/dida-mcp-server.git
cd dida-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
身份验证
使用服务之前,您需要通过 TickTick/Dida365 进行身份验证。服务支持两种身份验证方式:
- OAuth 身份验证(V1 API):使用带有 OAuth 令牌的 Dida365 Open API
- 用户名/密码身份验证(V2 API):使用带有会话令牌的内部 API
使用 get-access-token
get-access-token 脚本可处理两个 API 版本的身份验证流程。使用方法如下:
# If installed globally
dida-get-token
# If installed locally or from source
npm run get-token
脚本将:
- 提示您输入 TickTick/Dida365 用户名和密码(用于 V2 API)
- 提示您输入客户端 ID 和客户端密钥([用于 V1 API OAuth])
- 在端口 3000 上启动本地服务,以处理 OAuth 回调
- 打开浏览器以授权应用程序
- 将授权码交换为访问令牌
- 将两个令牌保存到配置文件
~/.dida-mcp-config.json中 - 显示包含令牌信息和 MCP 服务配置的成功页面
OAuth 身份验证的先决条件
要使用 OAuth 身份验证,您需要:
- 在 Dida365 开发者中心注册应用程序
- 将重定向 URI 设置为
http://localhost:3000/oauth/callback - 获取客户端 ID 和客户端密钥
配置文件
身份验证流程会在 ~/.dida-mcp-config.json 创建配置文件,结构如下:
{
"access_token": "your-v1-oauth-token",
"refresh_token": "your-refresh-token",
"expires_at": 1234567890000,
"token_type": "bearer",
"v2_access_token": "your-v2-session-token",
"inboxId": "your-inbox-project-id"
}
服务启动时会自动检测并使用此文件。
使用方法
启动服务
# If installed globally
dida-mcp-server
# If installed locally or from source
npm start
服务会自动尝试使用已存储的令牌进行身份验证,并显示身份验证状态。
使用 MCP 客户端连接
您可以使用任何兼容 MCP 的客户端连接到服务。服务提供的配置可添加到 MCP 客户端配置中:
{
"mcpServers": {
"dida": {
"command": "dida-mcp-server"
}
}
}
如果您是在本地安装的,也可以使用:
{
"mcpServers": {
"dida": {
"command": "node",
"args": [
"/path/to/node_modules/dida-mcp-server/dist/index.js"
]
}
}
}
可用工具
身份验证工具
check-auth-status:检查当前身份验证状态
项目管理工具
list-projects:获取所有项目create-project:创建新项目update-project:更新现有项目delete-project:删除项目refresh-project-cache:手动刷新项目缓存
任务管理工具
list-tasks:获取项目中的任务(默认为收集箱)create-task:创建新任务get-task:按 ID 获取特定任务update-task:更新任务batch-update-tasks:一次更新多个任务complete-task:将任务标记为已完成delete-task:删除任务batch-delete-tasks:一次删除多个任务move-task:将任务移至其他项目batch-move-tasks:将多个任务移至其他项目
数据查询工具
list-cached-data:查看缓存的项目和标签数据
系统提示词
该服务包含两个内置提示词:
- GTD 助手提示词:提供如何使用这些工具实施 GTD 方法的指导
- 处理收集箱提示词:帮助按照 GTD 原则整理收集箱任务的用户级提示词
开发
在开发模式下运行
npm run dev
这将以监视模式启动服务,在发生更改时自动重新编译并重启。
运行测试
npm test
也可以在监视模式下运行测试:
npm run test:watch
项目结构
├── dist/ # Compiled JavaScript files
├── src/
│ ├── auth/ # Authentication-related code
│ ├── projects/ # Project management tools
│ ├── resources/ # Resource definitions (cached data)
│ ├── tasks/ # Task management tools
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions
│ ├── config.ts # Configuration management
│ ├── get-access-token.ts # Token acquisition script
│ ├── index.ts # Main server entry point
│ └── systemPrompt.ts # GTD assistant system prompt
├── tests/ # Test files
├── package.json # Project metadata and dependencies
├── LICENSE # ISC License file
└── tsconfig.json # TypeScript configuration
API 文档
本项目使用 Dida365 Open API。更多信息,请参阅 Dida365 Open API 文档。
许可证
ISC
发布到 NPM
要将软件包发布到 NPM,请按以下步骤操作:
# Login to npm (if not already logged in)
npm login
# Build the project
npm run build
# Test the package
npm test
# Publish to npm
npm publish
要更新软件包:
- 更新
package.json中的版本 - 运行
npm publish
参与贡献
欢迎贡献!欢迎提交 Pull Request。
致谢
- 感谢 Model Context Protocol 提供 MCP 框架
- 感谢 TickTick/Dida365 提供任务管理服务
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。