MCP Hub
Back to servers

Google Workspace MCP Server

A powerful Google Workspace integration for MCP that provides over 100 tools to manage Google Drive, Gmail, Calendar, Docs, Sheets, Slides, Meet, Tasks, and Contacts directly through Claude.

Tools
123
Updated
Jan 15, 2026

Google Workspace MCP Server

MCP (Model Context Protocol) server for comprehensive Google Workspace integration with Claude Code and Claude Desktop.

Credits: This project is based on google-drive-mcp by Piotr Agier. Extended to support the full Google Workspace suite.


Español | English


Features

Full integration with Google Workspace APIs:

ServiceToolsStatus
Google Drive14Core (always enabled)
Drive Permissions5Core (always enabled)
Google Docs4Core (always enabled)
Google Sheets6Core (always enabled)
Google Slides9Core (always enabled)
Google Calendar12Opt-in
Gmail24Opt-in
Google Meet18Opt-in
Google Tasks12Opt-in
Google Contacts10Opt-in

Total: 114 MCP tools

Quick Start

1. Install dependencies

npm install

2. Configure OAuth credentials

  1. Go to Google Cloud Console
  2. Create a new project or select an existing one
  3. Enable the APIs you need:
    • Google Drive API (required)
    • Google Docs API (required)
    • Google Sheets API (required)
    • Google Slides API (required)
    • Google Calendar API (optional)
    • Gmail API (optional)
    • Google Meet API (optional)
    • Google Tasks API (optional)
    • People API (optional, for Contacts)
  4. Create OAuth 2.0 credentials (Desktop app)
  5. Download the JSON file and save as gcp-oauth.keys.json in the project root

3. Authenticate

# Basic (Drive, Docs, Sheets, Slides)
npm run auth

# With Calendar
GOOGLE_WORKSPACE_CALENDAR=true npm run auth

# With Gmail
GOOGLE_WORKSPACE_GMAIL=true npm run auth

# With Meet
GOOGLE_WORKSPACE_MEET=true npm run auth

# With Tasks
GOOGLE_WORKSPACE_TASKS=true npm run auth

# With Contacts
GOOGLE_WORKSPACE_CONTACTS=true npm run auth

# All services
GOOGLE_WORKSPACE_CALENDAR=true GOOGLE_WORKSPACE_GMAIL=true GOOGLE_WORKSPACE_MEET=true GOOGLE_WORKSPACE_TASKS=true GOOGLE_WORKSPACE_CONTACTS=true npm run auth

4. Configure Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "google-workspace": {
      "command": "node",
      "args": ["/path/to/google-workspace-mcp/dist/index.js"],
      "env": {
        "GOOGLE_WORKSPACE_CALENDAR": "true",
        "GOOGLE_WORKSPACE_GMAIL": "true",
        "GOOGLE_WORKSPACE_MEET": "true",
        "GOOGLE_WORKSPACE_TASKS": "true",
        "GOOGLE_WORKSPACE_CONTACTS": "true"
      }
    }
  }
}

5. Configure Claude Code

Add to your global Claude Code config (~/.claude.json):

{
  "mcpServers": {
    "google-workspace": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/google-workspace-mcp/dist/index.js"],
      "env": {
        "GOOGLE_WORKSPACE_CALENDAR": "true",
        "GOOGLE_WORKSPACE_GMAIL": "true",
        "GOOGLE_WORKSPACE_MEET": "true",
        "GOOGLE_WORKSPACE_TASKS": "true",
        "GOOGLE_WORKSPACE_CONTACTS": "true"
      }
    }
  }
}

Tools Reference

Google Drive (14 tools)

Files

ToolDescription
searchSearch files by name, type, or content
createTextFileCreate text/markdown files
updateTextFileUpdate text file content
deleteFileDelete file or folder
renameFileRename file or folder
moveFileMove file to another folder
copyFileCopy file to another location
uploadBinaryFileUpload binary files (PDF, images, etc.)
downloadBinaryFileDownload files to local disk

Folders

ToolDescription
listFolderList folder contents
createFolderCreate new folder
getAccountInfoGet Drive account info

Drive Permissions (5 tools)

