A Discord bot powered by Strands Agents that answers NBA questions using nba-stats-mcp tools and provides proactive heartbeat features (recaps, previews, game threads, standings).
Five tools with minimal descriptions (10-50 chars) and incomplete schemas. Three tools (current_time, mem0_memory, rss) have empty input schemas {}. Two NBA tools accept only a date parameter with basic type info. No output schemas documented. No error handling guidance. No parameter validation constraints (enums, ranges, patterns). Tool names are reasonable (verb_noun style) but descriptions lack context on WHEN to use each tool, WHAT they return, and dependencies. Hooks file shows good defensive programming (date normalization, dedup, truncation) but this is implementation detail, not schema quality.
Returns the current time
Memory management tool for storing and retrieving conversation context
Find a specific NBA game by date and teams
Get NBA scoreboard for a specific date
Fetches RSS feed content
Three tools have empty input schemas ({}): current_time, mem0_memory, rss. This blocks LLM understanding of what parameters are accepted.
All tool descriptions are under 50 characters and lack context. 'Returns the current time' (27 chars) does not explain WHEN to call it vs other time sources, or what format is returned.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
rss tool accepts 'action' parameter (type string, description 'RSS action (e.g., fetch)') but no enum constraint or valid values listed. LLM will guess at valid actions.
mem0_memory tool has empty input schema and vague description ('Memory management tool for storing and retrieving conversation context'). Unclear what parameters it accepts or how to invoke it. Likely requires internal knowledge not exposed in schema.