AI Agent with Google ADK and MCP Server for time-based operations
Three simple time-utility tools with basic descriptions and minimal parameter documentation. All tools have descriptions (10-50 chars, below the 194-char baseline), but lack depth on WHEN to use them or what they return. Input schemas are present but sparse: get_current_time has empty input {}; get_day_name and calculate_days_between_dates have string parameters with format hints but no enum constraints, min/max, or error guidance. No output schemas documented. No error handling guidance (e.g., what if time format is invalid?). Tool names follow verb_noun convention (get_*, calculate_*) but are generic, no distinction from similar time utilities in other servers. No tool annotations (readOnlyHint, idempotentHint). Composition is sound (each tool does one thing), but descriptions are too terse to guide LLM selection effectively.
Calculate the number of days between two dates. Args: date1 (str): The first date in the format "YYYY-MM-DD". date2 (str): The second date in the format "YYYY-MM-DD". Returns: int: The number of days between the two dates.
Get the current time. Returns: str: The current time in the format "YYYY-MM-DD HH:MM:SS".
Get the name of the day for a given time. Args: time (str): The time in the format "YYYY-MM-DD HH:MM:SS". Returns: str: The name of the day.
Descriptions are too brief (10 - 50 chars vs. 194-char baseline). Missing WHEN to use each tool and what happens on error. LLMs cannot reliably select between similar time utilities.
No output schemas documented. LLMs do not know what fields to expect or how to chain results to downstream tools.
Input parameters lack format constraints and error guidance. 'time' parameter accepts 'YYYY-MM-DD HH:MM:SS' but no validation hint or error message if format is wrong.
No tool annotations (readOnlyHint, idempotentHint). All three tools are read-only and idempotent, but LLMs cannot infer this from the schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No error handling guidance. What happens if get_day_name receives '2024-13-45'? LLM has no recovery path.