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:latestClaude桌面配置
添加到您的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/port9工具
| 工具 | 类型 | 描述 |
|---|---|---|
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)