An AI assistant that manages emails and calendar events using Google APIs, with support for multiple LLM backends (Gemini, Ollama, OpenAI) and both interactive (Gradio) and non-interactive (ADK) interfaces.
Server has 17 tools with basic schemas and descriptions, but significant gaps limit production readiness. Most tools have descriptions (10-150 chars, below the 194-char baseline), and input schemas are present but often lack parameter descriptions. Critical issues: Ask User tool has no actionable description; many parameters lack type constraints (enums, ranges); no output schemas documented; error handling is absent; no security/permission gates; composition issues (list_gmail_tools and list_calendar_tools are discovery-only, not actionable). STDIO transport caps protocol score at 50. Average per-tool score: 52.
Ask the user a question when you need clarification or additional information. Input: question string.
Create a calendar event with ISO8601 start/end times.
Delete a calendar event by event_id.
Find available meeting slots for multiple attendees.
Search Gmail by query, with pagination and optional full body.
Fetch Google Calendar events with optional filters.
Get free/busy blocks for one or more calendars in a time range.
Ask User tool description is vague ('Ask the user a question when you need clarification or additional information. Input: question string.'). Does not explain when to use it, what happens with the response, or how it integrates with the workflow. LLM cannot determine if this is for confirmation, data collection, or error recovery.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., get_emails_tool returns emails but schema does not specify fields (id, subject, from, snippet, etc.), forcing LLM to guess structure.
Many parameters lack type constraints. E.g., send_email_tool 'to' and 'cc' accept strings but no validation for email format; create_event_tool 'recurrence' is array but no documentation of RRULE format; get_emails_tool 'gmail_query' accepts free-form string with no guidance on valid Gmail search syntax.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Get a specific email thread by thread ID.
Get today's date and weekday as JSON string.
List all available Google Calendar MCP tools.
List all calendars accessible to the user.
List all available Gmail MCP tools.
Modify labels on an email or thread.
Quickly add a calendar event using natural language.
Reply to an email thread.
Send an email or create a draft (default) via Gmail.
Update an existing calendar event by event_id.
No error handling or recovery guidance. Tools do not document what happens on failure (e.g., invalid email, calendar conflict, permission denied). LLM receives raw errors with no actionable next steps.
Destructive operations (delete_event_tool) lack confirmation or dry-run support. Agent can permanently delete calendar events without user approval, risking data loss.