Gmail plugin: create_filter / list_filters fail with 403 — OAuth missing gmail.settings.basic
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 68/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- google-cloud, typescript
- Domaine
- api, authentication
Piste de recherche
Localisez la configuration du client OAuth et du consent-scope du plugin Gmail, puis suivez le point d’entrée d’upscoping utilisé par create_filter et list_filters. Confirmez que le scope settings est demandé et que la nouvelle demande de consentement pour les utilisateurs existants est documentée ; c’est terminé lorsque les outils de filtrage n’échouent plus avec le 403 signalé après l’autorisation.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Summary
The Gmail connector exposes create_filter, list_filters (and related filter tools), but calling them fails with 403 after trying upscoping. Google Account → Linked Apps shows the Cursor/Grok app only has “See (but not change) your email settings”, so filter create/list cannot work. Re-auth does not help: Google never requests a settings-write scope during consent.
Environment
- Product: Grok Bot / Cursor Gmail MCP connector
- Plugin id (from install):
45893410 - MCP server id:
user-Gmail--shark5060-gmail-com - Account: personal Gmail (example:
[email protected]) - Other Gmail tools work:
list_labels,search_threads, label apply, etc.
Steps to reproduce
- Install/connect the Gmail plugin and complete OAuth.
- Confirm mail tools work (e.g.
list_labels,search_threads). - Call
list_filtersorcreate_filter(e.g. criteriafrom: youtube.com, action add a user label + removeINBOX). - Optionally force re-auth (
AuthenticateMcpServerwithforce_reauth) and approve all consent screens again. - Retry
create_filter/list_filters.
Expected
- Filter tools succeed, or
- OAuth consent requests
https://www.googleapis.com/auth/gmail.settings.basicso Linked Apps shows edit/create/change settings & filters, then tools work after re-consent.
Actual
- Tool call error (approx.):
HTTP MCP tool execution failed: … Server returned 403 after trying upscoping - Google Linked Apps for the Cursor app under Gmail includes wording like:
- See (but not change) your email settings
- View your settings (e.g., filters and labels)
- There is no Linked Apps toggle to grant settings write; only delete connection.
- Label create/update and message labeling still work (consistent with
gmail.modify, not settings write).
Why this matters
Without users.settings.filters.*, agents cannot install durable server-side routing (skip Inbox + apply label) and must re-label mail after arrival. The tools being present implies filter management is intended.
API / scope note
Per Gmail API users.settings.filters.create, create requires:
https://www.googleapis.com/auth/gmail.settings.basic
(Gmail scopes: that scope is “See, edit, create, or change your email settings and filters in Gmail.”)
gmail.modify covers labels/messages but not filter settings write — matching the Linked Apps “see but not change” text.
Suggested fix
- Add
gmail.settings.basicto the Gmail plugin OAuth client / consent scope list. - Document that existing users must re-consent after the scope is added.
- Ensure upscoping actually requests that scope (current “403 after trying upscoping” suggests upscope does not obtain write settings).
Workaround
Create filters manually (or via browser automation) in Gmail Settings → Filters and Blocked Addresses until the connector requests the correct scope.
Related (third-party, not Cursor)
Other Gmail MCP projects have discussed the same scope requirement, e.g. needing gmail.settings.basic for filter tools — same underlying Google API constraint.
- Langage dominant
- TypeScript
- Étoiles
- 12.5k
- Forks
- 1.2k
- Merge moyen
- 12 h 32 min
- PR mergées (30 j)
- 115
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de cursor/plugins
-
Poteto Mode Claude CodeOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
create-plugin README documents a /create-plugin command that does not existPeut-être pris @lab1207 l’a pris il y a 17 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
cursor/plugins#475 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
principle-test-behavior-not-implementation: listed matchers do not all pass when imports return undefinedPeut-être pris @Yi-111-a l’a pris il y a 18 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
cursor/plugins#474 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
cursor-sdk auth.md: non-null assertion described as a runtime missing-variable checkPeut-être pris @lab1207 l’a pris il y a 17 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
cursor/plugins#473 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
check-agent-compatibility: SKILL.md description has an unquoted colon, YAML parse failsPeut-être pris @rufushsu9987 l’a pris il y a 31 jours. Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
cursor/plugins#381 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de cursor/plugins
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
radix-ui/primitives#4228 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
SignalK/freeboard-sk#1093 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
[测试] 等待仓库加载后再记录多仓库排序基线Peut-être pris @myot233 l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour