TickTick任务管理代理服务

yattmcp是一个为AI代理提供完整TickTick任务管理功能的MCP服务器,简化了API调用并提供了友好的抽象接口。

  • by mjkoo
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 mjkoo/yattmcp

使用说明

yattmcp

还有另一个TickTick MCP——一个MCP服务器,它为人工智能代理提供TickTik上的完整任务管理,而不会暴露每个API恶意软件。

为什么是这个?

大多数TickTick MCP服务器要么以1:1镜像原始API(数字优先级、奇怪的日期格式、内部字段,如 sortOrder)或者使用50多个“工作流”工具,这些工具会扩大工具列表并混淆模型选择。yattmcp采取了不同的方法:

9个工具。完全CRUD。对代理友好的抽象。

  • 标准化数据 --优先级是 "high",不 5.接受日期 "2025-03-15" 并得到转换。 isAllDay 根据您的日期格式自动检测。子任务包括 {title, isCompleted},不 {title, status: 0}.
  • 一个可组合的搜索工具 --而不是分开 get_overdue_tasks, get_todays_tasks, get_high_priority_tasks 工具,只有一个 ticktick_search_tasks 带有与AND逻辑组合的可选过滤器。想要逾期的高优先级任务吗?一个电话。
  • 坦诚面对局限性 --工具描述告诉代理,已完成的任务是不可检索的,完成是单向的,两者都是 taskId 和 projectId 需要(以及为什么)。没有无声的失败。
  • 工具注释 --每个工具都声明 readOnlyHint, destructiveHint,以及 idempotentHint 因此,代理人可以在致电之前对风险进行推理。

认证

yattmcp使用通过 TICKTICK_API_TOKEN 环境变量。

获得代币的最简单方法是直接从TickTick获得: 简介->设置->订阅->API代币。这为您提供了一个不会过期的长期令牌。

或者,您可以使用通过TickTick获得的OAuth2访问令牌 开发者门户,但您需要自己处理令牌刷新——yattmcp不管理OAuth2生命周期。

快速开始

随着 uv (推荐)

# Install and run
uvx yattmcp serve

# Or clone and run from source
git clone https://github.com/mjkoo/yattmcp.git
cd yattmcp
uv run yattmcp serve

使用Docker

docker run -e TICKTICK_API_TOKEN=your-token ghcr.io/mjkoo/yattmcp:latest

Claude桌面配置

添加到您的Claude Desktop MCP配置中:

{
  "mcpServers": {
    "ticktick": {
      "command": "uvx",
      "args": ["yattmcp", "serve"],
      "env": {
        "TICKTICK_API_TOKEN": "your-token-here"
      }
    }
  }
}

环境变量

变量 必填 描述
TICKTICK_API_TOKEN 是 TickTick开放API承载令牌
TICKTICK_INBOX_PROJECT_ID 否 收件箱的项目ID(默认为 "inbox").设置此选项,以便代理可以在不指定项目的情况下创建任务。

A. .env 工作目录中的文件会自动加载。

运输选项

yattmcp serve                              # stdio (default, for Claude Desktop)
yattmcp serve --transport streamable-http  # HTTP streaming
yattmcp serve --transport sse              # Server-sent events
yattmcp serve --transport http             # Plain HTTP
yattmcp serve --host 0.0.0.0 --port 8080  # Bind to specific host/port

9工具

工具 类型 描述
ticktick_list_projects 阅读 列出所有带有ID、名称、颜色和视图模式的项目。大多数工作流的入口点。
ticktick_get_project_tasks 阅读 获取项目中的所有活动任务。
ticktick_get_task 阅读 按ID获取单个任务的完整详细信息
ticktick_search_tasks 阅读 按查询、优先级、日期范围或项目搜索和筛选所有项目。
ticktick_create_project 编写 创建一个具有名称、颜色和视图模式的项目。
ticktick_delete_project 破坏性 永久删除项目及其所有任务。
ticktick_create_task 编写 创建一个包含标题、优先级、日期和子任务的任务。灵活的日期格式自动规范化。
ticktick_update_task 写入 部分更新--仅发送您要更改的字段。自动获取和合并。
ticktick_complete_task 写入 将任务标记为完成(单向;API没有不完整的端点)。

发展

需要Python 3.14+和 紫外线.

uv sync                  # Install dependencies
uv run pytest            # Run tests
uv run ruff check .      # Lint
uv run ruff format .     # Format
uv run mypy src/         # Type check (strict mode)