Skip to main content
Glama

GAS MCP

Позвольте ИИ-ассистенту напрямую читать и писать ваши проекты Google Apps Script

Изменить строку кода, создать версию, переразвернуть, выяснить, почему вчера не сработал триггер, — просто скажите об этом.

Deploy to Cloudflare

📖 Полное руководство по установке (для не-программистов)🔧 Устранение неполадок


Что это

Это удалённый MCP-сервер, развёрнутый на Cloudflare Workers. Вы разворачиваете свой собственный экземпляр и авторизуетесь под своим аккаунтом Google. Данные передаются только между вашим аккаунтом Google и вашим Worker, не проходя через третьи стороны.

你:「出缺席統計那支腳本,昨天的每日觸發器為什麼失敗?」

AI:共 12 筆執行紀錄,其中 3 筆失敗:
    - dailyReport|TIME_DRIVEN|FAILED|2026-08-20 07:00,耗時 4.2s
    ...
    我看了 Code.gs 第 17 行,getRange 的列數是從空白試算表算出來的,
    所以在資料還沒進來時會是 0。要我改成先檢查 lastRow 嗎?

Что умеет

工具

說明

list_projects

Перечисляет ваши автономные скриптовые проекты и scriptId (привязанные скрипты не отображаются, см. ниже)

get_project

Информация о проекте: название, создатель, является ли он скриптом, привязанным к контейнеру

list_files

Перечисляет файлы в проекте и количество строк (без исходного кода, экономит контекст)

read_file

Читает полный исходный код одного файла

write_file

Создаёт или перезаписывает файл (перед записью автоматически создаётся точка восстановления версии)

delete_file

Удаляет файл (также автоматически создаётся точка восстановления; отказывается удалять manifest)

create_project

Создаёт автономный скрипт или скрипт, привязанный к контейнеру

list_versions / create_version

Снимки версий — можно использовать как точки восстановления и как основу для развёртывания

list_deployments / create_deployment / update_deployment

Управление развёртываниями

get_metrics

Количество выполнений, количество сбоев, активные пользователи

list_executions

Журнал выполнений и причины сбоев — основной инструмент для диагностики триггеров

run_function

Удалённое выполнение функции — по умолчанию отключено, см. пояснение ниже

Время всегда отображается в **тайбэйском времени (UTC+8)**.

Три вещи, которые нужно знать заранее

Первое: скрипты, привязанные к контейнеру, не отображаются в списке, но с ними можно полноценно работать. Скрипты, привязанные к таблицам, документам, формам или презентациям (то есть те, что открываются через «Расширения → Apps Script»), нельзя перечислить через Google 雲端硬碟 — это ограничение платформы Google, а не недостаток этого проекта. Если большинство ваших скриптов относятся к этому типу, list_projects вернёт пустой список.

Решение — просто указать scriptId, все остальные 14 инструментов работают как обычно:

到 https://script.google.com/home/all 點開專案,
網址 .../projects/<這一長串>/edit 就是 scriptId

或:容器檔案 → 擴充功能 → Apps Script → 專案設定 → 複製指令碼 ID

Скажите ИИ: «Посмотри Code.gs в скрипте с scriptId 1Ge-MUVs...» — и можно сразу начинать.

Второе: этот проект имеет права только на чтение к Google 雲端硬碟. Apps Script API не предоставляет метода «перечислить все мои скриптовые проекты» (официальный issue), единственный путь — запрос к Google Диску по типу файла. Поэтому этот проект запрашивает drive.metadata.readonly — это минимальная область, позволяющая достичь цели: можно прочитать только имена файлов и ID, но не содержимое файлов, а также нельзя создавать, изменять или удалять какие-либо файлы на Google 雲端硬碟.

Третье: запись происходит полной заменой, поэтому резервное копирование выполняется всегда. Метод updateContent в Apps Script API заменяет весь проект списком файлов, который вы отправляете, — файлы, не включённые в список, просто исчезают. Поэтому write_file использует процесс «сначала прочитать полный список → создать точку восстановления версии → объединить → отправить весь пакет обратно», и если резервное копирование не удалось, запись прерывается: лучше не писать, чем перезаписывать без пути к отступлению. Каждый ответ на запись сообщает вам, каким номером версии является точка восстановления.

О run_function (по умолчанию отключено)

Удалённое выполнение функций GAS требует больше, чем другие возможности, и фактически позволяет ИИ напрямую исполнять код, поэтому по умолчанию оно не регистрируется. Чтобы включить его, отметьте галочку в /setup и выполните три условия — при отсутствии любого из них вы получите 403:

  1. Скрипт должен быть развёрнут в редакторе через «Развернуть → Новое развертывание → Исполняемый файл API».

  2. Проект Google Cloud для скрипта должен быть тем же самым, что используется этим сервером.

  3. Авторизованный токен должен покрывать каждый scope, объявленный в appsscript.json скрипта — это невозможно вывести автоматически, вам нужно вставить их по одному в /setup.

