A mail server that generates and sends emails using Google's Gemini API and SMTP
Scoring was not performed
No output schema documented. Both tools lack description of what they return. generate_email returns text, send_email returns success/failure status, but this is inferred, not documented. Agents cannot plan downstream calls or extract expected fields.
Credentials exposed as environment variables without server-side secret injection pattern. The code loads API_KEY and PASSWORD via os.environ and .env file, but there is no evidence of secure credential passing to the MCP tool layer. Agents could theoretically log or echo parameter values containing secrets.
send_email has no dry-run, confirmation, or idempotency guarantee. This is a destructive, irreversible operation (sends email via SMTP). No recovery mechanism if an agent accidentally sends duplicate emails or to wrong recipients. Lacks confirm_before_execute pattern.
No error handling or recovery guidance. The code uses bare exception handling (implicit SMTP failures, API errors from Gemini). Agents receive no actionable error messages, no indication of retryability, user-fixable issues, or debugging steps.
Parameter descriptions too brief and lack format guidance. 'The name of the email recipient' (40 chars) and 'The email content/body' (27 chars) are below the 72-char baseline. No indication of required format (valid email format for to_email/my_email), constraints on string length, or allowed character sets.
Email parameters accept raw email addresses without validation. No regex pattern or format constraint documented for my_email, to_email. LLMs can pass invalid email strings ('john@example' instead of 'john@example.com') and the tool fails silently or with a generic SMTP error.
No pagination, batching, or result limiting strategy. While not immediately applicable to these simple tools, there is no documentation of what generate_email returns or how large responses are handled.
Missing tool annotation hints. send_email should declare destructiveHint=true so agents and clients know it has irreversible consequences. generate_email could declare readOnlyHint=true.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 0 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 34 | - | v1 |