Send, search, and organize Gmail messages, drafts, and labels. Use when asked to compose an email, reply to mail, forward a message, search inbox, manage attachments, or organize Gmail.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
High
Do not use without reviewing
Security
1 high severity finding. You should review these findings carefully before considering using this skill.
The skill handles credentials insecurely by requiring the agent to include secret values verbatim in its generated output. This exposes credentials in the agent’s context and conversation history, creating a risk of data exfiltration.
The skill instructs users to place OAuth client_id and client_secret in a config file and shows a CLI command that accepts --client-secret, which requires handling and potentially outputting secret values verbatim (and exposes them via command-line/config storage).
[REDACTED]
secret · 11 sites
The plugin instructs users to provide OAuth [REDACTED] via command-line argument (--client-secret) and stores it in a plaintext YAML config file, exposing the secret in shell history, process lists, and on disk.
Low
Low-risk findings.
1 low severity finding. Worth noting, but not necessarily harmful.
The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.
The skill's CLI and code (SKILL.md and scripts/gmail.py) explicitly fetch and display Gmail messages and message bodies via the Gmail API (e.g., messages list/get and extract_message_body), which are untrusted, user-generated emails that the agent will read and can materially influence subsequent actions like replying, sending, or labeling.
www.googleapis.com
domain · 5 sites
The plugin fetches Gmail messages and message bodies from the Gmail API at www.googleapis.com, which returns untrusted user-generated email content that the agent reads and can act upon.
scripts/gmail.py
76
GMAIL_SCOPES_READONLY = ["https://www.googleapis.com/auth/gmail.readonly"]
scripts/gmail.py
77
GMAIL_SCOPES_SEND = ["https://www.googleapis.com/auth/gmail.send"]
scripts/gmail.py
78
GMAIL_SCOPES_MODIFY = ["https://www.googleapis.com/auth/gmail.modify"]
scripts/gmail.py
79
GMAIL_SCOPES_LABELS = ["https://www.googleapis.com/auth/gmail.labels"]
scripts/gmail.py
344
return build("gmail", "v1", credentials=creds)
oauth2.googleapis.com
domain · 3 sites
The plugin uses oauth2.googleapis.com for OAuth token exchange during the authentication flow.
scripts/gmail.py
187
"token_uri": "https://oauth2.googleapis.com/token"
scripts/gmail.py
264
flow = InstalledAppFlow.from_client_config(client_config, scopes)
scripts/gmail.py
265
creds = flow.run_local_server(port=0) # Opens browser for consent