gmail MCP server
com.pulsemcp · Updated
MCP server for Gmail with OAuth2 (personal) and service account (Workspace) support.
At a glance
gmail is an MCP server in the Productivity category. It runs locally over stdio via `npx -y gmail-workspace-mcp-server`, and needs GMAIL_OAUTH_CLIENT_ID, GMAIL_OAUTH_CLIENT_SECRET, GMAIL_OAUTH_REFRESH_TOKEN and GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY. It scores A (82/100) on the MCP Skills Hub health score as of Oct 28, 2026.
One-click install
Opens your editor and pre-fills the config. Your editor will ask before adding it.
How to install gmail in your AI client
Setup for Claude Code, Claude Desktop, Cursor, Codex, Windsurf, Cline and VS Code — copy-paste ready.
How to install gmail in Claude CodeAnthropic's agentic CLI
Add the server
bashclaude mcp add gmail -e 'GMAIL_OAUTH_CLIENT_ID=<GMAIL_OAUTH_CLIENT_ID>' -e 'GMAIL_OAUTH_CLIENT_SECRET=<GMAIL_OAUTH_CLIENT_SECRET>' -e 'GMAIL_OAUTH_REFRESH_TOKEN=<GMAIL_OAUTH_REFRESH_TOKEN>' -e 'GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY=<GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY>' -- npx -y gmail-workspace-mcp-serverFill in your credentials
Replace <GMAIL_OAUTH_CLIENT_ID>, <GMAIL_OAUTH_CLIENT_SECRET>, <GMAIL_OAUTH_REFRESH_TOKEN>, <GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY> with your real values. Keep secrets out of any config file you commit.
Verify it's connected
bashclaude mcp listSharing it with your team?
Add `--scope project` to write it to .mcp.json in the repository root, which you can commit (with the secrets left as environment variables).
Use it in a session
Ask Claude to use the tools this server exposes. It discovers them automatically.
How to install gmail in Claude DesktopDesktop app (MCP config)
Open your MCP config
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json · Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this server
json{ "mcpServers": { "gmail": { "command": "npx", "args": [ "-y", "gmail-workspace-mcp-server" ], "env": { "GMAIL_OAUTH_CLIENT_ID": "<GMAIL_OAUTH_CLIENT_ID>", "GMAIL_OAUTH_CLIENT_SECRET": "<GMAIL_OAUTH_CLIENT_SECRET>", "GMAIL_OAUTH_REFRESH_TOKEN": "<GMAIL_OAUTH_REFRESH_TOKEN>", "GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY": "<GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY>" } } } }Fill in your credentials
Replace <GMAIL_OAUTH_CLIENT_ID>, <GMAIL_OAUTH_CLIENT_SECRET>, <GMAIL_OAUTH_REFRESH_TOKEN>, <GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY> with your real values. Keep secrets out of any config file you commit.
Restart Claude Desktop
The tools appear under the 🔌 menu once the app reloads.
How to install gmail in CursorAI-first code editor
Create / edit .cursor/mcp.json in your project
json{ "mcpServers": { "gmail": { "command": "npx", "args": [ "-y", "gmail-workspace-mcp-server" ], "env": { "GMAIL_OAUTH_CLIENT_ID": "<GMAIL_OAUTH_CLIENT_ID>", "GMAIL_OAUTH_CLIENT_SECRET": "<GMAIL_OAUTH_CLIENT_SECRET>", "GMAIL_OAUTH_REFRESH_TOKEN": "<GMAIL_OAUTH_REFRESH_TOKEN>", "GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY": "<GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY>" } } } }Fill in your credentials
Replace <GMAIL_OAUTH_CLIENT_ID>, <GMAIL_OAUTH_CLIENT_SECRET>, <GMAIL_OAUTH_REFRESH_TOKEN>, <GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY> with your real values. Keep secrets out of any config file you commit.
Enable it
Cursor Settings → MCP → toggle the server on. Tools become available to the Composer/Agent.
How to install gmail in Codex CLIOpenAI coding agent
Add to ~/.codex/config.toml
toml[mcp_servers.gmail] command = "npx" args = ["-y", "gmail-workspace-mcp-server"] env = { GMAIL_OAUTH_CLIENT_ID = "<GMAIL_OAUTH_CLIENT_ID>", GMAIL_OAUTH_CLIENT_SECRET = "<GMAIL_OAUTH_CLIENT_SECRET>", GMAIL_OAUTH_REFRESH_TOKEN = "<GMAIL_OAUTH_REFRESH_TOKEN>", GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY = "<GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY>" }Fill in your credentials
Replace <GMAIL_OAUTH_CLIENT_ID>, <GMAIL_OAUTH_CLIENT_SECRET>, <GMAIL_OAUTH_REFRESH_TOKEN>, <GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY> with your real values. Keep secrets out of any config file you commit.
Run Codex
Codex loads MCP servers from config.toml on startup and exposes their tools to the agent.
How to install gmail in WindsurfCodeium's agentic IDE
Edit ~/.codeium/windsurf/mcp_config.json
json{ "mcpServers": { "gmail": { "command": "npx", "args": [ "-y", "gmail-workspace-mcp-server" ], "env": { "GMAIL_OAUTH_CLIENT_ID": "<GMAIL_OAUTH_CLIENT_ID>", "GMAIL_OAUTH_CLIENT_SECRET": "<GMAIL_OAUTH_CLIENT_SECRET>", "GMAIL_OAUTH_REFRESH_TOKEN": "<GMAIL_OAUTH_REFRESH_TOKEN>", "GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY": "<GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY>" } } } }Fill in your credentials
Replace <GMAIL_OAUTH_CLIENT_ID>, <GMAIL_OAUTH_CLIENT_SECRET>, <GMAIL_OAUTH_REFRESH_TOKEN>, <GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY> with your real values. Keep secrets out of any config file you commit.
Reload
Windsurf → Cascade → refresh MCP servers. Cascade can now call the tools.
How to install gmail in ClineVS Code autonomous agent
Open Cline → MCP Servers → Configure
Adds to cline_mcp_settings.json.
Add the server
json{ "mcpServers": { "gmail": { "command": "npx", "args": [ "-y", "gmail-workspace-mcp-server" ], "env": { "GMAIL_OAUTH_CLIENT_ID": "<GMAIL_OAUTH_CLIENT_ID>", "GMAIL_OAUTH_CLIENT_SECRET": "<GMAIL_OAUTH_CLIENT_SECRET>", "GMAIL_OAUTH_REFRESH_TOKEN": "<GMAIL_OAUTH_REFRESH_TOKEN>", "GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY": "<GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY>" } } } }Fill in your credentials
Replace <GMAIL_OAUTH_CLIENT_ID>, <GMAIL_OAUTH_CLIENT_SECRET>, <GMAIL_OAUTH_REFRESH_TOKEN>, <GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY> with your real values. Keep secrets out of any config file you commit.
How to install gmail in VS CodeCopilot / MCP support
Create .vscode/mcp.json
json{ "servers": { "gmail": { "type": "stdio", "command": "npx", "args": [ "-y", "gmail-workspace-mcp-server" ], "env": { "GMAIL_OAUTH_CLIENT_ID": "<GMAIL_OAUTH_CLIENT_ID>", "GMAIL_OAUTH_CLIENT_SECRET": "<GMAIL_OAUTH_CLIENT_SECRET>", "GMAIL_OAUTH_REFRESH_TOKEN": "<GMAIL_OAUTH_REFRESH_TOKEN>", "GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY": "<GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY>" } } } }Fill in your credentials
Replace <GMAIL_OAUTH_CLIENT_ID>, <GMAIL_OAUTH_CLIENT_SECRET>, <GMAIL_OAUTH_REFRESH_TOKEN>, <GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY> with your real values. Keep secrets out of any config file you commit.
Start it
VS Code shows a ▶ Start action above the server entry. Agent mode (Copilot Chat) can then use the tools.
What does gmail need from you?
API key — OAuth2 client ID from Google Cloud Console (for personal Gmail accounts).
GMAIL_OAUTH_CLIENT_IDoptionalsecretEnvironment variableOAuth2 client ID from Google Cloud Console (for personal Gmail accounts).
GMAIL_OAUTH_CLIENT_SECREToptionalsecretEnvironment variableOAuth2 client secret from Google Cloud Console.
GMAIL_OAUTH_REFRESH_TOKENoptionalsecretEnvironment variableRefresh token from the OAuth2 setup script.
GMAIL_SERVICE_ACCOUNT_CLIENT_EMAILoptionalEnvironment variableService account email address (for Google Workspace).
GMAIL_SERVICE_ACCOUNT_PRIVATE_KEYoptionalsecretEnvironment variableService account private key in PEM format (for Google Workspace).
GMAIL_IMPERSONATE_EMAILoptionalEnvironment variableEmail address to impersonate (required for service account mode).
GMAIL_ENABLED_TOOLGROUPSoptionalEnvironment variableComma-separated list of tool groups to enable (readonly, readwrite, readwrite_external).
Pass secrets through your shell environment rather than committing them into a config file.
What tools does gmail expose?
This server runs as a local package. We only query remote servers for their tool list — asking this one would mean executing it, so its tools are listed in the documentation below.
What the code can do
Read from the published package source — never executed. Parsed 25 of 25 source files.
This server can read and write files, make network requests and read your environment variables.
How it was published
- No provenance attestation — there is nothing linking this published artifact to a specific source commit.
- 1 npm maintainer — a single point of compromise · last published by tadasant.
Maintainer of this package and think something here is wrong? Tell us and we'll correct it.
Before you install
Signals gathered from the source repo and package registry — not a safety verdict.
What it can reach
- Runs code on your machine — Executes as a local process with your user's permissions, including filesystem access.
- Downloads at launch — The package is fetched from its registry each run unless you pin a version.
- Last commit 19 days ago — Actively maintained.
- 81 GitHub stars — Community adoption signal.
- 121 weekly downloads — Regularly installed by other developers.
Client compatibility
Health score
A · 82Maintenance, adoption, transparency and packaging — not a safety audit. How this is calculated
- Maintenance30%100%
Last commit 19 days ago.
- Adoption20%53%
81 stars, 121 weekly downloads.
- Transparency20%75%
3/4: ✓ public source repo, ✓ declared license, ✓ documentation, ✗ discoverable tool list.
- Provenance15%75%
Links to its own repository; package linkage unverified.
- Packaging15%100%
Publishes a pinned version (0.4.12).
Documentation
Full READMEPulseMCP's MCP Servers
We build reliable servers thoughtfully designed for MCP Client-powered workflows.
Design principles
You can have confidence that any Pulse-branded MCP server was built with these north stars in mind:
- Purpose-built. LLM-powered MCP clients offer uniquely new user interaction patterns that necessitate a different layer of abstraction than the REST API's from a pre-AI era. We thoughtfully scope drawing lines like building a new server, versus incorporating a new feature in another server. Or deciding where one slew of REST API endpoints might be better packaged as a single Tool call. And more.
- Easy set up. Many MCP servers die before ever getting a chance to be used. We offer guides and a frustration-free experience to get going with our MCP servers inside your favorite MCP clients.
- Time savings. By minimizing the number of tool chain steps or conversational turns you need to accomplish a task, our MCP servers will save you (and your agents) time waiting for a task to be completed.
- Inference cost savings. By minimizing the number of tokens you need to consume to a accomplish a task, our MCP servers will save you on your LLM inference bills.
- Reliability. You should have confidence that you can deploy our servers in a production application serving mass market consumers or business clients.
- Future-proof. We sit on the bleeding edge of the MCP specification, working to push the ecosystem forward. As such, you can be sure that if you commit to baking our server into your workflow, it will self-improve over time to take advantage of the latest and greatest MCP features.
Servers Available
Productionized Servers
These are PulseMCP-branded servers that we intend to maintain indefinitely as our own offerings.
The MCP Registry column controls whether the server is published to the official MCP Registry (com.pulsemcp/<server-name>) by the publish-mcp-registry.yml workflow.
| Name | Description | Local Status | Remote Status | MCP Registry | Target Audience | Notes | | -------------------------------------------------------- | ------------------------------------ | ------------ | ------------- | ------------ | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | | pulse-fetch | Pull internet resources into context | 0.3.3 | Not Started | Yes | Agent-building frameworks (e.g. fast-agent, Mastra, PydanticAI) and MCP clients without built-in fetch | Supports Firecrawl and BrightData integrations; HTML noise stripping; Resource caching; LLM extraction | | pulse-subregistry | Browse the PulseMCP Sub-Registry | 0.0.8 | Not Started | Yes | Developers discovering MCP servers from the PulseMCP Sub-Registry | Search and pagination; Version selection; Integrates with PulseMCP Sub-Registry API | | image-diff | Programmatic image comparison | 0.1.3 | Not Started | Yes | Developers comparing design mocks against UI implementations | Pixel-level diff with clustering; Heatmap visualization; Anti-aliasing detection; Auto-alignment for different-sized images | | svg-tracer | Bitmap-to-SVG vector tracing | 0.1.3 | Not Started | Yes | Developers converting bitmap images to SVG vector graphics | Supports PNG, JPG, WebP, BMP, GIF, TIFF; Alpha channel preprocessing; Target size scaling; Customizable tracing parameters |
Experimental Servers
These are high-quality servers that we may discontinue if the official provider creates and maintains a better MCP server.
| Name | Description | Local Status | Remote Status | MCP Registry | Target Audience | Notes | | -------------------------------------------------------- | ------------------------------------------------------------------------------ | ------------ | ------------- | ------------ | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | | agent-orchestrator | Agent parallelization system for agentic coding and ops | 0.8.12 | Not Started | No | PulseMCP team for agent orchestration | Requires AGENT_ORCHESTRATOR_BASE_URL and API_KEY; Internal use only | | appsignal | AppSignal application performance monitoring and error tracking | 0.5.4 | Not Started | Yes | Developers using AppSignal for application monitoring | Requires AppSignal API key; NOT officially affiliated with AppSigna
…
Excerpt — the full document is on GitHub.
Alternatives to gmail
- Mailoo - Email MCP ServerA · 80Email MCP server for AI agents: IMAP/SMTP, Gmail, Outlook, calendar, ManageSieve, AI triage, OAuth2.
- Gmail-MCP-ServerA · 87Lean Gmail MCP server with auto authentication support
- Slack MCP by InsightfulPipeB · 68Hosted Slack MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
- Gmail Agent by Nova (CIVAI)D · 33I do everything related to Gmail and productivity
Maintain gmail? Add a badge to your README
Shows its health grade, and links readers to install steps for every client.
[](https://mcp-skills-hub.vercel.app/mcps/com-pulsemcp-gmail)Catalog data refreshed . Something wrong? Report it.