Actually SEND an email (not draft). Use when Priscila asks to email someone or when a skill/workflow needs real email delivery. Do not use for drafts — use Gmail MCP create_draft directly.
mcp__claude_ai_Gmail__gmail_create_draft directly (needs ToolSearch load first)Gmail MCP has create_draft only. No send tool exists. To actually deliver: Route B or Route C.
ToolSearch("select:mcp__claude_ai_Gmail__gmail_create_draft")mcp__claude_ai_Gmail__gmail_create_draft with {to, subject, body}~/bin/gh workflow run send_email.yml \
--repo priihigashi/oak-park-ai-hub \
-f to="[email protected]" \
-f subject="Subject here" \
-f body="Body here"
PRI_OP_GMAIL_APP_PASSWORD secret (already set)4am_agent.ymlpriihigashi/oak-park-ai-hub/.github/workflows/send_email.ymlimport smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
msg = MIMEMultipart()
msg['From'] = '[email protected]'
msg['To'] = to
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as s:
s.login('[email protected]', APP_PASSWORD)
s.send_message(msg)
PRI_OP_GMAIL_APP_PASSWORD (GitHub secret). Locally in ~/ClaudeWorkspace/.env if set.~/.claude/scripts/eod_checker.py (uses Gmail API build route, same pattern)~/ClaudeWorkspace/Credentials/mcfolling_token.jsonMCFOLLING_TOKENgmail.send scope — use Gmail API directly for this inboxAfter send, report: ✅ Email sent via <route> to <recipient> — only after verifying workflow succeeded / SMTP returned 250.