Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Google Workspace MCP Server

NPM · GWS-MCP-SERVER

67 curated MCP tools for Google Workspace: Gmail, Calendar, Drive, Sheets, Docs, Slides, Tasks.

Available components

0 this week 91 Trust /100

Last scanned (1 day ago)

Scores higher than 94% of npm servers

Category Productivity and Notes

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 30 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to conorbronsdon/gws-mcp-server). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 40 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability81
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 5858 tokens (~96/item across 61 items; 61 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 61 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 31 Oct 26 +1
    • Stability: 0.97 → pass security
  • 30 Oct 26 0
    • Security disclosure: unverified → pass ▲ functional
    • Stability: pass → 0.97 functional
  • 29 Oct 26 −1
    • Security disclosure: pass → unverified ▼ functional
    • Package version: 0.2.0 → 0.4.1 functional
  • 24 Oct 26 −5
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 21 Oct 26 +1
    • Security disclosure: unverified → pass ▲ functional
  • 20 Oct 26 −1
    • Security disclosure: pass → unverified ▼ functional
  • 19 Oct 26 0
    • Stability: 0.97 → pass security
  • 18 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/gws-mcp-server@0.4.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo conorbronsdon/gws-mcp-server
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/conorbronsdon/gws-mcp-server/.github/workflows/publish.yml@refs/heads/main
Rekor log index 2935520962
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:1b9b6a2438c31b3e91497c8bb0ab6119bd3888de59826956c31a93c1c74f57b44e5111a10ba52f017bd9388f973d9cd2e93da0310b53449b34a112f03

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 93 packages
Packages resolved 93
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 61 exposed · ~5,858 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
calendar_events_delete ~36

Delete a calendar event.

NameTypeReqDescription
calendarIdstringyesCalendar ID
eventIdstringyesEvent ID to delete

No output schema declared.

No examples provided.

calendar_events_get ~37

Get a single calendar event by ID.

NameTypeReqDescription
calendarIdstringyesCalendar ID
eventIdstringyesEvent ID

No output schema declared.

No examples provided.

calendar_events_insert ~185

Create a new calendar event.

NameTypeReqDescription
attendeesstring–Attendees (JSON array as string, e.g. '[{"email":"a@x.com"},{"email":"b@x.com","optional":true}]')
calendarIdstringyesCalendar ID
descriptionstring–Event description
endstringyesEnd time JSON
locationstring–Event location
sendUpdatesstring–Sends invitation email to attendees when set: "all", "externalOnly", or "none" (default: none — no email, though the event may still appear on an attendee's calendar depending on their settings)
startstringyesStart time JSON (e.g. '{"dateTime":"2026-03-10T10:00:00-07:00"}')
summarystringyesEvent title

No output schema declared.

No examples provided.

calendar_events_list ~130

List events from a calendar.

NameTypeReqDescription
calendarIdstringyesCalendar ID (use 'primary' for main calendar)
maxResultsnumber–Max events to return
orderBystring–Sort order: startTime or updated
qstring–Free-text search
singleEventsboolean–Expand recurring events (usually true)
timeMaxstring–Upper bound (RFC3339)
timeMinstring–Lower bound (RFC3339, e.g. "2026-03-07T00:00:00Z")

No output schema declared.

No examples provided.

calendar_events_update ~200

Update an existing calendar event with patch semantics (only supplied fields change).

NameTypeReqDescription
attendeesstring–REPLACES the full attendee list — Google's patch overwrites array fields, so include everyone who should remain; anyone omitted is uninvited. JSON array as string, e.g. '[{"email":"a@x.com"},{"email"…
calendarIdstringyesCalendar ID
descriptionstring–Event description
endstring–End time JSON
eventIdstringyesEvent ID to update
sendUpdatesstring–Sends update email to attendees when set: "all", "externalOnly", or "none" (default: none — no email). With "all" or "externalOnly", attendees removed by this update receive a cancellation email
startstring–Start time JSON
summarystring–Event title

No output schema declared.

No examples provided.

calendar_freebusy_query ~129

Query free/busy information for one or more calendars over a time range.

NameTypeReqDescription
itemsstringyesCalendars/groups to query, as JSON array string, e.g. '[{"id":"primary"}]'
timeMaxstringyesEnd of the interval, RFC3339 timestamp
timeMinstringyesStart of the interval, RFC3339 timestamp (e.g. "2026-03-10T00:00:00Z")
timeZonestring–IANA time zone for the response (e.g. "America/Los_Angeles")

No output schema declared.

No examples provided.

docs_batchUpdate ~52

Apply updates to a Google Doc (insert, format, replace, or permanently delete content).

NameTypeReqDescription
documentIdstringyesThe document ID
requestsstringyesArray of update requests as JSON string

No output schema declared.

No examples provided.

docs_create ~24

Create a new empty Google Doc.

NameTypeReqDescription
titlestringyesDocument title

No output schema declared.

No examples provided.

docs_get ~28

Get a Google Doc's content and metadata.

NameTypeReqDescription
documentIdstringyesThe document ID

No output schema declared.

No examples provided.

drive_comments_create ~163

Add a comment to a file. Set anchor to bind it to an app-defined region — Drive stores this as an opaque JSON string you define yourself, and does not validate or interpret it. Google Workspace editor apps (Docs/Sheets/Slides) still display comments created this way as unanchored; use the Docs/Sheets/Slides APIs directly if visual anchoring in those editors matters.

NameTypeReqDescription
anchorstring–App-defined region JSON string, optional (e.g. '{"line":10}')
contentstringyesComment text
fieldsstringyesFields to include in the response (required by the API for this resource, e.g. "id,content,createdTime")
fileIdstringyesThe file to comment on

No output schema declared.

No examples provided.

drive_comments_delete ~58

Permanently delete a comment. Only the comment's own author can delete it — the API rejects the request otherwise.

NameTypeReqDescription
commentIdstringyesThe comment to delete
fileIdstringyesThe file the comment belongs to

No output schema declared.

No examples provided.

drive_comments_get ~99

Get a single comment on a file.

NameTypeReqDescription
commentIdstringyesThe comment to retrieve
fieldsstringyesFields to include (required by the API for this resource, e.g. "id,content,author,resolved,replies")
fileIdstringyesThe file the comment belongs to
includeDeletedboolean–Whether to return the comment if it has been deleted (it will have no content)

No output schema declared.

No examples provided.

drive_comments_list ~135

List comments on a file.

NameTypeReqDescription
fieldsstringyesFields to include (required by the API for this resource, e.g. "comments(id,content,author,resolved),nextPageToken")
fileIdstringyesThe file to list comments for
includeDeletedboolean–Whether to include deleted comments (they have no content)
pageSizenumber–Max comments to return (default 20)
pageTokenstring–Page token from a previous call
startModifiedTimestring–Only return comments modified at or after this time (RFC 3339)

No output schema declared.

No examples provided.

drive_comments_update ~134

Change the text of an existing comment. This overwrites the comment's content; the previous text is not retained. Only the comment's own author can update it — the API rejects the request otherwise. The resolved state can't be changed here: see drive_replies_create's action field.

NameTypeReqDescription
commentIdstringyesThe comment to update
contentstringyesNew comment text
fieldsstringyesFields to include in the response (required by the API for this resource, e.g. "id,content,modifiedTime")
fileIdstringyesThe file the comment belongs to

No output schema declared.

No examples provided.

drive_files_copy ~88

Copy a file. Useful for converting formats (e.g. markdown to Google Doc).

NameTypeReqDescription
fieldsstring–Fields to return
fileIdstringyesSource file ID to copy
mimeTypestring–Target MIME type for conversion
namestringyesName for the copy
parentsstring–Parent folder IDs (JSON array as string)

No output schema declared.

No examples provided.

drive_files_create ~117

Create a new file in Google Drive. Use with bodyParams for metadata and optionally upload a local file.

NameTypeReqDescription
fieldsstring–Fields to return (e.g. "id,webViewLink")
mimeTypestring–MIME type (e.g. "application/vnd.google-apps.document")
namestringyesFile name
parentsstring–Parent folder IDs (JSON array as string, e.g. '["folderId"]')
uploadPathstring–Local file path to upload

No output schema declared.

No examples provided.

drive_files_delete ~28

Permanently delete a file.

NameTypeReqDescription
fileIdstringyesThe file ID to delete

No output schema declared.

No examples provided.

drive_files_download ~151

Download a file's content from Google Drive. Returns the text content for text files, or a base64-encoded string for binary files. For Google Docs/Sheets/Slides, exports to a readable format (plain text by default).

NameTypeReqDescription
exportMimeTypestring–For Google-native files (Docs/Sheets/Slides): export format. Defaults to text/plain for Docs, text/csv for Sheets. Examples: text/plain, text/csv, application/pdf
fileIdstringyesThe file ID to download
savePathstring–For binary files (images, PDFs): save to this local path instead of returning content inline. The file path is returned in the response.

No output schema declared.

No examples provided.

drive_files_export ~111

Export a Google Workspace file (Doc, Sheet, Slide) to a specific format. Returns JSON with export metadata. Use drive_files_download for automatic export with content returned inline.

NameTypeReqDescription
fileIdstringyesThe Google Workspace file ID to export
mimeTypestringyesExport format: text/plain, text/csv, application/pdf, application/vnd.openxmlformats-officedocument.wordprocessingml.document (docx), application/vnd.openxmlformats-officedocument.spreadsheetml.sheet…

No output schema declared.

No examples provided.

drive_files_get ~45

Get a file's metadata by ID. Shared drive files are supported automatically.

NameTypeReqDescription
fieldsstring–Fields to include
fileIdstringyesThe file ID

No output schema declared.

No examples provided.

drive_files_list ~122

List files in Google Drive. Supports search queries via the 'q' parameter. Shared drive files are included automatically.

NameTypeReqDescription
fieldsstring–Fields to include (e.g. "files(id,name,mimeType)")
orderBystring–Sort order (e.g. "modifiedTime desc")
pageSizenumber–Max results per page (1-1000, default 100)
qstring–Search query (e.g. "name contains 'report'" or "mimeType='application/vnd.google-apps.folder'")

No output schema declared.

No examples provided.

drive_files_update ~74

Update a file's metadata or content.

NameTypeReqDescription
fieldsstring–Fields to return
fileIdstringyesThe file ID to update
mimeTypestring–New MIME type
namestring–New file name
uploadPathstring–Local file path to upload

No output schema declared.

No examples provided.

drive_permissions_create ~88

Share a file by creating a permission.

NameTypeReqDescription
emailAddressstring–Email of user/group (required for user/group type)
fileIdstringyesThe file ID to share
rolestringyesPermission role: owner, organizer, fileOrganizer, writer, commenter, reader
typestringyesGrantee type: user, group, domain, anyone

No output schema declared.

No examples provided.

drive_permissions_delete ~81

Revoke a permission from a file, removing that user's/group's/domain's access. Per the Drive API: concurrent permissions operations on the same file aren't supported, only the last update is applied.

NameTypeReqDescription
fileIdstringyesThe file the permission belongs to
permissionIdstringyesThe permission to revoke (get it from drive_permissions_list)

No output schema declared.

No examples provided.

drive_permissions_list ~144

List all permissions on a file. Use to audit sharing state — e.g. a permission with type "anyone" means the file is publicly accessible; there is no separate is-public field. Pass fields (e.g. "permissions(id,type,role,emailAddress,domain)") to identify grantees — the default response omits emailAddress/domain.

NameTypeReqDescription
fieldsstring–Fields to include (e.g. "permissions(id,type,role,emailAddress,domain)")
fileIdstringyesThe file to list permissions for
pageSizenumber–Max permissions to return
pageTokenstring–Page token from a previous call

No output schema declared.

No examples provided.

drive_permissions_proposeOwnershipTransfer ~219

Propose transferring ownership of a file between personal/consumer Google accounts (use drive_permissions_transferOwnership instead for a same-organization Workspace transfer, which completes immediately). Google Workspace ownership cannot be transferred to an account outside the organization. This does NOT transfer ownership by itself: it sets role=writer + pendingOwner=true, and the prospective owner must separately accept by setting role=owner + transferOwnership=true on their own permission, under their own credentials. Google sends the recipient a notification email that cannot be disabled; nothing changes for the current owner unless and until they accept. Only individual users can be proposed — not groups, domains, or service accounts (service accounts have no Drive storage quota and the transfer will fail). Ownership transfers are not supported for files in shared drives.

NameTypeReqDescription
emailAddressstringyesEmail address of the prospective new owner (an individual user)
fieldsstring–Fields to return (e.g. "id,role,type,pendingOwner")
fileIdstringyesThe file to propose transferring

No output schema declared.

No examples provided.

drive_permissions_transferOwnership ~230

Immediately transfer ownership of a file to another Google Workspace account in the SAME organization. The current owner is downgraded to writer as soon as this call succeeds — there is no separate acceptance step — and Google sends the new owner a notification email that cannot be disabled. Only works for files in "My Drive"; not supported for files in a shared drive, since the organization owns those, not an individual. For a transfer between personal/consumer Google accounts, use drive_permissions_proposeOwnershipTransfer instead, which requires the recipient's separate acceptance and does not transfer ownership immediately. Google Workspace ownership cannot be transferred to an account outside the organization.

NameTypeReqDescription
emailAddressstringyesEmail address of the new owner, in the same Workspace organization
fieldsstring–Fields to return (e.g. "id,role,type,emailAddress")
fileIdstringyesThe file to transfer (must be in "My Drive", not a shared drive)
moveToNewOwnersRootboolean–If true, moves the file to the new owner's My Drive root and removes prior parents

No output schema declared.

No examples provided.

drive_permissions_update ~129

Change an existing permission's role on a file (e.g. reader to writer). Can remove capabilities by downgrading a role. Ownership transfers are not supported. Per the Drive API: concurrent permissions operations on the same file aren't supported, only the last update is applied.

NameTypeReqDescription
fieldsstring–Fields to return (e.g. "id,role,type,emailAddress")
fileIdstringyesThe file the permission belongs to
permissionIdstringyesThe permission to update (get it from drive_permissions_list)
rolestringyesNew non-owner role

No output schema declared.

No examples provided.

drive_replies_create ~192

Add a reply to a comment, or resolve/reopen it — a comment can only be resolved or reopened by posting a reply with action set. content is required unless action is set; combine both to leave closing/reopening text. Setting action changes the parent comment's resolved field, but resolving is advisory only: the API keeps accepting further replies and doesn't hide anything itself, it's on the client to act on resolved being true (e.g. hide or dim the thread).

NameTypeReqDescription
actionstring–Set to change the parent comment's resolved state instead of (or alongside) replying with text
commentIdstringyesThe comment to reply to
contentstring–Reply text. Required if action is not set
fieldsstring–Fields to include (e.g. "id,content,action")
fileIdstringyesThe file the comment belongs to

No output schema declared.

No examples provided.

drive_replies_delete ~70

Permanently delete a reply. Only the reply's own author can delete it — the API rejects the request otherwise.

NameTypeReqDescription
commentIdstringyesThe parent comment
fileIdstringyesThe file the comment belongs to
replyIdstringyesThe reply to delete

No output schema declared.

No examples provided.

drive_replies_get ~99

Get a single reply to a comment.

NameTypeReqDescription
commentIdstringyesThe parent comment
fieldsstring–Fields to include (e.g. "id,content,action")
fileIdstringyesThe file the comment belongs to
includeDeletedboolean–Whether to return the reply if it has been deleted (it will have no content)
replyIdstringyesThe reply to retrieve

No output schema declared.

No examples provided.

drive_replies_list ~118

List replies to a comment.

NameTypeReqDescription
commentIdstringyesThe comment to list replies for
fieldsstring–Fields to include (e.g. "replies(id,content,action),nextPageToken")
fileIdstringyesThe file the comment belongs to
includeDeletedboolean–Whether to include deleted replies (they have no content)
pageSizenumber–Max replies to return (default 20)
pageTokenstring–Page token from a previous call

No output schema declared.

No examples provided.

drive_replies_update ~134

Change the text of an existing reply. This overwrites the reply's content; the previous text is not retained. Only the reply's own author can update it — the API rejects the request otherwise. Does not support changing action — use drive_replies_create to resolve/reopen.

NameTypeReqDescription
commentIdstringyesThe parent comment
contentstringyesNew reply text
fieldsstring–Fields to include (e.g. "id,content,modifiedTime")
fileIdstringyesThe file the comment belongs to
replyIdstringyesThe reply to update

No output schema declared.

No examples provided.

gmail_drafts_create ~249

Create a Gmail draft. Pass threadId to attach the draft to an existing conversation (it will appear as a reply within that thread). The draft is NOT sent — open Gmail to review and send.

NameTypeReqDescription
bccstring–BCC recipient(s), comma-separated
bodystring–Plain-text body
ccstring–CC recipient(s), comma-separated
htmlBodystring–HTML body. If both body and htmlBody are provided, the draft is multipart/alternative.
inReplyTostring–Message-ID header value of the message being replied to. Improves threading robustness alongside threadId.
referencesstring–References header value (space-separated Message-IDs of ancestor messages).
subjectstring–Subject line. When attaching to a thread via threadId, Gmail expects the subject to match the thread (typically "Re: <original>").
threadIdstring–Thread ID to attach this draft to. Get it from gmail_threads_list / gmail_messages_get.
tostringyesRecipient(s). Comma-separated for multiple, e.g. "a@x.com, b@y.com"

No output schema declared.

No examples provided.

gmail_messages_get ~57

Get a single Gmail message by ID.

NameTypeReqDescription
formatstring–Response format: full, metadata, minimal, raw
idstringyesMessage ID
userIdstringyesUser ID (use 'me')

No output schema declared.

No examples provided.

gmail_messages_list ~77

List Gmail messages matching a query.

NameTypeReqDescription
labelIdsstring–Label IDs to filter by
maxResultsnumber–Max messages to return
qstring–Gmail search query (e.g. "from:user@example.com subject:hello")
userIdstringyesUser ID (use 'me')

No output schema declared.

No examples provided.

gmail_threads_get ~61

Get a full Gmail thread by ID (all messages in the conversation).

NameTypeReqDescription
formatstring–Response format: full, metadata, minimal
idstringyesThread ID
userIdstringyesUser ID (use 'me')

No output schema declared.

No examples provided.

gmail_threads_list ~52

List Gmail threads matching a query.

NameTypeReqDescription
maxResultsnumber–Max threads to return
qstring–Gmail search query
userIdstringyesUser ID (use 'me')

No output schema declared.

No examples provided.

gmail_threads_modify ~112

Modify a Gmail thread: add/remove labels. To archive, remove INBOX. To mark read, remove UNREAD. To star, add STARRED.

NameTypeReqDescription
addLabelIdsstring–JSON array of label IDs to add, e.g. ["STARRED"]
idstringyesThread ID
removeLabelIdsstring–JSON array of label IDs to remove, e.g. ["INBOX","UNREAD"]
userIdstringyesUser ID (use 'me')

No output schema declared.

No examples provided.

sheets_batchUpdate ~79

Apply updates to a spreadsheet (conditional formatting, cell/border formatting, adding sheets, and more). Can also permanently delete content — e.g. removing a sheet or a conditional formatting rule — with no undo via the API.

NameTypeReqDescription
requestsstringyesArray of update requests as JSON string
spreadsheetIdstringyesThe spreadsheet ID

No output schema declared.

No examples provided.

sheets_get ~35

Get spreadsheet metadata.

NameTypeReqDescription
includeGridDataboolean–Include grid data
spreadsheetIdstringyesThe spreadsheet ID

No output schema declared.

No examples provided.

sheets_values_append ~75

Append values after the last row of a spreadsheet range.

NameTypeReqDescription
rangestringyesA1 notation range to append to
spreadsheetIdstringyesThe spreadsheet ID
valueInputOptionstringyesRAW or USER_ENTERED
valuesstringyes2D array of values as JSON string

No output schema declared.

No examples provided.

sheets_values_get ~86

Read values from a spreadsheet range.

NameTypeReqDescription
majorDimensionstring–ROWS or COLUMNS
rangestringyesA1 notation range (e.g. "Sheet1!A1:D10")
spreadsheetIdstringyesThe spreadsheet ID
valueRenderOptionstring–FORMATTED_VALUE, UNFORMATTED_VALUE, or FORMULA

No output schema declared.

No examples provided.

sheets_values_update ~85

Write values to a spreadsheet range.

NameTypeReqDescription
rangestringyesA1 notation range to write
spreadsheetIdstringyesThe spreadsheet ID
valueInputOptionstringyesRAW or USER_ENTERED
valuesstringyes2D array of values as JSON string (e.g. '[["A","B"],["C","D"]]')

No output schema declared.

No examples provided.

slides_batchUpdate ~67

Apply updates to a presentation (insert/update/delete slides, text, shapes, tables, etc). Delete requests in a batch are permanent — the API has no undo.

NameTypeReqDescription
presentationIdstringyesThe presentation ID
requestsstringyesArray of update requests as JSON string

No output schema declared.

No examples provided.

slides_create ~23

Create a new blank presentation.

NameTypeReqDescription
titlestringyesPresentation title

No output schema declared.

No examples provided.

slides_get ~33

Get a presentation's slides, layouts, masters, and page elements.

NameTypeReqDescription
presentationIdstringyesThe presentation ID

No output schema declared.

No examples provided.

slides_pages_get ~61

Get a single page (slide, layout, or master) from a presentation.

NameTypeReqDescription
pageObjectIdstringyesThe object ID of the page (slide, layout, or master) to retrieve
presentationIdstringyesThe presentation ID

No output schema declared.

No examples provided.

slides_pages_getThumbnail ~109

Get a thumbnail image URL for a page (slide, layout, or master).

NameTypeReqDescription
pageObjectIdstringyesThe object ID of the page to render
presentationIdstringyesThe presentation ID
thumbnailProperties.mimeTypestring–Thumbnail image format (PNG is the only supported value)
thumbnailProperties.thumbnailSizestring–Thumbnail size: THUMBNAIL_SIZE_UNSPECIFIED, LARGE, MEDIUM, SMALL, or WIDTH2000_PX

No output schema declared.

No examples provided.

tasks_tasklists_delete ~47

Delete a task list. If it contains assigned tasks, the originals (in Docs/Chat Spaces) are also removed.

NameTypeReqDescription
taskliststringyesTask list ID to delete

No output schema declared.

No examples provided.

Install

How do I install the Google Workspace MCP Server server?

Google Workspace MCP Server runs locally as an npm package, launched with npx -y gws-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · gws-mcp-server

# add to Claude Code
claude mcp add conorbronsdon-gws-mcp-server -- npx -y gws-mcp-server
Common questions

What is the Google Workspace MCP Server server?

Google Workspace MCP Server is listed in the public MCP registry as io.github.conorbronsdon/gws-mcp-server. 67 curated MCP tools for Google Workspace: Gmail, Calendar, Drive, Sheets, Docs, Slides, Tasks. This page covers its npm package (gws-mcp-server).

Is the Google Workspace MCP Server server safe to use?

Google Workspace MCP Server scores 91 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 4 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Google Workspace MCP Server server expose?

Google Workspace MCP Server exposes 61 tools: drive_files_list, drive_files_get, drive_files_create, drive_files_copy, drive_files_update, and 56 more. Their descriptions and schemas cost roughly 5,858 tokens of context every time the server is loaded.

Is the Google Workspace MCP Server server still maintained?

Google Workspace MCP Server is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Google Workspace MCP Server server under?

Google Workspace MCP Server declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.