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 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcp-google-tasks

v0.2.0

Published

MCP server for the Google Tasks API — manage task lists, create and organize tasks with due dates, notes and subtasks, track completion and sync changes. For Claude, Cursor, Codex and other AI clients.

Readme

Google Tasks MCP

English | Русский

npm CI Glama License: MIT

A1 Google Tasks MCP позволяет AI-приложению управлять Google Tasks на естественном языке. Можно спланировать проект как список задач, разбить работу на подзадачи со сроками и заметками, отмечать сделанное и поддерживать порядок.

Сервер работает с Google Tasks API через ваш Google-аккаунт. Он отделяет обратимое завершение от безвозвратного удаления и явно показывает ограничения Tasks API, а не создаёт впечатление, что планировщику доступно всё.

  • 21 инструментов. Просмотр, создание и изменение списков и задач, перемещение задач, управление завершением, массовая очистка сделанного и прямой вызов API, когда отдельного инструмента нет.
  • Подключение из диалога. Скажите «подключи Google Задачи»: сервер проведёт через создание OAuth-клиента, поймает редирект Google на 127.0.0.1 с PKCE и сам сохранит токены — без конфигов и перезапуска.
  • Завершение обратимо, удаление — нет. У complete_task есть отмена (reopen_task); инструменты удаления отделены и помечены как разрушительные.
  • Честные сроки. API хранит только календарную дату — сервер не изображает планирование по часам; время дня записывается в заметки.
  • Минимальный scope Google. Единственный scope tasks — без доступа к Drive, Calendar и Gmail.

Начните с запроса, который только читает данные:

Покажи мои списки задач и всё, что нужно сделать до пятницы в списке по умолчанию.

Подключить сервер · Посмотреть сценарии · Открыть техническую документацию


Увидеть работу за минуту

Вы: Что ещё не сделано в списке «Запуск сайта» и какие сроки на этой неделе?

Ассистент: Показывает открытые задачи со сроками, заметками и подзадачами. Ничего не меняется.

Вы: Добавь задачу «Разослать анонс запуска» со сроком в пятницу как подзадачу «Маркетинга».

Ассистент: Показывает целевой список, родительскую задачу и предлагаемую задачу, затем запрашивает подтверждение перед созданием.

Вы: Подтверждаю.

Ассистент: Создаёт подзадачу со сроком в пятницу. Он ничего не завершает и не удаляет, пока вы не попросите об этом отдельно.

Содержание

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

Нужны Node.js 20+ и Google-аккаунт. Учётные данные при установке не нужны: сервер подключается прямо в диалоге.

  1. Добавьте сервер в AI-приложение.
  2. Скажите «подключи Google Задачи» — ассистент проведёт создание OAuth-клиента и выдачу доступа, не трогая конфиги.
  3. Отправьте запрос, который только читает данные.

В приложении: откройте Settings → MCP servers, нажмите Add server, выберите STDIO, укажите команду npx -y mcp-google-tasks@latest и переменные окружения GOOGLE_TASKS_CLIENT_ID, GOOGLE_TASKS_CLIENT_SECRET, GOOGLE_TASKS_REFRESH_TOKEN, затем нажмите Save, потом Restart.

В командной строке:

codex mcp add google-tasks \
  -- npx -y mcp-google-tasks@latest
codex mcp list

Документация Codex MCP

claude mcp add \
  --transport stdio --scope user google-tasks \
  -- npx -y mcp-google-tasks@latest
claude mcp list

Документация Claude Code MCP

Актуальный официальный путь — Settings → Extensions. Для пользовательского desktop extension откройте Advanced settings → Extension Developer → Install Extension…, выберите файл .mcpb и следуйте подсказкам.

Этот репозиторий сейчас публикует npm-пакет со stdio и пока не содержит .mcpb. Поэтому используйте приведённый ниже JSON stdio-конфиг как fallback только в сборках Claude Desktop, где ещё поддерживается локальная конфигурация:

