conorbronsdon/gws-mcp-server

conorbronsdon/gws-mcp-server

от conorbronsdon
MCP сервер для безопасной интеграции Google Workspace с AI агентами. 41 тщательно отобранный инструмент для Gmail, Calendar, Drive, Sheets, Docs и Tasks — без раздувания контекста. Требуется gws CLI. Идеально для автоматизации офисных задач.

gws-mcp-server

Maintenance mode. This project is stable and receives security fixes. New features aren't planned, but issues and pull requests are still welcome.

Google Workspace for AI agents: Gmail, Calendar, Drive, Sheets, Docs, Slides, Tasks, and Contacts as a curated set of 67 Model Context Protocol tools, built on the official Google Workspace CLI (gws).

npm version License: MIT Node Podcast X

Demo: an agent calls the calendar_events_list tool and gets events back (sample data)

Why?

The gws CLI had a built-in MCP server that was removed in v0.8.0 because it exposed 200-400 tools — causing context window bloat in MCP clients. This server takes a curated approach: you choose which Google services to expose, and only a focused set of high-value, narrowly scoped operations are registered as tools. Every tool declares all four MCP annotation hints — readOnlyHint, destructiveHint, idempotentHint, openWorldHint — so clients can reason about side effects, know which writes are safe to retry, and surface clearer consent prompts. This is the permissions leg of trust infrastructure for agents: a deliberately narrow tool surface, side effects declared on every tool, and no freestanding send tool — the only outbound email an agent can trigger is calendar invite/update notifications, opt-in via sendUpdates and off by default.

Часто задаваемые вопросы

Инструменты были проиндексированы:
calendar_events_deleteидемпотентныйвнешний мир

Удаляет событие в календаре.

Параметры
  • calendarIdstringобязательный

    Calendar ID

  • eventIdstringобязательный

    Идентификатор события для удаления.

calendar_events_getтолько чтениевнешний мир

Получает одно событие календаря по идентификатору.

Параметры
  • calendarIdstringобязательный

    Calendar ID

  • eventIdstringобязательный

    Идентификатор события

calendar_events_insertвнешний мир

Создаёт новое событие календаря.

Параметры
  • attendeesstring

    Attendees (массив JSON в виде строки, например '[{"email":"a@x.com"},{"email":"b@x.com","optional":true}]')

  • calendarIdstringобязательный

    Calendar ID

  • descriptionstring

    Описание события.

  • endstringобязательный

    Время окончания JSON.

  • locationstring

    Место проведения мероприятия.

  • sendUpdatesenum

    Отправляет участникам письмо с приглашением, если установлено: "all", "externalOnly" или "none" (по умолчанию: none - письмо не отправляется, но событие всё равно может появиться в календаре участника в зависимости от его настроек)

  • startstringобязательный

    JSON с временем начала (например, '{"dateTime":"2026-03-10T10:00:00-07:00"}')

  • summarystringобязательный

    Название события

calendar_events_listтолько чтениевнешний мир

Перечисляет события из календаря.

Параметры
  • calendarIdstringобязательный

    Calendar ID (для основного календаря используйте 'primary')

  • maxResultsnumber

    Максимум событий для возврата.

  • orderBystring

    Порядок сортировки: startTime или updated

  • qstring

    Поиск по свободному тексту.

  • singleEventsboolean

    Разворачивает повторяющиеся события (обычно true)

  • timeMaxstring

    Верхняя граница (RFC3339)

  • timeMinstring

    Нижняя граница (RFC3339, например, "2026-03-07T00:00:00Z")

calendar_events_updateвнешний мир

Обновляет существующее событие календаря с семантикой patch (изменяются только указанные поля).

Параметры
  • attendeesstring

    ЗАМЕНЯЕТ полный список участников - патч Google перезаписывает поля-массивы, поэтому включайте всех, кто должен остаться; кто пропущен, тот не приглашён. JSON-массив в виде строки, например '[{"email":"a@x.com"},{"email":"b@x.com","optional":true}]'

  • calendarIdstringобязательный

    Calendar ID

  • descriptionstring

    Описание события.

  • endstring

    Время окончания JSON.

  • eventIdstringобязательный

    Идентификатор события для обновления.

  • sendUpdatesenum

    Отправляет участникам письмо с обновлением, если задано значение: "all", "externalOnly" или "none" (по умолчанию: none - письмо не отправляется). При значениях "all" или "externalOnly" участники, удалённые этим обновлением, получают письмо об отмене.

  • startstring

    Время начала JSON

  • summarystring

    Название события

calendar_freebusy_queryтолько чтениевнешний мир

Запрашивает информацию о свободном/занятом времени для одного или нескольких календарей за указанный период.

