MCP server for Google Workspace integration with Claude AI
Auralis Google provides seamless integration between Claude AI and Google Workspace services through the Model Context Protocol (MCP). Access Gmail, Calendar, Drive, Docs, and Sheets directly from Claude.
- Gmail: Search messages, read emails, send emails, manage labels
- Calendar: List events, create/update/delete events, list calendars
- Drive: List files, search, read content, create/delete files and folders
- Docs: Read documents, append text, create new docs
- Sheets: Full spreadsheet management - read, write, append, delete rows, manage sheets
npm install -g auralis-googledocker pull antonpme/auralis-google
docker run -p 3000:3000 \
-e GOOGLE_CLIENT_ID=your_client_id \
-e GOOGLE_CLIENT_SECRET=your_client_secret \
-e GOOGLE_REDIRECT_URI=http://localhost:3000/oauth/callback \
antonpme/auralis-googlegit clone https://github.com/antonpme/auralis-google.git
cd auralis-google
npm install
npm run buildBefore using Auralis Google, you need to create OAuth credentials:
- Go to Google Cloud Console
- Create a new project or select existing one
- Enable the following APIs:
- Gmail API
- Google Calendar API
- Google Drive API
- Google Docs API
- Google Sheets API
- Go to Credentials → Create Credentials → OAuth client ID
- Select Web application
- Add authorized redirect URI:
http://localhost:3000/oauth/callback - Copy Client ID and Client Secret
Add to your claude_desktop_config.json:
{
"mcpServers": {
"google": {
"command": "auralis-google",
"env": {
"MCP_MODE": "stdio",
"GOOGLE_CLIENT_ID": "your_client_id.apps.googleusercontent.com",
"GOOGLE_CLIENT_SECRET": "your_client_secret",
"GOOGLE_REDIRECT_URI": "http://localhost:3000/oauth/callback"
}
}
}
}Set these environment variables:
| Variable | Description |
|---|---|
PORT |
Server port (default: 3000) |
MCP_MODE |
Set to http for HTTP mode (default) |
GOOGLE_CLIENT_ID |
OAuth Client ID |
GOOGLE_CLIENT_SECRET |
OAuth Client Secret |
GOOGLE_REDIRECT_URI |
OAuth callback URL |
TOKENS_PATH |
Path to store tokens (default: ./data/tokens.json) |
HTTP Endpoints:
| Endpoint | Method | Description |
|---|---|---|
/mcp |
POST | MCP protocol endpoint (Streamable HTTP) |
/auth?account=xxx |
GET | Start OAuth flow for account |
/oauth/callback |
GET | OAuth callback handler |
/health |
GET | Health check |
On first use, you need to authenticate with Google:
HTTP Mode:
- Open
http://localhost:3000/auth?account=personalin browser - Sign in with your Google account
- Grant permissions
- You'll see "✅ Authenticated as your@email.com"
Stdio Mode: You'll need to run the server in HTTP mode first to complete OAuth, then switch to stdio.
You can authenticate multiple Google accounts:
/auth?account=personal
/auth?account=work
/auth?account=client
Then specify the account when using tools:
{
"account": "work",
"query": "is:unread"
}| Tool | Description |
|---|---|
google_list_accounts |
List all authenticated Google accounts |
| Tool | Description |
|---|---|
google_gmail_search |
Search Gmail messages with query |
google_gmail_read |
Read a specific email by ID |
google_gmail_send |
Send an email |
google_gmail_labels |
List Gmail labels |
| Tool | Description |
|---|---|
google_calendar_list |
List all calendars |
google_calendar_list_events |
List events with optional time filter |
google_calendar_create_event |
Create a new event |
google_calendar_update_event |
Update an existing event |
google_calendar_delete_event |
Delete an event |
| Tool | Description |
|---|---|
google_drive_list |
List files in Drive or folder |
google_drive_search |
Search files by content |
google_drive_get |
Get file metadata |
google_drive_read |
Read file content (text/Google Docs) |
google_drive_create |
Create a new file |
google_drive_delete |
Delete a file |
google_drive_create_folder |
Create a folder |
google_drive_move |
Move file to another folder |
| Tool | Description |
|---|---|
google_docs_read |
Read a Google Doc |
google_docs_append |
Append text to a Doc |
google_docs_create |
Create a new Google Doc |
| Tool | Description |
|---|---|
google_sheets_create |
Create a new spreadsheet |
google_sheets_read |
Read data from range |
google_sheets_append |
Append rows to sheet |
google_sheets_update |
Update cells in range |
google_sheets_info |
Get spreadsheet metadata |
google_sheets_delete_rows |
Delete rows |
google_sheets_clear |
Clear cells in range |
google_sheets_add_sheet |
Add new sheet tab |
google_sheets_delete_sheet |
Delete sheet tab |
google_sheets_rename_sheet |
Rename sheet tab |
Search my Gmail for unread messages from last week
Create a meeting called "Project Review" tomorrow at 3pm for 1 hour
Read all data from my Budget spreadsheet
Send an email to john@example.com with subject "Meeting Notes" and the summary of our discussion
- Fork this repository
- Connect to Railway
- Set environment variables in Railway dashboard
- Deploy
Or use the railway.json included in this repo.
auralis-google/
├── src/
│ ├── index.ts # MCP server + Express endpoints
│ ├── auth.ts # OAuth2 management
│ └── tools/
│ ├── gmail.ts
│ ├── calendar.ts
│ ├── drive.ts
│ ├── docs.ts
│ └── sheets.ts
├── dist/ # Compiled JavaScript
├── data/ # Token storage (gitignored)
├── Dockerfile
├── railway.json
└── package.json
- OAuth tokens are stored locally in
./data/tokens.json - Tokens are automatically refreshed when expired
- Never commit your
data/folder or.envfiles - Use environment variables for credentials
Contributions are welcome! Please open an issue or submit a pull request.
MIT License - see LICENSE file.
- GitHub Repository
- NPM Package
- Auralis Commander - Windows MCP server