MCP Server

HPSILab Quant Finance

io.github.haiyunsky/hpsilab-quant-finance-mcp
Data & Analytics Finance & Investing Public & reachable MCP 2025-11-25

What this MCP does

Provides quantitative stock, ETF, options, prediction, Monte Carlo, backtesting, implied-volatility, risk-scan, and research-report tools.

analyze_stock
Stock Analysis
Aggregate all quant tools into one JSON stock analysis. The tool reuses the existing MCP tools as its data sources, then derives a direction signal, direction score, bullish factors, bearish factors and plain-English summary. If one underlying tool is gated, unavailable or raises an error, the remaining tools still contribute to the final result (status "partial"); if every underlying tool fails, the whole call fails (status "error", isError=True) instead of a misleadingly "successful" empty analysis. Args: symbol: Stock symbol, e.g. "NVDA". refresh: Request fresh IV Radar data instead of using the backend's fresh IV cache. Defaults to False. lang: Language for `summary`, `bullish_factors` and `bearish_factors` - "en" (default), "zh" or "ja"; regional forms like "zh-CN" are accepted. Everything else in the response, `signal` included, is language-independent, so an existing caller that omits this gets byte-identical output to before.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'analyze_stockArguments', 'required': ['symbol'], 'properties': {'lang': {'type': 'string', 'title': 'Lang', 'default': 'en'}, 'symbol': {'type': 'string', 'title': 'Symbol'}, 'refresh': {'type': 'boolean', 'title': 'Refresh', 'default': False}}}
Output schema
{'type': 'object', 'title': 'analyze_stockDictOutput', 'additionalProperties': True}
generate_stock_images
Stock Chart Generator
Generate stock-report PNG images and return their URLs. This is intentionally separate from analyze_stock so the JSON analysis stays fast and light. The backend reuses the same Growth Engine image generators used by email/social publishing. Args: symbol: Stock symbol, e.g. "RXRX". force: Regenerate images instead of using cached PNGs. Defaults to True so manually requested images reflect the latest available data. types: Optional subset of chart types. Allowed values are "ai_prediction", "iv_radar", "option_pressure", "monte_carlo", and "equity_curves". Omit to generate every chart type.
Open world
Input schema
{'type': 'object', 'title': 'generate_stock_imagesArguments', 'required': ['symbol'], 'properties': {'force': {'type': 'boolean', 'title': 'Force', 'default': True}, 'types': {'anyOf': [{'type': 'array', 'items': {'enum': ['ai_prediction', 'iv_radar', 'option_pressure', 'monte_carlo', 'equity_curves'], 'type': 'string'}}, {'type': 'null'}], 'title': 'Types', 'default': None}, 'symbol': {'type': 'string', 'title': 'Symbol'}}}
Output schema
{'type': 'object', 'title': 'generate_stock_imagesDictOutput', 'additionalProperties': True}
generate_stock_research_report
Stock Research Report
Full markdown research report with five stock-report charts. Pro tool ($0.35/call via x402 for anonymous callers; free within plan limits for signed-in accounts, subject to a monthly report quota). Runs analyze_stock and stock-report image generation concurrently, then renders a presentation-ready markdown report (direction, direction score, bullish / bearish factors, source-tool status, and the five chart embeds). The markdown is returned for display and the same data is mirrored in structured JSON. Signed-in hpsilab users call this within their plan's free rate limits. Anonymous / tokenless agents pay per call via x402 (USDC on Base) when payments are enabled — send the x402 payment in the request _meta. Args: symbol: Stock symbol, e.g. "RXRX". refresh: Bypass the backend's fresh IV cache for the IV-driven modules. Defaults to False. force_images: Force a fresh image render instead of reusing the backend's image cache. Defaults to False.
Open world
Input schema
{'type': 'object', 'title': 'generate_stock_research_reportArguments', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'title': 'Symbol'}, 'refresh': {'type': 'boolean', 'title': 'Refresh', 'default': False}, 'force_images': {'type': 'boolean', 'title': 'Force Images', 'default': False}}}
get_ai_prediction
AI Prediction
AI next-day prediction: probability the stock closes UP, a plain buy/watch/sell-lean signal, and how strongly the models agree (consensus). Available to every authenticated plan (Free / Pro / Enterprise); subject to the caller's plan requests/day and requests/minute limits. Args: ticker: Stock symbol, e.g. "TSLA".
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_ai_predictionArguments', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'title': 'Ticker'}}}
get_equity_curve
Strategy Backtest
Backtest performance of the quant strategy across your watchlist: Sharpe ratio, max drawdown, win rate and total return per symbol. Available to every authenticated plan (Free / Pro / Enterprise); subject to the caller's plan requests/day and requests/minute limits. Args: ticker: Optional symbol to show just one row, e.g. "SPY". Leave blank for all.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_equity_curveArguments', 'properties': {'ticker': {'type': 'string', 'title': 'Ticker', 'default': ''}}}
get_iv_radar
Implied Volatility Radar
Implied-volatility (IV) structure for a stock: how expensive options are, whether volatility is being squeezed, and whether traders are paying up for upside (calls) or downside (puts). Available to all signed-in users. Args: ticker: Stock symbol, e.g. "NVDA". refresh: Bypass the backend's fresh IV cache and request the latest option-chain pull. Defaults to False.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_iv_radarArguments', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'title': 'Ticker'}, 'refresh': {'type': 'boolean', 'title': 'Refresh', 'default': False}}}
get_monte_carlo
Monte Carlo Simulation
Monte Carlo price simulation for the next ~10 trading days: thousands of random price paths estimate a likely price range and the odds of finishing higher. Args: ticker: Stock symbol, e.g. "AAPL".
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_monte_carloArguments', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'title': 'Ticker'}}}
get_option_pressure
Options Pressure Map
Option-chain pressure map for the nearest weekly/monthly expiry — Max Pain, dealer Gamma Wall, likely weekly high, and an extreme squeeze target. Args: ticker: Stock symbol, e.g. "SPY".
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_option_pressureArguments', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'title': 'Ticker'}}}
get_pretrade_risk_scan
Pre-Trade Risk Scan
Full pre-trade risk scan JSON for a stock. Pro tool ($0.15/call via x402 for anonymous callers; Credits for signed-in accounts). Signed-in hpsilab users (including Free, on its trial Credits) spend Credits from their balance at this tool's catalog price — each tool is priced differently; see GET /api/credits/catalog. Anonymous / tokenless agents pay per call via x402 (USDC on Base) when payments are enabled — send the x402 payment in the request _meta. Args: symbol: Stock symbol, e.g. "NVDA".
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_pretrade_risk_scanArguments', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'title': 'Symbol'}}}
Output schema
{'type': 'object', 'title': 'get_pretrade_risk_scanDictOutput', 'additionalProperties': True}
register_account
Register a Free Account
Register a free hpsilab account for yourself, with no human involvement, and receive an API key immediately. Call this when you are hitting anonymous daily limits and want a higher allowance. You do not need a password, a wallet, or a web browser. The account is bound to you server-side, so calls you make after this are metered as your account even though you cannot change your own Authorization header. Registering keeps the anonymous daily allowance until the email address is confirmed; confirming it unlocks the full Free plan. Ask the human you are working with to click the link in the email that will arrive. A valid user email address is required. Do not call this tool with an empty or fabricated email address. If the user's email is unavailable, ask the user to provide it before calling register_account. Args: email: The real user email address that will receive verification.
Open world
Input schema
{'type': 'object', 'title': 'register_accountArguments', 'required': ['email'], 'properties': {'email': {'type': 'string', 'title': 'Email', 'format': 'email'}}}
Changed
get_pretrade_risk_scan
Oct. 1, 2026, 2:45 a.m.
Added
generate_stock_research_report
Sept. 17, 2026, 12:42 p.m.
Added
generate_stock_images
Sept. 17, 2026, 12:42 p.m.
Added
get_pretrade_risk_scan
Sept. 17, 2026, 12:42 p.m.
Added
analyze_stock
Sept. 17, 2026, 12:42 p.m.
Added
get_option_pressure
Sept. 17, 2026, 12:42 p.m.
Added
get_equity_curve
Sept. 17, 2026, 12:42 p.m.
Added
get_ai_prediction
Sept. 17, 2026, 12:42 p.m.
Added
get_monte_carlo
Sept. 17, 2026, 12:42 p.m.
Added
get_iv_radar
Sept. 17, 2026, 12:42 p.m.
Added
register_account
Sept. 17, 2026, 12:42 p.m.