Analytics
bull-run.org
Provides stock screening, ticker resolution, peer discovery, price history with technical indicators, and company news for financial research.
ENDPOINT 1
https://mcp.bull-run.org/mcp
MCP server metadata
- Name
- bullrun-mcp
- Version
- 0.8.1
Use search_stocks to resolve a company name, ISIN, native ticker or listing ambiguity before exact-ticker tools. Use screen_stocks with action=list_presets to discover transparent named screens or pass preset to run one, find_stock_peers for automatic peer candidates, get_stock_price_history for stored daily prices and deterministic technicals, and get_company_news for dated cached company articles with refresh and freshness caveats. Optional estimates, operating KPIs and transcripts depend on actual source coverage; do not promise them before checking availability. Use get_company_data_coverage for stored dataset availability, latest periods and actual collection/computation timestamps before deeper research. Use get_corporate_calendar for earnings, ex-dividend dates and recent first-trade listings (not a confirmed IPO calendar), compare_company_exposures for shared cached counterparties across 2-5 companies, and get_company_risk_history for retained category scores and descriptive input/basis changes. Missing coverage is unknown; shared relationships do not quantify hypothetical losses, and changing formula/coverage is not a business deterioration by itself. Results can include an optional platformLink (label, url and description) and a matching resource_link to the same view on bull-run.org; each description states which tool settings that page does not reproduce. Use compare_stocks for a compact comparison of 2-5 exact stock tickers with explicit period, currency and coverage differences. Company risk and relationships: get_company_risk returns a stock's 0-100 composite risk score, six mechanism dials (market expectation, operating pressure, cash conversion, leverage, competitive position, concentration), filing-derived risk factors, supplier concentration and recent events; get_company_relationships returns its named competitors, suppliers, customers and partners with verification status and quantified dependence; screen_risk_board ranks the universe by composite or one dial (filter by band/sector/country); get_risk_movers lists band changes in the last N days. Bands (Contained/Normal/Elevated/Stretched/Acute) describe measured strain, never a buy/sell view, and a dark dial is unmeasured, not safe. Global markets and macro: get_global_markets_overview is the one-call market briefing (indices, policy rates, 10Y yields, FX, commodities, macro tiles, economic calendar, news); get_country_macro gives one country's macro stress score and its inputs; get_macro_indicators ranks or compares countries on one indicator; get_macro_history returns a series' history by the historyCode the other tools return, an instrument name ("Fed", "Brent", "Germany 10Y") or indicator + country. Bullrun's own ML models: get_valuation_model gives 1-10 stocks' valuation gap (model-typical vs current P/E or price/sales; positive = trades below its typical multiple) and relative forecast signal; screen_valuation_model ranks the scored universe by either end of a model. Present the valuation gap as descriptive context, never as a price target or prediction. For ETFs: screen_etfs is the whole-universe screen and the right default for any ranking question (cheapest, largest, best performing, most liquid, or "which funds hold X" via its holdingSearch look-through); search_etfs looks up a known fund by name, ticker or ISIN; get_etf_filter_options lists the exact strings the categorical filters accept, so call it before guessing a category, region, index key or issuer; get_etf_index_group answers "cheapest way to track <index>" with one row per FUND rather than per venue listing; get_etf_fund resolves an ISIN (or any venue ticker) to the fund and all the venues it trades on — reach for it whenever the user quotes an ISIN or asks which line to buy; get_etf_snapshot for requested snapshot modules; get_etf_timeseries for price/history coverage; get_etf_holdings and get_etf_exposures for explicit partial/full look-through; get_etf_risk for price risk; compare_etfs for selected comparison modules, including overlap for pairwise shared holdings; get_portfolio_analytics with candidateTicker and includeLookThrough=true for ETF fit against a signed-in portfolio; and simulate_etf_cost for deterministic cost scenarios. Expense ratios and yields are always percentage points in tool inputs and outputs, never fractions. The same UCITS fund is listed on several venues under different tickers: treat those as ONE holding, never as diversification. Read every coverage/warnings field: unavailable NAV, total-return, factor, thematic, benchmark, spread, fee, or holdings data is never synthesized, and a fund missing a metric is excluded by any rule on it. Bullrun market-data and portfolio tools. Use screen_stocks to find stocks across the global universe by fundamentals (sector/industry/country, market cap, P/E, dividend yield, revenue growth), search_etfs to find a known ETF and get_etf_snapshot for its details, get_stock_metrics to pull a consolidated snapshot for one exact stock ticker, get_financial_history for multi-year annual/quarterly statements, CAGRs, margins, and growth consistency checks, and get_quality_moat_metrics for annual ROIC, ROIC-vs-supplied-WACC, accruals, cash conversion, capex intensity, dividends, share-count changes, and capital-allocation caveats. Use get_forward_estimates for available consensus revenue/EPS and EPS revisions with cached refresh, reporting-period and currency caveats; this feed does not populate EBITDA, guidance or revenue revisions; get_operating_kpis for domain KPIs such as ARR, NRR, RPO, billings, customer counts, payment volume, cross-border volume, and processed transactions; get_revenue_breakdown for segment/geography/product revenue splits; and get_earnings_call_transcript for stored speaker-tagged US call text, with a bounded asynchronous import of the latest two calls. Operating KPI observations remain limited; never imply broad KPI or non-US transcript coverage. Whenever the user talks about THEIR OWN portfolio, holdings, positions, or investments ("my portfolio", "how am I doing", "what should I improve/buy/add", "is my portfolio diversified", "how risky am I"), reach for the per-user portfolio tools rather than answering from general knowledge. When the user has connected their Bullrun account, list_portfolios lists their own virtual portfolios (start here when no specific portfolio is named), get_portfolio_context returns a deep snapshot of one (holdings, weights, value, insights — use for "analyze/review my portfolio"), and get_portfolio_analytics returns portfolio-level relationship analytics: correlation/covariance matrices, contribution-to-risk, factor proxy exposure, sector/currency/country concentration, stress scenarios, and optional candidateTicker fit analysis with opt-in ETF holdings look-through via includeLookThrough (use for diversification/risk/concentration questions and "should I add <ticker>"). create_portfolio_draft builds a new paper portfolio saved as a draft for GUI review ("build me a portfolio"); create_position_draft proposes additions to an existing portfolio saved as a draft for GUI review ("what should I buy next"). Draft tools never change live holdings by themselves. create_portfolio_from_positions saves a portfolio you have ALREADY designed from an explicit {ticker, weight|amountUsd} basket (used verbatim, never re-picked) and is available to signed-in free accounts within usage limits — prefer it over create_portfolio_draft whenever the exact holdings are already decided. get_capabilities reports the connected identity, daily-usage tier, granted scopes, and portfolio capacity — call it first when account permissions or capacity are unclear or to confirm which account you are acting on. Before calling either draft tool, scope the request in ONE short step: if the user has already been specific (style, region, size, or which portfolio), go straight to the tool; if the request is vague (e.g. just "build me a portfolio" or "what should I buy"), ask a single round of at most three multiple-choice questions first. For a NEW portfolio ask investing style (income/dividends, growth, defensive, broad-market, or a named theme), region focus (US, Europe, or global), and size (starting cash and/or number of holdings). For additions to an EXISTING portfolio ask which portfolio (call list_portfolios first when the user has more than one) and how many ideas (a single best idea or a few). Give a sensible default with every question so the user can reply "just pick for me", then call the tool immediately with those defaults. Keep it to that one step — do not interrogate across multiple turns or re-ask anything the user already stated. Personal shortlist: save_research_shortlist adds explicit user-selected tickers and list_research_shortlist reads the saved queue; require their read:shortlist/write:shortlist scopes and never save without user intent. No monitoring or email is enabled by saving. Connect at https://mcp.bull-run.org/account/mcp when personal tools require OAuth. All portfolio draft features are available to free signed-in accounts subject to daily usage limits; Pro denotes uncapped daily usage. The per-user portfolio tools accept a privacyMode ("full" default, or "weights_only" to hide absolute money). All read tools are sourced from the Bullrun database.
Known tools 48
screen_stocksScreen the global Bullrun stock universe with the app rule engine using custom fundamental rules or named presets: profitable value, dividend income, growth and cash flow, cash generators, dividend growth.
Inferred read-onlysearch_stocksResolve a company name, native ticker, ISIN or exchange-qualified symbol to Bullrun listings before calling exact-ticker research tools.
Inferred read-onlyfind_stock_peersDiscover stock comparison candidates for one exact Bullrun ticker using stored industry or sector classification.
Inferred read-onlyget_stock_price_historyRead bounded stored stock OHLCV history, ascending by trade date, as daily, weekly or monthly bars, with close-based price returns/drawdown and optional deterministic SMA, EMA, Wilder RSI and MACD.
Potential side effectsget_company_newsGet cached company news for one exact Bullrun ticker, newest publication first, with publisher, source URL, publication date and stored-fetch freshness when recorded.
Inferred read-onlysearch_etfsLook up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters.
Inferred read-onlyscreen_etfsScreen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 concentration, fund age and holdings count — combined with issuer, index, domicile, UCITS status, distribution policy, currency hedging and constituent look-through (holdingSearch finds funds by what they hold).
Inferred read-onlyget_etf_filter_optionsList the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions, domiciles, currencies, exchanges, and (on request) issuers and focus strings.
Inferred read-onlyget_etf_holdingsReturn the latest stored ETF holdings snapshot with opaque cursor pagination.
Inferred read-onlyget_etf_timeseriesFetch ETF price or price-return history at daily, weekly, or monthly intervals.
Inferred read-onlyget_etf_exposuresCalculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings.
Inferred read-onlyget_etf_riskCalculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices.
Inferred read-onlycompare_etfsReturn a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, price-risk, holdings, and optional overlap modules.
Inferred read-onlysimulate_etf_costSimulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period.
Inferred read-onlyget_stock_metricsFetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price (OHLCV), latest valuation (market cap, P/E, dividend yield, annual dividend per share), the most recent reported financials (revenue, gross/operating income, EBITDA, net income, diluted EPS, free & operating cash flow, total debt, cash, total assets, equity) and a short company description.
Inferred read-onlycompare_stocksCompare two to five stock tickers in one compact structured response: annual fundamentals and growth, quality ratios, stored valuation and Bullrun model context, and measured risk dials.
Inferred read-onlyget_financial_historyFetch 1-15 years of historical financial statements for one exact Bullrun ticker.
Inferred read-onlyget_quality_moat_metricsCompute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, ROIC-vs-supplied-WACC, accruals, cash conversion, capex intensity, dividend payout/growth, diluted share-count changes, and a buyback proxy.
Inferred read-onlyget_forward_estimatesRead cached Yahoo analyst consensus revenue/EPS estimates and available EPS revision percentages for one exact Bullrun ticker.
Inferred read-onlyget_operating_kpisRead curated, source-linked operating KPI observations for one exact Bullrun ticker.
Inferred read-onlyget_revenue_breakdownFetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker.
Inferred read-onlyget_earnings_call_transcriptRead cached earnings-call paragraphs for one exact Bullrun ticker, optionally filtered by fiscal period or search text.
Inferred read-onlylist_research_shortlistRead the signed-in user's saved Research Shortlist of stock and ETF listing tickers, with dated stored prices.
Inferred read-onlysave_research_shortlistAdd 1-20 exact Bullrun stock or ETF listing tickers to the signed-in user's Research Shortlist when the user asks to save them.
Inferred read-onlyget_portfolio_contextUse when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.
Inferred read-onlyget_portfolio_analyticsUse when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock or ETF — e.
Inferred read-onlycreate_portfolio_draftUse when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.
Inferred read-onlycreate_position_draftUse when the user asks what to BUY or ADD to an EXISTING portfolio — e.
Inferred read-onlycreate_portfolio_from_positionsUse when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.
Inferred read-onlyget_capabilitiesDiscover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403.
Inferred read-onlyget_company_riskBullrun's company risk read for one stock: a 0-100 composite risk score and six mechanism dials (market expectation, operating pressure, cash conversion, leverage & coverage, competitive position, concentration) with band (Contained/Normal/Elevated/Stretched/Acute), direction vs the prior reading, the driving input and a plain-English explanation; plus filing-derived risk factors (severity, mechanism, source filing), identified supplier concentration (share of cost base covered, HHI, sole-source count, top supplier share) and recent material events.
Inferred read-onlyget_company_relationshipsBullrun's company relationship graph for one stock: named competitors, suppliers, customers and partners, each with its Bullrun ticker when the counterparty is listed, verification status (VERIFIED against a primary filing/source vs search-SUGGESTED), confidence, sole-source flag, quantified dependence where disclosed (e.
Inferred read-onlycompare_company_exposuresCompare the cached company relationship graphs of two to five stock tickers.
Inferred read-onlyget_corporate_calendarRead stored upcoming earnings and ex-dividend dates, plus recent equity listings.
Inferred read-onlyget_company_risk_historyStored historical company risk category readings and their observed input changes.
Inferred read-onlyget_company_data_coverageA cheap stored-data manifest for one exact company: available datasets, latest reporting periods, actual ingestion/computation timestamps where stored, and cached relationship graph status.
Inferred read-onlyscreen_risk_boardRank Bullrun's scored stock universe (~9,000 companies) by company risk: the composite risk score or any one mechanism dial (market expectation, operating pressure, cash conversion, leverage, competitive position, concentration), filtered by band, sector, country and dial coverage.
Inferred read-onlyget_risk_moversCompanies whose Bullrun composite risk score crossed into a different band (e.
Inferred read-onlyget_global_markets_overviewBullrun's Global Markets dashboard in one call: world equity indices (S&P 500, Nasdaq-100, MSCI World, DAX, FTSE 100, Nikkei, Hang Seng, Nifty.
Inferred read-onlyget_country_macroOne country's macro dashboard from Bullrun's Global Markets warehouse: a 0-100 macro stress score (higher = more stress) built from six pillars - labour (unemployment, its change, youth unemployment), housing (real house prices, price-to-income and price-to-rent vs history), credit (BIS credit-to-GDP gap, household debt service, household credit), fiscal (government debt, fiscal balance), external (current account) and cycle (GDP growth, inflation) - with every input's latest value, period, source (OECD, IMF, BIS, World Bank, Eurostat), its stress contribution and a historyCode for get_macro_history.
Inferred read-onlyget_macro_indicatorsCross-country macro comparison from Bullrun's Global Markets warehouse: rank up to ~200 countries on one indicator (GDP growth annual or quarterly, CPI inflation, government debt/GDP, unemployment, youth unemployment, real house-price growth, house price-to-income and price-to-rent vs history, BIS credit-to-GDP gap, household debt service, household credit/GDP, business and consumer confidence, or Bullrun's macro stress score), or compare a named set of countries.
Inferred read-onlyget_macro_historyHistorical time series behind the Global Markets dashboard, often decades long: equity indices, central-bank policy rates, 10-year government bond yields, FX rates, oil/gas/gold/copper, VIX, DXY, the US 2s10s curve, and per-country macro indicators (GDP growth, inflation, unemployment, house prices, credit gap, debt, confidence, macro stress).
Inferred read-onlyget_valuation_modelBullrun's proprietary machine-learning valuation and forecast scores for 1-10 stocks, recomputed nightly.
Inferred read-onlyscreen_valuation_modelRank the whole scored stock universe (market cap >= $100M) by Bullrun's proprietary ML models: the stocks trading furthest below (or above) the P/E or price/sales multiple their fundamentals typically command, or the strongest/weakest relative 1-year forecast signals.
Potential side effectsCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.bullrun-mcp]
url = "https://mcp.bull-run.org/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"bullrun-mcp": {
"type": "http",
"url": "https://mcp.bull-run.org/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: bullrun-mcp
Remote MCP URL: https://mcp.bull-run.org/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"bullrun-mcp": {
"url": "https://mcp.bull-run.org/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"bullrun-mcp": {
"type": "http",
"url": "https://mcp.bull-run.org/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "bullrun-mcp",
"transport": "streamable-http",
"url": "https://mcp.bull-run.org/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.