Skip to main content
Built by Runlayer. Runlayer builds and maintains this connector. It runs on Runlayer Deploy, which must be enabled for your workspace.
Connect your AI assistant to Google Workspace services. All Google servers share the same Google OAuth setup process.

Available Tools

Google Calendar

Set add_google_meet: true on create_event or update_event to add Google Meet. The response returns the join link when ready. If Meet creation is still pending or fails, the event remains saved and the response includes a warning; use get_event to check a pending link, or retry a failed Meet request with update_event on the same event. Existing Meet links are preserved. Omitting the flag or passing false leaves conference details unchanged. This option does not replace other conference providers. The calendar must support Google Meet.

Gmail

Google Drive

For PDFs, fetch_file defaults to format: "auto" and returns readable text, capped at 100,000 characters including any truncation marker. The response reports truncated and extraction details: status (text_extracted, partial, or ocr_required), page counts, pages without text, and a warning. Parsing has a 30-second deadline. Scans and images are not read because OCR is disabled; blank pages also count as pages without text. Layout, tables, and reading order may not be preserved. Use format: "raw" only when you need exact PDF bytes. It returns base64, roughly 1.4 times the file size in characters, all of which consumes model context. Both formats retain the 1 MB default download limit and the 10 MB ceiling when allow_large_file: true; the 100,000-character output cap applies to extracted text only. Here, 1 MB means 1,048,576 bytes. Existing Google Drive connectors need to be redeployed to receive PDF text extraction.

Google Docs

For template-based generation, use copy_document, fill placeholders with replace_text or apply_doc_updates, then use fetch with include_structure: true to inspect the native formatting. Styles may inherit from named styles and defaults; structured data does not verify rendered pagination. Avoid replacing the whole document body when preserving template formatting. Native comments use the Google Docs API to attach to text. Pass the native UTF-16 indices from fetch.include_structure as docStartIndex and docEndIndex to add_comment; legacy startIndex and endIndex inputs are rejected to prevent misplaced anchors. Comment creation may notify collaborators. After an ambiguous copy or comment-write failure, read back the result before retrying to avoid duplicates. Comment pagination tokens from the previous Drive-based implementation must be discarded. The documented Google Docs API does not expose native checklist checked/unchecked state. Existing Google Docs connectors need to be redeployed to receive these capabilities.

Google Sheets

Google Slides

Google Forms

Setup

1

Create Google Cloud Project

  1. Go to Google Cloud Console
  2. Create a new project or select an existing one
2

Enable APIs

Go to APIs & Services > Library and enable the APIs you need:
  • Google Calendar API
  • Gmail API
  • Google Drive API
  • Google Docs API
  • Google Sheets API
  • Google Slides API
  • Google Forms API
3

Configure OAuth Consent Screen

  1. Go to APIs & Services > OAuth consent screen
  2. Select External or Internal
  3. Fill in app name, support email, and developer contact
  4. Add required scopes (see below)
  5. Add test users if using External mode
4

Create OAuth Credentials

  1. Go to APIs & Services > Credentials
  2. Click Create Credentials > OAuth client ID
  3. Select Web application
  4. Add redirect URI: https://<your-tenant>.runlayer.com/oauth/callback
  5. Copy the Client ID and Client Secret
5

Add Server in Runlayer

  1. In Runlayer, go to Connectors, select a Google service, and click Add connector
  2. Check Custom OAuth credentials
  3. Enter your Client ID and Client Secret
  4. Click Deploy Server
If you have the Manage security policies capability, Gmail and Google Calendar open Recommended security settings on the connector page after deploy. Review the per-tool overrides, then click Apply.
6

Authorize

  1. Click Connect on the server page
  2. Sign in with Google and grant permissions

OAuth Scopes

Add these scopes when configuring OAuth consent: All connectors additionally request openid and https://www.googleapis.com/auth/userinfo.email for user identity.

Changing scopes on an existing connector

When a connector’s scopes change (for example, Google Forms moving from read-only access to read and write, so it can create and edit forms), an already-deployed connector needs these steps in this order:
1

Add the new scope to your OAuth consent screen (External apps only)

If your app’s user type is External, add the new scope(s) in APIs & Services > OAuth consent screen so users can consent to them. Internal (Google Workspace) apps can request any scope without listing it here, so you can skip this step. You can remove any scope the new one supersedes (e.g. forms.body covers forms.body.readonly).
2

Redeploy the connector

Redeploy the server so it picks up the new image and requests the new scope set. Until you redeploy, nothing changes for your users. By default the connector requests its built-in scopes, so a redeploy is enough — unless you’ve overridden them (see the note below).
3

Users re-authorize

Each user re-authorizes through their own MCP client, the same way they first connected (signing in with Google and granting access). Existing authorizations keep their previously granted scopes until the user re-authorizes, so users pick up the new capability individually as they reconnect — it isn’t something an admin does on each user’s behalf.
The connector requests its built-in scopes by default, so most deployments only need the redeploy. The exception is if you set a GOOGLE_OAUTH_SCOPES environment variable on the connector, which overrides the built-in scopes. To check, open your connector in Runlayer and look at its environment variables: if GOOGLE_OAUTH_SCOPES is set, add the new scope to it (otherwise a redeploy won’t change what’s requested); if it isn’t set, there’s nothing to do.
Each user will need to re-authorize before they can use the new tools. Until they do, tools that need the added scope return permission errors for that user, while their existing capabilities keep working.
Adding a sensitive or restricted scope to a published/verified External app may require re-verification by Google (verification of a related scope does not carry over). Internal (Google Workspace) apps do not need re-verification.

Troubleshooting

Verify the redirect URL in Google Cloud Console matches exactly: https://<your-tenant>.runlayer.com/oauth/callback (no trailing slash).
Ensure OAuth consent screen is configured. Add yourself as a test user if using External mode.
Enable the specific API in Google Cloud Console > APIs & Services > Library.
Tokens may have expired. Disconnect and reconnect the server in Runlayer.
Re-authorize with updated scopes. Ensure the API is enabled in your project.