@supercorp/gmail-mcp
is a Gmail MCP server.
Run via npx
using only the required flags:
npx @supercorp/gmail-mcp \
--googleClientId <string> \
--googleClientSecret <string> \
--googleRedirectUri <string>
All other options can be adjusted in the table below.
Flag | Type | Default | Description |
---|---|---|---|
--googleClientId |
string (required) | N/A | Your Google OAuth client ID. |
--googleClientSecret |
string (required) | N/A | Your Google OAuth client secret. |
--googleRedirectUri |
string (required) | N/A | OAuth 2.0 redirect URI registered in Google Cloud Console. |
--port |
number | 8000 |
TCP port for HTTP/SSE mode. |
--transport |
sse or stdio |
sse |
MCP transport: • sse : HTTP server + Server-Sent Events• stdio : JSON-RPC over stdin/stdout |
--storage |
see below | memory-single |
Persistence backend for OAuth tokens: • memory-single : in-memory single-user (no header key)• memory : multi-user in-memory• upstash-redis-rest : durable via Upstash Redis REST API |
--storageHeaderKey |
string (conditional) | none | HTTP header name (or Redis key prefix) to identify users when using memory or upstash-redis-rest . |
--upstashRedisRestUrl |
string (conditional) | none | Upstash Redis REST URL (required if --storage=upstash-redis-rest ). |
--upstashRedisRestToken |
string (conditional) | none | Upstash Redis REST token (required if --storage=upstash-redis-rest ). |
--sendOnly |
boolean | false |
If set, only the gmail.send tool is exposed (no read/draft capabilities). |
--googleState |
string (optional) | none | Optional OAuth state parameter forwarded to Google. |
- memory-single: in-memory single-user (quick demos; data lost on restart)
- memory: in-memory multi-user (requires
--storageHeaderKey
) - upstash-redis-rest: persistent via Upstash Redis REST (requires
--storageHeaderKey
,--upstashRedisRestUrl
,--upstashRedisRestToken
)
- stdio JSON-RPC over stdin/stdout.
- sse
HTTP server + Server-Sent Events:
- Subscribe:
GET http://localhost:<port>/
- Send:
POST http://localhost:<port>/message?sessionId=<session-id>
- Subscribe:
Tool | Description |
---|---|
auth_url |
Returns a Gmail OAuth consent URL. |
exchange_auth_code |
Exchanges the OAuth code for a refresh token and stores it. |
list_emails |
Lists Gmail messages (maxResults , labelIds , query , pageToken , unreadOnly ). |
read_email |
Retrieves a full message by ID, converts HTML bodies into Markdown. |
list_drafts |
Lists Gmail drafts (maxResults , query ). |
read_draft |
Reads a single draft by ID (in full). |
draft_email |
Creates a new draft (sender , to , cc? , bcc? , subject , body , isHtml? ). |
update_draft |
Updates an existing draft by ID. |
delete_draft |
Deletes a draft by ID. |
send_email |
Sends an email (new or via an existing draft if draftId is provided). In send-only mode, this is the only tool. |