任务管理协议服务器

TickTick MCP Server是一个连接AI助手与TickTick任务的协议服务器,支持通过MCP客户端查询、创建和管理任务及项目。

  • by ainishanov
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 ainishanov/ticktick-mcp

使用说明

TickTick MCP服务器

将AI助手连接到TickTick。

TickTick MCP是一种 模型上下文协议(MCP) 服务器 TickTick。它允许Claude和其他MCP客户端从聊天中读取项目、查找任务、创建任务和完成工作。

你能做什么

  • 问今天要交什么。
  • 查找过期或高优先级的任务。
  • 创建任务和检查表项。
  • 更新、完成或删除任务。
  • 管理TickTick项目。

特征

项目管理

  • 📁 获取项目 -列出您的所有TickTick项目/列表
  • 📁 按ID获取项目 -获取具体项目详细信息
  • 📁 使用数据获取项目 -获取包含所有任务和看板列的项目
  • ➕ 创建项目 -使用自定义颜色和视图模式创建新项目
  • ✏️ 更新项目 -修改项目设置
  • 🗑️ 删除项目 -删除项目

任务查询

  • ✅ 获取任务 -从所有项目或特定项目中检索任务
  • 📅 今天的任务 -获取今天到期的任务
  • ⚠️ 逾期任务 -让任务超过截止日期
  • 🎯 优先级筛选器 -获得高/中优先级任务
  • 🏷️ 按标签筛选 -获取带有特定标签的任务
  • 🏷️ 获取所有标签 -列出所有唯一标签

任务管理

  • ➕ 创建任务 -添加带有标题、优先级和截止日期的新任务
  • ➕ 使用子任务创建 -添加带有检查表项目的任务
  • ➕ 添加子任务 -将子任务添加到现有任务中
  • ✔️ 完成任务 -将任务标记为已完成
  • ✏️ 更新任务 -修改现有任务
  • 🗑️ 删除任务 -删除任务

安装

选项1:pip安装(推荐)

pip install ticktick-mcp

选项2:来源

git clone https://github.com/ainishanov/ticktick-mcp.git
cd ticktick-mcp
pip install -e .

设置

1.获取TickTick API访问令牌

  1. 首选 TickTick开发者门户
  2. 创建新应用程序
  3. 完成OAuth2流程以获取您的访问令牌
  4. 复制访问令牌

2.配置环境

创建一个 .env 项目目录中的文件:

cp .env.example .env

编辑 .env 并添加您的令牌:

TICKTICK_ACCESS_TOKEN=your_access_token_here

3.配置MCP客户端

pip install 添加 ticktick-mcp 到你的Python环境,所以 cwd 通常不需要。 对于源代码签出,请设置 cwd 到 /path/to/ticktick-mcp/src 因此Python可以导入 ticktick_mcp 来自本地源代码树。

3a。克劳德桌面

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\Claude Desktop\claude_desktop_config.json

{
  "mcpServers": {
    "ticktick": {
      "command": "python",
      "args": ["-m", "ticktick_mcp.server"],
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

如果从源代码运行:

{
  "mcpServers": {
    "ticktick": {
      "command": "python",
      "args": ["-m", "ticktick_mcp.server"],
      "cwd": "/path/to/ticktick-mcp/src",
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

3b。克劳德代码(CLI)

添加 ~/.mcp.json (macOS/Linux)或 %USERPROFILE%\.mcp.json (Windows):

{
  "mcpServers": {
    "ticktick": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "ticktick_mcp.server"],
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

来源:

{
  "mcpServers": {
    "ticktick": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "ticktick_mcp.server"],
      "cwd": "/path/to/ticktick-mcp/src",
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

3c。光标

在Cursor的配置中添加新的MCP条目(通常 ~/.cursor/mcp.json):

{
  "mcpServers": {
    "ticktick": {
      "command": "python",
      "args": ["-m", "ticktick_mcp.server"],
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

3d。继续

添加到Continue的MCP配置文件(例如, ~/.continue/config.json):

{
  "mcpServers": {
    "ticktick": {
      "command": "python",
      "args": ["-m", "ticktick_mcp.server"],
      "cwd": "/path/to/ticktick-mcp/src",
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

3e。通用stdio兼容MCP配置

大多数MCP客户端接受类似的形状。使用相同的块格式并将其放置在 您客户的MCP服务器配置区域:

{
  "mcpServers": {
    "ticktick": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "ticktick_mcp.server"],
      "cwd": "/path/to/ticktick-mcp/src",
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

4.重新启动MCP客户端

配置后,重新启动MCP客户端以加载服务器。

如果工具未出现或服务器报告身份验证错误,请参阅 故障排除.

使用示例

配置后,您可以询问Claude:

  • “我今天有什么任务?”
  • “显示所有高优先级任务”
  • “创建一个任务‘审查PR#123’,该任务具有明天到期的高优先级”
  • “将项目yyy中的任务ID xxx标记为已完成”
  • “TickTick中有哪些项目?”

可用工具

项目工具

工具 说明
get_projects 列出所有TickTick项目
get_project_by_id 按ID获取特定项目
get_project_with_data 获取包含任务和列的项目
create_project 创建新项目
update_project 更新项目设置
delete_project 删除项目

任务查询工具

工具 说明
get_tasks 获取任务(全部或按项目)
get_today_tasks 获取今天到期的任务
get_overdue_tasks 获取过期任务
get_high_priority_tasks 获得高/中优先级任务
get_tasks_by_tag 按标签获取任务
get_all_tags 列出所有唯一标签

任务管理工具

工具 说明
create_task 创建新任务
create_task_with_subtasks 使用检查表创建任务
add_subtask 将子任务添加到现有任务中
complete_task 将任务标记为已完成
update_task 更新任务详细信息
delete_task 删除任务

优先级

值 级别 表情符号
0 无 ⚪
1 低 🔵
3 中等 🟡
5 高 🔴

发展

# Clone repo
git clone https://github.com/ainishanov/ticktick-mcp.git
cd ticktick-mcp

# Create virtual environment
python -m venv venv
source venv/bin/activate  # or `venv\Scripts\activate` on Windows

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Lint
ruff check .

OAuth2令牌生成

如果你需要以编程方式生成访问令牌,这里有一个辅助脚本:

import httpx

CLIENT_ID = "your_client_id"
CLIENT_SECRET = "your_client_secret"
REDIRECT_URI = "http://localhost:8080/callback"

# Step 1: Get authorization URL
auth_url = f"https://ticktick.com/oauth/authorize?client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}&response_type=code&scope=tasks:read tasks:write"
print(f"Open this URL in browser:\n{auth_url}")

# Step 2: After redirect, exchange code for token
code = input("Enter the code from redirect URL: ")

response = httpx.post(
    "https://ticktick.com/oauth/token",
    data={
        "client_id": CLIENT_ID,
        "client_secret": CLIENT_SECRET,
        "code": code,
        "grant_type": "authorization_code",
        "redirect_uri": REDIRECT_URI,
    },
)

print(response.json())
# Save the access_token to your .env file

贡献

欢迎捐款。从...开始 贡献.md 并避免提交访问令牌、OAuth秘密等, .env 文件或私有任务数据。

好的第一个贡献是小测试,文档改进,重点错误消息改进,或模拟TickTick API固定装置。

发布新版本的维护人员应遵循 发布清单.

安全

不要使用凭据或私有任务数据打开公共问题。看 安全.md.

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

致谢