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

@a1-x-tech/mcp-google-slides

v1.0.0

Published

MCP server for the Google Slides API — create and edit presentations, slides, text, shapes, tables and images, manage speaker notes, comments, thumbnails and export. For Claude, Cursor, Codex and other AI clients.

Downloads

698

Readme

Google Slides MCP

English | Русский

npm CI Glama License: MIT

A1 Google Slides MCP позволяет AI-приложению создавать и редактировать презентации Google Slides на естественном языке. Можно собрать презентацию, добавить и переставить слайды, написать и оформить текст, разместить фигуры, изображения и таблицы, вести заметки докладчика, разобрать комментарии и выгрузить результат в PDF или PPTX.

Сервер работает с Google Slides API через ваш Google-аккаунт. Всё внутри презентации адресуется явными object id, а ограничения Slides API сервер называет прямо, вместо того чтобы делать вид, будто с презентацией возможно всё.

  • 32 инструментов. Проверка презентаций и страниц, редактирование слайдов, текста, фигур, изображений и таблиц, заметки докладчика и комментарии, миниатюры и экспорт файлов.
  • Подключение из диалога. Скажите «подключи Google Презентации»: сервер проведёт через создание OAuth-клиента, поймает редирект Google на 127.0.0.1 с PKCE и сам сохранит токены — без конфигов и перезапуска.
  • Правки атомарны. Изменения идут через batchUpdate API: один неверный запрос отменяет весь пакет, поэтому презентация не остаётся отредактированной наполовину.
  • Ваш Drive недосягаем. Комментарии, экспорт и загрузка локальных изображений используют Drive API строго для одного файла презентации — инструментов, чтобы перечислять, расшаривать, переименовывать или удалять файлы Drive, нет.
  • Минимальные scope Google. Нужен presentations; scope Drive требуются только для локальных изображений, комментариев и экспорта.

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

Покажи слайды квартального отчёта и что на каждом из них.

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


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

Вы: Перечисли слайды презентации с обзором Q3 и что на каждом.

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

Вы: Подготовь новый слайд после повестки с заголовком «Roadmap» и ключевыми датами в теле.

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

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

Ассистент: Добавляет слайд и заполняет его плейсхолдеры. Остальные слайды он не трогает.

Содержание

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

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

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

В приложении: откройте Settings → MCP servers, нажмите Add server, выберите STDIO, укажите команду npx -y @a1-x-tech/mcp-google-slides@latest и переменные окружения GOOGLE_SLIDES_CLIENT_ID, GOOGLE_SLIDES_CLIENT_SECRET, GOOGLE_SLIDES_REFRESH_TOKEN, затем нажмите Save, потом Restart.

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

codex mcp add google-slides \
  -- npx -y @a1-x-tech/mcp-google-slides@latest
codex mcp list

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

claude mcp add \
  --transport stdio --scope user google-slides \
  -- npx -y @a1-x-tech/mcp-google-slides@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-slides": {
      "command": "npx",
      "args": ["-y", "@a1-x-tech/mcp-google-slides@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-slides": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@a1-x-tech/mcp-google-slides@latest"]
    }
  }
}

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

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

{
  "servers": {
    "google-slides": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@a1-x-tech/mcp-google-slides@latest"]
    }
  }
}

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

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

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

Проверить презентацию

  • Перечисли слайды этой презентации и что на каждом.
  • Прочитай заметки докладчика к пятому слайду.
  • Отрисуй миниатюру титульного слайда.

Собрать и переставить слайды

  • Создай презентацию для обзора Q3.
  • Добавь слайд «Roadmap» после повестки, продублируй слайд-шаблон, перенеси итоги в конец.
  • Вставь изображение по URL или из локального файла, добавь таблицу 4×3, создай текстовый блок или скруглённый прямоугольник с подписью.

Написать и отшлифовать текст

  • Помести этот текст в плейсхолдер заголовка и выдели дедлайн жирным красным.
  • Замени «Q2» на «Q3» по всей презентации.
  • Сократи заметки докладчика к третьему слайду.

Разобрать и передать дальше

  • Перечисли открытые ветки комментариев и ответь на первую, закрыв её как решённую.
  • Удали черновой слайд, который больше не нужен.
  • Выгрузи презентацию в PDF или PPTX для того, у кого нет доступа к Google.

Как меняется презентация

  1. create_presentation создаёт презентацию с одним титульным слайдом; при создании учитывается только название.
  2. Всё внутри презентации — слайды, фигуры, изображения, таблицы — адресуется object id. list_slides — компактная опись, с которой стоит начинать перед любой правкой.
  3. Правки идут через атомарный batchUpdate API: один неверный запрос отменяет весь пакет, поэтому ничего не применяется наполовину.
  4. Входные значения инструментов — в пунктах; API хранит EMU (1 pt = 12700 EMU). Сервер конвертирует в обе стороны.

Slides API не может удалить, переименовать или расшарить файл презентации — это файловые операции Drive за пределами этого сервера. Он не может импортировать тему (только применять макеты, которые уже есть в презентации) и не может привязать новый комментарий к конкретному слайду. Экспорт ограничен 10 МБ, а ссылки на миниатюры истекают примерно через 30 минут.

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

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

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

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

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

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

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

  1. setup_instructions выдаёт чек-лист: создать или выбрать проект Google Cloud, включить Google Slides 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-slides/credentials.json (права 0600).

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

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

  1. Создайте или выберите проект Google Cloud и включите Google Slides API. Также включите Google Drive 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/presentations
    https://www.googleapis.com/auth/drive.file

    presentations покрывает все чтения и записи Slides. drive.file покрывает загрузку локальных изображений, а также комментарии и экспорт для презентаций, созданных через это приложение; запросите более широкий https://www.googleapis.com/auth/drive, если комментарии или экспорт нужны для произвольных презентаций.

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

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

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

| Переменная | Обязательна | Описание | |---|---|---| | GOOGLE_SLIDES_CLIENT_ID | Нет* | OAuth client ID. | | GOOGLE_SLIDES_CLIENT_SECRET | Нет* | OAuth client secret. | | GOOGLE_SLIDES_REFRESH_TOKEN | Нет* | OAuth refresh token. | | GOOGLE_SLIDES_ACCESS_TOKEN | Нет* | Короткоживущая (~1 ч) альтернатива OAuth-тройке. | | GOOGLE_SLIDES_OAUTH_PORT | Нет | Фиксированный порт loopback-слушателя для входа из диалога; нужен при пробросе портов по SSH. | | GOOGLE_SLIDES_API_BASE | Нет | Переопределяет базовый URL Google Slides API. | | GOOGLE_SLIDES_DRIVE_API_BASE | Нет | Переопределяет базовый URL Google Drive API (внутренняя зависимость: комментарии, экспорт, загрузка изображений). | | GOOGLE_SLIDES_TIMEOUT_MS | Нет | Тайм-аут одного запроса; по умолчанию 60000 мс. | | GOOGLE_SLIDES_MAX_RETRIES | Нет | Повторы временных ошибок; по умолчанию 3. |

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

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

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

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

Поддержка

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