Skip to content
appsgit

Pulsemcp Gmail

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.

github.com/pulsemcp/mcp-servers (opens in a new tab)

Install Pulsemcp Gmail

Generated from the server's MCP registry entry. Replace your-value with your own values.

Claude Desktop

claude_desktop_config.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

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
{
  "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
{
  "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 Oct 7, 2026: modelcontextprotocol.io (opens in a new tab), code.claude.com (opens in a new tab), cursor.com (opens in a new tab), code.visualstudio.com (opens in a new tab).

Environment variables

Variables the server reads at startup.

NameRequiredDescription
GMAIL_OAUTH_CLIENT_IDsecretNoOAuth2 client ID from Google Cloud Console (for personal Gmail accounts).
GMAIL_OAUTH_CLIENT_SECRETsecretNoOAuth2 client secret from Google Cloud Console.
GMAIL_OAUTH_REFRESH_TOKENsecretNoRefresh token from the OAuth2 setup script.
GMAIL_SERVICE_ACCOUNT_CLIENT_EMAILNoService account email address (for Google Workspace).
GMAIL_SERVICE_ACCOUNT_PRIVATE_KEYsecretNoService account private key in PEM format (for Google Workspace).
GMAIL_IMPERSONATE_EMAILNoEmail address to impersonate (required for service account mode).
GMAIL_ENABLED_TOOLGROUPSNoComma-separated list of tool groups to enable (readonly, readwrite, readwrite_external).

Tools (25)

Parsed from the Tools section of the README; check the repository for the current list.

  • 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

About Pulsemcp Gmail

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).

FAQ

Pulsemcp Gmail FAQ

Still curious? Email info@appsgit.com.

What is Pulsemcp Gmail?

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. The source code is at github.com/pulsemcp/mcp-servers.

How do I install the Pulsemcp Gmail MCP server?

Add the command npx -y gmail-workspace-mcp-server to your MCP client: put it in claude_desktop_config.json for Claude Desktop, run claude mcp add for Claude Code, or add it to .cursor/mcp.json (Cursor) or .vscode/mcp.json (VS Code). The snippets on this page are ready to paste.

Is Pulsemcp Gmail free?

The server is open source under the MIT license, so running it is free. It needs credentials (GMAIL_OAUTH_CLIENT_ID, GMAIL_OAUTH_CLIENT_SECRET, GMAIL_OAUTH_REFRESH_TOKEN and GMAIL_SERVICE_ACCOUNT_PRIVATE_KEY) for the service it connects to, which may require a paid account.

Is Pulsemcp Gmail actively maintained?

The most recent commit was on Aug 30, 2026. The latest release is monorepo-latest-placeholder@0.0.0, published Jul 3, 2025. appsgit only lists MCP servers with a commit in the last six months and re-checks every server daily.