Model Context Protocol server for Gmail management and Theirstack job search integration
28 tools with significant quality gaps. Most tools have basic descriptions (10-50 chars) but lack depth on WHEN to use them or prerequisites. Parameter descriptions are minimal, many just restate the parameter name. No output schemas documented anywhere. Error handling is absent; no guidance on retryability, user-fixable vs fatal errors, or recovery paths. Tool naming is generally acceptable (verb_noun pattern) but lacks consistency in parameter naming conventions. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite 6 DESTRUCTIVE and 8 WRITE tools. Composition is reasonable, tools are single-purpose, but chaining is not optimized (e.g., search-jobs returns job_id but get-job-details expects job_id; no intermediate IDs returned for multi-step flows).
Apply a label to an email
Archive an email
Batch archive emails
Creates a draft email without sending it
Create a new email filter
Create a new folder
Create a new label
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., list-drafts, list-labels, search-emails return unspecified structures.
Descriptions are too brief (10-40 chars) and lack context on WHEN to use each tool or prerequisites. E.g., 'List all labels' does not explain when to call it vs apply-label or search-by-label.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite 6 DESTRUCTIVE tools (trash-email, delete-label, delete-filter) and 8 WRITE tools. LLMs cannot distinguish safe from risky operations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Delete a filter
Delete a label
Get details of a specific filter
Get detailed information about a specific job listing
Retrieves unread messages from mailbox. Returns list of message IDs in key 'id'.
List archived emails
List draft emails
List all email filters
List all folders
List all labels
Move an email to a folder
Opens email in browser given ID.
Read email content
Remove a label from an email
Rename a label
Restore an email to inbox
Search for emails with a specific label
Search for emails using Gmail's search syntax
Search for AI/ML jobs with specific criteria
Creates and sends an email message
Trash email
Parameter descriptions are minimal and often just restate the parameter name. E.g., 'label_id' param in apply-label has description 'The ID of the label to apply', no guidance on how to obtain it or format.
No error handling guidance. Tools do not document retryability, user-fixable errors, or recovery paths. E.g., send-email does not explain what happens if recipient_id is invalid or if the email is too large.