Google Workspace MCP server

Prebuilt SnapLogic agentic-tool pipelines that let an LLM read from and act on Google Workspace, callable as MCP tools via Pipeline Execute. Published in the SnapLogic pattern catalog.

Overview

This tool pack gives an agent access to a user's Gmail mailbox and Google Calendar, covering mail search, reading, sending, and label management, as well as event creation, updates, deletion, and free/busy checking. Each tool operates with the minimum permissions needed for that action.

For setup instructions, see SnapLogic MCP Server quickstart.

Example Prompts

  • Open that email from Bob and tell me what he's asking for
  • Read message 18abc123def and summarise it
  • What were the exact headers on that message — who was it actually sent to?
  • Pull the full body of the last email in that search
  • Star that email from Bob and mark it as read
  • Archive this message — take it out of my inbox
  • Mark message 18abc123def as unread again
  • Flag that invoice email as important
  • Find unread emails from my boss about the quarterly review
  • Search my inbox for messages with attachments from the finance team this week

Tools

Tool Name Functions
GmailGetMessage Read a single Gmail message by id, returning headers, snippet, body and labels.
GmailModifyLabels Add and remove labels on a Gmail message (star, mark read, archive, file).
GmailSearch Search a Gmail mailbox with Gmail query syntax and return matching message references.
GmailSend Send a plain-text email from the user's Gmail address.
GoogleCalendarCreateEvent Create a Google Calendar event with attendees and description.
GoogleCalendarDeleteEvent Delete a Google Calendar event by id.
GoogleCalendarFreeBusy Check busy blocks for one or more people over a time window.
GoogleCalendarListEvents List calendar events in a time window, ordered by start time.
GoogleCalendarUpdateEvent Patch an existing calendar event: retime it, retitle it, or change attendees.
GoogleWorkspaceAuth Google Workspace Auth

Set up the MCP Server tools

  1. Download google-workspace_tools.zip.
  2. In SnapLogic Designer, open the target project space (or create one), then choose Import Project / Import Pipelines and select the downloaded google-workspace_tools.zip. Designer unpacks each pipeline into the project.
  3. Attach the required account to the connectivity snaps (see Connection Setup).
  4. Expose the project as an MCP server — each pipeline becomes a tool named after its label. New to this? Start with the MCP quickstart, then use the MCP Server Pipeline Builder to generate the server from the imported pipelines.

Configure account

Attach an API Suite account (OAuth 2.0 or Bearer token) to the HTTP Client snap in Designer after import.

These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute.

See the SnapLogic account documentation for this connector: API Suite Account Configuration.

Important: These pipelines ship without credentials by design — attach a valid account in Designer before the tools will execute. Credentials live in the SnapLogic account store, never in the pipeline JSON.

GmailGetMessage

Retrieves a single Gmail message by ID, returning the headers, body, snippet, and labels. Use it after GmailSearch when the user wants the actual content of a specific message.

Parameter Type Default Description
user_email* string

Address of the mailbox that owns the message.

message_id* string

Gmail message id, as returned by GmailSearch.

format string full

Gmail payload format: full, metadata, minimal or raw (default full).

* Required parameter.

Try asking:

  • Open that email from Bob and tell me what he's asking for
  • Read message 18abc123def and summarise it
  • What were the exact headers on that message — who was it actually sent to?
  • Pull the full body of the last email in that search

GmailModifyLabels

Adds and removes labels on a Gmail message, letting you star, mark as read or unread, archive, or file it into a custom folder. Use it whenever a user asks to organize or flag an email.

Parameter Type Default Description
user_email* string

Address of the mailbox that owns the message.

message_id* string

Gmail message id to relabel.

add_labels string

Comma-separated label ids to add, e.g. STARRED,IMPORTANT.

remove_labels string

Comma-separated label ids to remove, e.g. UNREAD,INBOX.

* Required parameter.

Try asking:

  • Star that email from Bob and mark it as read
  • Archive this message — take it out of my inbox
  • Mark message 18abc123def as unread again
  • Flag that invoice email as important

GmailSearch

Searches a Gmail mailbox using Gmail query syntax and returns matching message IDs. Pair it with GmailGetMessage to read the content of a found message.

Parameter Type Default Description
user_email* string

Address of the mailbox to search; the access token is minted for this user.

query* string

Gmail search expression, e.g. from:boss subject:urgent is:unread.

max_results integer 10

Maximum number of messages to return (default 10).

* Required parameter.

Try asking:

  • Find unread emails from my boss about the quarterly review
  • Search my inbox for messages with attachments from the finance team this week
  • Show me the last 5 emails from [email protected]
  • Do I have anything unread with 'urgent' in the subject?

GmailSend

