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

Google Workspace for AI agents: Gmail, Calendar, Drive, Sheets, Docs, and Tasks as a curated set of 41 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 MCP readOnlyHint/destructiveHint annotations so clients can reason about side effects and surface clearer consent prompts.

Prerequisites

  • Node.js 18+
  • gws CLI installed and authenticated (npm install -g @googleworkspace/cli && gws auth login)

Quick start

# Install
npm install -g gws-mcp-server

# Or run from source
git clone https://github.com/conorbronsdon/gws-mcp-server.git
cd gws-mcp-server
npm install && npm run build

Configuration

Claude Code (.mcp.json)
Инструменты были проиндексированы:
calendar_events_delete

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

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

    Calendar ID

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

    Event ID to delete

calendar_events_getтолько чтение

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

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

    Calendar ID

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

    Event ID

calendar_events_insert

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

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

    Calendar ID

  • descriptionstring

    Event description

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

    End time JSON

  • locationstring

    Event location

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

    Start time JSON (e.g. '{"dateTime":"2026-03-10T10:00:00-07:00"}')

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

    Event title

calendar_events_listтолько чтение

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

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

    Calendar ID (use 'primary' for main calendar)

  • maxResultsnumber

    Max events to return

  • orderBystring

    Sort order: startTime or updated

  • qstring

    Free-text search

  • singleEventsboolean

    Expand recurring events (usually true)

  • timeMaxstring

    Upper bound (RFC3339)

  • timeMinstring

    Lower bound (RFC3339, e.g. "2026-03-07T00:00:00Z")

calendar_events_update

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

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

    Calendar ID

  • descriptionstring

    Event description

  • endstring

    End time JSON

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

    Event ID to update

  • startstring

    Start time JSON

  • summarystring

    Event title

docs_batchUpdate

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

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

    The document ID

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

    Array of update requests as JSON string

docs_create

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

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

    Document title

docs_getтолько чтение

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

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

    The document ID

drive_files_copy

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

Параметры
  • fieldsstring

    Fields to return

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

    Source file ID to copy

  • mimeTypestring

    Target MIME type for conversion

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

    Name for the copy

  • parentsstring

    Parent folder IDs (JSON array as string)

drive_files_create

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

Параметры
  • fieldsstring

    Fields to return (e.g. "id,webViewLink")

  • mimeTypestring

    MIME type (e.g. "application/vnd.google-apps.document")

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

    File name

  • parentsstring

    Parent folder IDs (JSON array as string, e.g. '["folderId"]')

  • uploadPathstring

    Local file path to upload

drive_files_delete

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

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

    The file ID to delete

drive_files_downloadтолько чтение

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

Параметры
  • exportMimeTypestring

    For Google-native files (Docs/Sheets/Slides): export format. Defaults to text/plain for Docs, text/csv for Sheets. Examples: text/plain, text/csv, application/pdf

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

    The file ID to download

  • savePathstring

    For binary files (images, PDFs): save to this local path instead of returning content inline. The file path is returned in the response.

drive_files_exportтолько чтение

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

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

    The Google Workspace file ID to export

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

    Export format: text/plain, text/csv, application/pdf, application/vnd.openxmlformats-officedocument.wordprocessingml.document (docx), application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (xlsx)

drive_files_getтолько чтение

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

Параметры
  • fieldsstring

    Fields to include

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

    The file ID

drive_files_listтолько чтение

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

Параметры
  • fieldsstring

    Fields to include (e.g. "files(id,name,mimeType)")

  • orderBystring

    Sort order (e.g. "modifiedTime desc")

  • pageSizenumber

    Max results per page (1-1000, default 100)

  • qstring

    Search query (e.g. "name contains 'report'" or "mimeType='application/vnd.google-apps.folder'")

drive_files_update

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

Параметры
  • fieldsstring

    Fields to return

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

    The file ID to update

  • mimeTypestring

    New MIME type

  • namestring

    New file name

  • uploadPathstring

    Local file path to upload

drive_permissions_create

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

Параметры
  • emailAddressstring

    Email of user/group (required for user/group type)

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

    The file ID to share

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

    Permission role: owner, organizer, fileOrganizer, writer, commenter, reader

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

    Grantee type: user, group, domain, anyone

gmail_drafts_create

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

Параметры
  • bccstring

    BCC recipient(s), comma-separated

  • bodystring

    Plain-text body

  • ccstring

    CC recipient(s), comma-separated

  • htmlBodystring

    HTML body. If both body and htmlBody are provided, the draft is multipart/alternative.

  • inReplyTostring

    Message-ID header value of the message being replied to. Improves threading robustness alongside threadId.

  • referencesstring

    References header value (space-separated Message-IDs of ancestor messages).

  • subjectstring

    Subject line. When attaching to a thread via threadId, Gmail expects the subject to match the thread (typically "Re: <original>").

  • threadIdstring

    Thread ID to attach this draft to. Get it from gmail_threads_list / gmail_messages_get.

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

    Recipient(s). Comma-separated for multiple, e.g. "a@x.com, b@y.com"

gmail_messages_getтолько чтение

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

Параметры
  • formatstring

    Response format: full, metadata, minimal, raw

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

    Message ID

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

    User ID (use 'me')

gmail_messages_listтолько чтение

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

Параметры
  • labelIdsstring

    Label IDs to filter by

  • maxResultsnumber

    Max messages to return

  • qstring

    Gmail search query (e.g. "from:user@example.com subject:hello")

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

    User ID (use 'me')

