Google Workspace MCP Server
Provides tools to read text content from and prepend content to Google Docs.
Provides tools to read data from, append rows to, and update specific ranges in Google Sheets spreadsheets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Workspace MCP Serverread the spreadsheet named 'Project Plan'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Workspace MCP Server
An MCP (Model Context Protocol) server that provides read/write access to Google Sheets and Google Docs.
Available Tools
Tool | Description |
| Read data from a Google Sheets spreadsheet |
| Read text content from a Google Doc |
| List all sheets/tabs in a spreadsheet |
| Prepend content to a Google Doc |
| Append rows to a spreadsheet |
| Update a specific range in a spreadsheet |
Related MCP server: Google Workspace MCP Server
Quick Start
1. Install from GitHub
npm install -g github:HarleyCoops/google-workspace-mcpOr clone and build locally:
git clone https://github.com/HarleyCoops/google-workspace-mcp.git
cd google-workspace-mcp
npm install
npm run build2. Set Up Google OAuth Credentials
Go to Google Cloud Console
Create a new project (or select existing)
Enable these APIs:
Google Sheets API
Google Docs API
Google Drive API
Create OAuth 2.0 credentials (Desktop app type)
Download as
credentials.json
3. Generate OAuth Token
pip install google-auth-oauthlib google-api-python-client
python regenerate_google_token.pyThis creates token.json with your OAuth credentials.
4. Configure Your MCP Client
Set the GOOGLE_TOKEN_PATH environment variable to point to your token.json file.
MCP Configuration
Standard JSON Config (Claude Desktop, Cursor, VS Code, etc.)
{
"mcpServers": {
"google-workspace": {
"command": "npx",
"args": ["github:HarleyCoops/google-workspace-mcp"],
"env": {
"GOOGLE_TOKEN_PATH": "/path/to/your/token.json"
}
}
}
}If installed globally
{
"mcpServers": {
"google-workspace": {
"command": "google-workspace-mcp",
"env": {
"GOOGLE_TOKEN_PATH": "/path/to/your/token.json"
}
}
}
}If cloned locally
{
"mcpServers": {
"google-workspace": {
"command": "node",
"args": ["/path/to/google-workspace-mcp/build/index.js"],
"env": {
"GOOGLE_TOKEN_PATH": "/path/to/your/token.json"
}
}
}
}Emergent.sh Setup
For Emergent.sh, you have two options:
Option A: Use as stdio MCP (if supported)
In Emergent's MCP configuration:
{
"command": "npx",
"args": ["github:HarleyCoops/google-workspace-mcp"],
"env": {
"GOOGLE_TOKEN_PATH": "/path/to/token.json"
}
}Option B: Self-host as HTTP endpoint
If Emergent requires an HTTP/SSE endpoint, you'll need to wrap this server. See the MCP HTTP Transport docs for details.
Environment Variables
Variable | Description | Default |
| Path to OAuth token.json |
|
| Base path for .env loading |
|
Token Generation Script
Save this as regenerate_google_token.py:
from google_auth_oauthlib.flow import InstalledAppFlow
SCOPES = [
'https://www.googleapis.com/auth/drive.readonly',
'https://www.googleapis.com/auth/documents.readonly',
'https://www.googleapis.com/auth/spreadsheets.readonly',
'https://www.googleapis.com/auth/drive.file'
]
def main():
flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
with open('token.json', 'w') as f:
f.write(creds.to_json())
print("Token saved to token.json")
if __name__ == '__main__':
main()Usage Examples
Reading a Sheet
Extract the spreadsheet ID from the URL:
https://docs.google.com/spreadsheets/d/1Zlxn88pgMi0WAKFo.../edit
^^^^^^^^^^^^^^^^
This is the IDReading a Doc
Extract the document ID from the URL:
https://docs.google.com/document/d/17p5DfXbyEYhsMy.../edit
^^^^^^^^^^^^^^^
This is the IDSecurity Notes
Never commit
credentials.jsonortoken.jsonto version controltoken.jsoncontains refresh tokens that provide persistent accessRevoke access anytime at: https://myaccount.google.com/permissions
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HarleyCoops/google-workspace-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server