Retrieve historical candles from the tradingview_candle_data table. Use get_candles to pull OHLCV rows for a given symbol/time frame. Use get_volume_footprint to retrieve POC/VAH/VAL/volume delta, levels, totals, and diffs from tradingview_volume_footprint. Use get_cvd to retrieve CVD candles from tradingview_candle_cvd. Use get_ema to retrieve EMA values from tradingview_ema. Use get_current_date to retrieve the server's current date (YYYY-MM-DD). Use compare_dates to compare a requested date to the current date and receive whether it is past, today, or future. Timestamps are returned as ISO-8601 strings and the data is sorted chronologically.
The server defines 6 tools with complete input schemas and descriptions. All tools follow verb_noun naming conventions (get_*, compare_*). Descriptions are present and contextual. However, several critical issues reduce quality: (1) Output schemas are declared via TypedDict but not documented in tool descriptions, forcing LLMs to infer return structure. (2) Error handling is absent, no guidance on what to do if a symbol doesn't exist, timestamps are invalid, or the database is unreachable. (3) Parameter descriptions lack format constraints (e.g., timestamp format is stated as 'YYYY-MM-DD HH:MM:SS' but no validation examples or error cases are mentioned). (4) No pagination metadata in responses, tools return lists with count but no next_cursor or offset for large datasets. (5) The limit parameter (1-1000) is described but not validated in visible code. (6) Tool composition is reasonable but utility helpers (get_current_date, compare_dates) feel tangential to the core trading data retrieval mission.
Compare the requested date to the provided current date.
Fetch OHLCV candles for the given symbol/resolution.
Return today's date in ISO format.
Fetch cumulative volume delta (CVD) candles for the given symbol/resolution.
Fetch EMA values for the given symbol/resolution.
Fetch volume footprint data for the given symbol/resolution.
Output schemas not documented in tool descriptions. Return types (CandleResponse, VolumeFootprintResponse, etc.) are defined as TypedDict but LLMs cannot see these contracts. Agents must infer structure from first call result.
No error handling guidance. Tools return no documented error responses or recovery steps. If symbol='INVALID' or start_timestamp is malformed, the agent receives a database error with no hint on how to self-correct or what to try next.
Parameter format constraints stated in prose but not enforced. Timestamp parameters accept 'YYYY-MM-DD HH:MM:SS' but time_frame normalizes '30' to '30m', this magic behavior is not documented and could confuse agents about valid inputs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
No pagination metadata in responses. Tools return 'count' but no next_cursor, has_more, or offset for large datasets. Agents cannot iterate safely through thousands of candles without risk of context explosion.
Utility tools (get_current_date, compare_dates) distract from primary mission. get_current_date is a trivial server call; compare_dates duplicates date logic the agent could do in-context. These should be removed or moved to a utility/helper namespace.