Какие ИИ-ассистенты поддерживаются

Это стандартный MCP-сервер (Streamable HTTP + OAuth 2.1), не привязанный к конкретному поставщику:

助理

怎麼接

Claude

Settings → Connectors → Add custom connector

Claude Code

claude mcp add --transport http gas <你的網址>/mcp

Gemini Spark

Настройки → Connected Apps → Custom apps for Spark

ChatGPT

Developer mode → Connectors

Cursor / VS Code / Windsurf / Zed

В настройках MCP соответствующего инструмента укажите URL

Установка

Нажмите кнопку «Deploy to Cloudflare» выше, затем следуйте полному руководству по установке — около 20 минут.

1. 點部署按鈕                → 得到你的專屬網址
2. 開啟 Apps Script API 存取  → 一個開關,但最常被忘記
3. 在 Google Cloud 開權限     → 步驟最多的一段
4. 打開 <你的網址>/setup      → 貼上憑證、設管理密碼
5. 把 <你的網址>/mcp 貼進 AI 助理 → 完成

Почему нужно разворачивать самостоятельно, а не использовать один общий сервер?

Содержимое скриптовых проектов относится к области конфиденциальных разрешений Google. Чтобы сделать публичный общий сервис, разработчик должен пройти проверку OAuth от Google и ежегодную оценку безопасности CASA — это дорого, и к тому же код всех пользователей будет проходить через один чужой сервер.

Если же каждый разворачивает свой собственный экземпляр: не нужны никакие проверки, данные остаются только у вас, и нет ограничения в 100 человек. Плата за это — около 20 минут на настройку один раз, после чего больше ничего делать не нужно.

Принципы безопасности

  • Шифрованное хранение учётных данных: Google refresh token шифруется с помощью @cloudflare/workers-oauth-provider и хранится в вашем собственном Cloudflare KV, не передаваясь третьим лицам

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

  • Обязательное резервное копирование перед записью: каждый write_file / delete_file автоматически создаёт точку восстановления версии; при сбое резервирования запись прерывается

  • Выполнение требует явного включения: run_function по умолчанию не регистрируется, и его вообще не видно в tools/list

  • Минимальные права: запрашиваются только реально используемые scope, для Drive — только чтение metadata

  • Без следов: код получается на лету и сразу отбрасывается, ничего не записывается в базы данных или журналы

Полное описание см. на <你的網址>/privacy после развёртывания.

Для разработчиков

npm install
npm test          # 87 個測試
npm run typecheck
npx wrangler dev

Технические детали

  • Транспортный уровень: Streamable HTTP, конечная точка /mcp

  • Версия протокола: поддерживаются одновременно клиенты 2025-era (рукопожатие initialize) и 2026-07-28 (stateless), автоматически обрабатывается через legacy fallback в @modelcontextprotocol/server v2

  • Авторизация: один и тот же Worker является одновременно OAuth 2.1 authorization server для MCP-клиентов и OAuth-клиентом для Google. Поддерживаются DCR, PKCE S256, метаданные ресурсов RFC 9728, iss из RFC 9207

Структура проекта

src/
├── index.ts          OAuthProvider 組裝(Worker 進入點)
├── auth-handler.ts   /authorize、Google callback、首頁與法律頁路由
├── setup-page.ts     /setup 設定精靈(含遠端執行開關)
├── legal-pages.ts    隱私權政策與服務條款
├── config.ts         設定儲存與管理密碼
├── state.ts          HMAC 簽章的 OAuth state
├── errors.ts         Google API 錯誤 → 可行動的中文訊息
├── google/
│   ├── oauth.ts      Google OAuth 與動態 scope 組合
│   ├── apps-script.ts  script.googleapis.com REST client
│   └── drive.ts      Drive API(只用來列出腳本專案)
└── mcp/
    ├── handler.ts    MCP handler 與每請求的 server 工廠
    ├── tools-read.ts 唯讀工具
    ├── tools-write.ts 寫入工具(含備份邏輯)
    ├── tools-run.ts  run_function(僅在啟用時註冊)
    ├── shared.ts     工具回傳值與錯誤包裝
    └── datetime.ts   台北時區換算

Лицензия

MIT


-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Search and discover Google Apps Script libraries with AI-generated summaries

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

  • Give AI agents access to form submissions — read, search, update, and process file attachments.

View all MCP Connectors

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/FW1201/gas-mcp'

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