ToolDescription
drive_listPermissionsList all sharing permissions for a file
drive_getPermissionGet details of a specific permission
drive_shareFileShare file with user/group/domain/anyone
drive_updatePermissionUpdate permission role
drive_unshareRemove a permission (stop sharing)

Google Docs (4 tools)

ToolDescription
createGoogleDocCreate new Google Doc
getGoogleDocContentGet document content
updateGoogleDocUpdate document content
formatGoogleDocTextFormat text in document

Google Sheets (8 tools)

ToolDescription
createGoogleSheetCreate new spreadsheet
getGoogleSheetContentGet spreadsheet data
updateGoogleSheetUpdate cell values
formatGoogleSheetCellsFormat cells (background, alignment)
formatGoogleSheetTextFormat text in cells
formatGoogleSheetNumbersApply number formatting
setGoogleSheetBordersSet cell borders
mergeGoogleSheetCellsMerge cells

Google Slides (7 tools)

ToolDescription
createGoogleSlidesCreate new presentation
getGoogleSlidesContentGet presentation content
updateGoogleSlidesUpdate slide content
createGoogleSlidesTextBoxAdd text box to slide
createGoogleSlidesShapeAdd shape to slide
formatGoogleSlidesTextFormat text in slides
setGoogleSlidesBackgroundSet slide background

Google Calendar (24 tools)

Enable with GOOGLE_WORKSPACE_CALENDAR=true

Events

ToolDescription
createCalendarEventCreate new event
getCalendarEventGet event details
listCalendarEventsList calendar events
updateCalendarEventUpdate event
deleteCalendarEventDelete event
quickAddEventQuick add event from text
moveCalendarEventMove event to another calendar
getEventInstancesGet recurring event instances

Calendars

ToolDescription
listCalendarsList all calendars
getCalendarGet calendar details
createCalendarCreate new calendar
updateCalendarUpdate calendar settings
deleteCalendarDelete calendar

Calendar Management

ToolDescription
addCalendarToListAdd calendar to list
updateCalendarInListUpdate calendar in list
removeCalendarFromListRemove calendar from list
shareCalendarShare a calendar
getCalendarPermissionsGet calendar permissions
updateCalendarPermissionUpdate calendar permission
removeCalendarPermissionRemove calendar permission
checkAvailabilityCheck free/busy status
getCalendarColorsGet available colors
getCalendarSettingsGet calendar settings

Gmail (24 tools)

Enable with GOOGLE_WORKSPACE_GMAIL=true

Messages

ToolDescription
listMessagesList messages with filters
getMessageGet message content
sendMessageSend email (with attachments)
replyToMessageReply to a message
forwardMessageForward a message
trashMessageMove message to trash
deleteMessagePermanently delete message
modifyMessageLabelsAdd/remove labels

Threads

ToolDescription
listThreadsList email threads
getThreadGet full thread
trashThreadTrash entire thread
modifyThreadLabelsModify thread labels

Drafts

ToolDescription
listDraftsList drafts
createDraftCreate new draft
updateDraftUpdate draft
sendDraftSend draft
deleteDraftDelete draft

Labels

ToolDescription
listLabelsList all labels
createLabelCreate custom label
updateLabelUpdate label
deleteLabelDelete label

Other

ToolDescription
getAttachmentDownload attachment
getVacationSettingsGet vacation responder
setVacationSettingsSet vacation responder
getGmailProfileGet Gmail profile

Google Meet (18 tools)

Enable with GOOGLE_WORKSPACE_MEET=true

Spaces

ToolDescription
meet_createSpaceCreate meeting space
meet_getSpaceGet space details
meet_updateSpaceUpdate space config
meet_endActiveConferenceEnd active meeting

Members

ToolDescription
meet_addMemberAdd co-host
meet_listMembersList space members
meet_deleteMemberRemove member

Conference Records

ToolDescription
meet_listConferenceRecordsList past meetings
meet_getConferenceRecordGet meeting details

Participants

ToolDescription
meet_listParticipantsList attendees
meet_getParticipantGet participant info
meet_listParticipantSessionsGet join/leave times

Recordings

ToolDescription
meet_listRecordingsList recordings
meet_getRecordingGet recording URL

Transcripts

ToolDescription
meet_listTranscriptsList transcripts
meet_getTranscriptGet transcript details
meet_listTranscriptEntriesGet transcript text