Параметры
  • itemsstringобязательный

    Календари/группы для запроса, в виде строки JSON-массива, например '[{"id":"primary"}]'

  • timeMaxstringобязательный

    Конец интервала, метка времени RFC3339

  • timeMinstringобязательный

    Начало интервала, временная метка RFC3339 (например, "2026-03-10T00:00:00Z")

  • timeZonestring

    Часовой пояс IANA для ответа (например, "America/Los_Angeles")

docs_batchUpdateвнешний мир

Применяет обновления к документу Google (вставляет, форматирует, заменяет или безвозвратно удаляет контент).

Параметры
  • documentIdstringобязательный

    Идентификатор документа

  • requestsstringобязательный

    Массив запросов на обновление в виде JSON-строки.

docs_createвнешний мир

Создаёт новый пустой Google Документ.

Параметры
  • titlestringобязательный

    Название документа

docs_getтолько чтениевнешний мир

Получает содержимое и метаданные Google Doc.

Параметры
  • documentIdstringобязательный

    Идентификатор документа

drive_comments_createвнешний мир

Добавляет комментарий к файлу. Устанавливает якорь, чтобы привязать его к области, определённой приложением. Drive хранит якорь как непрозрачную JSON-строку, которую вы определяете сами, и не проверяет и не интерпретирует её. Приложения-редакторы Google Workspace (Docs/Sheets/Slides) по-прежнему отображают такие комментарии как непривязанные. Используйте API Docs/Sheets/Slides напрямую, если визуальная привязка в этих редакторах важна.

Параметры
  • anchorstring

    Строка JSON с регионом, заданным приложением, необязательно (например, '{"line":10}')

  • contentstringобязательный

    Текст комментария

  • fieldsstringобязательный

    Поля, которые нужно включить в ответ (требуются API для этого ресурса, например "id,content,createdTime")

  • fileIdstringобязательный

    Файл, который нужно прокомментировать

drive_comments_deleteидемпотентныйвнешний мир

Навсегда удаляет комментарий. Удалить его может только автор комментария: в противном случае API отклоняет запрос.

Параметры
  • commentIdstringобязательный

    Комментарий для удаления

  • fileIdstringобязательный

    Файл, к которому относится комментарий

drive_comments_getтолько чтениевнешний мир

Получает один комментарий к файлу.

Параметры
  • commentIdstringобязательный

    Комментарий для извлечения

  • fieldsstringобязательный

    Поля, которые нужно включить (обязательны для API этого ресурса, например "id,content,author,resolved,replies")

  • fileIdstringобязательный

    Файл, к которому относится комментарий

  • includeDeletedboolean

    Возвращать ли комментарий, если он удалён (содержимого в нём не будет)

drive_comments_listтолько чтениевнешний мир

Выводит список комментариев к файлу.

Параметры
  • fieldsstringобязательный

    Поля для включения (требуются API для этого ресурса, например "comments(id,content,author,resolved),nextPageToken")

  • fileIdstringобязательный

    Файл, для которого нужно вывести список комментариев

  • includeDeletedboolean

    Указывает, включать ли удалённые комментарии (у них нет содержимого).

  • pageSizenumber

    Максимальное количество комментариев для возврата (по умолчанию 20)

  • pageTokenstring

    Page token из предыдущего вызова

  • startModifiedTimestring

    Возвращает только комментарии, изменённые в указанное время или позже (RFC 3339).

drive_comments_updateидемпотентныйвнешний мир

Изменяет текст существующего комментария. Это перезаписывает содержимое комментария; предыдущий текст не сохраняется. Обновить его может только автор комментария, иначе API отклоняет запрос. Здесь нельзя изменить состояние resolved: см. поле action в drive_replies_create.

Параметры
  • commentIdstringобязательный

    Комментарий для обновления

  • contentstringобязательный

    Текст нового комментария

  • fieldsstringобязательный

    Поля, которые нужно включить в ответ (требуются API для этого ресурса, например "id,content,modifiedTime")

  • fileIdstringобязательный

    Файл, к которому относится комментарий

drive_files_copyвнешний мир

Копирует файл. Полезен для преобразования форматов (например, из Markdown в Google Doc).

Параметры
  • fieldsstring

    Поля для возврата

  • fileIdstringобязательный
  • mimeTypestring

    Целевой MIME-тип для конвертации

  • namestringобязательный

    Название для копии

  • parentsstring

    Идентификаторы родительских папок (JSON-массив в виде строки)

drive_files_createвнешний мир

Создает новый файл в Google Drive. Использует bodyParams для метаданных и опционально загружает локальный файл.

Параметры
  • fieldsstring

    Возвращаемые поля (например, "id,webViewLink")

  • mimeTypestring

    MIME-тип (например, "application/vnd.google-apps.document")

  • namestringобязательный

    Имя файла

  • parentsstring

    Идентификаторы родительских папок (JSON-массив в виде строки, например '["folderId"]')

  • uploadPathstring

    Путь к локальному файлу для загрузки

