Serveur MCP

Zyberno stock valuation

com.zyberno/zyberno
Données et analytique Finance et investissement Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Provides stock valuation records, DCF calculations, US market valuation metrics, stock screens, flagged-stock lists, and portfolio outcome simulations.

calculate_dcf_value
Two-stage discounted cash flow under assumptions you supply
Runs a two-stage discounted cash flow on numbers you provide and returns the fair value per share, the margin of safety against the price you gave, and how much of the value sits in the terminal stage. Cash flow grows at your growth rate for the stage-one years, then forever at your terminal rate, with the terminal value from the Gordon Growth Model discounted back over the stage-one years. Use when the user wants to value a company under their own assumptions, test how sensitive a valuation is to the discount or growth rate, or check the arithmetic of a DCF they are building. Do not use it to look up what a company is worth on Zyberno's own assumptions, which is get_stock_valuation and uses a different, fade-based model; the two will not agree and are not meant to. This computes your assumptions, it does not endorse them. The output is arithmetic, and a two-stage DCF is highly sensitive to the discount and terminal rates, so treat a single result as one point rather than an answer.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['current_stock_price', 'cash_flow_per_share', 'discount_rate', 'growth_years', 'growth_rate', 'terminal_growth_rate'], 'properties': {'growth_rate': {'type': 'number', 'description': 'Annual cash flow growth during the first stage, in percent. Pass 8 for 8 percent. Range -20 to 100.'}, 'growth_years': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': 'Length of the high-growth first stage, in years.'}, 'discount_rate': {'type': 'number', 'maximum': 50, 'description': 'Discount rate (required return or WACC) in percent. Pass 10 for 10 percent. Must be greater than the terminal growth rate.', 'exclusiveMinimum': 0}, 'cash_flow_per_share': {'type': 'number', 'description': 'Starting free cash flow or owner earnings PER SHARE, not the company total. This is the base the projection grows from.', 'exclusiveMinimum': 0}, 'current_stock_price': {'type': 'number', 'description': 'Current share price, used only to compute the margin of safety against the fair value.', 'exclusiveMinimum': 0}, 'terminal_growth_rate': {'type': 'number', 'description': 'Perpetual growth rate after the first stage, in percent. Pass 2.5 for 2.5 percent. Range -5 to 15, and must be below the discount rate.'}}, 'additionalProperties': False}
get_stock_valuation
Valuation record for one US-listed company
Returns Zyberno's stored valuation record for a single US-listed company: Margin of Safety against a discounted cash flow estimate, the Brina Gap (the growth rate the business can fund from its own returns minus the growth rate its current price implies), the Brina Matrix quadrant those two produce together, the Zyberno quality score, and trailing twelve month fundamentals from SEC filings. Use when the user names a company or ticker and wants to know how it is valued. This is also the tool for questions phrased without the framework's vocabulary: what growth rate is priced into a stock, what the market expects from a company, what a reverse DCF on it implies, whether its growth expectations look too high or too low, or whether a cheap-looking stock is actually a value trap. Do not use it to find or rank companies (use screen_stocks), to retrieve the published monthly lists (use list_flagged_stocks), or for price quotes, charts, news, analyst ratings, earnings dates, or non-US listings, none of which this server holds. Records refresh on a rolling cycle of roughly two weeks per company, so figures can lag a company's newest filing for part of that cycle. Every response states the date its data was computed.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['symbol'], 'properties': {'symbol': {'type': 'string', 'description': 'Ticker symbol of a US-listed company, for example AAPL, MSFT, or BRK.B. Case insensitive. Non-US listings and most OTC ADRs are not covered and return no data.'}}, 'additionalProperties': False}
get_us_market_valuation
How expensive the whole US equity market is against its own history
Returns the Zyberno Market Valuation Score, a single 0 to 100 reading of how expensive the US equity market is relative to its own history, combining the Buffett Indicator, the Shiller PE, the 10 year minus 2 year Treasury curve and the Baa credit spread. Use for questions about the market as a whole, overall valuation levels, or whether US stocks broadly look expensive or cheap right now. Do not use it for any individual company, sector, or index price level, none of which it measures. The score measures present valuation against history. It is not a forecast and not a market timing signal.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'additionalProperties': False}
list_flagged_stocks
The two published monthly Brina Matrix lists
Returns the two lists Zyberno publishes each month from one fixed screen. The first holds companies where the Margin of Safety and the Brina Gap both read as undervalued, labelled Double Discount. The second holds companies that look cheap on trailing earnings power while the Brina Gap reads negative, labelled value trap. Takes no parameters: the thresholds, sector exclusions and ranking are fixed and match the published page. Use when the user asks what the framework currently flags, or asks about the Double Discount or value trap lists by name. Do not use it for custom criteria (use screen_stocks) or for one named company (use get_stock_valuation). Both labels describe where a company sits on two valuation measures at one moment. They are screen output, not recommendations, and neither label forecasts a return.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'additionalProperties': False}
screen_stocks
Find US-listed companies by valuation and quality criteria
Searches Zyberno's database of roughly 10,000 US-listed companies and returns those matching the numeric criteria you supply, ranked by a field you choose. All metrics are computed from SEC filings. Use when the user wants to find, filter, rank, or count companies by their characteristics rather than asking about one company by name. Omit any filter you do not want applied; omitting all of them ranks the whole covered universe. Do not use it for a single known ticker (use get_stock_valuation), and do not use it to reconstruct the published monthly lists, which apply their own fixed thresholds, sector exclusions and curation (use list_flagged_stocks). Returns at most 25 companies plus the total number that matched, so a query that is too broad or too narrow reports its own breadth.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1, 'description': 'How many companies to return, 1 to 25. Defaults to 10. The total number that matched is reported regardless.'}, 'sector': {'type': 'string', 'description': 'Restrict to one sector, spelled as Zyberno stores it, for example Technology, Healthcare, Industrials, Energy, Consumer Cyclical, Financial Services, Real Estate, Utilities, Basic Materials, Communication Services, Consumer Defensive.'}, 'roe_min': {'type': 'number', 'description': 'Minimum return on equity in percent.'}, 'sort_by': {'enum': ['market_cap', 'zyberno_score', 'margin_of_safety', 'fundamental_vs_implied_gap', 'roic', 'roe', 'fcf_yield', 'momentum_12_1', 'momentum_12_1_pct', 'eps_sue', 'pe_ratio'], 'type': 'string', 'description': 'Field to rank the matches by, largest first. Defaults to market_cap.'}, 'exchange': {'enum': ['NASDAQ', 'NYSE', 'OTC', 'CBOE'], 'type': 'string', 'description': 'Restrict to one listing venue.'}, 'roic_min': {'type': 'number', 'description': 'Minimum return on invested capital in percent. Pass 15 for 15 percent.'}, 'eps_sue_max': {'type': 'number', 'description': 'Maximum standardised earnings surprise (SUE), range -4 to +4.'}, 'eps_sue_min': {'type': 'number', 'description': 'Minimum standardised earnings surprise (SUE), a winsorized z-score bounded to the range -4 to +4. Positive means the latest reported earnings beat the trend-based expectation. Pass 1 for a one standard deviation beat.'}, 'pb_ratio_max': {'type': 'number', 'description': 'Maximum price to book ratio.'}, 'pe_ratio_max': {'type': 'number', 'description': 'Maximum trailing price to earnings ratio. Companies with no meaningful P/E, including loss makers, are excluded when this is set.'}, 'brina_gap_max': {'type': 'number', 'description': 'Maximum Brina Gap in percentage points. Use a negative value to isolate companies whose price implies more growth than fundamentals support.'}, 'brina_gap_min': {'type': 'number', 'description': 'Minimum Brina Gap in percentage points. Positive means the growth the business can fund exceeds the growth its price implies; negative means the price implies faster growth than the fundamentals support. Pass 3 for 3 percentage points.'}, 'fcf_yield_min': {'type': 'number', 'description': 'Minimum free cash flow yield in percent. Pass 5 for 5 percent.'}, 'peg_ratio_max': {'type': 'number', 'description': 'Maximum PEG ratio, price to earnings divided by growth.'}, 'market_cap_max': {'type': 'number', 'description': 'Maximum market capitalisation in US dollars.'}, 'market_cap_min': {'type': 'number', 'description': 'Minimum market capitalisation in US dollars, for example 2000000000 for 2 billion.'}, 'eps_cagr_3yr_min': {'type': 'number', 'description': 'Minimum 3 year diluted EPS compound annual growth rate in percent.'}, 'current_ratio_min': {'type': 'number', 'description': 'Minimum current ratio. Pass 1.5 for 1.5x.'}, 'momentum_12_1_max': {'type': 'number', 'description': 'Maximum 12 minus 1 price momentum in percent. Pass a negative value to isolate fallers.'}, 'momentum_12_1_min': {'type': 'number', 'description': 'Minimum 12 minus 1 price momentum in percent: total return including dividends over the last 12 months, skipping the most recent month. Pass 20 for 20 percent, or -30 for a 30 percent fall. Values are unbounded above, and the strongest names in the universe can read in the hundreds of percent. Companies listed under 13 months have no window and are excluded whenever any momentum filter is set.'}, 'zyberno_score_min': {'type': 'number', 'description': 'Minimum Zyberno quality score, on a 0 to 100 scale combining profitability, balance sheet strength and earnings consistency.'}, 'debt_to_equity_max': {'type': 'number', 'description': 'Maximum debt to equity ratio, as a ratio not a percent. Pass 1.5 for 1.5x.'}, 'earnings_yield_min': {'type': 'number', 'description': 'Minimum earnings yield in percent, the inverse of P/E. Pass 8 for 8 percent.'}, 'net_margin_ttm_min': {'type': 'number', 'description': 'Minimum trailing twelve month net margin in percent.'}, 'ev_ebitda_ratio_max': {'type': 'number', 'description': 'Maximum enterprise value to EBITDA ratio.'}, 'market_cap_category': {'enum': ['mega', 'large', 'mid', 'small', 'micro'], 'type': 'string', 'description': 'Restrict by size band, as an alternative to explicit market cap bounds. Bands are micro under $300M, small $300M to $2B, mid $2B to $10B, large $10B to $200B, mega $200B and above. Note that large excludes mega, so for the very largest companies use mega, and to cover both give market_cap_min instead.'}, 'gross_margin_ttm_min': {'type': 'number', 'description': 'Minimum trailing twelve month gross margin in percent.'}, 'margin_of_safety_max': {'type': 'number', 'description': 'Maximum Margin of Safety in percentage points. Pass 10 for 10 percent.'}, 'margin_of_safety_min': {'type': 'number', 'description': 'Minimum Margin of Safety in percentage points, where positive means the price sits below the discounted cash flow estimate. Pass 10 for 10 percent, not 0.1. Negative values are allowed.'}, 'revenue_cagr_3yr_min': {'type': 'number', 'description': 'Minimum 3 year revenue compound annual growth rate in percent.'}, 'momentum_12_1_pct_max': {'type': 'number', 'description': 'Maximum cross-sectional momentum percentile, 0 to 100.'}, 'momentum_12_1_pct_min': {'type': 'number', 'description': 'Minimum cross-sectional momentum percentile, 0 to 100, where 100 is the strongest momentum in the covered universe. Prefer this over the raw percentage when the user asks for strong or weak momentum in relative terms. Percentiles refresh on a monthly recompute, so they can lag the raw figure.'}, 'price_to_52w_high_max': {'type': 'number', 'description': 'Maximum ratio of current price to the 52 week high. Pass 0.7 to find stocks at least 30 percent below their high.'}, 'price_to_52w_high_min': {'type': 'number', 'description': 'Minimum ratio of current price to the 52 week high, where 1.0 means the stock is sitting at its high. Pass 0.95 for within 5 percent of the high.'}, 'revenue_yoy_growth_min': {'type': 'number', 'description': 'Minimum year over year revenue growth in percent.'}, 'operating_margin_ttm_min': {'type': 'number', 'description': 'Minimum trailing twelve month operating margin in percent.'}, 'owner_earnings_yield_min': {'type': 'number', 'description': 'Minimum owner earnings yield in percent. Owner earnings is the cash figure the discounted cash flow behind Margin of Safety is built on.'}, 'fundamental_growth_rate_max': {'type': 'number', 'description': 'Maximum fundamentally fundable growth rate in percent.'}, 'fundamental_growth_rate_min': {'type': 'number', 'description': 'Minimum fundamentally fundable growth rate in percent, defined as ROIC times reinvestment rate. This is the first half of the Brina Gap on its own.'}, 'interest_coverage_ratio_min': {'type': 'number', 'description': 'Minimum interest coverage ratio, operating income over interest expense.'}}, 'additionalProperties': False}
simulate_portfolio_outcomes
Monte Carlo distribution of portfolio outcomes
Runs a Monte Carlo simulation over a portfolio balance and returns the distribution of possible end values: percentiles, mean, median, and if you give a goal amount, the share of simulated paths that reached it. Returns are drawn from a normal distribution using the expected return and volatility you supply. Use when the user asks about the range or probability of outcomes rather than a single projected number, for example the odds of reaching a target, or how much volatility widens the spread. Do not use it to value a company (use calculate_dcf_value or get_stock_valuation), and do not use it for retirement withdrawal, tax, or drawdown-sequencing questions, which it does not model. The simulation propagates the assumptions you give it. Normally distributed returns understate real market tail risk, and the output is a property of the inputs, not a prediction about any real portfolio.
Lecture seule Accès externe Idempotent
Schéma d’entrée
{'type': 'object', 'required': ['current_balance', 'years', 'expected_annual_return_pct', 'annual_volatility_pct'], 'properties': {'years': {'type': 'integer', 'maximum': 60, 'minimum': 1, 'description': 'How many years to simulate forward.'}, 'goal_amount': {'type': 'number', 'minimum': 0, 'description': 'Optional target end value. When set, the result reports the share of simulated paths that finished at or above it.'}, 'simulations': {'type': 'integer', 'maximum': 50000, 'minimum': 1000, 'description': 'Number of simulated paths. Defaults to 10000. More paths stabilise the tails and cost more time.'}, 'fee_rate_pct': {'type': 'number', 'minimum': 0, 'description': 'Annual fee drag in percent, for example a fund expense ratio. Defaults to 0.'}, 'current_balance': {'type': 'number', 'minimum': 0, 'description': 'Starting portfolio value in currency units.'}, 'inflation_rate_pct': {'type': 'number', 'minimum': 0, 'description': "Annual inflation in percent. When set above 0, results are expressed in today's purchasing power. Defaults to 0."}, 'monthly_contribution': {'type': 'number', 'minimum': 0, 'description': 'Amount added every month. Defaults to 0.'}, 'annual_volatility_pct': {'type': 'number', 'minimum': 0, 'description': 'Annual standard deviation of returns in percent. Pass 15 for 15 percent. Broad equity indices have historically run in the mid teens.'}, 'expected_annual_return_pct': {'type': 'number', 'description': 'Expected average annual return in percent. Pass 7 for 7 percent.'}}, 'additionalProperties': False}
Ajouté
simulate_portfolio_outcomes
17 September 2026 12:38
Ajouté
screen_stocks
17 September 2026 12:38
Ajouté
list_flagged_stocks
17 September 2026 12:38
Ajouté
get_us_market_valuation
17 September 2026 12:38
Ajouté
get_stock_valuation
17 September 2026 12:38
Ajouté
calculate_dcf_value
17 September 2026 12:38