GAS MCP
GAS MCP
Позвольте ИИ-ассистенту напрямую читать и писать ваши проекты Google Apps Script
Изменить строку кода, создать версию, переразвернуть, выяснить, почему вчера не сработал триггер, — просто скажите об этом.
📖 Полное руководство по установке (для не-программистов) ・ 🔧 Устранение неполадок
Что это
Это удалённый 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 嗎?Related MCP server: claude-appsscript-pro
Что умеет
工具 | 說明 |
| Перечисляет ваши автономные скриптовые проекты и scriptId (привязанные скрипты не отображаются, см. ниже) |
| Информация о проекте: название, создатель, является ли он скриптом, привязанным к контейнеру |
| Перечисляет файлы в проекте и количество строк (без исходного кода, экономит контекст) |
| Читает полный исходный код одного файла |
| Создаёт или перезаписывает файл (перед записью автоматически создаётся точка восстановления версии) |
| Удаляет файл (также автоматически создаётся точка восстановления; отказывается удалять manifest) |
| Создаёт автономный скрипт или скрипт, привязанный к контейнеру |
| Снимки версий — можно использовать как точки восстановления и как основу для развёртывания |
| Управление развёртываниями |
| Количество выполнений, количество сбоев, активные пользователи |
| Журнал выполнений и причины сбоев — основной инструмент для диагностики триггеров |
| Удалённое выполнение функции — по умолчанию отключено, см. пояснение ниже |
Время всегда отображается в **тайбэйском времени (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:
Скрипт должен быть развёрнут в редакторе через «Развернуть → Новое развертывание → Исполняемый файл API».
Проект Google Cloud для скрипта должен быть тем же самым, что используется этим сервером.
Авторизованный токен должен покрывать каждый scope, объявленный в
appsscript.jsonскрипта — это невозможно вывести автоматически, вам нужно вставить их по одному в/setup.
Какие ИИ-ассистенты поддерживаются
Это стандартный MCP-сервер (Streamable HTTP + OAuth 2.1), не привязанный к конкретному поставщику:
助理 | 怎麼接 |
Claude | Settings → Connectors → Add custom connector |
Claude Code |
|
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/serverv2Авторизация: один и тот же 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
This server cannot be deployed
Maintenance
Related MCP Connectors
Search and discover Google Apps Script libraries with AI-generated summaries
Connect AI assistants to Google Sheets through controlled tools for reading and updating rows.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Multiple Gmail accounts, editable Google Sheets & Docs for AI agents. Deny-by-default access rules.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables users to create, manage, and execute Google Apps Script projects through natural language. It provides comprehensive tools for code editing, function execution, deployment management, and monitoring script processes.5010MIT
- AlicenseDqualityCmaintenanceEnables AI-driven development and management of Google Apps Script projects, including autonomous system construction, real-time debugging, and spreadsheet operations through natural language.766MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to create and modify Google Apps Script projects, manage versions and deployments, run functions, and inspect execution history through natural language.1831 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to directly read and write Google Apps Script projects, manage versions and deployments, inspect execution logs and failures, and run functions through natural language, with user-owned OAuth authorization and self-hosted deployment.-