# Pulsemcp Gmail (MCP server)

> Pulsemcp Gmail is an MCP server that adds messaging tools to AI assistants such as Claude Desktop, Claude Code and Cursor. MCP server for Gmail with OAuth2 (personal) and service account (Workspace) support. It has 81 GitHub stars, is released under the MIT license and runs locally with npx -y gmail-workspace-mcp-server.

An MCP (Model Context Protocol) server that provides Gmail integration for AI assistants. Supports both personal Gmail accounts (via OAuth2) and Google Workspace accounts (via service account with domain-wide delegation).

## Key facts

| Fact | Value |
|---|---|
| Repository | https://github.com/pulsemcp/mcp-servers |
| GitHub stars | 81 |
| License | MIT |
| Language | TypeScript |
| Transport | stdio |
| Packages | npm: gmail-workspace-mcp-server |
| Remote URL | none |
| Needs API key | yes |
| Official | yes |
| Works with | Claude Desktop, Claude Code, Cursor, VS Code |
| Category | Communication |
| Latest release | monorepo-latest-placeholder@0.0.0 (Jul 3, 2025) |
| Last commit | Aug 30, 2026 |
| MCP registry name | com.pulsemcp/gmail |

## Install

### Claude Desktop (claude_desktop_config.json)

```json
{
  "mcpServers": {
    "pulsemcp-gmail": {
      "command": "npx",
      "args": [
        "-y",
        "gmail-workspace-mcp-server"
      ],
      "env": {
        "GMAIL_OAUTH_CLIENT_ID": "your-value",
        "GMAIL_OAUTH_CLIENT_SECRET": "your-value",
        "GMAIL_OAUTH_REFRESH_TOKEN": "your-value",
        "GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY": "your-value"
      }
    }
  }
}
```

Settings > Developer > Edit Config. macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\. Restart Claude Desktop afterwards.

### Claude Code

```sh
claude mcp add --env GMAIL_OAUTH_CLIENT_ID=your-value --env GMAIL_OAUTH_CLIENT_SECRET=your-value --env GMAIL_OAUTH_REFRESH_TOKEN=your-value --env GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY=your-value --transport stdio pulsemcp-gmail -- npx -y gmail-workspace-mcp-server
```

### Cursor (.cursor/mcp.json)

```json
{
  "mcpServers": {
    "pulsemcp-gmail": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "gmail-workspace-mcp-server"
      ],
      "env": {
        "GMAIL_OAUTH_CLIENT_ID": "your-value",
        "GMAIL_OAUTH_CLIENT_SECRET": "your-value",
        "GMAIL_OAUTH_REFRESH_TOKEN": "your-value",
        "GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY": "your-value"
      }
    }
  }
}
```

Project file; use ~/.cursor/mcp.json to enable it in every project.

### VS Code (.vscode/mcp.json)

```json
{
  "inputs": [
    {
      "type": "promptString",
      "id": "gmail_oauth_client_id",
      "description": "GMAIL_OAUTH_CLIENT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gmail_oauth_client_secret",
      "description": "GMAIL_OAUTH_CLIENT_SECRET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gmail_oauth_refresh_token",
      "description": "GMAIL_OAUTH_REFRESH_TOKEN",
      "password": true
    },
    {
      "type": "promptString",
      "id": "gmail_service_account_private_key",
      "description": "GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY",
      "password": true
    }
  ],
  "servers": {
    "pulsemcp-gmail": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "gmail-workspace-mcp-server"
      ],
      "env": {
        "GMAIL_OAUTH_CLIENT_ID": "${input:gmail_oauth_client_id}",
        "GMAIL_OAUTH_CLIENT_SECRET": "${input:gmail_oauth_client_secret}",
        "GMAIL_OAUTH_REFRESH_TOKEN": "${input:gmail_oauth_refresh_token}",
        "GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY": "${input:gmail_service_account_private_key}"
      }
    }
  }
}
```

Config formats checked against the official docs on 2026-10-07.

## Environment variables

