Claude 2 Mail — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Claude 2 Mail (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Local MCP server for Gmail + Google Calendar. Lets your AI agent read/send email and manage your calendar — runs locally via stdio.
| Tool | What it does |
|---|---|
mail_list | List recent emails (folder, count, unread filter) |
mail_read | Read full email by UID |
mail_search | Search by sender, subject, body, date range |
mail_draft | Draft a reply or new email |
mail_send | Send an approved email |
mail_auto_reply | Auto-reply to whitelisted senders |
calendar_list | List upcoming events |
calendar_create | Create a new event |
calendar_update | Update or delete an event |
There are two separate auth systems:
| System | Used for | How it works |
|---|---|---|
| Gmail App Password | IMAP (read) + SMTP (send) | 16-char password from Google Account settings |
| Google OAuth2 | Calendar API | Browser-based consent flow, saves a token file |
You need both. App Password for email, OAuth2 for calendar.
pip install mcp google-api-python-client google-auth-httplib2 google-auth-oauthlibGmail uses IMAP/SMTP with an App Password — NOT your real Google password.
Steps:
abcd efgh ijkl mnop)Why: Google blocks "less secure apps". App Passwords are per-app tokens that bypass this.
Calendar needs OAuth2. This is a multi-step process — follow in order:
Step A — Create project + enable API:
Step B — Configure OAuth consent screen:
Why Test users: Until your app is published, only test users can authorize it. Without this step, OAuth will fail with "access_blocked".
Step C — Create OAuth credentials:
Why Desktop app: MCP servers run locally. "Desktop app" type doesn't need a redirect URI — it uses localhost callback.
mkdir -p ~/.config/claude-2-mail
cp config/config.template.json ~/.config/claude-2-mail/config.json
cp config/.secrets.template ~/.config/claude-2-mail/.secrets
cp config/credentials.json.template ~/.config/claude-2-mail/credentials.jsonEdit each file:
`~/.config/claude-2-mail/config.json` — your email, display name, settings.
`~/.config/claude-2-mail/.secrets` — your App Password:
export GMAIL_APP_PASSWORD="abcd efgh ijkl mnop"`~/.config/claude-2-mail/credentials.json` — paste the downloaded OAuth JSON.
Lock permissions:
chmod 600 ~/.config/claude-2-mail/config.json
chmod 600 ~/.config/claude-2-mail/.secrets
chmod 600 ~/.config/claude-2-mail/credentials.jsonAdd to ~/.bashrc or ~/.zshrc:
[ -f ~/.config/claude-2-mail/.secrets ] && source ~/.config/claude-2-mail/.secretsReload: source ~/.bashrc
Claude Code (~/.mcp.json):
{
"mcpServers": {
"gmail-calendar": {
"command": "python",
"args": ["/path/to/claude-2-mail/gmail_calendar_mcp.py"],
"env": {
"GMAIL_MAIL_CONFIG": "/home/YOUR_USER/.config/claude-2-mail/config.json"
}
}
}
}First Calendar use opens a browser for OAuth approval. One-time — token saves for future.
| Problem | Fix |
|---|---|
AUTHENTICATIONFAILED (IMAP) | Regenerate App Password. 2FA must be on. |
invalid_client (OAuth) | Check credentials.json is Desktop app type. |
access_blocked (OAuth) | Add your email as Test user in OAuth consent screen. |
Token expired | Delete calendar_token.json, re-auth. |
Config not found | Check GMAIL_MAIL_CONFIG env var path. |
CredentialsWithRegionalAccessBoundary.refresh() missing argument | Update google-auth: pip install --upgrade google-auth |
| Missing pip libs | pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib |
pip install -e ".[dev]"
pytest tests/ -v.secrets (chmod 600), NOT in config.json or shell rcMIT.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.