Google Tasks (12 tools)

Enable with GOOGLE_WORKSPACE_TASKS=true

Task Lists

ToolDescription
tasks_listTaskListsList all task lists
tasks_getTaskListGet task list details
tasks_createTaskListCreate new task list
tasks_updateTaskListUpdate task list
tasks_deleteTaskListDelete task list

Tasks

ToolDescription
tasks_listTasksList tasks in a list
tasks_getTaskGet task details
tasks_createTaskCreate new task
tasks_updateTaskUpdate task
tasks_completeTaskMark task as completed
tasks_deleteTaskDelete task
tasks_clearCompletedClear completed tasks

Google Contacts (10 tools)

Enable with GOOGLE_WORKSPACE_CONTACTS=true

Contacts

ToolDescription
contacts_listContactsList all contacts
contacts_getContactGet contact details
contacts_searchContactsSearch contacts
contacts_createContactCreate new contact
contacts_updateContactUpdate contact
contacts_deleteContactDelete contact

Contact Groups

ToolDescription
contacts_listGroupsList contact groups
contacts_createGroupCreate contact group
contacts_updateGroupUpdate contact group
contacts_deleteGroupDelete contact group

Service Configuration

Services can be enabled/disabled via environment variables:

ServiceEnvironment VariableDefault
DriveGOOGLE_WORKSPACE_DRIVEtrue
DocsGOOGLE_WORKSPACE_DOCStrue
SheetsGOOGLE_WORKSPACE_SHEETStrue
SlidesGOOGLE_WORKSPACE_SLIDEStrue
CalendarGOOGLE_WORKSPACE_CALENDARfalse
GmailGOOGLE_WORKSPACE_GMAILfalse
MeetGOOGLE_WORKSPACE_MEETfalse
TasksGOOGLE_WORKSPACE_TASKSfalse
ContactsGOOGLE_WORKSPACE_CONTACTSfalse

OAuth Scopes

The server requests only the scopes needed for enabled services:

ServiceScopes
Drivedrive, drive.file, drive.readonly
Docsdocuments
Sheetsspreadsheets
Slidespresentations
Calendarcalendar, calendar.events
Gmailgmail.readonly, gmail.send, gmail.modify, gmail.settings.basic
Meetmeetings.space.created, meetings.space.readonly, drive.meet.readonly
Taskstasks
Contactscontacts, contacts.readonly

Project Structure

src/
├── index.ts              # Entry point
├── server.ts             # MCP server setup
├── auth/                 # OAuth2 authentication
│   ├── index.ts
│   ├── client.ts
│   ├── server.ts
│   └── tokenManager.ts
├── config/
│   └── services.ts       # Service configuration
├── services/             # API wrappers
│   ├── drive.ts
│   ├── docs.ts
│   ├── sheets.ts
│   ├── slides.ts
│   ├── calendar.ts
│   ├── gmail.ts
│   ├── meet.ts
│   ├── tasks.ts
│   └── contacts.ts
├── tools/                # MCP tool definitions
│   ├── files.ts
│   ├── folders.ts
│   ├── docs.ts
│   ├── sheets.ts
│   ├── slides.ts
│   ├── calendar.ts
│   ├── gmail.ts
│   ├── meet.ts
│   ├── tasks.ts
│   ├── contacts.ts
│   └── permissions.ts
└── utils/
    ├── paths.ts
    └── errors.ts

Development

# Build
npm run build

# Run authentication
npm run auth

# Run tests
node test-gmail.mjs          # Gmail tests
node test-meet.mjs           # Meet tests
node test-new-features.mjs   # Tasks, Contacts, Permissions tests

Requirements

  • Node.js 18+
  • Google Cloud project with OAuth credentials
  • Google Workspace account (some Meet features require paid Workspace)

License

MIT

Credits


Español

Google Workspace MCP Server

Servidor MCP (Model Context Protocol) para integración completa de Google Workspace con Claude Code y Claude Desktop.

Créditos: Este proyecto está basado en google-drive-mcp de Piotr Agier. Extendido para soportar toda la suite de Google Workspace.

Características

Integración completa con las APIs de Google Workspace:

