ticktick-mcp
MCP-сервер TickTick — полная интеграция TickTick для Claude
28 инструментов. Полный CRUD. Умные запросы. Фильтры по нескольким условиям. Пакетные операции. Поддержка GTD. Совместимость с Dida365.
Подключите Claude к своей учетной записи TickTick и управляйте всей системой задач с помощью естественного общения — создавайте задачи, ищите по проектам, проверяйте просроченные дела, создавайте элементы пачками и оставайтесь организованными, не открывая приложение.
«Что просрочено?» --> Мгновенно показывает все пропущенные сроки по всем проектам.
Почему именно этот сервер?
Функция | Этот сервер | Официальный MCP TickTick | jacepark12 |
Инструменты | 28 | 22 | ~20 |
Фильтр по нескольким условиям | Да (приоритет + тег + дата + проект) | Да | Нет |
Перемещение задачи между проектами | Да | Да | Нет |
Массовое завершение | Да (до 20) | Да (до 20) | Нет |
Пакетное обновление | Да | Да | Нет |
Просмотр завершенных задач | Да | Да | Нет |
Поиск по проектам | Полнотекстовый поиск | Да | Да |
Подзадачи | Да | Нет | Нет |
Режим фокуса GTD | Да (высокий приоритет + срок + просрочено) | Нет | Частично |
Поддержка Dida365 | Да (настраиваемый базовый URL) | Нет | Да |
Асинхронность (httpx) | Да | Н/Д | Нет (синхронные запросы) |
Валидация Pydantic | Да (типизированные входные данные) | Н/Д | Нет |
Аннотации MCP | Да (readOnly, подсказки об удалении) | Н/Д | Нет |
Self-hosted / open source | Да | Нет (хостинг-сервис) | Да |
Конфиденциальность | 100% локально, только ваши токены | Через серверы TickTick | 100% локально |
Related MCP server: mcp-server-asana
Быстрый старт
Предварительные требования
Учетная запись TickTick
Python 3.10+
Claude Code или Claude Desktop
Шаг 1 — Клонирование и установка
git clone https://github.com/Salen-Project/ticktick-mcp
cd ticktick-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txtШаг 2 — Регистрация приложения разработчика TickTick
Перейдите на developer.ticktick.com
Нажмите New App и введите любое имя
Установите OAuth Redirect URL на:
http://localhost:8080/callbackСкопируйте Client ID и Client Secret
Шаг 3 — Аутентификация
TICKTICK_CLIENT_ID=your_id TICKTICK_CLIENT_SECRET=your_secret .venv/bin/python3 setup_auth.pyЭто откроет браузер для авторизации приложения. Нажмите Allow — токены будут сохранены в ~/.ticktick_mcp/tokens.json и будут обновляться автоматически.
Шаг 4 — Регистрация в Claude Code
claude mcp add ticktick \
-e TICKTICK_CLIENT_ID=your_id \
-e TICKTICK_CLIENT_SECRET=your_secret \
-- /path/to/ticktick-mcp/.venv/bin/python3 /path/to/ticktick-mcp/server.pyДля Claude Desktop
Добавьте в ваш claude_desktop_config.json:
{
"mcpServers": {
"ticktick": {
"type": "stdio",
"command": "/path/to/ticktick-mcp/.venv/bin/python3",
"args": ["/path/to/ticktick-mcp/server.py"],
"env": {
"TICKTICK_CLIENT_ID": "your_id",
"TICKTICK_CLIENT_SECRET": "your_secret"
}
}
}
}Шаг 5 — Добавление навыка продуктивности (опционально)
mkdir -p ~/.claude/skills/ticktick
cp skills/ticktick/SKILL.md ~/.claude/skills/ticktick/Поддержка Dida365
Для Dida365 (китайская версия TickTick) установите следующие переменные окружения:
TICKTICK_BASE_URL=https://api.dida365.com/open/v1
TICKTICK_TOKEN_URL=https://dida365.com/oauth/tokenПримеры использования
Вы говорите | Что происходит |
«Напомни позвонить стоматологу в пятницу» | Задача создана с датой выполнения |
«Добавь 'проверить отчет за 1 квартал' в Работу, высокий приоритет» | Задача в проекте «Работа», приоритет 5 |
«Что просрочено?» | Показывает все просроченные задачи по всем проектам |
«На чем мне сосредоточиться?» | Режим фокуса GTD: высокий приоритет + срок сегодня + просрочено |
«Найди что-нибудь про 'бюджет'» | Полнотекстовый поиск по всем проектам |
«Покажи все задачи с высоким приоритетом» | Фильтрация по приоритету=5 по всем проектам |
«Что нужно сделать на этой неделе?» | Задачи со сроком в ближайшие 7 дней |
«Создай задачи: купить молоко, позвонить Джону, сдать отчет» | Пакетное создание 3 задач |
«Создай проект под названием 'Планирование отпуска'» | Создан новый проект |
«Добавь подзадачу 'Купить солнцезащитный крем' к задаче об отпуске» | Создана подзадача |
«Я закончил задачу со стоматологом» | Задача помечена как завершенная |
«Удали старый проект Sprint» | Проект и все задачи удалены |
Справочник инструментов MCP
Проекты (5 инструментов)
Инструмент | Описание |
| Список всех проектов с ID, названиями, цветами |
| Получить детали конкретного проекта |
| Получить детали проекта + все незавершенные задачи за один вызов |
| Создать новый проект (название, цвет, режим просмотра) |
| Обновить название, цвет или режим просмотра проекта |
| Безвозвратно удалить проект |
Задачи — Базовый CRUD (7 инструментов)
Инструмент | Описание |
| Список всех задач в конкретном проекте |
| Создать задачу (название, срок, приоритет, проект, теги) |
| Получить полные детали конкретной задачи |
| Обновить название, содержание, даты или приоритет |
| Пометить задачу как завершенную |
| Безвозвратно удалить задачу |
| Создать подзадачу для родительской задачи |
Задачи — Умные запросы (7 инструментов)
Инструмент | Описание |
| Получить все задачи по всем активным проектам |
| Полнотекстовый поиск по названиям, содержанию, подзадачам |
| Фильтр по приоритету (Нет/Низкий/Средний/Высокий) |
| Задачи со сроком сегодня по всем проектам |
| Все просроченные задачи по всем проектам |
| Задачи со сроком в ближайшие 7 дней |
| Задачи со сроком ровно через N дней |
Задачи — Пакетные операции и продуктивность (5 инструментов)
Инструмент | Описание |
| Создать несколько задач одновременно |
| Обновить несколько задач одновременно |
| Пометить до 20 задач как завершенные одновременно |
| Переместить задачу из одного проекта в другой |
| Режим фокуса GTD: высокий приоритет + срок сегодня + просрочено |
Задачи — Расширенные фильтры (2 инструмента)
Инструмент | Описание |
| Фильтр по нескольким условиям: приоритет + тег + диапазон дат + проект + статус |
| Просмотр завершенных задач в проекте |
Пользователь (1 инструмент)
Инструмент | Описание |
| Получить настройки пользователя (часовой пояс, начало недели и т.д.) |
Архитектура
server.py # 20 MCP tools, async httpx, Pydantic validation
setup_auth.py # One-time OAuth 2.0 setup (browser-based)
~/.ticktick_mcp/ # Token storage (auto-refreshed)
skills/ticktick/ # Claude skill for natural task languageВыбор архитектуры:
Асинхронность везде —
httpx.AsyncClientдля неблокирующих вызовов APIМодели ввода Pydantic — Типобезопасные, валидированные входные данные с понятными сообщениями об ошибках
Аннотации MCP —
readOnlyHint,destructiveHintдля более безопасного использования инструментовАвтоматическое обновление токенов — Токены обновляются прозрачно с буфером в 60 секунд
Устранение неполадок
«Given client ID does not match» — Перепроверьте ваш Client ID на developer.ticktick.com.
Порт 8080 уже используется — lsof -ti:8080 | xargs kill -9, затем повторите попытку.
Токены истекли — Запустите setup_auth.py снова, чтобы получить свежие токены.
Claude не видит инструменты — Запустите claude mcp list для проверки регистрации.
Вклад в проект
Вклад приветствуется! Пожалуйста, сначала откройте issue, чтобы обсудить то, что вы хотите изменить.
git clone https://github.com/Salen-Project/ticktick-mcp
cd ticktick-mcp
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
# Make your changes to server.py
# Test: python3 -c "from server import mcp; print(len(mcp._tool_manager._tools), 'tools')"Ссылки
Лицензия
MIT (c) Salen-Project
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/abdulhamid-n/ticktick-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server