{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_c7svq996pn27","handle":"bullrun","url":"https://wellknown.network/agents/bullrun","links":{"self":"https://wellknown.network/agents/bullrun/record.json","html":"https://wellknown.network/agents/bullrun","markdown":"https://wellknown.network/agents/bullrun/record.md","api":"https://wellknown.network/api/v1/agents/bullrun","status":"https://wellknown.network/api/v1/agents/bullrun/status","claim":"https://wellknown.network/agents/bullrun/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/bullrun/claim.json","badge":"https://wellknown.network/agents/bullrun/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/bullrun/history","tools":"https://wellknown.network/api/v1/agents/bullrun/tools"},"ard":{"identifier":"urn:air:mcp.bull-run.org:server:bullrun","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Bullrun","summary":"Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude","description":"Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude","publisher":{"name":"org.bull-run","url":null},"homepage":null,"repository":"https://github.com/ferinator/bullrun-mcp","version":"0.1.2","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.bull-run.org/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-06-29T12:15:49.625209Z","publishedAt":"2026-06-29T12:15:49.625209Z","registryName":"org.bull-run/bullrun"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":1,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":1,"provenance":"derived"},{"slug":"data.weather","name":"Weather","confidence":0.938,"provenance":"derived"},{"slug":"documents.conversion","name":"Document Conversion","confidence":0.554,"provenance":"derived"},{"slug":"automation.scheduling","name":"Scheduling & Cron","confidence":0.54,"provenance":"derived"},{"slug":"ai.evaluation","name":"Evaluation & Benchmarks","confidence":0.54,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":0.525,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.525,"provenance":"derived"}],"categories":["ai","analytics","automation","commerce","data","documents","finance","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 6h ago.","lastOkAt":"2026-10-10T21:25:41.471Z","lastProbedAt":"2026-10-10T21:25:41.471Z","statusComputedAt":"2026-10-10T21:27:00.190Z","reliability30d":{"probes":107,"successRate":1,"p50Ms":68,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":107,"ok":107,"authBoundaryOk":0,"serviceOk":107,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T21:25:41.471Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":96,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"},{"name":"get_company_risk","description":"Bullrun's company risk read for one stock: a 0-100 composite risk score and six mechanism dials (market expectation, operating pressure, cash conversion, levera"},{"name":"get_company_relationships","description":"Bullrun's company relationship graph for one stock: named competitors, suppliers, customers and partners, each with its Bullrun ticker when the counterparty is "},{"name":"screen_risk_board","description":"Rank Bullrun's scored stock universe (~9,000 companies) by company risk: the composite risk score or any one mechanism dial (market expectation, operating press"},{"name":"get_risk_movers","description":"Companies whose Bullrun composite risk score crossed into a different band (e.g. Elevated -> Stretched, or Acute -> Stretched) within the last N days, with prio"},{"name":"get_global_markets_overview","description":"Bullrun's Global Markets dashboard in one call: world equity indices (S&P 500, Nasdaq-100, MSCI World, DAX, FTSE 100, Nikkei, Hang Seng, Nifty...), central-bank"},{"name":"get_country_macro","description":"One country's macro dashboard from Bullrun's Global Markets warehouse: a 0-100 macro stress score (higher = more stress) built from six pillars - labour (unempl"},{"name":"get_macro_indicators","description":"Cross-country macro comparison from Bullrun's Global Markets warehouse: rank up to ~200 countries on one indicator (GDP growth annual or quarterly, CPI inflatio"},{"name":"get_macro_history","description":"Historical time series behind the Global Markets dashboard, often decades long: equity indices, central-bank policy rates, 10-year government bond yields, FX ra"},{"name":"get_valuation_model","description":"Bullrun's proprietary machine-learning valuation and forecast scores for 1-10 stocks, recomputed nightly. Valuation: a LightGBM model predicts the P/E (or price"},{"name":"screen_valuation_model","description":"Rank 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/sal"}],"toolCount":40,"toolsHash":"fb69681adc3d958b42383942016f542ab7d42a1bac025304bb5f79046ee79c19","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T15:30:03.339Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":85,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"},{"name":"get_company_risk","description":"Bullrun's company risk read for one stock: a 0-100 composite risk score and six mechanism dials (market expectation, operating pressure, cash conversion, levera"},{"name":"get_company_relationships","description":"Bullrun's company relationship graph for one stock: named competitors, suppliers, customers and partners, each with its Bullrun ticker when the counterparty is "},{"name":"screen_risk_board","description":"Rank Bullrun's scored stock universe (~9,000 companies) by company risk: the composite risk score or any one mechanism dial (market expectation, operating press"},{"name":"get_risk_movers","description":"Companies whose Bullrun composite risk score crossed into a different band (e.g. Elevated -> Stretched, or Acute -> Stretched) within the last N days, with prio"},{"name":"get_global_markets_overview","description":"Bullrun's Global Markets dashboard in one call: world equity indices (S&P 500, Nasdaq-100, MSCI World, DAX, FTSE 100, Nikkei, Hang Seng, Nifty...), central-bank"},{"name":"get_country_macro","description":"One country's macro dashboard from Bullrun's Global Markets warehouse: a 0-100 macro stress score (higher = more stress) built from six pillars - labour (unempl"},{"name":"get_macro_indicators","description":"Cross-country macro comparison from Bullrun's Global Markets warehouse: rank up to ~200 countries on one indicator (GDP growth annual or quarterly, CPI inflatio"},{"name":"get_macro_history","description":"Historical time series behind the Global Markets dashboard, often decades long: equity indices, central-bank policy rates, 10-year government bond yields, FX ra"},{"name":"get_valuation_model","description":"Bullrun's proprietary machine-learning valuation and forecast scores for 1-10 stocks, recomputed nightly. Valuation: a LightGBM model predicts the P/E (or price"},{"name":"screen_valuation_model","description":"Rank 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/sal"}],"toolCount":40,"toolsHash":"fb69681adc3d958b42383942016f542ab7d42a1bac025304bb5f79046ee79c19","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T08:31:42.255Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":61,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"}],"toolCount":30,"toolsHash":"da2edfe209bebba0fd127ea073789db921a13dc3a6fb2c94dbb0d47d12d081e9","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T01:24:22.640Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":45,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"}],"toolCount":30,"toolsHash":"da2edfe209bebba0fd127ea073789db921a13dc3a6fb2c94dbb0d47d12d081e9","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T18:26:06.194Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":107,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"}],"toolCount":30,"toolsHash":"da2edfe209bebba0fd127ea073789db921a13dc3a6fb2c94dbb0d47d12d081e9","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T11:26:43.033Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":89,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"}],"toolCount":30,"toolsHash":"da2edfe209bebba0fd127ea073789db921a13dc3a6fb2c94dbb0d47d12d081e9","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T05:26:13.043Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":62,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"}],"toolCount":30,"toolsHash":"da2edfe209bebba0fd127ea073789db921a13dc3a6fb2c94dbb0d47d12d081e9","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T22:24:19.688Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":78,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"}],"toolCount":30,"toolsHash":"da2edfe209bebba0fd127ea073789db921a13dc3a6fb2c94dbb0d47d12d081e9","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T15:22:58.795Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":142,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"}],"toolCount":30,"toolsHash":"da2edfe209bebba0fd127ea073789db921a13dc3a6fb2c94dbb0d47d12d081e9","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T08:28:39.147Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":71,"error":null,"detail":{"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"}],"toolCount":30,"toolsHash":"da2edfe209bebba0fd127ea073789db921a13dc3a6fb2c94dbb0d47d12d081e9","serverName":"bullrun-mcp","capabilities":["tools","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"screen_stocks","description":"Screen the global Bullrun stock universe with the same rule engine as the app screener. Filter by sector, industry, country/countries, primary vs secondary list"},{"name":"search_etfs","description":"Look up ETFs by name, ticker or ISIN, with classification, listing, index, distribution-policy, AUM, expense-ratio and yield filters. Best for finding a known f"},{"name":"screen_etfs","description":"Screen the WHOLE ETF universe by numeric rules and fund attributes in one pass — expense ratio, AUM, yield, trailing returns, volatility, liquidity, top-10 conc"},{"name":"get_etf_index_group","description":"Answer \"what is the cheapest way to track <index>?\". Returns every fund tracking one index ordered cheapest fee first, deduplicated to one row per FUND rather t"},{"name":"get_etf_fund","description":"Resolve one FUND rather than one listing. Given an ISIN (or any venue ticker of the fund) it returns the fund's identity, costs, index, distribution policy, wra"},{"name":"get_etf_filter_options","description":"List the exact values accepted by the categorical filters on search_etfs and screen_etfs — asset classes, categories, index keys, product/wrapper types, regions"},{"name":"get_etf_snapshot","description":"Fetch a modular snapshot for one exact ETF listing. The include array controls which of identity, classification, market, fund_data (NAV/AUM), costs, income, an"},{"name":"get_etf_holdings","description":"Return the latest stored ETF holdings snapshot with opaque cursor pagination. The response reports the provider's stated holdings count, stored row count, cover"},{"name":"get_etf_timeseries","description":"Fetch ETF price or price-return history at daily, weekly, or monthly intervals. NAV, true total-return, benchmark, and premium/discount series are returned only"},{"name":"get_etf_exposures","description":"Calculate sector, country, currency, and broad asset exposure from the latest stored ETF holdings and Bullrun instrument mappings. Factor and thematic look-thro"},{"name":"get_etf_risk","description":"Calculate drawdown, annualized volatility, downside volatility, historical VaR, Sharpe, Sortino and Calmar ratios from stored daily close prices. With benchmark"},{"name":"compare_etfs","description":"Return a normalized side-by-side comparison of two to ten ETFs across selected classification, market, fund-data, cost, income, benchmark, price-performance, pr"},{"name":"analyze_etf_overlap","description":"Compare two to ten ETFs using their latest stored holdings. Returns pairwise shared holdings, weighted overlap (sum of the smaller weight for each shared holdin"},{"name":"analyze_portfolio_fit","description":"Analyze an ETF candidate against one signed-in user's portfolio. Combines Bullrun's price-history candidate fit (correlation, beta and pro-forma volatility) wit"},{"name":"simulate_etf_cost","description":"Simulate expense-ratio, assumed bid/ask spread, commissions, and recurring contributions over a holding period. Compares the same gross-return path with and wit"},{"name":"query_etfs","description":"Compatibility tool for older clients: search the Bullrun ETF universe and optionally bundle profile, recent prices, and latest holdings for an exact ticker. New"},{"name":"get_stock_metrics","description":"Fetch a consolidated metrics snapshot for a single stock by ticker: identity (company, exchange, currency, sector, industry, country, ISIN), latest daily price "},{"name":"get_financial_history","description":"Fetch 1-15 years of historical financial statements for one exact Bullrun ticker. Returns annual and/or quarterly rows grouped into income statement, balance sh"},{"name":"get_quality_moat_metrics","description":"Compute annual quality, moat, earnings-quality, and capital-allocation metrics for one exact Bullrun ticker from existing financial statements: ROIC, ROE/ROA, R"},{"name":"get_forward_estimates","description":"Fetch forward consensus revenue/EPS/EBITDA estimates, management guidance ranges, and estimate-revision percentages for one exact Bullrun ticker. Also derives s"},{"name":"get_operating_kpis","description":"Fetch period-specific operating KPIs and unit-economics metrics for one exact Bullrun ticker: ARR, net revenue retention, RPO, billings, customer counts, paymen"},{"name":"get_revenue_breakdown","description":"Fetch segment, geography, product, customer, or other revenue breakdown rows for one exact Bullrun ticker. Use this to separate cyclical businesses from recurri"},{"name":"get_earnings_call_transcript","description":"Fetch speaker-tagged earnings-call transcript chunks for one exact Bullrun ticker, optionally filtered by fiscal period or search text. Use this for management "},{"name":"list_portfolios","description":"Use when the user refers to THEIR portfolio(s) or holdings — e.g. \"my portfolios\", \"what portfolios do I have\", \"how are my investments doing\", \"show my holding"},{"name":"get_portfolio_context","description":"Use when the user asks to look at, review, or analyze THEIR portfolio / holdings / positions — e.g. \"analyze my portfolio\", \"how is my portfolio doing\", \"what's"},{"name":"get_portfolio_analytics","description":"Use when the user asks about THEIR portfolio's risk, diversification, or concentration, or whether to add a stock — e.g. \"is my portfolio diversified\", \"how ris"},{"name":"create_portfolio_draft","description":"Use when the user wants you to BUILD or PROPOSE a brand-new portfolio for them — e.g. \"build me a portfolio\", \"put together a dividend portfolio\", \"draft a port"},{"name":"create_position_draft","description":"Use when the user asks what to BUY or ADD to an EXISTING portfolio — e.g. \"what should I buy next\", \"suggest a stock or ETF for my portfolio\", \"what should I ad"},{"name":"create_portfolio_from_positions","description":"Use when YOU (or the user) have ALREADY decided the exact holdings and want them saved as-is — e.g. after researching and settling on a specific basket with tar"},{"name":"get_capabilities","description":"Discover what the connected Bullrun account can do BEFORE attempting an action, so you can plan instead of learning by hitting a 403. Reports whether you are au"},{"name":"get_company_risk","description":"Bullrun's company risk read for one stock: a 0-100 composite risk score and six mechanism dials (market expectation, operating pressure, cash conversion, levera"},{"name":"get_company_relationships","description":"Bullrun's company relationship graph for one stock: named competitors, suppliers, customers and partners, each with its Bullrun ticker when the counterparty is "},{"name":"screen_risk_board","description":"Rank Bullrun's scored stock universe (~9,000 companies) by company risk: the composite risk score or any one mechanism dial (market expectation, operating press"},{"name":"get_risk_movers","description":"Companies whose Bullrun composite risk score crossed into a different band (e.g. Elevated -> Stretched, or Acute -> Stretched) within the last N days, with prio"},{"name":"get_global_markets_overview","description":"Bullrun's Global Markets dashboard in one call: world equity indices (S&P 500, Nasdaq-100, MSCI World, DAX, FTSE 100, Nikkei, Hang Seng, Nifty...), central-bank"},{"name":"get_country_macro","description":"One country's macro dashboard from Bullrun's Global Markets warehouse: a 0-100 macro stress score (higher = more stress) built from six pillars - labour (unempl"},{"name":"get_macro_indicators","description":"Cross-country macro comparison from Bullrun's Global Markets warehouse: rank up to ~200 countries on one indicator (GDP growth annual or quarterly, CPI inflatio"},{"name":"get_macro_history","description":"Historical time series behind the Global Markets dashboard, often decades long: equity indices, central-bank policy rates, 10-year government bond yields, FX ra"},{"name":"get_valuation_model","description":"Bullrun's proprietary machine-learning valuation and forecast scores for 1-10 stocks, recomputed nightly. Valuation: a LightGBM model predicts the P/E (or price"},{"name":"screen_valuation_model","description":"Rank 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/sal"}],"package":null,"toolSurface":{"id":"ts_v7dv5nr6td75","endpointId":"ep_qapxeneswsvw","hash":"fb69681adc3d958b42383942016f542ab7d42a1bac025304bb5f79046ee79c19","toolCount":40,"serverName":"bullrun-mcp","serverVersion":"0.4.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-10T15:30:03.346Z","lastSeenAt":"2026-10-10T21:25:41.467Z","observations":2,"toolNames":["screen_stocks","search_etfs","screen_etfs","get_etf_index_group","get_etf_fund","get_etf_filter_options","get_etf_snapshot","get_etf_holdings","get_etf_timeseries","get_etf_exposures","get_etf_risk","compare_etfs","analyze_etf_overlap","analyze_portfolio_fit","simulate_etf_cost","query_etfs","get_stock_metrics","get_financial_history","get_quality_moat_metrics","get_forward_estimates","get_operating_kpis","get_revenue_breakdown","get_earnings_call_transcript","list_portfolios","get_portfolio_context","get_portfolio_analytics","create_portfolio_draft","create_position_draft","create_portfolio_from_positions","get_capabilities","get_company_risk","get_company_relationships","screen_risk_board","get_risk_movers","get_global_markets_overview","get_country_macro","get_macro_indicators","get_macro_history","get_valuation_model","screen_valuation_model"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_qapxeneswsvw","url":"https://mcp.bull-run.org/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-10T08:31:42.260Z","auth":{"observedAt":"2026-10-10T08:31:42.435Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://mcp.bull-run.org/.well-known/oauth-protected-resource/mcp","resource":"https://mcp.bull-run.org","authorizationServers":["https://bull-run.org"],"scopesSupported":["read:market","read:portfolios","write:drafts"]},"authorizationServer":{"url":"https://bull-run.org/.well-known/oauth-authorization-server","issuer":"https://bull-run.org","grantTypesSupported":["authorization_code","client_credentials","refresh_token","urn:ietf:params:oauth:grant-type:device_code","urn:ietf:params:oauth:grant-type:token-exchange"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["client_secret_basic","client_secret_post","client_secret_jwt","private_key_jwt","tls_client_auth","self_signed_tls_client_auth","none"],"dynamicClientRegistration":false,"dpopSigningAlgValuesSupported":["RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512"],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":true,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-10T08:31:42.453Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"bull-run.org","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-08-18T20:09:03.000Z","validTo":"2026-11-16T20:09:02.000Z","daysToExpiry":36,"sanCount":2,"fingerprint256":"49:39:0F:FC:7A:F2:70:12:D7:23:F4:2D:7E:5B:9B:28:40:80:6B:AD:25:4E:E0:F3:99:25:52:26:77:AB:89:5B"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"org.bull-run/bullrun","url":"https://registry.modelcontextprotocol.io/v0/servers/org.bull-run%2Fbullrun","firstSeenAt":"2026-09-07T08:20:10.574Z","fetchedAt":"2026-10-08T19:19:57.280Z","normalizedAt":"2026-10-08T19:19:57.280Z"}]},"firstSeenAt":"2026-09-07T08:20:10.574Z","updatedAt":"2026-10-10T21:27:52.201Z"}