drive_files_deleteидемпотентныйвнешний мир

Окончательно удаляет файл.

Параметры
  • fileIdstringобязательный

    Идентификатор файла для удаления

drive_files_downloadтолько чтениевнешний мир

Скачивает содержимое файла из Google Drive. Возвращает текстовое содержимое для текстовых файлов или строку в кодировке Base64 для бинарных файлов. Для Google Docs/Sheets/Slides экспортирует в читаемый формат (по умолчанию обычный текст).

Параметры
  • exportMimeTypestring

    Для файлов Google (Docs/Sheets/Slides): формат экспорта. По умолчанию используется text/plain для Docs, text/csv для Sheets. Примеры: text/plain, text/csv, application/pdf

  • fileIdstringобязательный

    Идентификатор файла для загрузки.

  • savePathstring

    Для бинарных файлов (изображения, PDF): сохраняйте в этот локальный путь вместо возврата содержимого встроенно. Путь к файлу возвращается в ответе.

drive_files_exportтолько чтениевнешний мир

Экспортирует файл Google Workspace (Doc, Sheet, Slide) в заданный формат. Возвращает JSON с метаданными экспорта. Используйте drive_files_download для автоматического экспорта с возвратом содержимого в теле ответа.

Параметры
  • fileIdstringобязательный

    Идентификатор файла Google Workspace для экспорта

  • mimeTypestringобязательный

    Формат экспорта: text/plain, text/csv, application/pdf, application/vnd.openxmlformats-officedocument.wordprocessingml.document (docx), application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (xlsx)

drive_files_getтолько чтениевнешний мир

Получает метаданные файла по идентификатору. Файлы общих дисков поддерживаются автоматически.

Параметры
  • fieldsstring

    Поля для включения

  • fileIdstringобязательный

    Идентификатор файла

drive_files_listтолько чтениевнешний мир

Перечисляет файлы в Google Drive. Поддерживает поисковые запросы через параметр 'q'. Файлы из общих дисков включаются автоматически.

Параметры
  • fieldsstring

    Поля для включения (например, "files(id,name,mimeType)")

  • orderBystring

    Порядок сортировки (например, "modifiedTime desc")

  • pageSizenumber

    Максимум результатов на странице (1-50, по умолчанию 20)

  • qstring

    Поисковый запрос (например, "name contains 'report'" или "mimeType='application/vnd.google-apps.folder'")

drive_files_updateидемпотентныйвнешний мир

Обновляет метаданные или содержимое файла.

Параметры
  • fieldsstring

    Поля для возврата

  • fileIdstringобязательный

    Идентификатор файла для обновления.

  • mimeTypestring

    Новый MIME-тип.

  • namestring

    Новое имя файла

  • uploadPathstring

    Путь к локальному файлу для загрузки

drive_permissions_createвнешний мир

Открывает общий доступ к файлу, создавая разрешение.

Параметры
  • emailAddressstring

    Электронная почта пользователя/группы (обязательно для типа пользователя/группы)

  • fileIdstringобязательный

    Идентификатор файла, которым нужно поделиться.

  • rolestringобязательный

    Роль доступа: owner, organizer, fileOrganizer, writer, commenter, reader

  • typestringобязательный

    Тип получателя: пользователь, группа, домен, все

drive_permissions_deleteидемпотентныйвнешний мир

Отзывает разрешение у файла, удаляя доступ этого пользователя/группы/домена. Согласно Drive API, одновременные операции с разрешениями для одного и того же файла не поддерживаются: применяется только последнее обновление.

Параметры
  • fileIdstringобязательный

    Файл, которому принадлежит разрешение

  • permissionIdstringобязательный

    Разрешение, которое нужно отозвать (получите его из drive_permissions_list)

drive_permissions_listтолько чтениевнешний мир

Перечисляет все разрешения для файла. Используется для проверки состояния общего доступа: например, разрешение с типом "anyone" означает, что файл доступен публично; отдельного поля is-public не существует. Передайте поля (например, "permissions(id,type,role,emailAddress,domain)"), чтобы определить получателей прав; ответ по умолчанию не содержит emailAddress/domain.

Параметры
  • fieldsstring

    Поля для включения (например, "permissions(id,type,role,emailAddress,domain)")

  • fileIdstringобязательный

    Файл, для которого нужно вывести список разрешений.

  • pageSizenumber

    Максимальное количество разрешений для возврата

  • pageTokenstring

    Page token из предыдущего вызова

drive_permissions_proposeOwnershipTransferвнешний мир

