Unified Apps Script MCP
Allows access to Gmail through a guarded Google Workspace REST gateway, enabling email-related operations via generic Workspace API requests.
Provides tools for the full Google Apps Script lifecycle, including project creation, content updates, versioning, deployments, rollback, function execution, process history, and metrics.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Unified Apps Script MCP Show me my Apps Script projects"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Unified Apps Script MCP
One production-oriented MCP server for the full Google Apps Script lifecycle plus an allowlisted Google Workspace REST gateway. It synthesizes the strongest patterns found across the public Apps Script MCP ecosystem without copying their source.
What it combines
Apps Script project creation, metadata, HEAD content, merge-safe updates, immutable versions, deployments, rollback, execution, process history and metrics.
Drive-based Apps Script project discovery, which fills the Apps Script API's project-listing gap.
Google Workspace coverage through a guarded REST gateway for Sheets, Docs, Drive, Gmail, Calendar, Tasks, Forms and Slides.
Automatic OAuth discovery, browser launch, PKCE, one-shot loopback callback, secure token refresh and revocation.
MCP safety annotations plus explicit
confirm=trueboundaries for deployment deletion, function execution and generic non-GET requests.Automatic pagination for list tools.
Related MCP server: MCP Google Apps Script (GAS) Server
OAuth behavior
Call
auth_status.Call
auth_setup. It searches environment variables,GOOGLE_OAUTH_CLIENT_JSON, the private config directory, project-root credential files and the newestclient_secret_*.jsonin Downloads.If no Desktop OAuth client exists, the server opens Google Auth Platform's Clients page. Google does not expose a general public API that can create a Desktop OAuth client, so this one console action cannot be safely automated.
Create a Desktop app client and download its JSON. No path is normally needed because Downloads is auto-detected.
Call
auth_login. The system browser opens immediately; the server uses PKCE and receives the callback on a random127.0.0.1port.
Tokens and imported client configuration are stored under ~/.config/unified-appscript-mcp/ with owner-only permissions.
Install
npm install
npm run buildClaude Code
claude mcp add --transport stdio --scope user unified-appscript -- node /absolute/path/unified-appscript-mcp/dist/index.jsCursor / Claude Desktop
{
"mcpServers": {
"unified-appscript": {
"command": "node",
"args": ["/absolute/path/unified-appscript-mcp/dist/index.js"]
}
}
}Tool catalog
Group | Tools |
Authentication |
|
Projects and code |
|
Versions |
|
Deployments |
|
Runtime |
|
Workspace |
|
Security model
Google API calls use HTTPS and an explicit host allowlist.
OAuth state and PKCE protect the local authorization flow.
Secrets never appear in tool responses.
Credential files use mode
0600; their directory uses0700.Project writes preserve unmentioned files by default and refuse to lose
appsscript.json.Writes are not automatically retried, preventing duplicate versions, deployments or executions.
Destructive operations require an explicit confirmation parameter and remain subject to the MCP client's approval UI.
Validation
npm run checkCI runs type checking, compilation and tests on Node.js 20 and 22.
Research
See docs/ECOSYSTEM.md for the repository inventory and the capability synthesis used in this implementation.
License
MIT. See LICENSE.
Available Tools
23 toolsapps_script_create_deploymentC
Deploy an immutable version with a manifest entry point.
Inputs: scriptId (required), versionNumber (required), description, manifestFileName.
apps_script_create_projectA
Create a standalone or container-bound Apps Script project. Preserve the returned scriptId.
Inputs: title (required), parentId.
apps_script_create_versionA
Create an immutable version snapshot of HEAD.
Inputs: scriptId (required), description.
apps_script_delete_deploymentADestructive
Permanently delete a deployment and break its live URL.
Inputs: confirm (required), scriptId (required), deploymentId (required).
apps_script_get_contentBRead-onlyIdempotent
Read HEAD or an immutable version of all Apps Script project files.
Inputs: scriptId (required), versionNumber.
apps_script_get_deploymentBRead-onlyIdempotent
Get one Apps Script deployment.
Inputs: scriptId (required), deploymentId (required).
apps_script_get_metricsBRead-onlyIdempotent
Get execution, user and failure metrics for an Apps Script project.
Inputs: scriptId (required), deploymentId, metricsGranularity.
apps_script_get_projectBRead-onlyIdempotent
Get Apps Script project metadata.
Inputs: scriptId (required).
apps_script_get_versionARead-onlyIdempotent
Get one immutable Apps Script version.
Inputs: scriptId (required), versionNumber (required).
apps_script_list_deploymentsARead-onlyIdempotent
List deployments and entry points, automatically following pagination.
Inputs: scriptId (required), maxPages, pageSize.
apps_script_list_processesCRead-onlyIdempotent
List the authenticated user's Apps Script executions with filters.
Inputs: maxPages, pageSize, userProcessFilter.
apps_script_list_script_processesBRead-onlyIdempotent
List executions for one script with optional API filter syntax.
Inputs: scriptId (required), maxPages, pageSize, scriptProcessFilter.
apps_script_list_versionsCRead-onlyIdempotent
List immutable versions, automatically following pagination.
Inputs: scriptId (required), maxPages, pageSize.
apps_script_open_editorB
Open an Apps Script project in the system browser.
Inputs: scriptId (required).
apps_script_run_functionBDestructive
Execute a function through an API-executable deployment. The function may cause real external side effects.
Inputs: confirm (required), scriptId (required), functionName (required), devMode, +1 more.
apps_script_update_contentADestructive
Update Apps Script HEAD. Merge mode preserves unmentioned files and the manifest; replace mode requires appsscript JSON explicitly.
Inputs: files (required), scriptId (required), mode.
apps_script_update_deploymentADestructive
Repoint an existing deployment to another immutable version while keeping its deployment ID/URL.
Inputs: scriptId (required), deploymentId (required), versionNumber (required), description, +1 more.
auth_loginB
Open the system browser, run Google OAuth with PKCE and a one-shot loopback callback, then store owner-only refresh credentials.
Inputs: profile, timeoutSeconds.
auth_logoutADestructive
Revoke stored Google authorization and delete local tokens. Environment-provided tokens cannot be deleted.
Inputs: no named parameters.
auth_setupA
Auto-detect a Desktop OAuth client. If absent, open the Google Auth Platform Clients page; downloaded client JSON is auto-detected from Downloads.
Inputs: clientFile, openBrowser.
auth_statusARead-onlyIdempotent
Detect OAuth client and token state; refreshes credentials to verify the connection.
Inputs: no named parameters.
drive_list_apps_script_projectsARead-onlyIdempotent
Discover Apps Script project files in Google Drive; unlike Apps Script API, Drive can list projects.
Inputs: query, maxPages, pageSize.
google_workspace_requestADestructive
Escape hatch for Google Workspace REST APIs not covered by a dedicated tool. Hosts are allowlisted; Authorization headers are injected. Destructive methods require confirm=true.
Inputs: url (required), body, query, method, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 23 tools
Most tools cleanly map to a distinct resource and action, but apps_script_list_processes and apps_script_list_script_processes could be confused at first glance; their descriptions clarify all-user vs per-script scope. The auth, project, version, and deployment tools are otherwise clearly separated.
The dominant pattern is apps_script_<verb>_<noun>, with auth_* tools following a similar lifecycle convention. drive_list_apps_script_projects and google_workspace_request deviate slightly, but the naming remains predictable and readable overall.
At 23 tools, the set is on the heavy side and spans several sub-domains: auth, Drive discovery, execution, versions, deployments, and metrics. Each tool has a legitimate purpose, but the count is borderline for easy agent navigation.
The toolset mirrors the Apps Script API surface well, covering project creation, content read/write, versioning, deployment lifecycle, execution, processes, and metrics. Auth management, Drive-based project discovery, and a Google Workspace escape hatch fill the remaining workflow gaps.
Related MCP Connectors
Provides tools for searching Google Workspace documentation and much more.
Permissioned access to Gmail, Drive and Calendar via the user's own Google account
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
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
- AlicenseNot gradedqualityDmaintenanceBridges AI assistants with Google Apps Script to enable automated building, managing, and deploying of Google Workspace projects. It features a Unix-inspired command interface, local development synchronization, and a production deployment pipeline.6MIT
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive management of Google Apps Script projects, including project creation, file operations, and web app deployments. It features a security-first design with encrypted property management and automated security auditing for GAS environments.1MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to create and modify Google Apps Script projects, manage versions and deployments, run functions, and inspect execution history through natural language.18348 npmMIT