gmail_threads_getтолько чтение

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

Параметры
  • formatstring

    Response format: full, metadata, minimal

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

    Thread ID

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

    User ID (use 'me')

gmail_threads_listтолько чтение

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

Параметры
  • maxResultsnumber

    Max threads to return

  • qstring

    Gmail search query

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

    User ID (use 'me')

gmail_threads_modify

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

Параметры
  • addLabelIdsstring

    JSON array of label IDs to add, e.g. ["STARRED"]

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

    Thread ID

  • removeLabelIdsstring

    JSON array of label IDs to remove, e.g. ["INBOX","UNREAD"]

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

    User ID (use 'me')

sheets_getтолько чтение

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

Параметры
  • includeGridDataboolean

    Include grid data

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

    The spreadsheet ID

sheets_values_append

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

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

    A1 notation range to append to

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

    The spreadsheet ID

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

    RAW or USER_ENTERED

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

    2D array of values as JSON string

sheets_values_getтолько чтение

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

Параметры
  • majorDimensionstring

    ROWS or COLUMNS

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

    A1 notation range (e.g. "Sheet1!A1:D10")

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

    The spreadsheet ID

  • valueRenderOptionstring

    FORMATTED_VALUE, UNFORMATTED_VALUE, or FORMULA

sheets_values_update

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

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

    A1 notation range to write

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

    The spreadsheet ID

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

    RAW or USER_ENTERED

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

    2D array of values as JSON string (e.g. '[["A","B"],["C","D"]]')

tasks_tasklists_delete

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

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

    Task list ID to delete

tasks_tasklists_getтолько чтение

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

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

    Task list ID (use "@default" for the user's default list)

tasks_tasklists_insert

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

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

    Task list title

tasks_tasklists_listтолько чтение

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

Параметры
  • maxResultsnumber

    Max task lists per page (1-100, default 20)

  • pageTokenstring

    Token for the next page of results

tasks_tasklists_update

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

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

    Task list ID to update

  • titlestring

    New task list title

tasks_tasks_clear

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

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

    Task list ID to clear

tasks_tasks_delete

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

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

    Task ID to delete

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

    Task list ID

tasks_tasks_getтолько чтение

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

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

    Task ID

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

    Task list ID

tasks_tasks_insert

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

Параметры
  • duestring

    Due date (RFC 3339, e.g. "2026-06-01T00:00:00.000Z")

  • notesstring

    Free-text notes / body

  • parentstring

    Parent task ID (insert as a subtask under this task)

  • previousstring

    Sibling task ID (insert immediately after this task)

  • statusstring

    Task status: needsAction or completed

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

    Task list ID to insert into

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

    Task title

tasks_tasks_listтолько чтение

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

Параметры
  • completedMaxstring

    Upper bound on completion date (RFC 3339)

  • completedMinstring

    Lower bound on completion date (RFC 3339)

  • dueMaxstring

    Upper bound on due date (RFC 3339)

  • dueMinstring

    Lower bound on due date (RFC 3339)

  • maxResultsnumber

    Max tasks per page (1-100, default 20)

  • pageTokenstring

    Token for the next page of results

  • showAssignedboolean

    Include tasks assigned from Docs/Chat Spaces

  • showCompletedboolean

    Include completed tasks (default true; ignored unless showHidden is also true)

  • showDeletedboolean

    Include deleted tasks

  • showHiddenboolean

    Include hidden (cleared) tasks

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

    Task list ID (use "@default" for the default list)

  • updatedMinstring

    Lower bound on last-modified time (RFC 3339)

tasks_tasks_move

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

Параметры
  • destinationTaskliststring

    Destination task list ID (omit to move within the source list)

  • parentstring

    New parent task ID (move as subtask under this task)

  • previousstring

    New sibling task ID (move immediately after this task)

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

    Task ID to move

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

    Source task list ID

tasks_tasks_update

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

Параметры
  • duestring

    Due date (RFC 3339)

  • notesstring

    Free-text notes / body

  • statusstring

    Task status: needsAction or completed

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

    Task ID to update

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

    Task list ID

  • titlestring

    Task title

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

taylorwilsdon/google_workspace_mcp

taylorwilsdon/google_workspace_mcp

Google Workspace MCP сервер для полного управления сервисами через естественный язык - Gmail, Drive, Calendar, Docs, Sheets и другие. Поддерживает OAuth 2.1 и многопользовательский режим. Идеален д...

Python3141
HuntsDesk/ve-gws

HuntsDesk/ve-gws

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

Python2
vakharwalad23/google-mcp

vakharwalad23/google-mcp

MCP сервер для интеграции Google-сервисов (почта, календарь, диски, задачи) с AI-клиентами. Позволяет отправлять письма с вложениями, управлять событиями, файлами и задачами. Упрощает автоматизацию рабочих процессов.

TypeScript21
MarkusPfundstein/mcp-gsuite

MarkusPfundstein/mcp-gsuite

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

Python490
isaacphi/mcp-gdrive

isaacphi/mcp-gdrive

MCP-сервер для интеграции с Google Drive: ищите, читайте файлы и управляйте Google Sheets. Поддерживает экспорт Workspace-документов. Полезен разработчикам, автоматизирующим работу с облачными доку...

TypeScript283
Google Calendar MCP

Google Calendar MCP

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

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

Лука Никитин