Предлагает передачу владения файлом между личными/потребительскими аккаунтами Google (вместо этого используйте drive_permissions_transferOwnership для передачи в Workspace внутри одной организации, которая завершается немедленно). Владение в Google Workspace нельзя передать аккаунту вне организации. Сам по себе этот инструмент владение НЕ передает: он устанавливает role=writer + pendingOwner=true, и будущий владелец должен отдельно принять, установив role=owner + transferOwnership=true в своем собственном разрешении, под своими учетными данными. Google отправляет получателю уведомление по электронной почте, которое нельзя отключить; для текущего владельца ничего не меняется, пока он не примет. Предлагать можно только отдельным пользователям, а не группам, доменам или сервисным аккаунтам (у сервисных аккаунтов нет квоты хранилища Drive, и передача завершится ошибкой). Передача владения не поддерживается для файлов в общих дисках.

Параметры
  • emailAddressstringобязательный

    Email-адрес будущего нового владельца (отдельного пользователя)

  • fieldsstring

    Поля для возврата (например, "id,role,type,pendingOwner")

  • fileIdstringобязательный

    Файл, который предлагается передать

drive_permissions_transferOwnershipвнешний мир

Немедленно передаёт право владения файлом другому аккаунту Google Workspace в ТОЙ ЖЕ организации. Текущий владелец понижается до редактора, как только этот вызов завершается успешно, отдельного шага подтверждения нет, и Google отправляет новому владельцу уведомление по электронной почте, которое нельзя отключить. Работает только с файлами в «Моём диске»; не поддерживается для файлов в общем диске, поскольку ими владеет организация, а не отдельный пользователь. Для передачи между личными/потребительскими аккаунтами Google используйте вместо этого drive_permissions_proposeOwnershipTransfer, который требует отдельного подтверждения получателя и не передаёт право владения немедленно. Право владения Google Workspace нельзя передать аккаунту за пределами организации.

Параметры
  • emailAddressstringобязательный

    Адрес электронной почты нового владельца в той же организации Workspace

  • fieldsstring

    Поля для возврата (например, "id,role,type,emailAddress")

  • fileIdstringобязательный

    Файл для передачи (должен находиться в "My Drive", а не на общем диске)

  • moveToNewOwnersRootboolean

    Если true, перемещает файл в корень My Drive нового владельца и удаляет предыдущие родительские папки

drive_permissions_updateидемпотентныйвнешний мир

Изменяет роль существующего разрешения для файла (например, с читателя на редактора). Позволяет удалять возможности, понижая роль. Передача права владения не поддерживается. Согласно Drive API: одновременные операции с разрешениями для одного файла не поддерживаются, применяется только последнее обновление.

Параметры
  • fieldsstring

    Поля для возврата (например, "id,role,type,emailAddress")

  • fileIdstringобязательный

    Файл, которому принадлежит разрешение

  • permissionIdstringобязательный

    Разрешение на обновление (получите его из drive_permissions_list)

  • roleenumобязательный

    Новая роль без прав владельца

drive_replies_createвнешний мир

Добавляет ответ на комментарий или закрывает/открывает его. Закрыть или открыть заново комментарий можно только отправив ответ с установленным action. content обязателен, если не задано action; объедините оба параметра, чтобы оставить текст закрытия/открытия. Установка action изменяет поле resolved родительского комментария, но закрытие носит лишь рекомендательный характер: API продолжает принимать последующие ответы и сам ничего не скрывает, клиент должен сам реагировать на resolved = true (например, скрыть или затемнить ветку).

Параметры
  • actionenum

    Задаёт изменение состояния resolved родительского комментария вместо ответа текстом (или вместе с ним).

  • commentIdstringобязательный

    Комментарий, на который нужно ответить. Текст самого комментария не пришёл - пришли только эта строка-заглушка. Пришлите комментарий, и я переведу его.

  • contentstring

    Текст ответа. Обязателен, если action не задан.

  • fieldsstring

    Поля для включения (например, "id,content,action")

  • fileIdstringобязательный

    Файл, к которому относится комментарий

drive_replies_deleteидемпотентныйвнешний мир

Удаляет ответ навсегда. Только автор самого ответа может его удалить: в противном случае API отклоняет запрос.

Параметры
  • commentIdstringобязательный

    Родительский комментарий

  • fileIdstringобязательный

    Файл, к которому относится комментарий

  • replyIdstringобязательный

    Ответ для удаления

drive_replies_getтолько чтениевнешний мир

Получает один ответ на комментарий.

Параметры
  • commentIdstringобязательный

    Родительский комментарий

  • fieldsstring

    Поля для включения (например, "id,content,action")

  • fileIdstringобязательный

    Файл, к которому относится комментарий

  • includeDeletedboolean

    Определяет, возвращать ли ответ, если он удалён (у него не будет содержимого).

  • replyIdstringобязательный

    Ответ, который нужно получить