ServicioHerramientasEstado
Google Drive14Core (siempre habilitado)
Permisos de Drive5Core (siempre habilitado)
Google Docs4Core (siempre habilitado)
Google Sheets6Core (siempre habilitado)
Google Slides9Core (siempre habilitado)
Google Calendar12Opcional
Gmail24Opcional
Google Meet18Opcional
Google Tasks12Opcional
Google Contacts10Opcional

Total: 114 herramientas MCP

Inicio Rápido

1. Instalar dependencias

npm install

2. Configurar credenciales OAuth

  1. Ir a Google Cloud Console
  2. Crear un nuevo proyecto o seleccionar uno existente
  3. Habilitar las APIs que necesites:
    • Google Drive API (requerida)
    • Google Docs API (requerida)
    • Google Sheets API (requerida)
    • Google Slides API (requerida)
    • Google Calendar API (opcional)
    • Gmail API (opcional)
    • Google Meet API (opcional)
    • Google Tasks API (opcional)
    • People API (opcional, para Contacts)
  4. Crear credenciales OAuth 2.0 (aplicación de escritorio)
  5. Descargar el archivo JSON y guardarlo como gcp-oauth.keys.json en la raíz del proyecto

3. Autenticar

# Básico (Drive, Docs, Sheets, Slides)
npm run auth

# Con Calendar
GOOGLE_WORKSPACE_CALENDAR=true npm run auth

# Con Gmail
GOOGLE_WORKSPACE_GMAIL=true npm run auth

# Con Meet
GOOGLE_WORKSPACE_MEET=true npm run auth

# Con Tasks
GOOGLE_WORKSPACE_TASKS=true npm run auth

# Con Contacts
GOOGLE_WORKSPACE_CONTACTS=true npm run auth

# Todos los servicios
GOOGLE_WORKSPACE_CALENDAR=true GOOGLE_WORKSPACE_GMAIL=true GOOGLE_WORKSPACE_MEET=true GOOGLE_WORKSPACE_TASKS=true GOOGLE_WORKSPACE_CONTACTS=true npm run auth

4. Configurar Claude Desktop

Agregar a la configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "google-workspace": {
      "command": "node",
      "args": ["/ruta/a/google-workspace-mcp/dist/index.js"],
      "env": {
        "GOOGLE_WORKSPACE_CALENDAR": "true",
        "GOOGLE_WORKSPACE_GMAIL": "true",
        "GOOGLE_WORKSPACE_MEET": "true",
        "GOOGLE_WORKSPACE_TASKS": "true",
        "GOOGLE_WORKSPACE_CONTACTS": "true"
      }
    }
  }
}

5. Configurar Claude Code

Agregar a la configuración global de Claude Code (~/.claude.json):

{
  "mcpServers": {
    "google-workspace": {
      "type": "stdio",
      "command": "node",
      "args": ["/ruta/a/google-workspace-mcp/dist/index.js"],
      "env": {
        "GOOGLE_WORKSPACE_CALENDAR": "true",
        "GOOGLE_WORKSPACE_GMAIL": "true",
        "GOOGLE_WORKSPACE_MEET": "true",
        "GOOGLE_WORKSPACE_TASKS": "true",
        "GOOGLE_WORKSPACE_CONTACTS": "true"
      }
    }
  }
}

Configuración de Servicios

Los servicios se pueden habilitar/deshabilitar mediante variables de entorno:

ServicioVariable de EntornoPor Defecto
DriveGOOGLE_WORKSPACE_DRIVEtrue
DocsGOOGLE_WORKSPACE_DOCStrue
SheetsGOOGLE_WORKSPACE_SHEETStrue
SlidesGOOGLE_WORKSPACE_SLIDEStrue
CalendarGOOGLE_WORKSPACE_CALENDARfalse
GmailGOOGLE_WORKSPACE_GMAILfalse
MeetGOOGLE_WORKSPACE_MEETfalse
TasksGOOGLE_WORKSPACE_TASKSfalse
ContactsGOOGLE_WORKSPACE_CONTACTSfalse

Requisitos

  • Node.js 18+
  • Proyecto de Google Cloud con credenciales OAuth
  • Cuenta de Google Workspace (algunas funciones de Meet requieren Workspace de pago)

Licencia

MIT

Créditos

Reviews

No reviews yet

Sign in to write a review