Sends a plain-text email from the user's Gmail address to a single recipient. It supports text-only messages; HTML, attachments, CC, and BCC are not available.

Parameter Type Default Description
user_email* string

Address the message is sent from; also the mailbox the token is minted for.

to* string

Recipient address.

subject* string

Subject line.

body* string

Plain-text message body.

* Required parameter.

Try asking:

  • Email [email protected] and ask if he can meet at 2pm tomorrow
  • Send Alice a note saying the report is ready for review
  • Reply to the team with subject 'Standup moved' and tell them it's now at 10am
  • Send a quick thank-you email to the vendor contact

GoogleCalendarCreateEvent

Creates a new event on a Google Calendar with a title, time, optional description, and attendee list. Use it after GoogleCalendarFreeBusy has confirmed everyone is available.

Parameter Type Default Description
user_email* string

Calendar owner and organiser of the event.

summary* string

Event title.

start_time* string

Event start as an RFC-3339 timestamp.

end_time* string

Event end as an RFC-3339 timestamp.

attendees string

Comma-separated attendee email addresses to invite.

description string

Longer event description or agenda.

calendar_id string primary

Calendar to create the event on; defaults to primary.

* Required parameter.

Try asking:

  • Book a 30-minute standup with Bob and Alice tomorrow at 9am
  • Put 'Quarterly review prep' on my calendar Thursday 2-3pm
  • Schedule a customer call on Friday morning and invite the account team
  • Create a one-hour focus block on my calendar every afternoon this week

GoogleCalendarDeleteEvent

Removes an event from a Google Calendar by its ID. Use it when the user explicitly cancels a meeting, removes a duplicate booking, or clears a placeholder hold.

Parameter Type Default Description
user_email* string

Calendar owner.

event_id* string

Id of the event to delete.

calendar_id string primary

Calendar holding the event; defaults to primary.

* Required parameter.

Try asking:

  • Cancel tomorrow's standup
  • Delete the duplicate meeting I created on Friday
  • Remove that placeholder hold from my calendar next Tuesday

GoogleCalendarFreeBusy

Checks the busy intervals for one or more people over a time window, returning blocked periods without event details. Use it to find a shared opening before creating a calendar event.

Parameter Type Default Description
user_email* string

User the query runs as; the access token is minted for this address.

time_min* string

Start of the window as an RFC-3339 timestamp.

time_max* string

End of the window as an RFC-3339 timestamp.

check_users* string

Comma-separated calendar addresses whose busy blocks should be returned.

* Required parameter.

Try asking:

  • When are Bob and Alice both free on Thursday?
  • Check if the whole team is available tomorrow between 2 and 5pm
  • Find a common gap for me, Jane and the sales lead next week
  • Is Bob busy at 9am on Monday?

GoogleCalendarListEvents

Lists calendar events within a time window, expanding recurring events into individual occurrences, ordered by start time. Use it to answer schedule questions and to retrieve event IDs before updating or deleting events.

Parameter Type Default Description
user_email* string

Calendar owner; the access token is minted for this user.

time_min* string

Start of the window as an RFC-3339 timestamp, e.g. 2026-05-10T00:00:00Z.

time_max* string

End of the window as an RFC-3339 timestamp.

max_results integer 50

Maximum number of events to return (default 50).

calendar_id string primary

Calendar to read; defaults to primary.

* Required parameter.

Try asking:

  • What's on my calendar next week?
  • List my meetings between Monday and Wednesday
  • Show me everything on the team-events calendar for this month
  • What are my first 10 meetings after tomorrow morning?

GoogleCalendarUpdateEvent

Updates an existing calendar event by changing only the fields you supply, such as the title, time, description, or attendees, leaving everything else intact. Use it to reschedule, retitle, or add attendees to an event without rewriting the whole entry.

Parameter Type Default Description
user_email* string

Calendar owner.

event_id* string

Id of the event to update, as returned by GoogleCalendarListEvents or CreateEvent.

summary string

New event title; omit to leave unchanged.

start_time string

New start as an RFC-3339 timestamp; supply end_time with it.

end_time string

New end as an RFC-3339 timestamp, written alongside start_time.

attendees string

Comma-separated attendee addresses replacing the invitee list.

description string

New event description.

calendar_id string primary

Calendar holding the event; defaults to primary.

* Required parameter.

Try asking:

  • Move tomorrow's standup to 10am
  • Add Alice to the Thursday customer call
  • Rename that meeting to 'Q3 pipeline review' and add an agenda in the description
  • Push the design review out by an hour

GoogleWorkspaceAuth

Generates a short-lived Google OAuth access token for the specified user and scopes. This is an internal authentication step used by the other tools in this pack.

Parameter Type Default Description
user_email string [email protected]

scopes string https://www.googleapis.com/auth/gmail.readonly