drive_replies_listтолько чтениевнешний мир

Перечисляет ответы на комментарий.

Параметры
  • commentIdstringобязательный

    Комментарий, для которого нужно вывести ответы

  • fieldsstring

    Поля для включения (например, "replies(id,content,action),nextPageToken")

  • fileIdstringобязательный

    Файл, к которому относится комментарий

  • includeDeletedboolean

    Указывает, включать ли удалённые ответы (содержимого у них нет).

  • pageSizenumber

    Максимум ответов для возврата (по умолчанию 20)

  • pageTokenstring

    Page token из предыдущего вызова

drive_replies_updateидемпотентныйвнешний мир

Изменяет текст существующего ответа. Эта операция перезаписывает содержимое ответа; предыдущий текст не сохраняется. Только автор самого ответа может обновить его, в противном случае API отклоняет запрос. Не поддерживает изменение действия; для разрешения/повторного открытия используйте drive_replies_create.

Параметры
  • commentIdstringобязательный

    Родительский комментарий

  • contentstringобязательный

    Текст нового ответа

  • fieldsstring

    Поля, которые нужно включить (например, "id,content,modifiedTime")

  • fileIdstringобязательный

    Файл, к которому относится комментарий

  • replyIdstringобязательный

    Ответ на обновление

gmail_drafts_createвнешний мир

Создаёт черновик Gmail. Передаёт threadId, чтобы прикрепить черновик к существующей беседе (он появится как ответ в этой ветке). Черновик НЕ отправляется: откройте Gmail, чтобы проверить и отправить.

Параметры
  • bccstring

    Получатели скрытой копии (через запятую)

  • bodystring

    Тело в виде обычного текста.

  • ccstring

    Получатели копии (через запятую)

  • htmlBodystring

    HTML-тело. Если указаны и body, и htmlBody, черновик имеет тип multipart/alternative.

  • inReplyTostring

    Значение заголовка Message-ID сообщения, на которое отвечают. Повышает надёжность построения цепочек сообщений вместе с threadId.

  • referencesstring

    Значение заголовка References (разделенные пробелами Message-IDs родительских сообщений).

  • subjectstring

    Тема письма. При добавлении в ветку через threadId Gmail ожидает, что тема будет соответствовать ветке (обычно "Re: <original>").

  • threadIdstring

    Идентификатор потока, к которому нужно прикрепить этот черновик. Получите его из gmail_threads_list / gmail_messages_get.

  • tostringобязательный

    Получатель(и). Через запятую, если их несколько, например "a@x.com, b@y.com"

gmail_messages_getтолько чтениевнешний мир

Получает одно сообщение Gmail по ID.

Параметры
  • formatstring

    Формат ответа: full, metadata, minimal, raw

  • idstringобязательный

    Идентификатор сообщения

  • userIdstringобязательный

    User ID (используйте 'me')

gmail_messages_listтолько чтениевнешний мир

Выводит список сообщений Gmail, соответствующих запросу.

Параметры
  • labelIdsstring

    Идентификаторы меток для фильтрации

  • maxResultsnumber

    Максимум возвращаемых сообщений

  • qstring

    Поисковый запрос Gmail (например, "from:user@example.com subject:hello")

  • userIdstringобязательный

    User ID (используйте 'me')

gmail_threads_getтолько чтениевнешний мир

Получает полную цепочку писем Gmail по ID (все сообщения в переписке).

Параметры
  • formatstring

    Формат ответа: полный, метаданные, минимальный

  • idstringобязательный

    Thread id

  • userIdstringобязательный

    User ID (используйте 'me')

gmail_threads_listтолько чтениевнешний мир

Выводит список цепочек Gmail, соответствующих запросу.

Параметры
  • maxResultsnumber

    Максимальное количество потоков для возврата

  • qstring

    Поисковый запрос Gmail

  • userIdstringобязательный

    User ID (используйте 'me')

gmail_threads_modifyидемпотентныйвнешний мир

Изменяет ветку Gmail: добавляет/удаляет метки. Чтобы архивировать, удаляет INBOX. Чтобы отметить как прочитанное, удаляет UNREAD. Чтобы отметить звездочкой, добавляет STARRED.

Параметры
  • addLabelIdsstring

    JSON-массив идентификаторов меток для добавления, например ["STARRED"]

  • idstringобязательный

    Thread id

  • removeLabelIdsstring

    JSON-массив ID меток для удаления, например, ["INBOX","UNREAD"]

  • userIdstringобязательный

    User ID (используйте 'me')

sheets_batchUpdateвнешний мир

Применяет обновления к электронной таблице (условное форматирование, форматирование ячеек и границ, добавление листов и другое). Также может безвозвратно удалять содержимое, например лист или правило условного форматирования, без возможности отмены через API.

