Two tools with clear names and reasonable schemas, but descriptions lack depth and parameter documentation is incomplete. browser_search has a solid schema with min/max constraints. browser_visit supports flexible input (single URL or array) but goal parameter lacks constraint guidance. No output schemas documented. Error handling is basic (returns error.message as text). Missing security guidance (no mention of API key injection, timeout handling, rate limits). Naming is good (verb_noun pattern), but descriptions don't answer WHEN to use or WHAT prerequisites exist.
Use Google Programmable Search to retrieve the top-k web results for a query.
Fetch web pages and return AI-powered summaries focused on a user-defined goal. Supports multiple URLs with concurrent processing.
No output schemas documented. LLMs cannot plan downstream operations or extract required fields without knowing the response structure.
browser_search description is only 108 chars and lacks WHEN guidance. Should explain when to call this vs browser_visit, and what the output contains.
browser_visit 'goal' parameter has no constraints or format guidance. Should clarify: is this free-form text? Are there keywords LLMs should use? What if the goal is ambiguous?
Error handling returns plain error.message in text field. No guidance on retry, categorization, or next steps. E.g., 'Invalid query' vs 'API timeout' should suggest different actions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 7 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
No mention of API key/credential handling. Code references SERPER_API_KEY, GOOGLE_API_KEY, GOOGLE_CSE_ID but tool description does not explain prerequisites or failure modes if credentials are missing.
browser_visit maxItems constraint on URL array (5) is present but not documented in description. LLMs won't know why a 6th URL fails.
No pagination support documented for browser_search results. If agent needs more than 10 results, there is no way to get them. Description should clarify max=10 limit.