Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion third_party/gmail/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "gmail",
"displayName": "Gmail",
"version": "1.0.0",
"version": "1.0.1",
"minClientVersions": {
"cursor": "3.13.0"
},
Expand Down
6 changes: 6 additions & 0 deletions third_party/gmail/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

All notable changes to this plugin will be documented here.

## 1.0.1 — filter tools OAuth note

- Documented that `create_filter` / `list_filters` (and related filter tools) need `https://www.googleapis.com/auth/gmail.settings.basic`.
- This plugin still does not declare OAuth scopes: Google Workspace sign-in uses Cursor's first-party client against `https://gmailmcp.googleapis.com/mcp/v1`.
- After that scope is added to the connector OAuth client, existing installs must disconnect Gmail and sign in again.

## 1.0.0 — initial release

- Logo: official Gmail 2026 product icon from Google productlogos, on a padded white tile.
Expand Down
14 changes: 14 additions & 0 deletions third_party/gmail/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,20 @@ Or run `/add-plugin gmail` in chat.

Auth is OAuth 2.0 against Google. Cursor prompts for Google sign-in when the plugin connects.

This plugin does **not** declare OAuth scopes or a Google client ID. Unlike the X plugin, Google Workspace connectors use Cursor's first-party Google OAuth client against the hosted MCP. Scopes are not configured in this repository.

### Filter tools

`create_filter`, `list_filters`, `update_filter`, and `delete_filter` require:

`https://www.googleapis.com/auth/gmail.settings.basic`

That is a different grant from `gmail.modify` (labels/messages) and from “See (but not change) your email settings” (`gmail.readonly`). Google's hosted MCP already advertises `gmail.settings.basic` in its protected-resource metadata, but the connector OAuth client must request it or filter tools return **403 after trying upscoping**.

After that scope is added to Cursor's Google OAuth client / consent screen, **existing users must disconnect Gmail and sign in again** so Google can re-prompt. Re-auth without a new scope does nothing.

Until then, create filters in Gmail Settings → Filters and Blocked Addresses.

## Docs

- Google MCP setup: https://developers.google.com/workspace/gmail/api/guides/configure-mcp-server
Expand Down