Параметры
  • requestsstringобязательный

    Массив запросов на обновление в виде JSON-строки.

  • spreadsheetIdstringобязательный

    Идентификатор таблицы

sheets_getтолько чтениевнешний мир

Получает метаданные электронной таблицы.

Параметры
  • includeGridDataboolean

    Включает данные сетки.

  • spreadsheetIdstringобязательный

    Идентификатор таблицы

sheets_values_appendвнешний мир

Добавляет значения после последней строки диапазона электронной таблицы.

Параметры
  • rangestringобязательный

    Диапазон в нотации A1 для добавления.

  • spreadsheetIdstringобязательный

    Идентификатор таблицы

  • valueInputOptionstringобязательный

    Необработанные или введенные пользователем

  • valuesstringобязательный

    Двумерный массив значений в виде JSON-строки

sheets_values_getтолько чтениевнешний мир

Читает значения из диапазона электронной таблицы.

Параметры
  • majorDimensionstring

    СТРОКИ или СТОЛБЦЫ

  • rangestringобязательный

    Диапазон в нотации A1 (например, "Sheet1!A1:D10")

  • spreadsheetIdstringобязательный

    Идентификатор таблицы

  • valueRenderOptionstring

    FORMATTED_VALUE, UNFORMATTED_VALUE или FORMULA

sheets_values_updateидемпотентныйвнешний мир

Записывает значения в диапазон электронной таблицы.

Параметры
  • rangestringобязательный

    Диапазон в нотации A1 для записи

  • spreadsheetIdstringобязательный

    Идентификатор таблицы

  • valueInputOptionstringобязательный

    Необработанные или введенные пользователем

  • valuesstringобязательный

    Двумерный массив значений в виде JSON-строки (например, '[["A","B"],["C","D"]]')

tasks_tasklists_deleteидемпотентныйвнешний мир

Удаляет список задач. Если он содержит назначенные задачи, оригиналы (в Docs/Chat Spaces) также удаляются.

Параметры
  • taskliststringобязательный

    ID списка задач для удаления.

tasks_tasklists_getтолько чтениевнешний мир

Получает список задач по ID.

Параметры
  • taskliststringобязательный

    Идентификатор списка задач (используйте "@default" для списка пользователя по умолчанию)

tasks_tasklists_insertвнешний мир

Создаёт новый список задач.

Параметры
  • titlestringобязательный

    Название списка задач

tasks_tasklists_listтолько чтениевнешний мир

Перечисляет списки задач аутентифицированного пользователя.

Параметры
  • maxResultsnumber

    Максимум списков задач на странице (1-100, по умолчанию 20)

  • pageTokenstring

    Токен для следующей страницы результатов.

tasks_tasklists_updateидемпотентныйвнешний мир

Обновляет список задач (изменяются только указанные поля).

Параметры
  • taskliststringобязательный

    ID списка задач для обновления

  • titlestring

    Название нового списка задач

tasks_tasks_clearидемпотентныйвнешний мир

Скрывает все выполненные задачи в списке. Выполненные задачи не удаляются, но перестают отображаться в ответах списка по умолчанию.

Параметры
  • taskliststringобязательный

    ID списка задач для очистки

tasks_tasks_deleteидемпотентныйвнешний мир

Удаляет задачу. Если назначена из Docs/Chat Spaces, оригинал также удаляется.

Параметры
  • taskstringобязательный

    ID задачи для удаления

  • taskliststringобязательный

    Идентификатор списка задач

tasks_tasks_getтолько чтениевнешний мир

Получает задачу по ID.

Параметры
  • taskstringобязательный

    Идентификатор задачи

  • taskliststringобязательный

    Идентификатор списка задач

tasks_tasks_insertвнешний мир

Создаёт новую задачу. Используйте parent, чтобы вложить как подзадачу, previous, чтобы разместить после соседней задачи.

Параметры
  • duestring

    Срок выполнения (RFC 3339, например "2026-06-01T00:00:00.000Z")

  • notesstring

    Заметки в свободной форме / тело

  • parentstring

    Идентификатор родительской задачи (вставить как подзадачу в эту задачу)

  • previousstring

    Идентификатор соседней задачи (вставьте сразу после этой задачи)

  • statusstring

    Статус задачи: needsAction или completed

  • taskliststringобязательный

    Идентификатор списка задач, в который нужно вставить.

  • titlestringобязательный

    Название задачи

tasks_tasks_listтолько чтениевнешний мир

Перечисляет задачи в списке задач. По умолчанию исключает скрытые и назначенные задачи; укажите showHidden/showAssigned, чтобы включить их.

