Three tools with complete input schemas and reasonable descriptions. All tools follow verb_noun naming (search_gifs, trending_gifs, random_gif). Descriptions are 100-180 chars, within baseline range (p10=34, p90=392). However, output schemas are not documented, LLMs cannot predict response structure. Parameter descriptions are present but lack constraints (e.g., limit 1 - 25 not enforced in schema). No error handling guidance. API key hardcoded in source (critical security issue). Tools are read-only, reducing risk, but composition and chaining support is minimal.
Get a single random GIF from Giphy, optionally filtered by a tag. Returns title, URL, rating, and image URLs.
Search Giphy for GIFs matching a keyword or phrase. Returns GIF title, URL, rating, and image URLs in original and fixed-height sizes.
Get the currently trending GIFs on Giphy. Returns title, URL, rating, and image URLs.
Output schema not documented. LLMs cannot predict response structure (formatGif returns id, title, url, rating, gif_url, fixed_height_url, downsized_url, width, height). Without documented output, agents cannot chain tools or extract fields reliably.
API key hardcoded in source (GlVGYHkr3WSBnllca54iNt0yFbjz7L65). Credentials must never appear in code. Use environment variables or vault injection. This key is now compromised and should be rotated immediately.
No error handling guidance. Errors thrown as generic 'Giphy API error: {status}' or 'Giphy API error: {msg}'. LLMs receive no actionable recovery path (e.g., 'Try a different query' or 'Rate limit exceeded, retry in 60s'). Violates recovery-guide pattern.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Parameter constraints not enforced in schema. 'limit' accepts 1 - 25 per description, but schema has no min/max. LLMs may pass 0, 100, or negative values, causing API errors. Add minValue/maxValue to schema.
No pagination support for search_gifs. If a query returns 1000+ results, only 10 - 25 are returned. No offset/cursor parameter to fetch additional pages. Large result sets risk context window exhaustion.