Google Workspace MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GWS_MODE | No | Mode of operation: full (read/write tools) or readonly (read tools only). | full |
| GWS_PROFILE | No | Workspace profile name. Resolves to token_{GWS_PROFILE}.json. | default |
| GWS_PII_MODE | No | Privacy filter: none (no masking), redact (phone/emails masked), metadata_only (description/title removed). | redact |
| GWS_TIMEZONE | No | Local timezone database name (e.g. America/New_York or Asia/Kolkata). | System Local |
| GWS_AUDIT_LOG | No | Destination path for the append-only JSON audit logs. | APP_DIR/audit.log |
| GWS_ALLOWED_DOMAINS | No | Comma-separated domain whitelist for invitees (e.g. company.com,partner.org). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| view_scheduleA | List calendar events in a time range with color-coded type labels. Window is capped at GWS_MAX_WINDOW_DAYS to prevent bulk data exposure. Returns events formatted with emoji type labels derived from color IDs. |
| list_calendarsA | List all calendars accessible to the user. Returns calendar IDs needed for multi-calendar operations. Call once per session and reuse the IDs. |
| find_slotsA | Find open time slots using the Google freebusy API. Checks availability for the user AND all invitees in one API call. Returns available windows (not raw busy blocks) — agent-ready output. |
| create_eventA | Create a new calendar event. Returns event ID and HTML link. Use ignore_availability=True only when the user explicitly requests overlapping/conflicting bookings. |
| move_eventC | Change the start and end time of an existing event by ID. |
| modify_eventB | Modify text/metadata fields of an event using PATCH. |
| delete_eventA | Delete a calendar event by its ID. ALWAYS call twice:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: creating, deleting, modifying, moving events, finding slots, listing calendars, and viewing schedule. No overlap in functionality.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_event, delete_event, find_slots). Perfect alignment.
7 tools cover the essential calendar operations without bloat. Each tool serves a clear need, making the set well-scoped.
Core CRUD and scheduling workflows are supported, but a dedicated tool for retrieving a single event by ID or managing attendees is missing, which agents might need in some scenarios.