npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@fractalizer/mcp-server-ticktick

v0.2.2

Published

MCP Server for TickTick todo-list application

Readme

TickTick MCP Server

MCP сервер для интеграции TickTick (todo-list приложения) с Claude и другими MCP клиентами.

Особенности

  • 24 инструмента для работы с проектами и задачами
  • Фильтрация полей — экономия 80-90% контекста через fields параметр
  • Параллельные запросы — до 5 одновременных (ParallelExecutor)
  • Отключение группDISABLED_TOOL_GROUPS
  • Lazy/Eager режимыTOOL_DISCOVERY_MODE
  • Кеширование — 5 минут TTL
  • OAuth 2.0 с поддержкой refresh token
  • Поддержка Dida365 (китайская версия TickTick)
  • GTD-helpers — get_engaged_tasks, get_next_tasks

Быстрый старт

1. Получите токен TickTick

Используйте один из методов:

  • OAuth flow через ticktick-py
  • Получите токен через Developer Portal

2. Настройте переменные окружения

# Обязательно
TICKTICK_ACCESS_TOKEN=your_access_token

# Опционально (для auto-refresh)
TICKTICK_CLIENT_ID=your_client_id
TICKTICK_CLIENT_SECRET=your_client_secret
TICKTICK_REFRESH_TOKEN=your_refresh_token

3. Добавьте в Claude Desktop

{
  "mcpServers": {
    "ticktick": {
      "command": "npx",
      "args": ["@fractalizer/mcp-server-ticktick"],
      "env": {
        "TICKTICK_ACCESS_TOKEN": "your_token"
      }
    }
  }
}

Инструменты

Projects (6 tools)

| Tool | Описание | Приоритет | |------|----------|-----------| | get_projects | Получить все проекты | high | | get_project | Получить проект по ID | high | | get_project_tasks | Получить задачи проекта | high | | create_project | Создать проект | normal | | update_project | Обновить проект | normal | | delete_project | Удалить проект | low |

Tasks (10 tools)

| Tool | Описание | Приоритет | |------|----------|-----------| | get_task | Получить задачу | critical | | get_tasks | Получить несколько задач (batch) | critical | | get_all_tasks | Все задачи пользователя | high | | search_tasks | Поиск по тексту | high | | create_task | Создать задачу | critical | | batch_create_tasks | Массовое создание | high | | update_task | Обновить задачу | critical | | complete_task | Завершить задачу | high | | delete_task | Удалить задачу | normal | | get_tasks_by_priority | Фильтр по приоритету | normal |

Date Queries (5 tools)

| Tool | Описание | Приоритет | |------|----------|-----------| | get_tasks_due_today | Срок сегодня | high | | get_tasks_due_tomorrow | Срок завтра | normal | | get_tasks_due_in_days | Срок в N дней | normal | | get_tasks_due_this_week | Срок на неделе | normal | | get_overdue_tasks | Просроченные | high |

Helpers (3 tools)

| Tool | Описание | Приоритет | |------|----------|-----------| | ping | Проверка подключения | critical | | get_engaged_tasks | GTD: горящие (high priority + overdue) | normal | | get_next_tasks | GTD: следующие (medium priority + tomorrow) | normal |


Конфигурация

Переменные окружения

# API (для Dida365 используйте dida365.com)
TICKTICK_API_BASE_URL=https://api.ticktick.com/open/v1

# Batch/Concurrency
MAX_BATCH_SIZE=100
MAX_CONCURRENT_REQUESTS=5

# Cache
CACHE_TTL_MS=300000

# Tool Discovery
TOOL_DISCOVERY_MODE=eager          # eager | lazy
ENABLED_TOOL_CATEGORIES=           # tasks:read,projects:read
DISABLED_TOOL_GROUPS=              # helpers:gtd,tasks:date

Примеры конфигурации

# Только чтение (безопасный режим)
ENABLED_TOOL_CATEGORIES="tasks:read,projects:read,helpers"

# Без GTD и date queries
DISABLED_TOOL_GROUPS="helpers:gtd,tasks:date"

# Lazy mode (только ping в tools/list, остальные через search)
TOOL_DISCOVERY_MODE=lazy

Для Dida365 (китайская версия)

TICKTICK_API_BASE_URL=https://api.dida365.com/open/v1

Фильтрация полей

Все read-операции поддерживают параметр fields для экономии контекста:

{
  "fields": ["id", "title", "priority", "dueDate"]
}

Это уменьшает размер ответа на 80-90%.


Разработка

# Установка зависимостей (из корня monorepo)
npm install

# Сборка
npm run build --workspace=@fractalizer/mcp-server-ticktick

# Тесты
npm run test --workspace=@fractalizer/mcp-server-ticktick

# Валидация
npm run validate:quiet --workspace=@fractalizer/mcp-server-ticktick

Архитектура

src/
├── composition-root/      # DI контейнер (InversifyJS)
├── config/               # Загрузка конфигурации
├── ticktick_api/
│   ├── api_operations/   # HTTP операции
│   ├── auth/            # OAuth 2.0
│   ├── dto/             # Data Transfer Objects
│   ├── entities/        # Task, Project entities
│   ├── facade/          # TickTickFacade
│   └── http/            # HTTP клиент
└── tools/
    ├── api/             # MCP tools
    │   ├── date-queries/
    │   ├── projects/
    └── helpers/         # ping, GTD tools

Ссылки