Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FINVIZ_TIMEOUTNoHTTP timeout in seconds for finviz.com requests.25
FINVIZ_CACHE_TTLNoScraped-page cache lifetime in seconds.30
FINVIZ_CHART_DIRNoDirectory where chart PNG files are written.~/.marketdata-mcp/charts
MARKETAUX_API_TOKENNoAPI token that enables news and sentiment data from the TradingView leg.
MARKETDATA_HEALTH_TTLNoSeconds a cached health verdict is reused.60
MARKETDATA_HEALTH_STATENoPath to the health baseline state file.~/.marketdata-mcp/health_state.json
MARKETDATA_HEALTH_ENABLEDNoTurn the upstream drift monitor on or off.true
MARKETDATA_HEALTH_INTERVALNoSeconds between background health probe rounds.300
TRADINGVIEW_MCP_MIN_INTERVAL_SNoMinimum spacing in seconds between TradingView scanner requests.0.25

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
stock_quoteA

Dual-sourced quote and fundamentals for one US ticker.

Asks TradingView (scanner + Yahoo quote engine) and Finviz in parallel for price, change, previous close, 52-week range, P/E, RSI and volume, compares them, and returns the merged result. Finviz's deeper fundamentals — the 84-field snapshot, company profile, peers and after-hours print — ride along, each labelled with the provider that supplied it.

Args: symbol: Ticker as written for either source (AAPL, BRK.B, BRK-B).

Returns: Envelope whose data_provider is BOTH when both providers answered and the compared fields agree, TRADINGVIEW/FINVIZ when only one answered (the notice then states the data is not cross-verified), or NONE when both failed.

stock_pricesA

Dual-sourced prices for several tickers at once.

Each ticker is looked up on both TradingView's scanner and Finviz's screener; the per-row data_provider says whether that particular ticker was confirmed by both, by one, or by neither.

Args: tickers: Comma-separated symbols, e.g. "AAPL,MSFT,NVDA".

Returns: Envelope whose data is a list of rows, each with symbol, price, change_percent and its own data_provider.

stock_screenerA

Run the US stock screener on both providers and cross-check the rows.

TradingView ranks the entire market server-side (sort_by ∈ market_cap, dividend_yield, change, price); Finviz can be narrowed with its own filter language (finviz_filters, e.g. cap_smallover,sec_technology or t=AAPL,MSFT). Tickers that both providers return are compared on change percentage.

Args: country: TradingView market (america, turkey, …). sort_by: TradingView sort key. limit: Rows to request from each side (≤200 on Finviz). finviz_filters: Optional Finviz filter expression.

Returns: Envelope with rows (TradingView ranking) and a per-row finviz_match showing whether Finviz agreed.

market_indicesA

Dual-sourced level and day change for the major US indices.

Covers S&P 500, Dow, Nasdaq Composite, Russell 2000 and VIX. Finviz and TradingView/Yahoo use different tickers for the same index; they are mapped to one canonical name before comparison.

Returns: Envelope whose data.indices is keyed by canonical index (SPX, DJI, COMP, RUT, VIX), each value carrying level, change_percent and its own data_provider.

stock_newsA

Dual-sourced headlines for one ticker.

