Skip to main content
Glama

todoist-v1-mcp-server

Чистый и надежный MCP-сервер (Model Context Protocol) для Todoist, построенный на унифицированном API Todoist v1.

Зачем это нужно

Официальный веб-MCP для Todoist (todoist-ai) имеет известную проблему с постоянными разрывами соединения на стороне Anthropic, что требует ежедневного переподключения. Альтернативы от сообщества либо построены на устаревшем REST API v2, либо имеют ошибки проверки схемы, которые приводят к сбоям, когда Todoist возвращает дополнительные поля по мере развития своего API.

Этот сервер:

  • Ориентирован на текущий API Todoist v1 (не на устаревший v2)

  • Использует транспорт stdio — никакой зависимости от облака, никаких ежедневных переподключений

  • Использует современный API MCP SDK registerTool() (а не устаревший паттерн setRequestHandler)

  • Никогда не навязывает строгие выходные схемы для ответов API — Todoist может свободно добавлять новые поля, не ломая ничего

  • Отсутствие зависимостей от оберток SDK — прямые HTTP-вызовы через axios, поэтому нет промежуточной библиотеки, которая могла бы отставать от API

Инструменты (всего 20)

Задачи

Инструмент

Описание

todoist_get_tasks

Список/фильтрация задач — поддерживает строки фильтров Todoist, такие как "today", "overdue", "p1", "#ProjectName", "7 days"

todoist_get_task

Получить одну задачу по ID

todoist_create_task

Создать задачу с естественным языком для сроков выполнения ("tomorrow", "every monday" и т.д.)

todoist_update_task

Обновить любое поле; передайте clear_due_date: true для удаления срока выполнения

todoist_complete_task

Отметить задачу как выполненную

todoist_reopen_task

Вернуть выполненную задачу в работу

todoist_delete_task

Безвозвратно удалить задачу

Проекты

Инструмент

Описание

todoist_get_projects

Список всех проектов

todoist_get_project

Получить один проект по ID

todoist_create_project

Создать проект (с цветом, стилем отображения, родителем)

todoist_update_project

Обновить проект

todoist_delete_project

Безвозвратно удалить проект и все его задачи

Разделы

Инструмент

Описание

todoist_get_sections

Список разделов внутри проекта

todoist_create_section

Создать раздел

todoist_update_section

Переименовать раздел

todoist_delete_section

Удалить раздел

Метки

Инструмент

Описание

todoist_get_labels

Список всех личных меток

todoist_create_label

Создать метку

todoist_update_label

Обновить метку

todoist_delete_label

Удалить метку

Настройка

1. Получите ваш API-токен Todoist

Перейдите в Todoist → Настройки → Интеграции → Разработчик и скопируйте ваш API-токен.

2. Установка и сборка

git clone https://github.com/christulino/todoist-v1-mcp-server
cd todoist-v1-mcp-server
npm install
npm run build

3. Настройка Claude Desktop

Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "todoist": {
      "command": "node",
      "args": ["/absolute/path/to/todoist-v1-mcp-server/dist/index.js"],
      "env": {
        "TODOIST_API_TOKEN": "your_api_token_here"
      }
    }
  }
}

Перезапустите Claude Desktop. Вы должны увидеть "todoist" в списке подключенных MCP-серверов.

4. Настройка Claude Code (опционально)

claude mcp add todoist -- node /absolute/path/to/todoist-v1-mcp-server/dist/index.js

Затем установите переменную окружения:

export TODOIST_API_TOKEN=your_api_token_here

Или добавьте её в профиль вашей оболочки.

Примеры использования

После подключения Claude может обрабатывать запросы на естественном языке, например:

  • "Что у меня запланировано на сегодня?" → использует todoist_get_tasks с filter: "today"

  • "Добавь задачу позвонить стоматологу в следующий вторник" → использует todoist_create_task

  • "Отметь задачу со стоматологом как выполненную" → использует todoist_complete_task

  • "Покажи мне всё просроченное" → использует todoist_get_tasks с filter: "overdue"

  • "Создай проект под названием Ремонт дома" → использует todoist_create_project

  • "Какие у меня есть проекты?" → использует todoist_get_projects

Синтаксис фильтров Todoist

Параметр filter в todoist_get_tasks поддерживает полный синтаксис фильтров Todoist на естественном языке:

Фильтр

Значение

today

Срок сегодня

overdue

Просрочено

7 days

Срок в ближайшие 7 дней

p1

Срочный приоритет

#ProjectName

Задачи в конкретном проекте

@labelname

Задачи с конкретной меткой

no due date

Задачи без срока выполнения

today | overdue

Сегодня или просрочено (объединение через |)

today & @waiting

Сегодня И с меткой 'waiting'

Полная документация по фильтрам: https://todoist.com/help/articles/introduction-to-filters

Требования

  • Node.js 18+

  • Аккаунт Todoist (бесплатный тариф подходит)

Разработка

npm run dev   # tsx watch mode with auto-reload
npm run build # compile TypeScript
npm start     # run compiled server

Тестирование

Набор тестов обращается к реальному API Todoist и выполняет полный цикл CRUD для задач, проектов, разделов и меток. Все тестовые данные помечаются префиксом [mcp-test] и автоматически удаляются.

TODOIST_API_TOKEN=your_token npm test

Ваш API-токен находится в Todoist → Настройки → Интеграции → Разработчик — тот же токен, который вы указали в claude_desktop_config.json.

Вклад в проект

PR приветствуются. Цель — минималистичная, корректная реализация, которая остается актуальной для API Todoist v1. Приоритеты:

  1. Корректность важнее хитроумных решений

  2. Разрешительная обработка вывода (никогда не отклонять неизвестные поля API)

  3. Полезные сообщения об ошибках, которые объясняют, что пошло не так и как это исправить

Лицензия

MIT

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/christulino/todoist-v1-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server