Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,547Letters: 14Defects: 1,324counted 4 min ago
teppi

Server definition

Hash
sha256:e100e9b07ed0427a742b4c9f35641e58f1ba62eaea7f60e475451febcb1701a4
What it is
What a remote MCP server returned when asked what it offers: 7 tools

The blob, as servednamed by its sha256

{ "instructions": "Deterministic intrinsic valuations computed from SEC filings. Every figure traces to the filing that reported it. Prefer get_thesis for 'is this worth owning', and pass its numbers through verbatim — the point of this server is that the values are reproducible and auditable, so do not round, restate or recompute them. Every tool declares an outputSchema and returns structuredContent; read the numbers from there rather than re-typing them out of the text block. Models sometimes refuse (banks, REITs, negative free cash flow); a refusal is a result, report it as such. No live prices are available: ask the user for a price rather than guessing one.", "tools": [ { "description": "Is this a good business? Return on invested capital (or equity) against its cost of capital, and what management has done with the share count. Returns the year-by-year series as well as the averages, so the reading can be disputed without losing the evidence. These are signals, not verdicts — present them that way.", "inputSchema": { "properties": { "ticker": { "description": "Ticker symbol, e.g. AAPL. Case-insensitive.", "type": "string" } }, "required": [ "ticker" ], "type": "object" }, "name": "get_business_quality", "outputSchema": { "properties": { "engine_version": { "description": "Engine build that produced these figures.", "type": "string" }, "management": { "properties": { "debt_change": { "description": "Fractional change in debt.", "type": [ "number", "null" ] }, "share_count_change": { "description": "Fractional change; negative means buybacks.", "type": [ "number", "null" ] }, "share_count_end": { "description": "Shares at the end.", "type": [ "number", "null" ] }, "share_count_start": { "description": "Shares at the start of the window.", "type": [ "number", "null" ] } }, "type": "object" }, "moat": { "properties": { "net_margin_avg": { "description": "Net margin.", "type": [ "number", "null" ] }, "return_avg": { "description": "Average of the series.", "type": [ "number", "null" ] }, "return_metric": { "description": "ROIC where the filings support it, else ROE.", "type": [ "string", "null" ] }, "return_series": { "description": "Year-by-year, so the average can be disputed.", "type": "array" }, "return_vs_wacc": { "description": "Ratio; above 1 is the moat signal.", "type": [ "number", "null" ] }, "roe_avg": { "description": "Return on equity.", "type": [ "number", "null" ] }, "roic_avg": { "description": "Return on invested capital.", "type": [ "number", "null" ] }, "wacc": { "description": "Cost of capital the return is judged against.", "type": [ "number", "null" ] } }, "type": "object" }, "notes": { "description": "Caveats about what the filings did and didn't support.", "type": "array" }, "ticker": { "type": "string" }, "years_covered": { "description": "How many fiscal years the signals were computed over.", "type": "integer" } }, "required": [ "engine_version", "ticker", "moat", "management" ], "type": "object" } }, { "description": "At a price you supply, the annual return the base case implies. MeritValue holds no market-data licence, so it never returns a live quote — the caller must provide the price. Ask the user for it, or have them check a broker; do not guess one, and do not present a guessed price as a real one.", "inputSchema": { "properties": { "price": { "description": "Share price to test, in the company's reporting currency.", "type": "number" }, "ticker": { "description": "Ticker symbol, e.g. AAPL. Case-insensitive.", "type": "string" } }, "required": [ "ticker", "price" ], "type": "object" }, "name": "get_expected_return", "outputSchema": { "properties": { "assumptions": { "properties": { "fcf_base": { "description": "Base free cash flow.", "type": [ "number", "null" ] }, "fcf_growth": { "description": "Assumed growth rate.", "type": [ "number", "null" ] }, "net_debt": { "description": "Net debt.", "type": [ "number", "null" ] }, "shares_outstanding": { "description": "Share count.", "type": [ "number", "null" ] }, "terminal_growth": { "description": "Terminal growth rate.", "type": [ "number", "null" ] }, "years": { "type": "integer" } }, "type": "object" }, "currency": { "type": [ "string", "null" ] }, "disclaimer": { "type": "string" }, "engine_version": { "description": "Engine build that produced these figures.", "type": "string" }, "expected_return": { "description": "Annual return the base case implies, as a fraction. Null when it can't be solved.", "type": [ "number", "null" ] }, "price": { "description": "Echoed back — the price you supplied, never a quote.", "type": "number" }, "refused": { "description": "Present when the flagship DCF doesn't apply. A refusal is a result — report it, don't retry.", "type": "string" }, "ticker": { "type": "string" } }, "required": [ "engine_version", "ticker", "price", "expected_return" ], "type": "object" } }, { "description": "Normalized fundamentals per fiscal year — revenue, earnings, cash flow, capex, debt, shares — each carrying the CIK, accession number and XBRL tag it came from. Use when the user wants the underlying numbers or asks where a figure came from. Foreign filers report in their home currency; read the currency field.", "inputSchema": { "properties": { "ticker": { "description": "Ticker symbol, e.g. AAPL. Case-insensitive.", "type": "string" } }, "required": [ "ticker" ], "type": "object" }, "name": "get_fundamentals", "outputSchema": { "properties": { "cik": { "description": "SEC Central Index Key.", "type": [ "string", "number" ] }, "completeness": { "description": "Fraction of expected figures the filings actually supplied.", "type": [ "number", "null" ] }, "engine_version": { "description": "Engine build that produced these figures.", "type": "string" }, "fiscal_years": { "description": "How many years are covered.", "type": "integer" }, "name": { "type": "string" }, "ticker": { "type": "string" }, "warnings": { "type": "array" }, "years": { "description": "One entry per fiscal year. Each figure carries the CIK, accession number and XBRL tag it came from.", "items": { "type": "object" }, "type": "array" } }, "required": [ "engine_version", "ticker", "years" ], "type": "object" } }, { "description": "Every valuation model's verdict plus the fair-value range: DCF (5Y/10Y), earnings-power value, Graham number, P/E reversion. Refusals are included and are meaningful — a DCF declining to value a bank is a result, not a gap. Never present a refused model as missing data, and never substitute another model's number for it.", "inputSchema": { "properties": { "ticker": { "description": "Ticker symbol, e.g. AAPL. Case-insensitive.", "type": "string" } }, "required": [ "ticker" ], "type": "object" }, "name": "get_intrinsic_value", "outputSchema": { "properties": { "currency": { "description": "Reporting currency; foreign filers are not USD.", "type": [ "string", "null" ] }, "engine_version": { "description": "Engine build that produced these figures.", "type": "string" }, "fair_value_range": { "description": "Low/high across the models that applied, and how many did.", "properties": { "high": { "description": "Highest fair value.", "type": [ "number", "null" ] }, "low": { "description": "Lowest fair value.", "type": [ "number", "null" ] }, "models": { "type": "integer" } }, "type": "object" }, "models": { "description": "One entry per model, including the ones that refused.", "items": { "properties": { "applies": { "description": "False is a refusal, not missing data.", "type": "boolean" }, "assumptions": { "description": "Every input the model was run with, each naming where its default came from.", "items": { "properties": { "key": { "type": "string" }, "overridable": { "type": "boolean" }, "source": { "description": "Where the default came from — never silent.", "type": "string" }, "unit": { "enum": [ "ratio", "years", "usd" ], "type": "string" }, "value": { "type": "number" } }, "type": "object" }, "type": "array" }, "computed_at": { "type": "string" }, "currency": { "type": [ "string", "null" ] }, "engine_version": { "type": "string" }, "model": { "type": "string" }, "notes": { "description": "Why it refused, where it refused.", "type": "array" }, "outputs": { "description": "Model internals — the workings behind the value.", "type": [ "object", "null" ] }, "value_per_share": { "description": "Null when the model refused this company.", "type": [ "number", "null" ] } }, "required": [ "model", "value_per_share", "applies" ], "type": "object" }, "type": "array" }, "ticker": { "type": "string" }, "wacc": { "description": "Discount rate used by the DCF models.", "type": [ "number", "null" ] } }, "required": [ "engine_version", "ticker", "models" ], "type": "object" } }, { "description": "The thesis for a company, computed from its SEC filings: business quality and fair value in one breath. Deterministic — the same filings always produce the same sentences — and byte-identical to what meritvalue.com shows. Returns null when the filings support neither a moat read nor a fair value, rather than inventing one. Use this first when asked whether a company is worth owning.", "inputSchema": { "properties": { "ticker": { "description": "Ticker symbol, e.g. AAPL. Case-insensitive.", "type": "string" } }, "required": [ "ticker" ], "type": "object" }, "name": "get_thesis", "outputSchema": { "properties": { "basis": { "description": "The figures the sentences were derived from.", "properties": { "currency": { "type": [ "string", "null" ] }, "fair_value_range": { "description": "Low/high across the models that applied, and how many did.", "properties": { "high": { "description": "Highest fair value.", "type": [ "number", "null" ] }, "low": { "description": "Lowest fair value.", "type": [ "number", "null" ] }, "models": { "type": "integer" } }, "type": "object" }, "return_avg": { "description": "Average return on capital over the window.", "type": [ "number", "null" ] }, "return_metric": { "description": "'roic' or 'roe' — which one the filings supported.", "type": [ "string", "null" ] }, "share_count_change": { "description": "Fractional change in shares; negative means buybacks.", "type": [ "number", "null" ] }, "wacc": { "description": "Weighted average cost of capital.", "type": [ "number", "null" ] } }, "type": "object" }, "disclaimer": { "type": "string" }, "engine_version": { "description": "Engine build that produced these figures.", "type": "string" }, "name": { "type": "string" }, "thesis": { "description": "Null when the filings support neither a moat read nor a fair value. Quote verbatim.", "properties": { "business": { "description": "Business-quality sentence.", "type": [ "string", "null" ] }, "value": { "description": "Valuation sentence.", "type": "string" } }, "type": [ "object", "null" ] }, "ticker": { "type": "string" } }, "required": [ "engine_version", "ticker", "thesis" ], "type": "object" } }, { "description": "Rank covered companies by a chosen model's value. Requires a key with screening enabled — a 403 means the key lacks it, which is a plan limit and not an error to retry.", "inputSchema": { "properties": { "limit": { "description": "Max results (1–500, default 50).", "type": "integer" }, "model": { "description": "Valuation model to rank by.", "enum": [ "dcf-growth-exit-5y", "dcf-growth-exit-10y", "graham-number", "epv-equity" ], "type": "string" } }, "type": "object" }, "name": "screen_undervalued", "outputSchema": { "properties": { "count": { "type": "integer" }, "engine_version": { "description": "Engine build that produced these figures.", "type": "string" }, "min_completeness": { "description": "Filings below this threshold are excluded rather than published wrong.", "type": [ "number", "null" ] }, "model": { "type": "string" }, "results": { "items": { "type": "object" }, "type": "array" } }, "required": [ "engine_version", "model", "count", "results" ], "type": "object" } }, { "description": "Resolve a company name or partial ticker to covered companies — 'coca cola' finds KO. Use this before the other tools when you have a name rather than a symbol. Coverage is US filers with SEC filings.", "inputSchema": { "properties": { "limit": { "description": "Max results (1–50, default 10).", "type": "integer" }, "query": { "description": "Company name or ticker fragment.", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_companies", "outputSchema": { "properties": { "engine_version": { "description": "Engine build that produced these figures.", "type": "string" }, "query": { "type": "string" }, "results": { "items": { "type": "object" }, "type": "array" } }, "required": [ "engine_version", "query", "results" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:e100e9b07ed0427a742b4c9f35641e58f1ba62eaea7f60e475451febcb1701a4 | sha256sum