Real-time trading intelligence from Reddit, RSS, and social media. AI-powered options signals, sentiment analysis, unusual activity detection, and sports betting intelligence.
ROT provides 7 well-named tools with clear, domain-specific descriptions and documented input schemas. Naming follows verb_noun convention (get_*, search_*) consistently. Descriptions are between 80-180 characters and explain what, when, and why. Input schemas declare types and defaults for all parameters. However, output schemas are not documented in the source, descriptions mention what's returned but the actual response structure (fields, types, pagination) is not formally specified. Parameters largely lack constraints (no enums for 'stance' despite describing a closed set; 'hours' lacks explicit min/max despite mentioning 1-168). Error handling is completely absent from the tool definitions, no guidance on what happens if a ticker is invalid, if the API times out, or how to recover. The server implements a thin HTTP wrapper around a backend API but does not validate inputs, sanitize, or provide error context to the LLM. All tools are READ_ONLY, reducing risk, but the absence of pagination documentation and output schemas significantly hampers LLM ability to chain tools and plan multi-step workflows.
Get a high-level market overview of the last 30 days. Returns total signal count, tradeable signal count, average confidence, win rate, number of winners/losers, and signal distribution (bullish vs bearish). No parameters needed.
Get sentiment breakdown for a specific stock ticker. Returns the bull/bear/mixed signal ratio, net sentiment score (-1.0 to +1.0), total signal count, and average confidence. Useful for gauging overall market mood on a stock.
Get latest trading signals with AI-generated analysis. Each signal includes the ticker, bullish/bearish stance, confidence percentage, event type, options strategy recommendation, source subreddit, and timestamp.
Get latest sports betting intelligence with line mover scores. Returns news items with team extraction, injury/trade/lineup classification, urgency levels, and 0-100 line mover scores indicating likelihood of spread or total movement.
Get top trending stock tickers from the last N hours. Returns tickers ranked by signal volume with signal counts and average confidence scores. Use this to see what the market is buzzing about right now.
No output schemas documented. Tool descriptions mention what is returned ('signal includes ticker, stance, confidence, event type...') but the formal response structure is not specified. LLMs cannot plan downstream operations or validate results.
Parameter constraints are missing. 'stance' parameter accepts 'bullish', 'bearish', 'mixed', 'unknown', should be declared as enum constraint, not free-form string in description. 'hours' accepts 1-168 and 'limit' accepts 1-100, no minimum/maximum constraints in schema.
No error handling or recovery guidance. If a ticker is invalid, the API times out, or the backend is down, the tool returns nothing or a raw HTTP error. No error messages telling the LLM what to do next or whether to retry.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | B | 71 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 64 | - | v1 |
Get tickers with unusual options activity. Detects IV spikes, volume surges, open interest anomalies, and put/call skew shifts. High scores indicate potentially significant institutional positioning or upcoming catalysts.
Search across all trading signals by keyword. Matches against ticker symbols, post titles, and event types. Use this to find signals about specific topics like "FDA approval", "earnings beat", or a company name.
Pagination not documented. 'limit' parameter is present on multiple tools but no mention of offset, next_cursor, total_count, or how to retrieve subsequent pages. Large result sets could exhaust context or be silently truncated.
No input validation in tool implementation. The async _get() helper passes parameters directly to the backend API without checking ranges, enums, or format. Invalid 'hours=-5' or 'limit=50000' would be sent upstream rather than rejected with guidance.