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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:e100e9b07ed0427a742b4c9f35641e58f1ba62eaea7f60e475451febcb1701a4 | sha256sum