- `GMAIL_OAUTH_CLIENT_ID` (secret): OAuth2 client ID from Google Cloud Console (for personal Gmail accounts).
- `GMAIL_OAUTH_CLIENT_SECRET` (secret): OAuth2 client secret from Google Cloud Console.
- `GMAIL_OAUTH_REFRESH_TOKEN` (secret): Refresh token from the OAuth2 setup script.
- `GMAIL_SERVICE_ACCOUNT_CLIENT_EMAIL`: Service account email address (for Google Workspace).
- `GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY` (secret): Service account private key in PEM format (for Google Workspace).
- `GMAIL_IMPERSONATE_EMAIL`: Email address to impersonate (required for service account mode).
- `GMAIL_ENABLED_TOOLGROUPS`: Comma-separated list of tool groups to enable (readonly, readwrite, readwrite_external).

## Tools

- `list_email_conversations`: List email conversations from Gmail with optional filtering.
- `count`: Number of emails to return (default: 10, max: 100)
- `labels`: Comma-separated label IDs to filter by (default: "INBOX")
- `sort_by`: Sort order - "recent" (newest first) or "oldest" (default: recent)
- `after`: Only return emails after this datetime, exclusive (ISO 8601 UTC, e.g., "2024-01-15T14:30:00Z")
- `before`: Only return emails before this datetime, exclusive (ISO 8601 UTC, e.g., "2024-01-15T14:30:00Z")
- `get_email_conversation`: Retrieve the full content of a specific email by its ID.
- `email_id`: The unique identifier of the email
- `search_email_conversations`: Search emails using Gmail's powerful query syntax.
- `query`: Gmail search query (e.g., "from:user@example.com", "is:unread", "subject:meeting")
- `change_email_conversation`: Modify email labels and status (read/unread, starred, archived).
- `status`: "read", "unread", or "archived"
- `is_starred`: Star or unstar the email
- `remove_labels`: Comma-separated labels to remove
- `list_draft_emails`: List draft emails from Gmail with optional thread filtering.
- `thread_id`: Filter drafts by conversation thread ID
- `upsert_draft_email`: Create, update, or delete a draft email. Optionally as a reply to an existing conversation.
- `draft_id`: ID of an existing draft to update or delete (omit to create a new draft)
- `delete`: Set to true to delete the draft specified by draftid. All other parameters are ignored when deleting
- `subject`: Email subject
- `plaintext_body`: Plain text body content (at least one of plaintextbody or htmlbody required for create/update)
- `html_body`: HTML body content for rich text formatting (at least one of plaintextbody or htmlbody required for create/update)
- `reply_to_email_id`: Email ID to reply to (sets References/In-Reply-To headers)
- `send_email`: Send an email directly or from an existing draft.
- `from_draft_id`: Send an existing draft by ID

## Similar MCP servers

- [Strata](https://appsgit.com/mcp-servers/strata): MCP server for progressive tool usage at any scale (see https://klavis.ai). (5,807 stars, Apache-2.0, official)
- [Vexa](https://appsgit.com/mcp-servers/vexa): Meeting bot and transcripts for Google Meet, Teams and Zoom. (2,856 stars, Apache-2.0, official, needs API key)
- [MCP Server for WinDbg Crash Analysis](https://appsgit.com/mcp-servers/mcp-server-for-windbg-crash-analysis): A Model Context Protocol server for Windows crash dump analysis using WinDbg/CDB. (1,607 stars, MIT)
- [Rocketmq Rust](https://appsgit.com/mcp-servers/rocketmq-rust): 🚀 Apache RocketMQ built in Rust 🦀 — faster, safer, and more memory-efficient. (1,524 stars, Apache-2.0)
- [Wassette](https://appsgit.com/mcp-servers/wassette): Wassette: A security-oriented runtime that runs WebAssembly Components via MCP. (957 stars, MIT, official)
- [Line Bot MCP Server](https://appsgit.com/mcp-servers/line-bot-mcp-server): MCP server that integrates the LINE Messaging API to connect an AI Agent to the LINE Official Account. (783 stars, Apache-2.0, official, needs API key)

---

Canonical page: https://appsgit.com/mcp-servers/pulsemcp-gmail
Source: appsgit (https://appsgit.com), the app store for github. Data from the GitHub API, refreshed nightly.
Machine access: JSON API https://appsgit.com/api/v1/apps (OpenAPI: https://appsgit.com/openapi.json), MCP server https://mcp.appsgit.com/mcp, full index https://appsgit.com/llms-full.txt.