Параметры
  • completedMaxstring

    Верхняя граница даты завершения (RFC 3339)

  • completedMinstring

    Нижняя граница даты завершения (RFC 3339)

  • dueMaxstring

    Верхняя граница даты выполнения (RFC 3339)

  • dueMinstring

    Нижняя граница срока выполнения (RFC 3339)

  • maxResultsnumber

    Максимум задач на странице (1-100, по умолчанию 20)

  • pageTokenstring

    Токен для следующей страницы результатов.

  • showAssignedboolean

    Включить задачи, назначенные из Docs/Chat Spaces.

  • showCompletedboolean

    Включает выполненные задачи (по умолчанию true; игнорируется, если showHidden также не true).

  • showDeletedboolean

    Включать удалённые задачи

  • showHiddenboolean

    Включает скрытые (выполненные) задачи

  • taskliststringобязательный

    Идентификатор списка задач (используйте "@default" для списка по умолчанию)

  • updatedMinstring

    Нижняя граница времени последнего изменения (RFC 3339)

tasks_tasks_moveидемпотентныйвнешний мир

Перемещает задачу в пределах её списка или в другой список. Используйте parent/previous для задания позиции; destinationTasklist — для смены списка.

Параметры
  • destinationTaskliststring

    ID целевого списка задач (опустите, чтобы переместтить в пределах исходного списка)

  • parentstring

    Новый ID родительской задачи (переместить как подзадачу в эту задачу)

  • previousstring

    Новый идентификатор родственной задачи (переместить сразу после этой задачи)

  • taskstringобязательный

    Идентификатор задачи для перемещения.

  • taskliststringобязательный

    Source task list ID

tasks_tasks_updateидемпотентныйвнешний мир

Обновляет задачу (изменяются только переданные поля). Обычное применение: завершить задачу, установив статус 'completed'.

Параметры
  • duestring

    Срок выполнения (RFC 3339)

  • notesstring

    Заметки в свободной форме / тело

  • statusstring

    Статус задачи: needsAction или completed

  • taskstringобязательный

    ID задачи для обновления

  • taskliststringобязательный

    Идентификатор списка задач

  • titlestring

    Название задачи

0.4.1основная
0.4.0
0.3.0
0.2.0
0.1.5
0.1.3
0.1.2
0.1.0

Выберите клиент, чтобы установить conorbronsdon/gws-mcp-server:

Любой клиент

Конфиг добавления MCP сервера стандартный, обычно он не меняется вообще, поэтому подходит практически к любому ИИ клиенту, поддерживающему MCP.

{
  "mcpServers": {
    "conorbronsdon-gws-mcp-server-olktseyj78": {
      "command": "npx",
      "args": [
        "gws-mcp-server",
        "--services",
        "drive,sheets,calendar,docs,gmail,tasks"
      ]
    }
  }
}
CursorCursor

Перейдите по ссылке и сервер автоматически будет добавлен в Cursor. Либо откройте/создайте файл ~/.cursor/mcp.json(%USERPROFILE%\.cursor\mcp.json на Windows) и добавьте конфиг сервера:

{
  "mcpServers": {
    "conorbronsdon-gws-mcp-server-olktseyj78": {
      "command": "npx",
      "args": [
        "gws-mcp-server",
        "--services",
        "drive,sheets,calendar,docs,gmail,tasks"
      ]
    }
  }
}
VS Code

Создайте .vscode/mcp.json в проекте (ключ верхнего уровня — servers):

{
  "servers": {
    "conorbronsdon-gws-mcp-server-olktseyj78": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "gws-mcp-server",
        "--services",
        "drive,sheets,calendar,docs,gmail,tasks"
      ]
    }
  }
}

Либо добавьте сервер через терминал:

code --add-mcp "{\"name\":\"conorbronsdon-gws-mcp-server-olktseyj78\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"gws-mcp-server\",\"--services\",\"drive,sheets,calendar,docs,gmail,tasks\"]}"
ClaudeClaude Desktop

Откройте Settings → Developer → Edit Config — это откроет файл claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Впишите сервер и полностью перезапустите Claude Desktop:

{
  "mcpServers": {
    "conorbronsdon-gws-mcp-server-olktseyj78": {
      "command": "npx",
      "args": [
        "gws-mcp-server",
        "--services",
        "drive,sheets,calendar,docs,gmail,tasks"
      ]
    }
  }
}
Claude CodeClaude Code

Добавьте сервер одной командой в терминале:

claude mcp add conorbronsdon-gws-mcp-server-olktseyj78 -- npx gws-mcp-server --services drive,sheets,calendar,docs,gmail,tasks

Либо через JSON-конфиг:

claude mcp add-json conorbronsdon-gws-mcp-server-olktseyj78 "{\"command\":\"npx\",\"args\":[\"gws-mcp-server\",\"--services\",\"drive,sheets,calendar,docs,gmail,tasks\"]}"
CodexCodex

