GAS MCP
GAS MCP
Lass deinen KI-Assistenten direkt deine Google Apps Script-Projekte lesen und schreiben
Eine Codezeile ändern, eine Version erstellen, neu bereitstellen, herausfinden, warum der Trigger von gestern fehlgeschlagen ist – einfach sagen, was du brauchst.
📖 Vollständige Installationsanleitung (für Nicht-Entwickler) ・ 🔧 Fehlerbehebung
Was ist das?
Ein Remote-MCP-Server, der auf Cloudflare Workers bereitgestellt wird. Du stellst deine eigene Instanz bereit und autorisierst mit deinem eigenen Google-Konto. Die Daten fließen nur zwischen deinem Google-Konto und deinem Worker – ohne Umweg über Dritte.
你:「出缺席統計那支腳本,昨天的每日觸發器為什麼失敗?」
AI:共 12 筆執行紀錄,其中 3 筆失敗:
- dailyReport|TIME_DRIVEN|FAILED|2026-08-20 07:00,耗時 4.2s
...
我看了 Code.gs 第 17 行,getRange 的列數是從空白試算表算出來的,
所以在資料還沒進來時會是 0。要我改成先檢查 lastRow 嗎?Was kann es?
Tool | Beschreibung |
| Listet deine eigenständigen Skriptprojekte und scriptIds auf (gebundene Skripte werden nicht angezeigt, siehe unten) |
| Projektinformationen: Titel, Ersteller, ob es sich um ein containergebundenes Skript handelt |
| Listet Dateien und Zeilenzahlen im Projekt auf (ohne Quellcode, spart Kontext) |
| Liest den vollständigen Quellcode einer einzelnen Datei |
| Erstellt oder überschreibt Dateien (erstellt vor dem Schreiben automatisch einen Wiederherstellungspunkt) |
| Löscht Dateien (erstellt ebenfalls automatisch einen Wiederherstellungspunkt; verweigert das Löschen des Manifests) |
| Erstellt eigenständige oder containergebundene Skripte |
| Versions-Snapshots, die als Wiederherstellungspunkte und als Grundlage für Bereitstellungen dienen |
| Bereitstellungsverwaltung |
| Ausführungsanzahl, Fehleranzahl, aktive Nutzer |
| Ausführungsprotokolle und Fehlerursachen – das wichtigste Werkzeug zur Trigger-Analyse |
| Führt Funktionen remote aus – standardmäßig deaktiviert, siehe Hinweis unten |
Zeiten werden immer in**Taipeh-Zeit (UTC+8)**angezeigt.
Drei Dinge, die du vorher wissen solltest
Eins: Containergebundene Skripte werden nicht aufgelistet, sind aber vollständig bedienbar.
Skripte, die in Tabellenkalkulationen/Dokumenten/Formularen/Präsentationen eingebettet sind (also die, die du über „Erweiterungen → Apps Script" öffnest),
können nicht über Google Drive aufgelistet werden – das ist eine Plattformbeschränkung von Google, kein Fehler dieses Projekts.
Wenn deine Skripte größtenteils zu dieser Kategorie gehören, gibt list_projects eine leere Liste zurück.
Die Lösung: Gib einfach die scriptId direkt an – alle übrigen 14 Tools funktionieren normal weiter:
到 https://script.google.com/home/all 點開專案,
網址 .../projects/<這一長串>/edit 就是 scriptId
或:容器檔案 → 擴充功能 → Apps Script → 專案設定 → 複製指令碼 IDSag der KI „Schau dir die scriptId 1Ge-MUVs... dieses Skripts an, die Datei Code.gs" und es kann direkt loslegen.
Zwei: Dieses Projekt hat schreibgeschützten Zugriff auf Google Drive.
Die Apps Script API bietet keine Methode zum „Auflisten aller meiner Skriptprojekte"
(offizielles Issue).
Der einzige Weg führt über Google Drive mit einer Abfrage nach Dateityp. Deshalb beantragt dieses Projekt
drive.metadata.readonly – das ist der minimalste Umfang, der dieses Ziel erreicht:
Es können nur Dateinamen und IDs gelesen werden, keinerlei Dateiinhalte, und es können keine Drive-Dateien erstellt, geändert oder gelöscht werden.
Drei: Schreiben überschreibt das gesamte Paket, daher gibt es immer ein Backup.
updateContent der Apps Script API ersetzt das gesamte Projekt durch die von dir gesendete Dateiliste – Dateien, die nicht enthalten sind, verschwinden einfach.
write_file verwendet daher den Ablauf „vollständige Liste lesen → Versions-Wiederherstellungspunkt erstellen → zusammenführen → gesamtes Paket zurücksenden",
und wenn das Backup fehlschlägt, wird der Schreibvorgang abgebrochen: Lieber nicht schreiben, als ohne Rückzugsmöglichkeit zu überschreiben.
Jede Schreibantwort teilt dir mit, welche Versionsnummer der Wiederherstellungspunkt ist.
Über run_function (standardmäßig deaktiviert)
Die Hürden für die Remote-Ausführung von GAS-Funktionen sind höher als bei allen anderen Funktionen, und es bedeutet, dass die KI direkt Code ausführen kann. Daher ist es standardmäßig nicht registriert.
Um es zu aktivieren, hake es in /setup an und erfülle drei Bedingungen – fehlt eine, gibt es 403:
Das Skript muss im Editor über „Bereitstellen → Neue Bereitstellung → Ausführbare API" bereitgestellt werden.
Das Google Cloud-Projekt des Skripts muss dasselbe sein wie das, das dieser Server verwendet.
Das autorisierte Token muss jeden Scope abdecken, der in
appsscript.jsondes Skripts deklariert ist – das kann nicht automatisch abgeleitet werden, du musst es in/setupZeile für Zeile einfügen.
Welche KI-Assistenten werden unterstützt?
Dies ist ein Standard-MCP-Server (Streamable HTTP + OAuth 2.1), nicht an einen bestimmten Anbieter gebunden:
Assistent | So verbindest du |
Claude | Settings → Connectors → Add custom connector |
Claude Code |
|
Gemini Spark | Einstellungen → Connected Apps → Custom apps for Spark |
ChatGPT | Developer mode → Connectors |
Cursor / VS Code / Windsurf / Zed | In den jeweiligen MCP-Einstellungen die URL eintragen |
Installation
Klicke oben auf den Button „Deploy to Cloudflare" und folge dann der vollständigen Installationsanleitung – dauert etwa 20 Minuten.
1. 點部署按鈕 → 得到你的專屬網址
2. 開啟 Apps Script API 存取 → 一個開關,但最常被忘記
3. 在 Google Cloud 開權限 → 步驟最多的一段
4. 打開 <你的網址>/setup → 貼上憑證、設管理密碼
5. 把 <你的網址>/mcp 貼進 AI 助理 → 完成Warum selbst bereitstellen statt gemeinsam nutzen?
Skriptprojektinhalte fallen in den sensiblen Berechtigungsbereich von Google. Um einen öffentlich gemeinsam genutzten Dienst anzubieten, muss der Entwickler die OAuth-Prüfung von Google und die CASA-Jahressicherheitsbewertung bestehen – das ist kostspielig, und der Code aller Nutzer würde über denselben fremden Server laufen.
Wenn jeder seine eigene Instanz aufsetzt: keine Prüfung nötig, Daten bleiben nur bei dir, und es gibt auch kein 100-Nutzer-Limit. Der Preis ist eine einmalige Einrichtung von etwa 20 Minuten – danach musst du dich nie wieder darum kümmern.
Sicherheitsdesign
Verschlüsselte Speicherung von Anmeldedaten: Der Google-Refresh-Token wird von
@cloudflare/workers-oauth-providerverschlüsselt in deinem eigenen Cloudflare-KV gespeichert und an keinen Dritten weitergegebenBesitzer-Sperre: Das erste Google-Konto, das die Autorisierung abschließt, wird gebunden; andere können selbst mit der URL nicht darauf zugreifen
Backup vor jedem Schreibvorgang: Jeder
write_file/delete_fileerstellt automatisch einen Versions-Wiederherstellungspunkt; schlägt das Backup fehl, wird abgebrochenAusführung muss explizit aktiviert werden:
run_functionist standardmäßig nicht registriert und intools/listgar nicht sichtbarMinimale Berechtigungen: Es werden nur die tatsächlich benötigten Scopes beantragt; für Drive reicht schreibgeschützte Metadaten
Keine Spuren hinterlassen: Code wird sofort abgerufen und nach der Nutzung verworfen, ohne Schreiben in Datenbanken oder Protokolldateien
Vollständige Details findest du nach der Bereitstellung unter <deine-URL>/privacy.
Für Entwickler
npm install
npm test # 87 個測試
npm run typecheck
npx wrangler devTechnische Details
Transportschicht: Streamable HTTP, Endpunkt
/mcpProtokollversion: Unterstützt gleichzeitig 2025-era-Clients (
initialize-Handshake) und 2026-07-28 (stateless), automatisch über den Legacy-Fallback von@modelcontextprotocol/serverv2Autorisierung: Derselbe Worker ist sowohl OAuth-2.1-Authorization-Server für MCP-Clients als auch OAuth-Client gegenüber Google. Unterstützt DCR, PKCE S256, RFC 9728 Resource-Metadaten, RFC 9207
iss
Projektstruktur
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 台北時區換算Lizenzbedingungen
MIT
This server cannot be installed
Maintenance
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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