{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T05:55:18.536Z","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics","markdownUrl":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics.md","server":{"slug":"pyeconomics-dev-pyeconomics","name":"pyeconomics","registryName":"io.github.pyeconomics-dev/pyeconomics","description":"Tested, cited economics and finance models and data, with a provenance manifest per result.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"pyeconomics","type":"pypi","identifier":"pyeconomics","withdrawn":false,"url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics","version":"1.0.0b1","transport":"stdio","scoredAt":"2026-11-06T04:43:57.964Z"},"score":{"total":72,"tier":"medium","status":"scored","weekDelta":4,"history":[{"date":"2026-11-06","total":72},{"date":"2026-11-05","total":83},{"date":"2026-11-04","total":68},{"date":"2026-11-03","total":68},{"date":"2026-11-02","total":83},{"date":"2026-11-01","total":68},{"date":"2026-10-31","total":68},{"date":"2026-10-30","total":68},{"date":"2026-10-29","total":83},{"date":"2026-10-28","total":68}]},"categories":[{"name":"Supply Chain Security","score":49,"verdict":"partial","reasons":["Malware scan not yet available for this package.","No known CVEs affecting this package version or its production dependencies.","Runs uv_build at install time, a recognised build step with no custom scripting around it.","4 of 28 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_no_verdict"}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"uv_build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"28","unhealthy":"4"}}]},{"name":"Provenance & Transparency","score":100,"verdict":"pass","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to pyeconomics-dev/pyeconomics).","Clear OSI-approved license (Apache-2.0).","Actively maintained (last published 8 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"pyeconomics-dev/pyeconomics"}},{"code":"license.osi","args":{"spdx":"Apache-2.0"}},{"code":"maintenance.recent","args":{"age_days":"8"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":85,"verdict":"fail","reasons":["100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).","AI-judged instruction clarity (good).","Context-footprint check failed: tool/resource definitions use about 2773 tokens (~126/item across 22 items; 21 tools + 1 resources), over budget; trim descriptions and params.","Tools include usage examples."],"codes":[{"code":"schema.descriptions","args":{"pct":"100"}},{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_heavy","args":{"avg":"126","items":"22","tools":"21","tokens":"2773","resources":"1"}},{"code":"schema.examples","args":{}}]},{"name":"Stability & Change Management","score":30,"verdict":"partial","reasons":["Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"9"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (100% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"21"}},{"code":"toolsafety.manipulation_clean","args":{"units":"22","judged":"22"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28).","Supports UI / widget rendering."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}},{"code":"cap.ui_supported","args":{}}]}],"inconclusive":["Malware scan not yet available for this package."],"malware":[],"components":[{"slug":"pyeconomics","type":"pypi","identifier":"pyeconomics","withdrawn":false,"score":72,"current":true,"url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics","markdownUrl":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"pyeconomics"},{"label":"Version","value":"1.0.0b1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"corporate_capital_budgeting","title":"Capital budgeting","description":"Project NPV, IRR, MIRR, fractional payback, profitability index and equivalent annual annuity. Runs Capital budgeting (corporate.capital_budgeting, version 2) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. Every number carries its unit in the input schema; rates are decimals.","inputs":[{"name":"cash_flows","type":"array","required":true,"description":"Signed project cash flows at t=0, 1, ...; negative means paid out"},{"name":"finance_rate","type":"number","required":false,"description":"MIRR financing rate per period for negative flows"},{"name":"rate","type":"number","required":true,"description":"Discount rate per period"},{"name":"reinvestment_rate","type":"number","required":false,"description":"MIRR reinvestment rate per period for positive flows"}],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":161},{"name":"corporate_cost_of_capital","title":"Cost of capital and beta","description":"CAPM, WACC with preferred equity, Hamada unlevering/relevering, and country risk premium. Runs Cost of capital and beta (corporate.cost_of_capital, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: capm, country_risk_premium, relever_beta, unlever_beta, wacc. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":116},{"name":"derivatives_binomial_tree","title":"Binomial option tree","description":"Cox-Ross-Rubinstein binomial prices of European and American calls and puts with a dividend yield, with delta and gamma from the tree. Runs Binomial option tree (derivatives.binomial_tree, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. Every number carries its unit in the input schema; rates are decimals.","inputs":[{"name":"dividend_yield","type":"number","required":false,"description":"Dividend yield per year, continuously compounded"},{"name":"exercise","type":"string","required":false,"description":"European (at expiry only) or American (at any step) exercise"},{"name":"option_type","type":null,"required":false,"description":"A call (the right to buy) or a put (to sell)"},{"name":"risk_free_rate","type":"number","required":true,"description":"Risk-free rate per year, continuously compounded"},{"name":"spot","type":"number","required":true,"description":"Price of the underlying asset now"},{"name":"steps","type":"integer","required":false,"description":"Number of time steps in the tree"},{"name":"strike","type":"number","required":true,"description":"Strike price"},{"name":"volatility","type":"number","required":true,"description":"Volatility of the asset's return per year"},{"name":"years","type":"number","required":true,"description":"Time to expiry, in years"}],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":231},{"name":"derivatives_black_scholes_merton","title":"Black-Scholes-Merton options","description":"Price, Greeks and implied volatility of European calls and puts on an asset with a continuous dividend yield. Runs Black-Scholes-Merton options (derivatives.black_scholes_merton, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: implied_volatility, price. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":105},{"name":"describe_model","title":"Model description","description":"Describes one model: its formula, assumptions, limitations, references, examples, data bindings, input and output schemas (JSON Schema 2020-12, every number with its unit; rates are decimals) and its model card.","inputs":[{"name":"model_id","type":"string","required":true,"description":"A model id, or an alias of one, as search_models lists them."}],"outputs":[{"name":"aliases","type":"array","required":true,"description":null},{"name":"assumptions","type":"array","required":true,"description":null},{"name":"bindings","type":"array","required":true,"description":null},{"name":"card","type":"string","required":true,"description":"The model card as MyST Markdown."},{"name":"changelog","type":"array","required":true,"description":null},{"name":"charts","type":"array","required":true,"description":null},{"name":"cost","type":null,"required":true,"description":null},{"name":"domain","type":"string","required":true,"description":null},{"name":"evidence","type":null,"required":true,"description":null},{"name":"examples","type":"array","required":true,"description":null},{"name":"extra","type":"string|null","required":true,"description":null},{"name":"formula","type":"array","required":true,"description":"LaTeX, one line per item."},{"name":"id","type":"string","required":true,"description":null},{"name":"input_schema","type":"object","required":true,"description":"The model's JSON Schema 2020-12 input document."},{"name":"invariants","type":"array","required":true,"description":null},{"name":"limitations","type":"array","required":true,"description":null},{"name":"no_invariants_reason","type":"string|null","required":true,"description":null},{"name":"output_schema","type":"object","required":true,"description":"The model's JSON Schema 2020-12 output document."},{"name":"references","type":"array","required":true,"description":null},{"name":"summary","type":"string","required":true,"description":null},{"name":"tags","type":"array","required":true,"description":null},{"name":"title","type":"string","required":true,"description":null},{"name":"version","type":"integer","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":78},{"name":"equity_dividend_discount","title":"Dividend discount valuation","description":"Gordon, two-stage and H-model values, PVGO and the Gordon implied return. Runs Dividend discount valuation (equity.dividend_discount, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: gordon, h_model, implied_return, pvgo, two_stage. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":102},{"name":"equity_free_cash_flow","title":"Free cash flow and DCF valuation","description":"FCFF from EBIT, FCFE from net income, and one- or two-stage firm or equity valuation. Runs Free cash flow and DCF valuation (equity.free_cash_flow, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: fcfe, fcff, valuation. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":104},{"name":"fixed_income_bond_pricing","title":"Bond price and yield","description":"Full and flat price and accrued interest of a fixed-coupon bond from its yield, and its yield to maturity, to a call and to worst from its price. Runs Bond price and yield (fixed_income.bond_pricing, version 2) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: price_from_yield, yield_from_price, yield_to_call, yield_to_worst. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":125},{"name":"fixed_income_curve_bootstrap","title":"Spot, par and forward curves","description":"Bootstrap spot rates and discount factors from par yields, par yields from spot rates, and forward rates between maturities. Runs Spot, par and forward curves (fixed_income.curve_bootstrap, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: forward_rate, from_par, from_spot. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":108},{"name":"fixed_income_duration","title":"Bond duration","description":"Macaulay and modified duration from a yield, effective and key-rate duration off a spot curve, and DV01 of a fixed-coupon bond. Runs Bond duration (fixed_income.duration, version 2) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: dv01, effective, key_rate, macaulay_modified. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":108},{"name":"foundations_returns","title":"Return toolkit","description":"Holding-period, arithmetic, geometric, harmonic, annualized, log and real returns. Runs Return toolkit (foundations.returns, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: annualized, holding_period, log, means, real. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":95},{"name":"foundations_time_value","title":"Time value of money","description":"Present and future values of sums, annuities and perpetuities, the five-key solve, NPV, IRR, XNPV, XIRR and amortization schedules. Runs Time value of money (foundations.time_value, version 2) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: amortization, future_value, irr, npv, present_value, solve, xirr, xnpv. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":130},{"name":"get_series","title":"Series","description":"Reads a series from the data catalog (a concept id) or from one provider (provider:series), with its source records and the attributions it must be shown with: at most the server's limit of observations, the most recent ones. Data whose terms do not let it reach an AI assistant is never returned.","inputs":[{"name":"as_of","type":"string","required":false,"description":"Read the data as published on this date."},{"name":"end","type":"string","required":false,"description":"The last observation date wanted."},{"name":"provider","type":"string","required":false,"description":"For a concept, only this provider's candidates."},{"name":"start","type":"string","required":false,"description":"The first observation date wanted."},{"name":"target","type":"string","required":true,"description":"A catalog concept id (such as us.unemployment.rate) or provider:series (such as bls:LNS14000000)."},{"name":"vintage","type":"string","required":false,"description":"A vintage label: latest, first_release, all or as_of:YYYY-MM-DD."}],"outputs":[{"name":"attributions","type":"array","required":true,"description":null},{"name":"concept","type":"string|null","required":true,"description":null},{"name":"frame","type":"object","required":true,"description":null},{"name":"skipped","type":"array","required":true,"description":null},{"name":"sources","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":185},{"name":"international_parity_conditions","title":"International parity conditions","description":"Covered and uncovered interest parity, relative and absolute purchasing power parity, the international Fisher effect and real exchange rates. Runs International parity conditions (international.parity_conditions, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: absolute_ppp, covered_interest_parity, international_fisher, real_exchange_rate, relative_ppp, uncovered_interest_parity. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":117},{"name":"list_sources","title":"Data sources","description":"Lists every data provider with its licence class, whether its terms let its data reach an AI assistant (llm_use) and whether this server's policy permits it, its attribution and its terms page, and whether a key is configured.","inputs":[],"outputs":[{"name":"sources","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":55},{"name":"macro_policy_rule","title":"Monetary-policy rules","description":"Taylor (1993 and 1999), balanced-approach, shortfalls, adjusted and first-difference rules, smoothed and floored, on a gap measured in output or unemployment, and over forecast paths. Runs Monetary-policy rules (macro.policy_rule, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: adjusted_taylor_1993, balanced_approach, balanced_approach_shortfalls, first_difference, path, taylor_1993, taylor_1999. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":147},{"name":"performance_risk_adjusted","title":"Risk-adjusted performance","description":"Sharpe, Sortino, Treynor, Jensen's alpha, information ratio and tracking error, M², Calmar and up- and down-capture ratios from return series. Runs Risk-adjusted performance (performance.risk_adjusted, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. Every number carries its unit in the input schema; rates are decimals.","inputs":[{"name":"benchmark_returns","type":"array","required":true,"description":"Benchmark return each period, aligned with the portfolio's"},{"name":"minimum_acceptable_return","type":"number","required":false,"description":"Minimum acceptable return per period, for the Sortino ratio"},{"name":"periods_per_year","type":"number","required":true,"description":"Periods in a year, such as 12 or 252"},{"name":"returns","type":"array","required":true,"description":"Portfolio return each period"},{"name":"risk_free_returns","type":"array","required":false,"description":"Risk-free return each period; omit for zero"}],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":191},{"name":"portfolio_mean_variance","title":"Mean-variance portfolios","description":"Portfolio expected return and risk, the minimum-variance frontier with short sales, and the minimum-variance and tangency portfolios. Runs Mean-variance portfolios (portfolio.mean_variance, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: frontier, minimum_variance, portfolio, tangency. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":106},{"name":"risk_value_at_risk","title":"Value-at-risk and expected shortfall","description":"VaR and expected shortfall as positive losses by the parametric normal, Cornish-Fisher, historical, Monte Carlo and RiskMetrics EWMA methods. Runs Value-at-risk and expected shortfall (risk.value_at_risk, version 1) on the given inputs and returns its canonical result: the validated inputs, the outputs, the warnings and the manifest. The required calculation field selects one of: cornish_fisher, ewma, historical, monte_carlo, parametric. Every number carries its unit in the input schema; rates are decimals.","inputs":[],"outputs":[{"name":"inputs","type":null,"required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":null,"required":true,"description":null},{"name":"model_version","type":null,"required":true,"description":null},{"name":"outputs","type":null,"required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":true,"tokenEstimate":123},{"name":"run_model","title":"Model run","description":"Runs any registered model on its inputs, or binds its inputs to the data catalog first (as of a date, or the latest), and returns the canonical result: the validated inputs, the outputs, the warnings and the manifest of every source read. Data whose terms do not let it reach an AI assistant is never used.","inputs":[{"name":"as_of","type":"string","required":false,"description":"Bind the model's data as published on this date (YYYY-MM-DD)."},{"name":"concepts","type":"object","required":false,"description":"Field names mapped to catalog concept ids that replace their bindings' concepts."},{"name":"inputs","type":"object","required":false,"description":"The model's inputs, as its input schema (describe_model) gives them. With a bind, each one given replaces the value the data would supply."},{"name":"model_id","type":"string","required":true,"description":"A model id, or an alias of one."},{"name":"parameters","type":"object","required":false,"description":"Values of the bound concepts' parameters."},{"name":"profile","type":"string","required":false,"description":"The named set of bindings to read; 'default' binds the latest data."},{"name":"vintage","type":null,"required":false,"description":"The vintage policy of every binding, in place of their own."}],"outputs":[{"name":"inputs","type":"object","required":true,"description":null},{"name":"manifest","type":null,"required":true,"description":null},{"name":"model_id","type":"string","required":true,"description":null},{"name":"model_version","type":"integer","required":true,"description":null},{"name":"outputs","type":"object","required":true,"description":null},{"name":"warnings","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":222},{"name":"search_models","title":"Model search","description":"Searches the registered economics and finance models by words in their ids, titles, tags, domains and summaries, best match first, or lists every model of a domain. Each entry gives the model's id, title, summary, domain, cost class and whether it can bind its inputs to data.","inputs":[{"name":"domain","type":null,"required":false,"description":"Only the models of this domain."},{"name":"limit","type":"integer","required":false,"description":"The most entries a search returns, best first."},{"name":"query","type":"string","required":false,"description":"Words to look for in each model's id, title, tags, domain and summary. Without it, every model of the domain (or every model) is listed, sorted by id."}],"outputs":[{"name":"models","type":"array","required":true,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":138}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T04:43:57.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":28,"partial":false,"deprecated":null,"stale":4,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-10-28","recent":[{"id":"chg_01a1af2b-aea0-754e-a3e1-b21813f716de","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a1af2b-aea0-754e-a3e1-b21813f716de"},{"id":"chg_01a1af2b-aea1-7e1c-b513-80ff3b7a0f79","kind":"check.reverified","summary":"Stability (unverified → 0.30)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a1af2b-aea1-7e1c-b513-80ff3b7a0f79"},{"id":"chg_01a1af2b-aea2-74ad-b3bd-2528b4b44544","kind":"score.total_changed","summary":"Trust score (83 → 72)","materiality":"functional","direction":"regression","scoreDelta":-11,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a1af2b-aea2-74ad-b3bd-2528b4b44544"},{"id":"chg_01a1a9e8-3346-718f-bd4e-9e4f89030d4d","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a1a9e8-3346-718f-bd4e-9e4f89030d4d"},{"id":"chg_01a1a9e8-3346-7ee4-86c8-7e6cb6e8d3fc","kind":"score.total_changed","summary":"Trust score (68 → 83)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a1a9e8-3346-7ee4-86c8-7e6cb6e8d3fc"},{"id":"chg_01a19f93-a599-7275-a2fe-5477fb550aab","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a19f93-a599-7275-a2fe-5477fb550aab"},{"id":"chg_01a19f93-a59a-73eb-a7af-a5398ffb4b56","kind":"score.total_changed","summary":"Trust score (83 → 68)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a19f93-a59a-73eb-a7af-a5398ffb4b56"},{"id":"chg_01a199c7-20f1-74fe-a3f7-4f97ee3424df","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a199c7-20f1-74fe-a3f7-4f97ee3424df"},{"id":"chg_01a199c7-20f1-7cc2-a4d6-c18ec90bd4e5","kind":"score.total_changed","summary":"Trust score (68 → 83)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a199c7-20f1-7cc2-a4d6-c18ec90bd4e5"},{"id":"chg_01a18b03-d5db-78de-87a0-158a52b853af","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a18b03-d5db-78de-87a0-158a52b853af"},{"id":"chg_01a18b03-d5dd-7124-933e-d6b13ea32c85","kind":"score.total_changed","summary":"Trust score (83 → 68)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-10-30","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a18b03-d5dd-7124-933e-d6b13ea32c85"},{"id":"chg_01a18535-00d5-7934-9940-3df855d78306","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a18535-00d5-7934-9940-3df855d78306"},{"id":"chg_01a18535-00d6-782e-ab7e-e21476591fe9","kind":"score.total_changed","summary":"Trust score (68 → 83)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-10-29","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a18535-00d6-782e-ab7e-e21476591fe9"},{"id":"chg_01a18110-b109-740d-b5fe-6ae8a17e1c01","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-28","url":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics#chg-chg_01a18110-b109-740d-b5fe-6ae8a17e1c01"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics/changelog.json"},"links":{"html":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics","markdown":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics.md","changelogJson":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics/changelog.json","changelogRss":"https://verifymcp.io/servers/pyeconomics-dev-pyeconomics/pyeconomics.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/pyeconomics/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/pyeconomics"},{"label":"Repository","href":"https://github.com/pyeconomics-dev/pyeconomics"},{"label":"Website","href":"https://pyeconomics.readthedocs.io/en/main/mcp.html"}]}}