Google Workspace MCP Server
Description
# Google Workspace MCP Server A Model Context Protocol (MCP) server for interacting with Google Workspace APIs including Gmail, Drive, Calendar, Docs, Sheets, and Slides. ## Features - **Gmail API**: Send emails, list messages, manage labels, and more - **Drive API**: List…
About
# Google Workspace MCP Server A Model Context Protocol (MCP) server for interacting with Google Workspace APIs including Gmail, Drive, Calendar, Docs, Sheets, and Slides. ## Features - **Gmail API**: Send emails, list messages, manage labels, and more - **Drive API**: List files, create folders, and upload files -…
Details
- Author
- mattcoatsworth
- GitHub stars
- 1
- Downloads
- 661
- Categories
- Other
Jump to
- Gmail API: send emails, list messages, manage labels
- Drive API: list files, create folders, upload files
- Docs API: create and edit Google Docs
- Sheets API: read and write spreadsheet data
- Slides API: create presentations and slides
- Calendar API: list and create calendar events
- OAuth2 authentication flow helpers
Install Node.js 16+, set up a Google Cloud project with the necessary APIs enabled, and obtain OAuth 2.0 client credentials. Copy .env.example to .env, fill in your CLIENT_ID, CLIENT_SECRET, REDIRECT_URI, and REFRESH_TOKEN, then run npm run dev to start the server. Use npm run inspect to test tools and resources with the MCP Inspector.
Google Workspace MCP Server
A Model Context Protocol (MCP) server for interacting with Google Workspace APIs including Gmail, Drive, Calendar, Docs, Sheets, and Slides.
## Features
- Gmail API: Send emails, list messages, manage labels, and more
- Drive API: List files, create folders, and upload files
- Docs API: Create and edit Google Docs
- Sheets API: Read and write spreadsheet data
- Slides API: Create presentations and slides
- Calendar API: List and create calendar events
- Authentication: OAuth2 authentication flow helpers
## Prerequisites
- Node.js 16+
- Google Cloud project with the necessary APIs enabled
- OAuth 2.0 client credentials
## Installation
npm install
## Configuration
1. Copy the .env.example file to .env:
cp .env.example .env
2. Edit the .env file with your Google API credentials:
CLIENT_ID=your_client_id
CLIENT_SECRET=your_client_secret
REDIRECT_URI=http://localhost:3000/oauth2callback
REFRESH_TOKEN=your_refresh_token
3. If you don't have a refresh token yet, you can use the authentication tools provided by the server to get one.
## Usage
### Starting the Server
npm run dev
### Using with MCP Inspector
To test the server with the MCP Inspector:
npm run inspect
This will open the MCP Inspector in your browser, allowing you to test all tools and resources.
### Authentication
If you don't have a refresh token, use these tools:
1. Use the generate_auth_url tool to get an authorization URL
2. Open the URL in a browser and authorize the application
3. Copy the authorization code from the redirect URL
4. Use the exchange_code_for_tokens tool with the code to get a refresh token
5. Add the refresh token to your .env file
## Available Tools
### Gmail
- gmail_list_messages: List Gmail messages with optional filters
- gmail_get_message: Get a specific Gmail message by ID
- gmail_send_message: Send a new email message
- gmail_list_labels: List all Gmail labels
- gmail_modify_message: Modify a message's labels
- gmail_trash_message: Move a message to trash
- gmail_untrash_message: Remove a message from trash
- gmail_create_draft: Create a draft email
### Drive
- drive_list_files: List files in Google Drive
- drive_get_file: Get metadata for a specific file
- drive_create_folder: Create a new folder in Google Drive
- drive_upload_file: Upload a file to Google Drive
### Docs
- docs_get_document: Get the content of a Google Doc
- docs_create_document: Create a new Google Doc
- docs_append_text: Append text to a Google Doc
### Sheets
- sheets_get_values: Get values from a Google Sheet
- sheets_update_values: Update values in a Google Sheet
- sheets_create_spreadsheet: Create a new Google Sheet
### Slides
- slides_create_presentation: Create a new Google Slides presentation
- slides_get_presentation: Get information about a Google Slides presentation
- slides_create_slide: Create a new slide in a presentation
### Calendar
- calendar_list_events: List events from Google Calendar
- calendar_create_event: Create a new event in Google Calendar
### Authentication
- generate_auth_url: Generate an OAuth2 authorization URL
- exchange_code_for_tokens: Exchange an authorization code for OAuth2 tokens
## Available Resources
- gmail://message/{messageId}: Get a specific Gmail message
- gmail://thread/{threadId}: Get a Gmail thread with all messages
- gmail://labels: List all Gmail labels
- workspace://docs/{service}: Documentation for a specific Google Workspace API
- workspace://auth/guide: Authentication guide for Google Workspace APIs
## License
MIT
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



