MCP server for Gmail operations including sending emails, retrieving profile, filtering emails, and deleting emails
Critical gaps across all dimensions. Tool descriptions are present but minimal (avg 80 chars, well below 194-char baseline). Parameter descriptions are entirely missing (null values visible in schema). No input validation, error handling guidance, or output schema documentation. The 'add' tool lacks any description. Security concerns: hardcoded credentials in auth.ts (access_token, client_id, client_secret visible in source). No pagination support despite email filtering. Tool composition is reasonable (5 distinct tools), but parameter naming lacks clarity (e.g., 'maxresult' should be 'max_results'; 'id' should be 'email_id'). Schemas use Zod but descriptions are null throughout.
delete emails using their id, id is required here.
used to get profile for [email protected]
filters gmail by search, takes query as string , and maxresult which is optional , it don't assign it return top 5 results.
used to send a email from [email protected] to other user. From is always [email protected]
All parameter descriptions are null. LLMs cannot infer parameter meaning from names alone (e.g., 'from' in send_a_email is redundant per description, 'maxresult' is ambiguous).
Hardcoded credentials in auth.ts: access_token, client_id, client_secret, and expiry_date are visible in source code. Credentials must never appear in code or tool parameters.
No output schema documentation. Tools return text responses without structured field definitions. LLMs cannot plan downstream calls or extract typed data.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
No error handling guidance. Tools return generic success messages ('Email sent!', 'Email Deleted') with no recovery hints. Failures provide no actionable next steps.
Parameter naming inconsistencies: 'maxresult' should be 'max_results' (snake_case); 'id' in email_delete should be 'email_id' (type-suffixed). Ambiguous names cause LLM confusion.