{
  "mcpServers": {
    "google-tasks": {
      "command": "npx",
      "args": ["-y", "mcp-google-tasks@latest"]
    }
  }
}

В таких сборках сохраните его в ~/Library/Application Support/Claude/claude_desktop_config.json на macOS или %APPDATA%\Claude\claude_desktop_config.json на Windows.

Документация Claude Desktop MCP

Добавьте в ~/.cursor/mcp.json на macOS/Linux или %USERPROFILE%\.cursor\mcp.json на Windows:

{
  "mcpServers": {
    "google-tasks": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-tasks@latest"]
    }
  }
}

Документация Cursor MCP

Запустите MCP: Open User Configuration и добавьте:

{
  "servers": {
    "google-tasks": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-tasks@latest"]
    }
  }
}

Проверьте сервер командой MCP: List Servers.

Документация VS Code MCP

Что можно поручить

Посмотреть списки и спланировать день

  • Покажи мои списки задач и открытые задачи в каждом из них.
  • Что нужно сделать на этой неделе в списке по умолчанию? Вместе с подзадачами.
  • Что изменилось со вчерашнего дня? Включая завершённые и скрытые задачи.

Создать и организовать работу

  • Создай список «Запуск сайта» с задачами по дизайну, контенту и QA.
  • Добавь задачу со сроком в пятницу и заметками — как подзадачу «Маркетинга».
  • Перемести задачу в начало списка, под другую задачу или в другой список.

Отслеживать завершение

  • Отметь задачу по ревью сделанной — и переоткрой, если работа вернётся.
  • Убери все завершённые задачи из списка одним действием.
  • Покажи скрытые задачи, которые убрали раньше.

Как меняется задача

  1. Задачи живут в списках задач. У каждого аккаунта есть встроенный список по умолчанию со специальным id @default; create_tasklist добавляет новые.
  2. У задачи есть название, заметки и срок — только дата: API отбрасывает время, поэтому время дня записывается в заметки.
  3. Порядок и вложенность меняются только через move_task — поле position в API доступно только на чтение.
  4. Завершение задачи обратимо: reopen_task возвращает её. Удаление задачи или списка безвозвратно, а удаление списка уносит все задачи в нём.

Повторяющиеся задачи через API создать нельзя. Задачи, назначенные из Google Docs или Chat, можно читать, но нельзя создавать и переносить в другой список, а удаление такой задачи убирает её и в исходном документе. Серверного поиска и сортировки нет — сервер выдаёт задачи списком, а фильтрует их AI-приложение.

Что может измениться

| Операция | Что происходит | Граница подтверждения | |---|---|---| | Чтение списков и задач | Читает списки, задачи и их фильтры | Ничего не меняет | | Создание списка или задачи | Добавляет список или открытую задачу | Меняет Google Tasks | | Обновление задачи или переименование списка | Меняет название, заметки или срок | Меняет задачу | | Перемещение задачи | Меняет порядок, вложенность или список | Меняет задачу | | Завершение или переоткрытие задачи | Переключает статус завершения | Обратимое изменение | | Очистка завершённых задач | Убирает все завершённые задачи списка из вида | Разрушительно | | Удаление задачи или списка | Удаляет задачу — или список со всем содержимым | Разрушительно | | Технический запрос API | Может вызвать метод API без отдельного инструмента | Потенциально разрушительно |

Как AI-приложение просит подтверждение, определяет само приложение. Сервер помечает операции чтения, записи и удаления, чтобы оно отличило проверку от рабочего изменения.

Как получить доступ

Google Tasks требует OAuth 2.0: одного API-ключа недостаточно. Путей два, и первый не требует править конфигурационные файлы.

Подключение из диалога (рекомендуемый путь)