Finviz supplies headlines with the price reaction around each item (the day-of move and, when the story broke after the close, the next session's move). TradingView's side is the provider's licensed news feed. Headline titles are matched across both to report overlap.

Args: symbol: Ticker. limit: Maximum headlines per provider. include_reactions: Ask Finviz for price-reaction columns.

Returns: Envelope with data.items (Finviz ordering, which carries reactions) and data.overlap describing how many TradingView headlines were also present on Finviz.

stock_options_chainA

Dual-sourced options chain for one expiry.

Finviz and the TradingView provider's Yahoo options endpoint are both queried. Contracts are matched by strike and their volume/open-interest compared, so an agent can see whether the two sources agree on open positioning.

Args: symbol: Underlying ticker. expiry: YYYY-MM-DD; None uses each provider's nearest expiry.

Returns: Envelope with data.calls/data.puts (Finviz, which carries full greeks), the TradingView chain, and data.overlap.

stock_earningsA

Dual-sourced earnings calendar and history for one ticker.

Finviz owns the detailed tables (reported quarters, estimate revisions, fundamental series, post-earnings reactions); TradingView's scanner confirms the next/last earnings timestamp. The two dates are compared and reported.

Args: symbol: Ticker.

Returns: Envelope with data.next_earnings_date, the Finviz tables and a date_comparison block.

stock_extended_hoursA

Dual-sourced pre-/post-market price for a US stock.

Finviz exposes the after-hours print on the quote page; the TradingView provider derives pre/regular/post prices from 1-minute Yahoo candles. The after-hours price and change are compared.

Args: symbol: Ticker.

Returns: Envelope with data carrying pre_market, regular, post_market and the Finviz after-hours block.

technical_analysisB

Technical analysis with the key readings cross-checked against Finviz.

TradingView computes the full indicator stack (RSI, MACD, EMAs, Bollinger, ATR, ADX, structure, trade setup). Finviz's snapshot independently provides price, RSI(14), ATR(14) and the 52-week range, which are compared here.

Args: symbol: Ticker. exchange: TradingView exchange prefix (NASDAQ, NYSE, BIST, …). timeframe: 5m, 15m, 1h, 4h, 1D, 1W, 1M.

Returns: Envelope whose data.analysis is the TradingView analysis and data.cross_check holds the Finviz comparison.

stock_filingsA

SEC filing history for a ticker (Finviz-only, single-source).

TradingView has no filing feed, so this capability cannot be cross-verified. The response is labelled FINVIZ and the notice says so.

Args: symbol: Ticker. page: 1-based page. page_size: Rows per page (1-100). forms: Optional SEC form filter, e.g. "10-K,10-Q".

Returns: Envelope with the filing rows plus has_more.

stock_ownershipA

Insider trades, institutional holders and short interest (Finviz-only).

Combines three Finviz datasets that no other provider here offers: Form-4 insider transactions with monthly buy/sell aggregates, institutional positions, and FINRA short-interest history.

Args: symbol: Ticker. limit: Max rows per table.

Returns: Envelope labelled FINVIZ with insider, institutional and short_interest blocks (whichever Finviz could serve).

stock_peersB

Finviz peer group for a ticker (Finviz-only, single-source).

Args: symbol: Ticker. limit: Maximum peers.

Returns: Envelope labelled FINVIZ with peers.

stock_why_movingB

Finviz's own explainer for why a ticker moved (Finviz-only).

Args: symbol: Ticker.

Returns: Envelope labelled FINVIZ with headline, summary, sentiment and catalyst flag.

stock_chartA

Rendered PNG candlestick chart for a ticker (Finviz-only).

TradingView's provider computes charts as text analysis, not images, so a PNG is Finviz-only and labelled as such.

Args: symbol: Ticker. period: d daily, w weekly, m monthly. chart_type: c candle, l line, h heikin-ashi. scale: l linear, log logarithmic. width: Pixel width. height: Pixel height.

Returns: Envelope labelled FINVIZ with the saved PNG path and dimensions.

stock_dilutionB

Dilution-risk model: share count, float and cash runway (Finviz-only).

Args: symbol: Ticker.

Returns: Envelope labelled FINVIZ; model_available says whether Finviz flagged the company as dilution-prone.

stock_screener_filtersB

Finviz's full screener filter catalogue (Finviz-only).

Returns: Envelope labelled FINVIZ with the machine-readable filter list.

crypto_top_moversA

Top crypto gainers or losers on an exchange (TradingView-only).

Args: movement: gainers or losers. exchange: TradingView venue (KUCOIN, BINANCE, BYBIT, …). timeframe: 5m, 15m, 1h, 4h, 1D, 1W, 1M. limit: Rows to return.

Returns: Envelope labelled TRADINGVIEW with the ranked rows.

crypto_bollinger_scanA

Bollinger-band squeeze candidates (TradingView-only).

Args: exchange: TradingView venue. timeframe: TradingView interval. bbw_threshold: Maximum band-width to qualify as a squeeze. limit: Rows to return.

Returns: Envelope labelled TRADINGVIEW.

crypto_volume_breakoutC

Volume + price breakout scanner (TradingView-only).

Args: exchange: TradingView venue. timeframe: TradingView interval. volume_multiplier: Minimum relative volume. price_change_min: Minimum absolute % change. limit: Rows to return.

Returns: Envelope labelled TRADINGVIEW.

crypto_multi_timeframeB

Multi-timeframe technical read for a crypto symbol (TradingView-only).

Args: symbol: Coin symbol (BTC, ETH). exchange: TradingView venue.

Returns: Envelope labelled TRADINGVIEW with per-timeframe analysis.

crypto_multi_agentC

Multi-agent bull/bear debate over a crypto symbol (TradingView-only).

Args: symbol: Coin symbol. exchange: TradingView venue. timeframe: TradingView interval.

Returns: Envelope labelled TRADINGVIEW.

futures_market_overviewB

Futures contracts ranked by volume (TradingView-only).

Args: category: all, equity_index, energy, metals, agriculture, rates, forex or crypto_futures. exchanges: us or global. limit: Rows to return.

Returns: Envelope labelled TRADINGVIEW.

futures_top_moversB

Futures gainers/losers by percent change (TradingView-only).

Args: movement: gainers or losers. exchanges: us or global. limit: Rows to return.

Returns: Envelope labelled TRADINGVIEW.

futures_watchlistC

Curated futures watchlist with levels (TradingView-only).

Returns: Envelope labelled TRADINGVIEW.

stock_backtestA

Backtest a strategy on a symbol (TradingView-only, single-source).

Finviz has no OHLCV history endpoint, so this cannot be cross-verified. The response is labelled TRADINGVIEW and the notice says so.

Args: symbol: Ticker or coin. strategy: One of rsi, bollinger, macd, ema_cross, supertrend, donchian, rsi_pullback, keltner_breakout, triple_ema. period: 6mo, 1y, 2y, 5y, … initial_capital: Starting cash. interval: 1d or 1h. include_trade_log: Include the per-trade log. include_equity_curve: Include the equity curve.

Returns: Envelope labelled TRADINGVIEW with performance metrics.

stock_backtest_compareB

Compare every strategy on one symbol (TradingView-only).

Args: symbol: Ticker. period: Lookback period. initial_capital: Starting cash.

Returns: Envelope labelled TRADINGVIEW with the strategy leaderboard.

market_snapshotA

Global FX, crypto, index and ETF snapshot (TradingView-only).

Finviz covers only the four US indices, so the broad snapshot is single-source. Use market_indices for a cross-verified index read.

Returns: Envelope labelled TRADINGVIEW grouped by asset class.

bitcoin_market_pulseC

Bitcoin market health: trend, dominance proxies and volatility.

Returns: Envelope labelled TRADINGVIEW.

market_sentimentA

News-based sentiment for a symbol, with no API key required.

Prefers the licensed Marketaux entity sentiment when MARKETAUX_API_TOKEN is set. Without a token it scores Finviz headlines locally (VADER with a financial lexicon) — deterministic, offline and free. Either way the payload names the backend in provider/scoring and never fabricates a score when there is no material to score.

Args: symbol: Ticker. category: News category (used by the Marketaux path only). limit: Headlines to analyse.

Returns: Envelope labelled TRADINGVIEW whose data carries sentiment_score, sentiment_label, the bullish/bearish/neutral counts and the strongest headlines.

egx_market_overviewC

Egyptian Exchange overview (TradingView-only).

Returns: Envelope labelled TRADINGVIEW.

combined_analysisA

Technical analysis, news and sentiment in one call, cross-checked on price.

Runs the TradingView technical read plus news sentiment, then pulls Finviz's latest close to confirm the price the analysis was built on. This is the one composite that can legitimately return BOTH: the price leg is dual-sourced, while the analysis and sentiment legs remain single-source and are labelled per field.

Sentiment needs no API key: Marketaux is used when MARKETAUX_API_TOKEN is set, otherwise Finviz headlines are scored locally. The data.news leg stays Marketaux-only, so it is empty (and says why) without a token.

Args: symbol: Ticker. exchange: TradingView exchange prefix. timeframe: TradingView interval.

Returns: Envelope with data.analysis, data.sentiment, data.news and data.price_cross_check.

tapebasis_healthA

Probe both upstreams and report whether either provider's API drifted.

Every other tool reads the cached verdict from this monitor and adds a warning when a provider's upstream schema has changed or is down. Call this with refresh=True to force an immediate re-probe (otherwise the cached result is reused for TAPEBASIS_HEALTH_TTL seconds).

Args: refresh: Force fresh probes instead of using the cached verdict.

Returns: Envelope whose data carries providers (OK/DRIFT/ DOWN/UNKNOWN per provider), degraded, issues and the per-probe baseline comparison.

tapebasis_tool_mapA

List every tool, which providers back it, and how it is cross-checked.

Useful for an agent that needs to know whether a given capability is dual-sourced (BOTH), single-sourced (TRADINGVIEW/FINVIZ) or analysis generated by one provider only. This tool performs no upstream requests.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
providers_resourceExplain what each data_provider value means for a caller.
health_resourceCached provider health verdict (no upstream call).

TDQS

B3.3/5.0

Scored across 33 tools

Disambiguation4/5

Most tools have distinct resource and action scopes, with descriptions carefully distinguishing single- versus multi-ticker queries, providers, and cross-verification. Some ambiguity remains among technical_analysis, combined_analysis, and crypto_multi_timeframe, as well as among stock_news, market_sentiment, and stock_why_moving.

Naming Consistency5/5

All tools use lowercase snake_case and a predictable domain-or-resource-plus-capability convention. Related families such as stock_*, crypto_*, futures_*, market_*, and tapebasis_* are consistently formed without mixed casing or verb styles.

Tool Count2/5

At 33 tools, the surface exceeds the 25-tool threshold for an overlarge tool set, even allowing for the broad market-data domain. Narrow crypto scanners, specialized stock analytics, and composite tools create substantial selection overhead and offer opportunities for consolidation.

Completeness4/5

Coverage is extensive for read-only market data and analysis, spanning quotes, screening, options, news, filings, technical analysis, backtesting, and provider health. The main gaps are general historical OHLCV/candle retrieval and straightforward single-instrument quote workflows for crypto and futures, but these do not undermine the core stock workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues