与TickTick/Dida365任务管理服务交互的模型上下文协议(MCP)服务器。此服务器通过TickTick API提供了管理任务、项目和标签的工具。
Dida MCP Server 基于 Model Context Protocol 框架构建,使AI助手能够与您的TickTick/Dida365账户进行交互。它提供了一整套任务和项目管理工具,允许AI助手根据GTD(Getting Things Done)原则帮助您组织任务。
# 全局安装
npm install -g dida-mcp-server
# 或在项目中本地安装
npm install dida-mcp-server
# 克隆仓库
git clone https://github.com/zhongwencool/dida-mcp-server.git
cd dida-mcp-server
# 安装依赖
npm install
# 构建项目
npm run build
在使用服务器之前,您需要与TickTick/Dida365进行认证。服务器支持两种认证方法:
get-access-token脚本处理两个API版本的认证过程。要使用它:
# 如果全局安装
dida-get-token
# 如果本地安装或从源码安装
npm run get-token
该脚本将:
~/.dida-mcp-config.json中要使用OAuth认证,您需要:
http://localhost:3000/oauth/callback认证过程会在~/.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"
}
当服务器启动时,会自动检测并使用此文件中的配置。
# 如果全局安装
dida-mcp-server
# 如果本地安装或从源码安装
npm start
服务器将尝试使用存储的令牌进行自动认证,并显示认证状态。
您可以使用任何兼容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:查看缓存的项目和标签数据服务器包括两个内置提示:
npm run dev
这将以监视模式启动服务器,当更改发生时会自动重新编译和重启。
npm test
或者以监视模式运行测试:
npm run test:watch
├── dist/ # 编译后的JavaScript文件
├── src/
│ ├── auth/ # 与认证相关的代码
│ ├── projects/ # 项目管理工具
│ ├── resources/ # 资源定义(缓存数据)
│ ├── tasks/ # 任务管理工具
│ ├── types/ # TypeScript类型定义
│ ├── utils/ # 工具函数
│ ├── config.ts # 配置管理
│ ├── get-access-token.ts # 令牌获取脚本
│ ├── index.ts # 主服务器入口点
│ └── systemPrompt.ts # GTD助手系统提示
├── tests/ # 测试文件
├── package.json # 项目元数据和依赖项
├── LICENSE # ISC许可证文件
└── tsconfig.json # TypeScript配置
该项目使用Dida365开放API。更多信息,请参阅Dida365开放API文档。
ISC
要将包发布到NPM,请遵循以下步骤:
# 登录到npm(如果尚未登录)
npm login
# 构建项目
npm run build
# 测试包
npm test
# 发布到npm
npm publish
要更新包:
package.json中的版本npm publish欢迎贡献!请随时提交Pull Request。