Скажите «подключи Google Задачи», и ассистент пройдёт флоу вместе с вами:

  1. setup_instructions выдаёт чек-лист: создать или выбрать проект Google Cloud, включить Google Tasks API, настроить consent screen и создать OAuth-клиент типа Desktop app.
  2. Скачайте JSON этого клиента («Download JSON») и передайте ассистенту путь к файлу — set_client сохранит его с правами только для владельца. Секрет через переписку не проходит.
  3. start_login возвращает ссылку на согласие Google. Откройте её на этой же машине и подтвердите доступ: код возвращается на одноразовый слушатель 127.0.0.1 (PKCE), а не в чат.
  4. finish_login меняет код на токены и кладёт их в ~/.config/mcp-google-tasks/credentials.json (права 0600) и проверяет их реальным вызовом Google Tasks API — так невключённый API ловится сразу.

Токены перечитываются на каждый вызов, поэтому подключение действует немедленно — перезапускать AI-приложение не нужно. auth_status показывает состояние, logout отзывает токен и удаляет его.

Переменные окружения (CI и автоматические установки)

  1. Создайте или выберите проект Google Cloud и включите Google Tasks API.

  2. Настройте OAuth consent screen и создайте OAuth-клиент типа Desktop app.

  3. Авторизуйте Google-аккаунт, которому принадлежат задачи. OAuth 2.0 Playground поможет получить refresh token, если включить Use your own OAuth credentials.

  4. Запросите scope:

    https://www.googleapis.com/auth/tasks

Refresh token OAuth-приложения в режиме Testing может истечь через семь дней. Для долгого доступа опубликуйте OAuth-приложение или используйте Internal-приложение в домене Workspace. Храните client secret и refresh token как пароли.

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

Все переменные необязательные — без единой из них сервер подключается из диалога.

| Переменная | Обязательна | Описание | |---|---|---| | GOOGLE_TASKS_CLIENT_ID | Нет* | OAuth client ID. | | GOOGLE_TASKS_CLIENT_SECRET | Нет* | OAuth client secret. | | GOOGLE_TASKS_REFRESH_TOKEN | Нет* | OAuth refresh token. | | GOOGLE_TASKS_ACCESS_TOKEN | Нет* | Короткоживущая альтернатива OAuth-тройке. | | GOOGLE_TASKS_OAUTH_PORT | Нет | Фиксированный порт loopback-слушателя для входа из диалога; нужен при пробросе портов по SSH. | | GOOGLE_TASKS_API_BASE | Нет | Переопределяет базовый URL Google Tasks API. | | GOOGLE_TASKS_TIMEOUT_MS | Нет | Тайм-аут одного запроса; по умолчанию 60000 мс. | | GOOGLE_TASKS_MAX_RETRIES | Нет | Повторы временных ошибок; по умолчанию 3. |

* Передайте OAuth-тройку или access token.

Без учётных данных сервер всё равно запускается и завершает MCP-рукопожатие; первый вызов инструмента вернёт ошибку, которая назовёт нужные переменные и попросит перезапуск.

Данные, лимиты и работа в фоне

  • Запросы идут в Google Tasks. Локальный сервер обновляет OAuth-токены Google и вызывает Tasks API. Анонимная телеметрия содержит ID установки, версию пакета, версии AI-клиента и платформы и имена инструментов — но не OAuth-токены, содержимое задач, аргументы или промпты. Чтобы отключить её, задайте ASKADS_TELEMETRY=0.
  • У Google есть дневная квота. Лимит Tasks API — 50 000 запросов в день на проект. При 429 сервер использует задержку; чтение также повторяется после сетевых и 5xx ошибок, а запись после неопределённой ошибки не повторяется — вместо этого проверьте результат через get_task.
  • Постоянного опроса нет. Сервер работает только при вызове. list_tasks поддерживает инкрементальную синхронизацию через фильтр updated_min, поэтому AI-приложение с заданиями по расписанию может периодически проверять изменения, не перечитывая всё.

Техническая документация

Поддержка

Нашли ошибку или не хватает сценария? Создайте issue или напишите в Telegram.