Добавьте сервер командой в терминале:

codex mcp add conorbronsdon-gws-mcp-server-olktseyj78 -- npx gws-mcp-server --services drive,sheets,calendar,docs,gmail,tasks

Либо вручную в ~/.codex/config.toml(%USERPROFILE%\.codex\config.toml на Windows):

[mcp_servers.conorbronsdon-gws-mcp-server-olktseyj78]
command = "npx"
args = ["gws-mcp-server", "--services", "drive,sheets,calendar,docs,gmail,tasks"]
PerplexityPerplexity

MCP доступен подписчикам Perplexity Pro / Max / Enterprise. Локальные серверы — только в приложении для macOS.

  1. Откройте Настройки аккаунта → Connectors.
  2. Установите вспомогательное приложение PerplexityXPC (один раз).
  3. Нажмите Add Connector → вкладка Simple.
  4. В поле Server Name укажите conorbronsdon/gws-mcp-server, а в поле команды запуска — строку ниже:
npx gws-mcp-server --services drive,sheets,calendar,docs,gmail,tasks

Нажмите Save и дождитесь статуса Running.

WindsurfWindsurf

Откройте Windsurf Settings → Cascade → MCP Servers или отредактируйте файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "conorbronsdon-gws-mcp-server-olktseyj78": {
      "command": "npx",
      "args": [
        "gws-mcp-server",
        "--services",
        "drive,sheets,calendar,docs,gmail,tasks"
      ]
    }
  }
}
ClineCline

В панели Cline нажмите иконку MCP Servers → Configure → Configure MCP Servers (или отредактируйте ~/.cline/mcp.json) и добавьте сервер:

{
  "mcpServers": {
    "conorbronsdon-gws-mcp-server-olktseyj78": {
      "command": "npx",
      "args": [
        "gws-mcp-server",
        "--services",
        "drive,sheets,calendar,docs,gmail,tasks"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}
Continue

Создайте файл в .continue/mcpServers/ (например conorbronsdon-gws-mcp-server-olktseyj78.yaml) или добавьте блок в config.yaml. MCP работает только в режиме agent:

mcpServers:
  - name: conorbronsdon-gws-mcp-server-olktseyj78
    command: npx
    args:
      - "gws-mcp-server"
      - "--services"
      - "drive,sheets,calendar,docs,gmail,tasks"
Zed

Выполните agent: add context server или откройте настройки (zed: open settings file) и добавьте сервер в объект context_servers:

{
  "context_servers": {
    "conorbronsdon-gws-mcp-server-olktseyj78": {
      "command": "npx",
      "args": [
        "gws-mcp-server",
        "--services",
        "drive,sheets,calendar,docs,gmail,tasks"
      ]
    }
  }
}

Похожие MCP-сервера

henilcalagiya/google-sheets-mcp

henilcalagiya/google-sheets-mcp

от henilcalagiya

MCP-сервер для автоматизации Google Sheets: создание, чтение, обновление и удаление таблиц через MCP-клиенты. Использует сервисный аккаунт Google для безопасной интеграции. Полезен разработчикам, а...

Python⭐ 13
freema/mcp-gsheets

freema/mcp-gsheets

от freema

Полноценный MCP-сервер для интеграции с Google Sheets. Читает, пишет, форматирует ячейки, управляет листами и создаёт диаграммы. Удобен для автоматизации табличных данных через ИИ-ассистентов.

TypeScript⭐ 104
softeria/ms-365-mcp-server

softeria/ms-365-mcp-server

от softeria

MCP сервер для работы с Microsoft 365 через Graph API. Предоставляет 200+ инструментов для управления почтой, календарём и OneDrive, включая Teams и SharePoint. Автоматизируйте офисные задачи с ИИ-ассистентами.

TypeScript⭐ 1063
xing5/mcp-google-sheets

xing5/mcp-google-sheets

от xing5

Читает и записывает данные в Google Таблицы: обновляет ячейки, ищет по документу, создаёт листы. Поддерживает сервисные аккаунты и фильтрацию инструментов.

Python⭐ 1012
ayo-nci/bulkrender-mcp

ayo-nci/bulkrender-mcp

от ayo-nci

BulkRender MCP сервер для создания DOCX и PDF документов прямо из Claude, Cursor и других AI-ассистентов. Работает по шаблонам, поддерживает пакетную генерацию до 500 документов и не требует устано...

JavaScript⭐ 1
HuntsDesk/ve-gws

HuntsDesk/ve-gws

от huntsdesk

MCP сервер для Google Workspace с 28 дополнительными инструментами авторской работы: создание слайдов, форматирование документов, управление таблицами и диском. Полный контроль над Gmail, Календарем, Чатами и Формами. Поддержка OAuth 2.1 и CLI.

Python⭐ 2
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин