Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Gmail plugin: create_filter / list_filters fail with 403 — OAuth missing gmail.settings.basic

Aberta
#385 5 comentários 1 reação 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@iShark5060 já está trabalhando nisso.

Desde 25/9/2026.

  • #387 de @iShark5060 — fechado sem integrar

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
68/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
google-cloud, typescript
Domínio
api, authentication

Direção de pesquisa

Localize a configuração do cliente OAuth e do consent-scope do plugin do Gmail e, em seguida, rastreie o ponto de entrada de upscoping usado por create_filter e list_filters. Confirme que o scope settings é solicitado e que o novo consentimento de usuários existentes está documentado; considera-se concluído quando as ferramentas de filtro não falharem mais com o 403 relatado após a autorização.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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

  1. Install/connect the Gmail plugin and complete OAuth.
  2. Confirm mail tools work (e.g. list_labels, search_threads).
  3. Call list_filters or create_filter (e.g. criteria from: youtube.com, action add a user label + remove INBOX).
  4. Optionally force re-auth (AuthenticateMcpServer with force_reauth) and approve all consent screens again.
  5. Retry create_filter / list_filters.

Expected

  • Filter tools succeed, or
  • OAuth consent requests https://www.googleapis.com/auth/gmail.settings.basic so 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

  1. Add gmail.settings.basic to the Gmail plugin OAuth client / consent scope list.
  2. Document that existing users must re-consent after the scope is added.
  3. 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.

Linguagem predominante
TypeScript
Estrelas
12.5k
Forks
1.2k
Merge médio
12h 32min
PRs com merge (30d)
115

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de cursor/plugins

Todas as issues de cursor/plugins

Issues semelhantes

Mais issues de TypeScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.