MCP server for the Gmail API: search, read and send email, manage drafts, labels and the trash.
Connect Runs on your machine
claude mcp add mcp-google-gmail -e GOOGLE_GMAIL_CLIENT_ID=<GOOGLE_GMAIL_CLIENT_ID> -e GOOGLE_GMAIL_CLIENT_SECRET=<GOOGLE_GMAIL_CLIENT_SECRET> -e GOOGLE_GMAIL_REFRESH_TOKEN=<GOOGLE_GMAIL_REFRESH_TOKEN> -e GOOGLE_GMAIL_ACCESS_TOKEN=<GOOGLE_GMAIL_ACCESS_TOKEN> -e GOOGLE_GMAIL_OAUTH_PORT=<GOOGLE_GMAIL_OAUTH_PORT> -e GOOGLE_GMAIL_API_BASE=<GOOGLE_GMAIL_API_BASE> -e GOOGLE_GMAIL_TIMEOUT_MS=<GOOGLE_GMAIL_TIMEOUT_MS> -e GOOGLE_GMAIL_MAX_RETRIES=<GOOGLE_GMAIL_MAX_RETRIES> -- npx -y [email protected]
{
"mcpServers": {
"mcp-google-gmail": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"GOOGLE_GMAIL_CLIENT_ID": "<GOOGLE_GMAIL_CLIENT_ID>",
"GOOGLE_GMAIL_CLIENT_SECRET": "<GOOGLE_GMAIL_CLIENT_SECRET>",
"GOOGLE_GMAIL_REFRESH_TOKEN": "<GOOGLE_GMAIL_REFRESH_TOKEN>",
"GOOGLE_GMAIL_ACCESS_TOKEN": "<GOOGLE_GMAIL_ACCESS_TOKEN>",
"GOOGLE_GMAIL_OAUTH_PORT": "<GOOGLE_GMAIL_OAUTH_PORT>",
"GOOGLE_GMAIL_API_BASE": "<GOOGLE_GMAIL_API_BASE>",
"GOOGLE_GMAIL_TIMEOUT_MS": "<GOOGLE_GMAIL_TIMEOUT_MS>",
"GOOGLE_GMAIL_MAX_RETRIES": "<GOOGLE_GMAIL_MAX_RETRIES>"
}
}
}
}
{
"mcpServers": {
"mcp-google-gmail": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"GOOGLE_GMAIL_CLIENT_ID": "<GOOGLE_GMAIL_CLIENT_ID>",
"GOOGLE_GMAIL_CLIENT_SECRET": "<GOOGLE_GMAIL_CLIENT_SECRET>",
"GOOGLE_GMAIL_REFRESH_TOKEN": "<GOOGLE_GMAIL_REFRESH_TOKEN>",
"GOOGLE_GMAIL_ACCESS_TOKEN": "<GOOGLE_GMAIL_ACCESS_TOKEN>",
"GOOGLE_GMAIL_OAUTH_PORT": "<GOOGLE_GMAIL_OAUTH_PORT>",
"GOOGLE_GMAIL_API_BASE": "<GOOGLE_GMAIL_API_BASE>",
"GOOGLE_GMAIL_TIMEOUT_MS": "<GOOGLE_GMAIL_TIMEOUT_MS>",
"GOOGLE_GMAIL_MAX_RETRIES": "<GOOGLE_GMAIL_MAX_RETRIES>"
}
}
}
}
{
"servers": {
"mcp-google-gmail": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"GOOGLE_GMAIL_CLIENT_ID": "<GOOGLE_GMAIL_CLIENT_ID>",
"GOOGLE_GMAIL_CLIENT_SECRET": "<GOOGLE_GMAIL_CLIENT_SECRET>",
"GOOGLE_GMAIL_REFRESH_TOKEN": "<GOOGLE_GMAIL_REFRESH_TOKEN>",
"GOOGLE_GMAIL_ACCESS_TOKEN": "<GOOGLE_GMAIL_ACCESS_TOKEN>",
"GOOGLE_GMAIL_OAUTH_PORT": "<GOOGLE_GMAIL_OAUTH_PORT>",
"GOOGLE_GMAIL_API_BASE": "<GOOGLE_GMAIL_API_BASE>",
"GOOGLE_GMAIL_TIMEOUT_MS": "<GOOGLE_GMAIL_TIMEOUT_MS>",
"GOOGLE_GMAIL_MAX_RETRIES": "<GOOGLE_GMAIL_MAX_RETRIES>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
GOOGLE_GMAIL_CLIENT_IDOptional | Google OAuth2 client id (refresh-token flow). |
GOOGLE_GMAIL_CLIENT_SECRETOptional, secret | Google OAuth2 client secret (refresh-token flow). Treat it as a secret. |
GOOGLE_GMAIL_REFRESH_TOKENOptional, secret | Google OAuth2 refresh token, exchanged for access tokens automatically. Treat it as a secret. |
GOOGLE_GMAIL_ACCESS_TOKENOptional, secret | Static OAuth2 access token (~1h lifetime) — alternative to the refresh-token trio, mostly for testing. |
GOOGLE_GMAIL_OAUTH_PORTOptional | Fixed port for the loopback listener of the in-chat login (127.0.0.1 + PKCE). Set it when the client runs over SSH port forwarding; otherwise a free port is picked per login. |
GOOGLE_GMAIL_API_BASEOptional | API root override. |
GOOGLE_GMAIL_TIMEOUT_MSOptional | Per-request timeout in milliseconds. |
GOOGLE_GMAIL_MAX_RETRIESOptional | Retries on transient errors (429 always; 5xx/network for reads). |
Details
| Package | [email protected] (NPM, stdio) |
| First published | 4 Nov 2026 |
| Last updated | 4 Nov 2026 |
| Registry name | io.github.A1-x-Tech/mcp-google-gmail |
More communication servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
