FINRA Reg SHO daily short-sale volume data server. Provides access to daily short-sale volume by symbol across Nasdaq TRF (FNSQ) and NYSE TRF (FNYX) from FINRA's public data feeds.
Three well-defined tools with clear, domain-specific descriptions (194 - 250 chars each). All tools have explicit input schemas with typed properties and descriptions. Tool names follow verb_noun pattern (short_volume_*). Parameters include sensible defaults and constraints (days 1 - 30, limit 1 - 100). However, output schemas are not formally documented in the code, only inferred from implementation. Error handling returns soft-fail objects but lacks actionable recovery guidance. No tool annotations (readOnlyHint, etc.) despite all being read-only operations.
FINRA Reg SHO daily short-sale volume for one symbol, combined across the Nasdaq TRF (FNSQ) and NYSE TRF (FNYX). Returns short_volume, short_exempt_volume, total_volume, and short_ratio (short / total). Publishing lag is T+1; omit `date` to use the most recent published file.
FINRA Reg SHO daily short-sale volume time series for one symbol. Returns up to 30 days of records ending at `end_date` (default: most recent published file).
Ranks symbols on a given trading day by short_ratio (short_volume / total_volume), aggregated across both TRFs. Useful for spotting heavily-shorted names; combine with a min_volume filter to exclude thinly-traded micros.
Output schemas not formally documented. Callers must infer response structure from implementation (summarize(), ranked arrays). LLMs cannot plan downstream operations without knowing what fields to expect.
Error responses lack actionable recovery guidance. 'symbol_not_in_file' reason is returned but no suggestion for next steps (e.g., 'Try short_volume_history to find when symbol had data'). Only short_volume_daily hints at alternatives.
No tool annotations despite all three tools being read-only. Adding readOnlyHint=true would signal to agents that these are safe to call speculatively without side-effect concerns.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Parameter 'days' in short_volume_history lacks explicit constraint documentation in description. Constraint '1 - 30' is stated but no guidance on what happens if omitted or invalid values passed.
short_volume_top's 'min_total_volume' parameter defaults to 100,000 but rationale is not explained in description. LLMs may not understand why this filter exists or when to override it.