Local-first MCP server and loopback chart API for market data analysis and TradingView workflows.
33 tools with explicit schemas and descriptions. Naming is consistent (verb_noun pattern: market_*, chart_*, tradingview_*). Descriptions are present but vary in quality (avg ~120 chars, below the 194-char baseline). Most parameters have type definitions and descriptions, but many lack constraints (enums, ranges, patterns). Output schemas are not documented. Error handling is minimal. Tool annotations present but incomplete (missing idempotentHint on many read-only tools). No pagination support despite tools returning potentially large result sets.
Add a custom data series (line or histogram) to the chart.
Add a technical indicator to the chart.
Add a price level line to the chart.
Add a marker annotation to the chart.
Add a price zone (shaded area) to the chart.
Analyze the currently loaded chart with technical indicators and trend analysis.
Export the current chart bars as CSV.
Export the current chart state as JSON.
Output schemas not documented. Tools return complex objects (bars, indicators, zones, markers) but LLMs cannot see expected response structure. This forces agents to guess field names and types, increasing errors.
Parameter constraints missing. 'timeframe' accepts free-form strings (should be enum: 1, 5, 15, 60, 240, D, W, M). 'interval' in chart_add_indicator lacks bounds. 'period' in chart_add_indicator has no min/max. LLMs will pass invalid values.
No pagination support. market_search, market_screen, market_stock_snapshot return potentially large result sets with no limit, offset, or cursor parameters. Large responses waste tokens and risk context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Get the complete current chart state including all data, indicators, and annotations.
Import OHLCV bars from a CSV file into the local chart.
Return the local TradingView Lightweight Charts viewer URL. The viewer reflects chart changes made by other tools.
Remove a custom series from the chart.
Remove a technical indicator from the chart.
Remove a price level from the chart.
Remove a marker from the chart.
Remove a price zone from the chart.
Load OHLCV bars into the local chart. Accepts inline data or CSV file path.
Set the chart theme (dark or light).
Report configured providers, browser authentication availability, lazy-runtime state, and the currently loaded chart. Use this before choosing a data workflow.
Get OHLCV bars for a symbol from the configured data source or currently loaded local dataset. By default also loads the result into the local chart viewer.
Get one current quote and snapshot fields from the configured data source or loaded local bars.
Get quotes for up to 50 symbols in one call.
Get a multi-timeframe recommendation summary, or detailed indicators when interval is set. Local mode calculates deterministic indicators from loaded bars.
Run a market screener request. Local mode returns the currently loaded symbol.
Search instruments by ticker or company name.
Get normalized symbol snapshots with optional news and server-side filters.
Add a technical indicator to the currently open TradingView chart.
Analyze a TradingView symbol with technical indicators and trend analysis.
Capture a screenshot of a specific time period from TradingView.
Capture a full trading day from TradingView with OHLCV bars and optional technical analysis.
Retrieve historical OHLCV bars from TradingView for a symbol and timeframe.
Open a TradingView chart in the managed browser and optionally apply overlays.
Take a screenshot of the currently open TradingView chart.
Tool annotations incomplete. readOnlyHint and idempotentHint missing on many read-only tools (market_get_*, chart_get_*, chart_export_*, tradingview_screenshot). Agents cannot distinguish safe-to-retry operations from destructive ones.
Error handling absent. No recovery guidance in tool descriptions. If market_get_price fails (invalid symbol, no data), LLM receives no hint about next steps (try market_search, check market_get_capabilities). Agents dead-end on failures.