Skip to main content
Glama
FlawlessByte

quant-research-mcp

by FlawlessByte

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
QUANT_DATA_PROVIDERNoData provider factory name. Default is yfinance. Implement the DataProvider protocol for custom providers.yfinance

Capabilities

Features and capabilities supported by this server

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

Tools

Functions exposed to the LLM to take actions

NameDescription
quant_list_methodsA

List every registered paper-backed trading method.

Args: params (FormatInput): response_format ('markdown'|'json').

Returns: str: methods with key, name, paper citation, paper_url and regime_applicability. JSON returns the full metadata list; markdown is a readable digest. Use this to discover what method_key values are valid for quant_analyze_setup / quant_describe_method.

quant_describe_methodA

Full detail and citation for one registered method.

Args: params (DescribeMethodInput): method_key plus response_format.

Returns: str: the method's name, paper, paper_url, regime_applicability and a prose description of its mechanics. Error string if the key is unknown (call quant_list_methods for valid keys).

quant_screen_universeA

Rank tickers by intraday tradeability (gap, relative volume, ATR%).

Hard-filters names under $5 or under $50M average daily dollar volume, then scores the rest by 2*|gap%| + rel_volume + 0.5*ATR% and returns the top N.

Args: params (ScreenInput): optional tickers list (defaults to the built-in universe), top_n, response_format.

Returns: str: ranked candidates, each with ticker, price, gap_pct, rel_volume, atr_pct, avg_dollar_volume_m and score. JSON returns a list under 'candidates'; markdown is a ranked table.

quant_compute_indicatorsA

Compute EMA9/EMA20, RSI, ATR, VWAP and the Hurst exponent for a ticker.

Daily series drive Hurst and ATR; the latest intraday session drives VWAP, EMAs and 5m RSI.

Args: params (TickerInput): ticker, response_format.

Returns: str: a dict with price, hurst, atr_daily, and intraday ema9/ema20/ rsi_5m/vwap. Error string if no data.

quant_detect_regimeA

Classify a ticker's regime from its daily Hurst exponent.

H >= 0.55 -> TRENDING (momentum edge), H <= 0.45 -> MEAN_REVERTING (fade edge), otherwise RANDOM_WALK (no structural edge).

Args: params (TickerInput): ticker, response_format.

Returns: str: dict with ticker, hurst and regime. Error string if no data.

quant_analyze_setupA

Run a registered method on a ticker to produce a trade setup.

Fetches daily + latest-session intraday data and dispatches to the named method, which returns signal (LONG/SHORT/NO_ENTRY), playbook, regime, and entry/stop/target when actionable.

Args: params (AnalyzeInput): ticker, method_key (default 'hurst_regime_orb'), response_format.

Returns: str: the setup dict (feed it directly to quant_score_decision). Includes signal, playbook, regime, hurst, price, atr_daily, rel_volume, rsi, entry, stop, target, reasons, plus method extras (vwap, or_high, or_low, ema9, ema20). Error string for unknown method or missing data.

quant_score_decisionA

Deterministically score a setup and decide ENTRY / NO_ENTRY.

This is the decision helper: a pure function (no LLM, no network). It combines scientifically-motivated sub-factors — reward:risk, regime strength (|Hurst-0.5|), volume confirmation, RSI positioning and ATR-normalised stop quality — into a 0..1 composite score, gates it against a threshold, applies an optional caller-supplied news-sentiment boost/veto, and returns fixed-fractional position sizing plus a mechanical execution plan. Same inputs always yield the same output.

Args: params (ScoreDecisionInput): setup (from quant_analyze_setup), equity, risk_pct, optional news_sentiment ('bullish'|'bearish'|'neutral') and news_confidence (0..1). The AGENT derives the sentiment from headlines; this tool only consumes it.

Returns: str: dict with verdict (ENTRY|NO_ENTRY), score, threshold, per-factor breakdown, factor_weights, news boost/veto, rationale, position_size (shares, dollar_risk, formula, haircut flag) and, on ENTRY, an execution_plan (entry trigger, order type, stop ladder, profit taking, time stop, abort conditions). 'deterministic': true.

quant_analyze_universeA

Run a universe-based method (ranking or pairs) across multiple tickers.

xs_momentum ranks the universe by 12-1 momentum and marks the top-N book LONG. pairs_cointegration requires exactly 2 tickers and returns one setup per leg with the shared spread statistics (beta, ADF p-value, z-score).

Args: params (AnalyzeUniverseInput): method_key, tickers (defaults to the built-in universe), top_n (ranking methods), response_format.

Returns: str: list of setup dicts (each feedable to quant_score_decision). Error string for unknown/non-universe methods or bad ticker counts.

quant_backtest_methodA

Backtest a registered method by replaying its own analyze() over history.

The engines execute the method's live signal logic bar by bar (no separate backtest implementation that could drift). Daily methods replay daily bars with next-open fills and method-specific exits; intraday methods replay each available 5m session (provider-capped to ~60 days); xs_momentum runs a monthly-rebalance portfolio. Costs applied one-way on entry and exit.

Args: params (BacktestInput): method_key, tickers, period, costs_bps, risk_pct, top_n, response_format.

Returns: str: stats (n_trades, win_rate, avg_r/expectancy, profit_factor, max_drawdown_pct, total_return_pct), in-sample/out-of-sample halves, and the last 10 trades. Treat results as PARAMETER VALIDATION, not a forecast — yfinance data is survivorship-prone and costs are estimates.

quant_check_eventsA

Upcoming earnings and dividend events for a ticker.

Earnings inside the holding window are the classic binary risk: pass days_to_earnings into quant_score_decision, which vetoes swing/position entries within the configured window (default 3 days) and warns intraday.

Args: params (TickerInput): ticker, response_format.

Returns: str: {next_earnings, days_to_earnings, recent_earnings, ex_dividend}. Fields are null when the provider has no data — treat unknown as risk and check the company's IR page before a swing entry.

quant_portfolio_riskA

Stateless portfolio heat / correlation / concentration check.

Pass your open positions (the server stores nothing) and optionally a candidate trade. Returns per-position and total open risk vs the heat limit, pairwise 90d correlation flags, sector concentration, and for the candidate a FITS / REDUCE / REJECT verdict with a recommended risk_pct to feed into quant_score_decision (with portfolio_heat_pct).

Args: params (PortfolioRiskInput): positions [{ticker, direction, entry, stop, shares}], optional candidate {ticker, direction, entry, stop}, equity, response_format.

Returns: str: heat/correlation/concentration analysis dict; candidate verdict when one was supplied.

quant_market_contextA

Index/VIX/sector tape read for the current session.

SPY/QQQ/IWM day % and 20d-EMA side, VIX level and change, the 11 SPDR sector ETFs ranked by day %, and a breadth flag (risk_on when most sectors advance). Use before sizing any intraday trade; trading breakouts against a risk-off tape is the most common ORB failure mode.

Args: params (FormatInput): response_format.

Returns: str: {indexes, vix, sectors (ranked), breadth{risk_on}}.

quant_fetch_newsA

Fetch recent headlines for a ticker. Data only — no sentiment is computed.

The calling agent reads these and forms its own sentiment to pass to quant_score_decision; this tool deliberately does no interpretation.

Args: params (TickerInput): ticker, response_format.

Returns: str: list of headlines, each with title, summary, published, provider. Empty-list message if none found.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/FlawlessByte/quant-research-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server