Fair Value MCP Server
A read-only, deterministic-first financial valuation server exposing 14 calculate_* MCP tools (135 methods) aligned to IVS 2025 and IFRS/IAS, each returning a result envelope with value, statistics, assumptions and verbatim standards citations.
Intrinsic / DCF (
calculate_dcf): FCFF/FCFE DCF, NPV/IRR, annuity, growing annuity, perpetuity, Gordon and exit-multiple terminal values, IAS 36 VIU pre-tax, rNPV, IFRS 16 lease PV.Cost of capital (
calculate_discount_rate): WACC, CAPM, startup CAPM, build-up, country/currency risk adjustments, ESG premium, portfolio beta, incremental borrowing rate — returns a rate to feed DCF.Market approach (
calculate_market_multiple): EV/Revenue, EV/EBITDA, EV/ARR, EV/GMV, P/E, P/B, P/S, cap rate, regression, royalty-cap, DDM.IFRS measurement & residual (
calculate_residual): goodwill/PPA, IAS 36 impairment, inventory NRV, held-for-sale, debt waterfall, cap table, SOTP, SPAC redemption, IAS 40 property, IAS 16 PP&E revaluation, IAS 41 biological assets, residual income, justified P/B, relief-from-royalty, MPEEM, with-and-without, IVS 410 development residual.Credit risk / IFRS 9 (
calculate_credit_loss): 12-month, lifetime and staged ECL, PD/LGD/EAD, provision matrix, PD from spread, cumulative PD, hazard rates, CVA/DVA.Actuarial PV (
calculate_actuarial_pv): IFRS 17 GMM/PAA/VFA, IAS 19 projected unit credit, IAS 37 provisions.Fair value adjustments / IFRS 13 (
calculate_fair_value_adjustment): DLOM, DLOC, control premium, minority discount, highest-and-best-use, fair-value hierarchy level.Options & warrants (
calculate_option): Black-Scholes, Black-76, CRR American, Garman-Kohlhagen FX, barrier, Asian, digital, range, IFRS 2 share-based awards.Structured products (
calculate_structured_product): CBBCs, derivative and inline warrants, ELN/ELI, autocallables, credit-linked notes, accumulators/decumulators, TRS, CFDs.Convertible bonds (
calculate_convertible_bond): Tsiveriotis-Fernandes, intensity, finite-difference, LSMC and QuantLib lattices with coupons, issuer calls, holder puts and bond floor.Fixed income (
calculate_fixed_income): bond price/yield/duration/convexity, matrix pricing interpolation, discount factors, zero-curve bootstrap, forward rates, curve discounting.Loss-making / pre-profit (
calculate_loss_making_company): margin-ramp DCF, revenue multiple, Merton structural equity, VC method, distressed waterfall, bank residual income, SPAC deal — returning dispersion (σ, percentiles).Expected value (
calculate_expected_value): discrete, continuous, scenario weighting, seeded Monte Carlo, decision trees, football-field ranges.Sector metrics (
calculate_sector_metrics): SaaS (ARR, NRR, magic number, Rule of 40), marketplace take rate/GMV, LTV/CAC, token/NVT/Metcalfe, break-even, gross margin, TRL.Operational traits: strict no-default validation returning
INVALID_ARGUMENTerror envelopes instead of exceptions,-help/help=truetransparency records, read-only/idempotent annotations, and the same core served over MCP stdio, Streamable HTTP, or the/v1REST API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fair Value MCP Server run a DCF valuation for 9988.HK"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fair Value
Professional financial valuation system for OpenCode with IFRS/IVS compliance.
mcp-name: com.ascent-partners/fair-value
Overview
A single valuation core — exposed as an MCP server, a REST API, and a
Python library — whose 14 native calculate_* tools / 135 methods cover
corporate, startup, and intangible valuation aligned to IVS 2025 and
IFRS/IAS:
DCF / NAV / CCA / residual income, market multiples, cost of capital (WACC, Fama-French 5-Factor, build-up)
Options, fixed income (term-structure curves), convertible bonds, structured products
IFRS 9 / HKFRS 9 credit risk (ECL, PD/LGD, CVA/DVA), actuarial PV (IFRS 17, IAS 19, IAS 37)
Fair-value adjustments (IFRS 13), expected value, and loss-making-company methods
Every result is a deterministic-first envelope carrying the centre value,
solution_type, statistics (σ / percentiles, and seeded samples for the few
stochastic methods), and citations resolving to verbatim IVS/IFRS clauses.
120 / 135 methods carry standards citations and the taxonomy has 0 orphan
clauses, enforced by a conformance gate in CI.
Related MCP server: agentladle-mcp-reoi
Quick start (≤ 5 minutes)
Fastest path — no install:
Hosted MCP (Streamable HTTP):
https://fair-value.ascent-partners.com/mcpHosted REST:
https://fair-value.ascent-partners.com/v1/healthFrontage & docs:
https://fair-value.ascent-partners.com/Run locally, no install:
uvx --from "fair-value[mcp]" fair-value-mcp
Then call any of the 14 calculate_* tools (add -help / help=true for the
generated transparency record). Client config: MCP Server.
Architecture
flowchart LR
CLIENT["AI agent / OpenCode"] -->|"stdio (uvx) or Streamable HTTP"| MCP["fair-value-mcp<br/>14 calculate_* tools · 135 methods"]
HOST["Hosted · fair-value.ascent-partners.com<br/>docs/landing at / · MCP at /mcp · REST at /v1"] --> CLIENT
MCP --> REG["method-spec registry<br/>(valuation://methods)"]
REG --> STD["standards taxonomy + corpus<br/>IVS 2025 · IFRS/IAS · (valuation://standards)"]
REG --> CORE["valuation engine<br/>DCF · NAV · CCA · WACC (FF5) · derivatives<br/>credit risk · actuarial"]
CORE --> DATA["inputs from apdb-etl (cited)"]
CORE --> ENV["result envelope<br/>value + statistics + citations"]Installation
pip install -r requirements.txt # dev workflow
# or, as a package:
pip install . # base library
pip install ".[mcp]" # + MCP server dependencies (fastmcp)The console command fair-value-mcp runs the MCP server (stdio; add --http for Streamable HTTP).
MCP Server
# run locally without installing (stdio)
uvx --from "fair-value[mcp]" fair-value-mcp
# or install and run
pip install "fair-value[mcp]"
fair-value-mcp # stdio
fair-value-mcp --http # Streamable HTTPThe server exposes 14 native calculate_* tools spanning DCF, cost of capital,
market multiples, residual/asset valuation, options, expected value, credit
risk, actuarial PV, sector metrics, fair-value adjustments, convertible bonds,
structured products, loss-making companies, and fixed income —
all derived from one method-spec registry. Add -help to any
tool (or help=true) for its generated documentation with formula reference,
inputs, and governing clauses.
Adoption target: ≥ 100 PyPI downloads and ≥ 1 directory listing within 90 days of the first release (tracked via the PyPI stats API and the directory listing).
REST API
The same core is exposed at /v1 (served next to MCP by mcp_server.asgi:app):
curl -s localhost:8000/v1/health
curl -s -X POST localhost:8000/v1/calculate/calculate_dcf \
-H 'content-type: application/json' \
-d '{"method":"dcf","cash_flows":[100,110],"discount_rate":0.1}'Endpoints: /v1/health, /v1/tools, /v1/methods, /v1/standards,
/v1/openapi.json, /v1/docs (Swagger UI), /v1/help/{tool},
POST /v1/calculate/{tool}. See REST API.
Web frontage (Next.js)
The hosted domain serves a Next.js frontage — landing, complete docs, methods
catalogue (one page per method), standards browser, and an API playground —
alongside the MCP/REST function in one Vercel project. It is data-driven: the
catalogue is generated from the registry at build time
(scripts/gen_web_data.py → data/catalog.json).
pnpm install
pnpm dev # http://localhost:3000 (expects /v1 from the API for the playground)
pnpm build # prebuild regenerates data/catalog.json
pnpm typecheck && pnpm lintRouting: / and /docs/* are Next.js; /mcp and /v1/* are rewritten to the
Python function (api/index.py). The frontage is localized — en at /,
zh at /zh, hk at /hk — via per-locale root layouts with hreflang.
Quick Start (Python)
from valuation_engine import run_valuation
result = run_valuation('9988.HK', 'dcf') # DCF valuation (shared envelope)Standards & citations
The standards alignment is data, not code: standards/taxonomy.json maps
each method to its IVS and IFRS/IAS clauses, standards/source/*.md holds the
verbatim clause text (with standards/provenance.json recording edition and
source), and standards/coverage-baseline.json is the coverage ratchet. The
engine attaches solution_type and citations to every envelope, and
scripts/check_conformance.py fails CI if a published method loses its citation
or the taxonomy/corpus drifts. See Standards reference.
Module structure
flowchart LR
SEED["method_spec_seed.py<br/>method tables · 135 methods"] --> SPEC["method_spec.py<br/>parameter vocabulary"]
SPEC --> SURF["tool_surface.py<br/>15 calculate_* tools"]
SPEC --> STD["standards.py<br/>taxonomy · citations"]
SURF --> SRV["server.py (FastMCP)"]
SRV --> STDIO["stdio · uvx fair-value-mcp"]
SRV --> HTTP["Streamable HTTP · fair-value-mcp --http"]
ASGI["asgi.py (+ rest.py, openapi.py)"] --> HOST["Hosted · / + /v1"]
SRV --> DOCS["docs.py<br/>-help transparency records"]
STD -.->|resources| RES["valuation://methods · valuation://standards"]
SRV -.-> DOCSsrc/
├── constants.py # standards references
├── valuation/ # DCF, NAV, CCA, asset standards (relief-from-royalty, MPEEM, residual)
├── cost_of_capital/ # WACC, FF5, KMV
├── credit_risk/ # ECL, PD/LGD, CVA/DVA
├── derivatives/ # options, swaps, convertible bonds, structured products, fixed income
└── output/ # shared result envelope (value + statistics + citations)
mcp_server/
├── method_spec.py + method_spec_seed.py # single source of truth for tools/methods
├── standards.py # taxonomy loader, citations, coverage
├── tool_surface.py · engine.py · handlers.py · server.py
├── docs.py · rest.py · openapi.py · asgi.py
└── catalog.py · prompts.py # valuation:// resources + guided prompts
standards/ # taxonomy.json · source/*.md · provenance · baseline
scripts/ # check_conformance.py · gen_docs.pyRequest lifecycle
sequenceDiagram
autonumber
participant C as MCP / REST / Python caller
participant E as validation + dispatch
participant R as method-spec registry
participant S as standards taxonomy
participant M as computation modules (src/)
participant O as output envelope
C->>E: calculate_*(...) / POST /v1/calculate/*
E->>R: resolve method + validate parameters (no defaults)
R-->>E: method spec
E->>M: dispatch to valuation / cost_of_capital / credit_risk / derivatives
E->>S: attach solution_type + citations
M-->>E: value + steps + assumptions
E->>O: ok() / error() envelope (value · statistics · citations)
O-->>C: status · method · value · statistics · assumptions · citations · disclaimerDevelopment
CI and deployment run through the APG workbench pipeline.
Requirements
Python 3.10+
pandas, numpy, scipy, python-dateutil
fastmcp (MCP extra), openpyxl, pdfplumber, python-docx
QuantLib, pandas_datareader, pytesseract/easyocr (all optional, with native fallbacks)
Documentation
Docs site:
mkdocs build(seemkdocs.yml); method reference auto-generated byscripts/gen_docs.pySKILL.md— capability spec;valuation://methods/valuation://standards— machine-readable catalogues
Standards compliance
IVS 2025 — International Valuation Standards (103, 105, 210, 220, 230, 300, 400, 410, 500)
IFRS 13 Fair Value Measurement; IFRS 9 Financial Instruments; IFRS 16 Leases; IFRS 17 Insurance Contracts
IAS 36 Impairment of Assets; IAS 19 Employee Benefits; IAS 37 Provisions, Contingent Liabilities and Contingent Assets
License
Released under the MIT License.
Available Tools
14 toolscalculate_actuarial_pvActuarial present valueARead-onlyIdempotentInspect
Actuarial present value engine. Discount expected cash flows with mortality, survival, and risk adjustment for insurance and benefit obligations, generalising IFRS 17 (fulfilment cash flows), IAS 19 (employee benefits), IFRS 2 (share-based payments), and IAS 37 (provisions). Use this for regulated IFRS/HKFRS obligations only; it does NOT do generic project or scenario probability weighting (use calculate_expected_value). Methods: ifrs17_gmm: cash_flows, discount_rate, risk_adjustment; ifrs17_paa: premiums, claims_cash, acquisition_cash_flows, coverage_periods; ifrs17_vfa: cash_flows, discount_rate, underlying_items_return, risk_adjustment; ias19_puc: projected_benefits, discount_rate, attribution_years; ias37_provision: outcomes, probabilities, discount_rate, periods. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), periods, outcomes, premiums, +10 more. Returns: Shared result envelope returned by every tool.
calculate_convertible_bondConvertible and exchangeable bond valuationARead-onlyIdempotentInspect
Convertible-bond engine. Value callable and puttable convertible or exchangeable bonds with credit risk using a Tsiveriotis-Fernandes lattice (equity discounted at the risk-free rate, debt at a credit spread), with conversion, issuer call, holder put, coupon schedule, and a straight-bond floor. Use this for convertible and exchangeable bonds; for a plain bond or rate curve use calculate_fixed_income, and for a standalone option or warrant use calculate_option. The lattice_tsf, lattice_intensity, finite_difference, lsmc and quantlib methods are alternative numerical schemes for the same valuation and take identical inputs (Tsiveriotis-Fernandes is the reference, lsmc is Monte Carlo, quantlib needs the optional engine); choose one. Methods: lattice_tsf/lattice_intensity/finite_difference/lsmc/quantlib: spot, face, coupon_rate, maturity, conversion_ratio, volatility, risk_free, credit_spread, call_schedule, put_schedule, rights_priority. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), face, spot, maturity, +8 more. Returns: Shared result envelope returned by every tool.
calculate_credit_lossCredit loss and impairmentARead-onlyIdempotentInspect
Credit-risk engine (IFRS 9 / HKFRS 9). Compute 12-month, lifetime, and staged expected credit loss, PD/LGD/EAD, provision matrices, hazard rates, and CVA/DVA. Use this for impairment, fair-value credit adjustment, and loan-loss provisioning; for the credit component of a specific convertible bond use calculate_convertible_bond, and for liquidity, control or marketability discounts rather than credit loss use calculate_fair_value_adjustment. Methods: ecl_12m: ead, pd, lgd; ecl_lifetime: ead, pd_lifetime, lgd; ecl_staged: ead, pd_12m, pd_lifetime, lgd, stage; provision_matrix: receivables_ageing, loss_rates; pd_from_spread: credit_spread, recovery, tenor_years; cumulative_pd: annual_pd, years; hazard: hazard_rate, tenor_years; cva_dva: exposure_profile, pd, lgd, discount_rate. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), pd, ead, lgd, +13 more. Returns: Shared result envelope returned by every tool.
calculate_dcfDiscounted cash flow valuationARead-onlyIdempotentInspect
Discounted cash flow valuation engine. Choose a method and supply its exact inputs to value a business from projected free cash flows, dividends, residual income, or economic profit. Covers FCFF/FCFE DCF, NPV/IRR, terminal values, and multi-stage growth. Use this for going-concern cash-flow businesses; for asset-anchored or financial firms use calculate_residual, for peer-based pricing use calculate_market_multiple, and for pre-profit companies use calculate_loss_making_company. Methods: dcf/npv: cash_flows, discount_rate; annuity: payment, discount_rate, periods; growing_annuity: payment, discount_rate, growth_rate, periods; perpetuity: payment, discount_rate; terminal_gordon: final_cash_flow, discount_rate, perpetual_growth; terminal_multiple: final_cash_flow, exit_multiple; viu_pre_tax: cash_flows, pre_tax_discount_rate; rnpv: cash_flows, discount_rate, probabilities; lease_pv: lease_payments, incremental_borrowing_rate. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), payment, periods, cash_flows, +9 more. Returns: Shared result envelope returned by every tool.
calculate_discount_rateCost of capital and discount ratesARead-onlyIdempotentInspect
Cost-of-capital engine. Compute WACC, cost of equity (CAPM), cost of debt, unlevered/relevered beta, and country or size premiums from an explicit capital structure and market inputs. Use this to derive the discount rate an income-approach valuation needs; it returns a rate, not a valuation, so feed the result to calculate_dcf, or to calculate_residual for IFRS-basis measurement. Methods: wacc: equity_weight, debt_weight, cost_equity, cost_debt, tax_rate; capm: risk_free, beta, market_return; startup_capm: risk_free, beta, market_risk_premium, size_premium, illiquidity_premium; build_up: risk_free, equity_risk_premium, size_premium, industry_premium, specific_premium; currency_adjusted: base_rate, currency_risk_premium, country_risk_premium; country_risk: sovereign_yield, us_risk_free; esg: base_rate, esg_risk_premium, esg_opportunity_discount; portfolio_beta: weights, betas; ibr: risk_free, credit_spread, tenor_years. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), beta, betas, weights, +22 more. Returns: Shared result envelope returned by every tool.
calculate_expected_valueExpected value and probability weightingARead-onlyIdempotentInspect
Expected-value engine. Compute expected values over discrete, continuous, simulated, or tree-structured uncertainty, plus football-field ranges. Use this for generic probability weighting of scenarios, Monte-Carlo and decision trees; it does NOT perform IFRS/HKFRS measurement of provisions, insurance or employee-benefit obligations (use calculate_actuarial_pv), and it does not price path-dependent payoffs (use calculate_structured_product). Methods: discrete: outcomes, probabilities; continuous: distribution, mean, std, lower, upper; scenario: scenarios; monte_carlo: iterations, distributions, base_params, seed; decision_tree: tree; football_field: estimates. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), std, mean, seed, +11 more. Returns: Shared result envelope returned by every tool.
calculate_fair_value_adjustmentFair value adjustments (IFRS 13)ARead-onlyIdempotentInspect
Fair-value-adjustment engine (IFRS 13). Compute exit-price adjustments including credit, liquidity, control and marketability discounts, blockage, and the fair-value hierarchy level. Use this to move from an indicated value to the fair value recognised in the accounts; for liquidity/marketability inputs of a listed instrument prefer calculate_market_multiple, and for expected credit loss use calculate_credit_loss. Methods: dlom: base_value, restricted_period, volatility, risk_free; dloc: base_value, transaction_cost_pct; control_premium: base_value, control_premium_pct; minority_discount: base_value, minority_discount_pct; highest_best_use: base_value, alternative_use_values; hierarchy_level: inputs. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), inputs, risk_free, base_value, +6 more. Returns: Shared result envelope returned by every tool.
calculate_fixed_incomeFixed income and term structure analyticsARead-onlyIdempotentInspect
Fixed-income engine. Price plain coupon bonds, solve for yield to maturity, measure interest-rate sensitivity via Macaulay and modified duration and convexity, and build a HIBOR/HKD-style term structure: bootstrap a zero curve from par rates, infer forward rates, and discount cash flows on the curve. Use this for vanilla bonds, rate risk and discount curves; for convertibles use calculate_convertible_bond and for structured payoffs use calculate_structured_product. Methods: bond_price/duration/convexity: face, coupon_rate, years, ytm, frequency; bond_yield: face, coupon_rate, years, price, frequency; matrix_pricing: target_tenor, benchmark_tenors, benchmark_yields; discount_factor: rate, years, frequency; zero_curve: par_rates, tenors, frequency; forward_rate: zero_rates, tenors, t1, t2; pv_curve: cash_flows, times, zero_rates, tenors. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), t1, t2, ytm, +14 more. Returns: Shared result envelope returned by every tool.
calculate_loss_making_companyLoss-making and pre-profit company valuationARead-onlyIdempotentInspect
Loss-making-company engine. Value currently unprofitable companies with margin-ramp DCF, revenue multiples, Merton structural equity, the VC method, distressed waterfalls, bank residual income, and SPAC deals; every method returns a central value plus a dispersion (sigma, percentiles, long-tail). Use this when earnings-based multiples break down; for standalone probability weighting of arbitrary scenarios use calculate_expected_value, and for a single going-concern DCF use calculate_dcf. Methods: margin_ramp_dcf: revenue, growth_rate, start_margin, target_margin, ramp_years, discount_rate, years, shares_outstanding, net_debt, range_method; revenue_multiple: revenue, ev_revenue_multiple, net_debt, shares_outstanding, range_method; merton_equity: firm_value, firm_volatility, debt, risk_free, maturity, range_method; vc_method: terminal_value, target_return, investment, shares_outstanding, range_method; distressed_waterfall: enterprise_value, claims, range_method; bank_residual_income: book_value, net_income, cost_equity, growth_rate, range_method; spac_deal: trust_cash, shares_outstanding, redemption_price, range_method. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), debt, years, claims, +23 more. Returns: Shared result envelope returned by every tool.
calculate_market_multipleMarket multiples and comparable pricingARead-onlyIdempotentInspect
Market-multiple engine. Apply peer multiples (P/E, P/B, EV/EBITDA, EV/Sales, PEG and more) or derive implied multiples to price a company on a comparable basis. Use this for market-approach pricing where peers exist; it does peer multiples only — for intrinsic cash-flow value use calculate_dcf, and for residual-income or IFRS-basis measurement use calculate_residual. Methods: ev_revenue: revenue, ev_revenue_multiple; ev_ebitda: ebitda, ev_ebitda_multiple; ev_arr: arr, ev_arr_multiple; ev_gmv: gmv, ev_gmv_multiple; pe: eps, pe_multiple; pb: book_value_per_share, pb_multiple; ps: sales_per_share, ps_multiple; cap_rate: net_operating_income, cap_rate; regression: intercept, growth_rate, growth_coefficient, market_maturity, maturity_coefficient; royalty_cap: revenue, royalty_rate, discount_rate; ddm: dividend_per_share, cost_equity, growth_rate. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), arr, eps, gmv, +22 more. Returns: Shared result envelope returned by every tool.
calculate_optionOption and warrant pricingARead-onlyIdempotentInspect
Option-pricing engine. Price European and American options and warrants (Black-Scholes, Black-76, CRR binomial, Garman-Kohlhagen FX, digital, range, share-based) and their greeks. Use this for a single contingent claim or warrant on one underlying; it does NOT price listed structured payoffs such as CBBCs, inline/derivative warrants or autocallables (use calculate_structured_product). Methods: black_scholes: spot, strike, maturity, risk_free, volatility, option_type; black76: forward, strike, maturity, risk_free, volatility, option_type; binomial_american: spot, strike, maturity, risk_free, volatility, option_type, steps; garman_kohlhagen: spot, strike, maturity, domestic_rate, foreign_rate, volatility, option_type; barrier_first_passage: spot, strike, maturity, risk_free, volatility, option_type, barrier, barrier_type; asian_average: spot, strike, maturity, risk_free, volatility, option_type, average_type; digital: spot, strike, maturity, risk_free, volatility, cash_payout; range: spot, lower_strike, upper_strike, maturity, risk_free, volatility, payout; share_based: share_price, exercise_price, expected_life, volatility, risk_free, dividend_yield. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), spot, steps, payout, +18 more. Returns: Shared result envelope returned by every tool.
calculate_residualIFRS measurement, residual income and non-financial fair valueARead-onlyIdempotentInspect
IFRS/HKFRS measurement engine. Compute goodwill and purchase-price allocation, impairment (IAS 36), inventory net realisable value, held-for-sale, debt waterfalls, cap tables, sum-of-the-parts and SPAC redemption; residual income and justified price-to-book; and non-financial asset fair value: investment property (IAS 40 / HKAS 40), PP&E revaluation via depreciated replacement cost (IAS 16) and biological assets at fair value less costs to sell (IAS 41). Use this for accounting-basis measurement of assets and equity; for going-concern cash flow use calculate_dcf and for peer multiples use calculate_market_multiple. Methods: goodwill: purchase_price, fair_value_net_identifiable_assets; ppa: purchase_price, tangible_assets_fv, identified_intangibles_fv; impairment_fvlcd: carrying_value, fair_value_less_costs_to_dispose; impairment_viu: carrying_value, value_in_use; inventory_nrv: carrying_value, net_realisable_value; held_for_sale: carrying_value, fair_value_less_costs_to_sell; debt_waterfall/cap_table: enterprise_value, claims; sotp: segments, net_debt, holding_discount; spac_redemption: trust_cash, shares_outstanding, redemption_price; investment_property: noi, cap_rate; ppe_revaluation: replacement_cost, accumulated_depreciation; biological_asset: expected_price, quantity, costs_to_sell; residual_income: book_value, net_income, cost_equity; justified_pb: roe, cost_equity, growth_rate; relief_from_royalty: revenue, royalty_rate, discount_rate, periods; mpeem: cash_flows, contributory_charges, discount_rate; with_without: with_cash_flows, without_cash_flows, discount_rate; recoverable_amount: fair_value_less_costs_to_dispose, value_in_use; liability_fulfilment: fulfilment_costs, mark_up, discount_rate; inventory_residual: selling_price, costs_to_complete, profit_allowance; development_residual: gross_development_value, development_costs, developer_profit. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), noi, roe, claims, +42 more. Returns: Shared result envelope returned by every tool.
calculate_sector_metricsSector-specific operating metricsARead-onlyIdempotentInspect
Sector-metric engine. Compute the metrics that anchor valuation in specific industries: SaaS (ARR, NRR, magic number, Rule of 40), marketplaces (take rate, GMV multiple), lending (LTV/CAC), and crypto (NVT, Metcalfe). It returns operating metrics, not a valuation; use them as inputs to calculate_market_multiple or calculate_dcf. Methods: ltv: arpu, gross_margin, churn_rate; cac: sales_marketing_expense, new_customers; arr: subscription_values; nrr: starting_revenue, ending_revenue, expansion_revenue; magic_number: net_new_arr, sales_marketing_expense_prior; rule_of_40: growth_rate, profit_margin; take_rate: revenue, gmv; gmv_multiple: gmv, ev_gmv_multiple; retention: retained_customers, starting_customers; trl: market_size, market_share, margin, exit_multiple, trl_discount; break_even: fixed_costs, asp, variable_cost; gross_margin: asp, variable_cost; token: transaction_volume, price_per_tx, velocity, supply; nvt: market_cap, transaction_volume; metcalfe: n, coefficient. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), n, asp, gmv, +30 more. Returns: Shared result envelope returned by every tool.
calculate_structured_productStructured product and derivative pricingARead-onlyIdempotentInspect
Structured-product engine. Value HKEX-listed and OTC structures: CBBCs, derivative and inline warrants, equity-linked notes and investments, autocallables, accumulators and decumulators, credit-linked notes, TRS, and CFDs. Use this for equity-linked and credit-linked payoff structures; for a plain option or warrant use calculate_option, for a convertible or exchangeable bond use calculate_convertible_bond, and for a vanilla bond or term structure use calculate_fixed_income. Methods: cbbc: notional, spot, strike, barrier, barrier_type, maturity, risk_free, volatility, option_type; cbbc_residual: notional, spot, call_price, entitlement, barrier, barrier_type, maturity, risk_free, volatility, option_type; derivative_warrant: notional, spot, strike, maturity, risk_free, volatility, average_type, option_type; inline_warrant: notional, spot, lower_strike, upper_strike, maturity, risk_free, volatility, payout; inline_warrant_avg: notional, spot, lower_strike, upper_strike, maturity, risk_free, volatility, payout, fixing_days; eli/eln: notional, spot, strike, maturity, risk_free, volatility, coupon_rate; autocallable: notional, spot, knock_out_level, observation_dates, coupon_rate_structured, maturity, risk_free, volatility; credit_linked_note: notional, credit_spread, recovery, maturity, risk_free, coupon_rate_structured; accumulator/decumulator: notional, spot, strike, knock_out_level, observation_dates, risk_free, volatility; trs: notional, spot, maturity, risk_free, dividend_yield; cfd: notional, spot, strike, maturity, risk_free. Supply exactly one method with its declared inputs (no defaults). An unknown method, a missing input, or an extra field returns an error envelope (code INVALID_ARGUMENT) instead of raising.
Inputs: method (required), spot, payout, strike, +20 more. Returns: Shared result envelope returned by every tool.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 14 tools
Each tool targets a distinct valuation or measurement domain (e.g., fixed income, convertibles, options, structured products, actuarial PV), and the descriptions explicitly cross-reference where boundaries might blur (e.g., DCF vs loss-making vs market multiples). No two tools appear to do the same thing.
All 14 tools follow the calculate_<noun> snake_case pattern, with a consistent verb and readable, descriptive noun phrases. Minor abbreviation use (dcf, pv) does not break the pattern.
14 tools fall within the well-scoped 3-15 range for a broad fair-value engine, and each tool earns its place by covering a distinct subdomain. No obvious redundancy or missing tool is present at this level.
The surface covers income, market, and cost approaches; financial instruments (fixed income, options, structured products, convertibles, credit); IFRS measurement (goodwill, impairment, PP&E, investment property, biological assets, provisions); and supporting metrics. No major gaps are evident for the stated fair-value purpose.
Maintenance
Related MCP Connectors
IFRS engine: 31 standards, 20 tools. Journal entries, XBRL tags, ECL, CGU impairment, deferred tax.
Deterministic company valuation and corporate finance tools for AI agents — IRR, NPV, MOIC, DCF, WACC, enterprise value, EV multiples, CAPM, beta and sensitivity analysis via Model Context Protocol. Useful for financial analysis, equity analysis, quantitative analysis, financial projections, financial formulas and financial modeling.
13-model stock valuation engine for AI agents - fair values for 5,900+ US stocks, updated daily.
Institutional hotel valuations in seconds: NOI/cap rate, USALI P&L, IRR/MOIC, markets, compsets.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides professional-grade financial analysis tools for Thai stock markets, including PE Band Analysis, DDM, DCF valuation models, real-time SET Watch API data, complete financial statements, and historical ratio analysis with investment recommendations.MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to perform multi-stage residual income projections, discounting, and enterprise value bridging analysis using standardized financial data inputs.120 PyPIMIT
- AlicenseNot gradedqualityBmaintenanceStandardized DCF valuation engine for stocks (A-shares, Hong Kong, US, Japan). One run_dcf tool with an analyst-style two-phase flow: baseline valuation from 5-year historicals, then a final valuation with reasoned assumptions — value bridge, sensitivity matrix, reverse DCF. Deterministic: same inputs, same result.1AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceProvides quantitative analytics and statistical inference for financial data, including Monte Carlo DCF valuation, risk metrics, and trend regression diagnostics, enabling natural language-driven financial analysis via Claude Desktop.MIT