Two tools with complete Zod schemas and descriptions. Naming follows verb_noun convention (search_articles, search_images). Descriptions are adequate (150-180 chars, within baseline 194 avg). All parameters have type definitions and descriptions. However, output schemas are not documented, LLMs cannot infer response structure. Parameter descriptions lack format constraints (e.g., YYYYMMDDHHMMSS format stated but not validated). No error recovery guidance. Missing tool annotations (readOnlyHint). Moderate gaps prevent higher scores.
Search GDELT's global news database for articles across 65 languages. Supports keyword/phrase searches, Boolean operators (OR, AND), and searches back 3 months. Default returns 50 most recent articles from the past month.
Search GDELT's Visual Knowledge Graph (VGKG) for news images. Can search by visual content (what's depicted), captions/context, or OCR/metadata. Searches back 3 months of global news imagery.
Output schemas not documented. LLMs cannot infer response structure (articles array, image array, metadata fields). Forces agents to guess field names and types.
No error recovery guidance. UserError thrown with generic messages ('Failed to search articles: {error.message}'). LLMs cannot determine if error is retryable, user-fixable, or fatal.
Missing tool annotations. Both tools are read-only but lack readOnlyHint annotation. Agents cannot distinguish safe tools from destructive ones without explicit hints.
Parameter validation rules not enforced. maxRecords accepts 1-250 but no runtime validation. startDateTime/endDateTime format (YYYYMMDDHHMMSS) stated in description but not validated. Invalid inputs pass through to API.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
No pagination support documented. Tools return up to 250 results but no limit enforcement, offset/cursor, or total count in response. Large result sets risk context window exhaustion.