pyeconomics
PYPI · PYECONOMICS
Tested, cited economics and finance models and data, with a provenance manifest per result.
Available components
Last scanned (16 minutes ago)
Scores higher than 69% of PyPI servers
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security49
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs uv_build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
- 4 of 28 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to pyeconomics-dev/pyeconomics). View diagnostics → Pass
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 8 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability85
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- 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. See how to fix → Fail
- Tools include usage examples.Pass
Stability & Change Management30
- Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
- Supports UI / widget rendering.Pass
Checks we ran (16)
- Known CVEs
- Install scripts
- Dependency health
- Source repository
- Provenance
- License
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
- Capabilities
Checks we could not complete (1)
These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.
- Malware scan in Supply Chain SecurityMalware scan not yet available for this package.
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 6 Nov 26 −11
- Malware scan: pass → unverified ▼ security
- Stability: unverified → 0.30 ▲ functional
- 5 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 3 Nov 26 −15
- Malware scan: pass → unverified ▼ security
- 2 Nov 26 +15
- Malware scan: unverified → pass ▲ security
- 30 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- 29 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 28 Oct 26 68
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 6 Nov 2026 · Analysed pypi/pyeconomics@1.0.0b1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | pypi |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | pyeconomics-dev/pyeconomics |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/pyeconomics-dev/pyeconomics/.github/workflows/release.yml@refs/tags/v1.0.0b1 |
| Rekor log index | 3533491420 |
| Predicate type | PyPI publish attestation https://docs.pypi.org/attestations/publish/v1 |
| Subject digest | sha256:7241d43093e9f3b44f19d6fb83de32c32d1174ee301c94f545ad1fc951895b76 |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | Known build tool | uv_build |
Background: Why install scripts are a supply-chain risk →
Dependencies 28 packages
| Packages resolved | 28 |
|---|---|
| Stale | 4 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
corporate_capital_budgeting Capital budgeting ~161
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.
| Name | Type | Req | Description |
|---|---|---|---|
| cash_flows | array | yes | Signed project cash flows at t=0, 1, ...; negative means paid out |
| finance_rate | number | – | MIRR financing rate per period for negative flows |
| rate | number | yes | Discount rate per period |
| reinvestment_rate | number | – | MIRR reinvestment rate per period for positive flows |
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"cash_flows":[-100,60,60],"finance_rate":0.1,"rate":0.1,"reinvestment_rate":0.1} corporate_cost_of_capital Cost of capital and beta ~116
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"beta":1.2,"calculation":"capm","equity_risk_premium":0.05,"risk_free_rate":0.03}{"calculation":"wacc","cost_of_debt":0.06,"cost_of_equity":0.12,"cost_of_preferred":0,"debt":400,"equity":600,"preferred":0,"tax_rate":0.25}{"beta":1.2,"calculation":"unlever_beta","debt_to_equity":0,"tax_rate":0.25}{"beta":1,"calculation":"relever_beta","debt_to_equity":0.5,"tax_rate":0.2}{"bond_volatility":0.2,"calculation":"country_risk_premium","equity_volatility":0.3,"sovereign_spread":0.02}{"calculation":"wacc","cost_of_debt":0.06,"cost_of_equity":0.12,"cost_of_preferred":0,"debt":400,"equity":600,"preferred":0,"tax_rate":0.25} derivatives_binomial_tree Binomial option tree ~231
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dividend_yield | number | – | Dividend yield per year, continuously compounded |
| exercise | string | – | European (at expiry only) or American (at any step) exercise |
| option_type | – | – | A call (the right to buy) or a put (to sell) |
| risk_free_rate | number | yes | Risk-free rate per year, continuously compounded |
| spot | number | yes | Price of the underlying asset now |
| steps | integer | – | Number of time steps in the tree |
| strike | number | yes | Strike price |
| volatility | number | yes | Volatility of the asset's return per year |
| years | number | yes | Time to expiry, in years |
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"dividend_yield":0,"exercise":"american","option_type":"put","risk_free_rate":0.1,"spot":50,"steps":5,"strike":50,"volatility":0.4,"years":0.4167}{"dividend_yield":0.06,"exercise":"american","option_type":"call","risk_free_rate":0.05,"spot":100,"steps":500,"strike":100,"volatility":0.25,"years":1} derivatives_black_scholes_merton Black-Scholes-Merton options ~105
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"price","dividend_yield":0,"option_type":"call","risk_free_rate":0.1,"spot":42,"strike":40,"volatility":0.2,"years":0.5}{"calculation":"price","dividend_yield":0.05,"option_type":"put","risk_free_rate":0.1,"spot":100,"strike":95,"volatility":0.2,"years":0.5}{"calculation":"implied_volatility","dividend_yield":0,"option_price":1.875,"option_type":"call","risk_free_rate":0.1,"spot":21,"strike":20,"years":0.25} describe_model Model description ~78
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.
| Name | Type | Req | Description |
|---|---|---|---|
| model_id | string | yes | A model id, or an alias of one, as search_models lists them. |
| Name | Type | Req | Description |
|---|---|---|---|
| aliases | array | yes | – |
| assumptions | array | yes | – |
| bindings | array | yes | – |
| card | string | yes | The model card as MyST Markdown. |
| changelog | array | yes | – |
| charts | array | yes | – |
| cost | – | yes | – |
| domain | string | yes | – |
| evidence | – | yes | – |
| examples | array | yes | – |
| extra | string|null | yes | – |
| formula | array | yes | LaTeX, one line per item. |
| id | string | yes | – |
| input_schema | object | yes | The model's JSON Schema 2020-12 input document. |
| invariants | array | yes | – |
| limitations | array | yes | – |
| no_invariants_reason | string|null | yes | – |
| output_schema | object | yes | The model's JSON Schema 2020-12 output document. |
| references | array | yes | – |
| summary | string | yes | – |
| tags | array | yes | – |
| title | string | yes | – |
| version | integer | yes | – |
No examples provided.
equity_dividend_discount Dividend discount valuation ~102
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"gordon","growth":0,"next_dividend":2,"required_return":0.1}{"calculation":"h_model","dividend":2,"growth":0.12,"half_life":5,"required_return":0.1,"terminal_growth":0.04}{"calculation":"two_stage","growth":0.02,"next_dividend":2,"required_return":0.1,"terminal_growth":0.02,"years":10}{"calculation":"pvgo","earnings":3,"price":50,"required_return":0.1}{"calculation":"implied_return","growth":0.02,"next_dividend":2,"price":50}{"calculation":"gordon","growth":0.02,"next_dividend":2,"required_return":0.1} equity_free_cash_flow Free cash flow and DCF valuation ~104
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"fcff","capex":70,"depreciation":50,"ebit":200,"tax_rate":0.25,"working_capital_change":10}{"calculation":"fcfe","capex":70,"depreciation":50,"net_borrowing":20,"net_income":120,"working_capital_change":10}{"basis":"firm","calculation":"valuation","discount_rate":0.1,"growth":0,"net_debt":200,"next_cash_flow":100,"terminal_growth":0,"years":0}{"basis":"firm","calculation":"valuation","discount_rate":0.1,"growth":0,"net_debt":200,"next_cash_flow":100,"terminal_growth":0.02,"years":0} fixed_income_bond_pricing Bond price and yield ~125
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"price_from_yield","convention":"treasury","coupon_rate":0.0875,"day_count":"act_act_icma","end_of_month":true,"face_value":100,"first_period":"short","frequency":"semiannual","issue_date":null,"maturity":"2020-05-15","redemption":100,"settlement":"1990-05-15","yield_to_maturity":0.0884}{"calculation":"price_from_yield","convention":"street","coupon_rate":0.045,"day_count":"act_act_icma","end_of_month":true,"face_value":100,"first_period":"short","frequency":"semiannual","issue_date":null,"maturity":"2036-01-15","redemption":100,"settlement":"2026-03-02","yield_to_maturity":0.05}{"calculation":"yield_from_price","convention":"street","coupon_rate":0.045,"day_count":"act_act_icma","end_of_month":true,"face_value":100,"first_period":"short","frequency":"semiannual","issue_date":null,"maturity":"2036-01-15","price":96.5,"price_type":"flat","redemption":100,"settlement":"2026-01-15"}{"calculation":"yield_to_call","call_date":"2031-01-15","call_price":101,"convention":"street","coupon_rate":0.045,"day_count":"act_act_icma","end_of_month":true,"face_value":100,"first_period":"short","frequency":"semiannual","issue_date":null,"maturity":"2036-01-15","price":103,"price_type":"flat","redemption":100,"settlement":"2026-01-15"}{"calculation":"yield_to_worst","call_dates":["2029-01-15","2031-01-15","2033-01-15"],"call_prices":[102,101,100],"convention":"street","coupon_rate":0.045,"day_count":"act_act_icma","end_of_month":true,"face_value":100,"first_period":"short","frequency":"semiannual","issue_date":null,"maturity":"2036-01-15","price":104,"price_type":"flat","redemption":100,"settlement":"2026-01-15"} fixed_income_curve_bootstrap Spot, par and forward curves ~108
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"from_par","compounding":"periodic","frequency":"semiannual","par_yields":[0.04,0.041,0.042,0.0425,0.043,0.0435]}{"calculation":"from_spot","compounding":"continuous","frequency":"semiannual","spot_rates":[0.05,0.058,0.064,0.068]}{"calculation":"forward_rate","compounding":"periodic","far_rate":0.04,"far_years":2,"frequency":"annual","near_rate":0.03,"near_years":1} fixed_income_duration Bond duration ~108
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"macaulay_modified","coupon_rate":0.045,"day_count":"act_act_icma","end_of_month":true,"face_value":100,"first_period":"short","frequency":"semiannual","issue_date":null,"maturity":"2036-01-15","redemption":100,"settlement":"2026-01-15","yield_to_maturity":0.045}{"bump":0.0001,"calculation":"effective","coupon_rate":0.045,"curve_rates":[0.043,0.042,0.041,0.042,0.045,0.048],"curve_tenors":[0.5,1,2,5,10,30],"day_count":"act_act_icma","end_of_month":true,"face_value":100,"first_period":"short","frequency":"semiannual","issue_date":null,"maturity":"2036-01-15","redemption":100,"settlement":"2026-01-15"}{"bump":0.0001,"calculation":"key_rate","coupon_rate":0.045,"curve_rates":[0.043,0.042,0.041,0.042,0.045,0.048],"curve_tenors":[0.5,1,2,5,10,30],"day_count":"act_act_icma","end_of_month":true,"face_value":100,"first_period":"short","frequency":"semiannual","issue_date":null,"key_tenors":[2,5,10,30],"maturity":"2036-01-15","redemption":100,"settlement":"2026-01-15"}{"calculation":"dv01","coupon_rate":0.045,"day_count":"act_act_icma","end_of_month":true,"face_value":1000000,"first_period":"short","frequency":"semiannual","issue_date":null,"maturity":"2036-01-15","redemption":100,"settlement":"2026-01-15","yield_to_maturity":0.045} foundations_returns Return toolkit ~95
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"beginning_value":100,"calculation":"holding_period","ending_value":108,"income":2}{"calculation":"means","returns":[0.1,-0.05,0.2]}{"calculation":"annualized","period_return":0.01,"periods":1,"periods_per_year":12}{"calculation":"log","direction":"simple_to_log","returns":[0.1,-0.05,0.2]}{"calculation":"real","inflation":0.03,"nominal":0.05} foundations_time_value Time value of money ~130
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"present_value","due":false,"future_value":0,"growth":0,"payment":500,"periods":240,"rate":0.006666666666666667}{"calculation":"future_value","due":true,"growth":0,"payment":200,"periods":10,"present_value":500,"rate":0.005}{"calculation":"solve","due":false,"future_value":0,"payment":-200,"periods":48,"present_value":8000,"rate":null}{"calculation":"npv","cash_flows":[-70000,12000,15000,18000,21000,26000],"rate":0.1}{"calculation":"irr","cash_flows":[-70000,12000,15000,18000,21000,26000]}{"calculation":"xnpv","cash_flows":[-10000,2750,4250,3250,2750],"dates":["2008-01-01","2008-03-01","2008-10-30","2009-02-15","2009-04-01"],"rate":0.09}{"calculation":"xirr","cash_flows":[-10000,2750,4250,3250,2750],"dates":["2008-01-01","2008-03-01","2008-10-30","2009-02-15","2009-04-01"]}{"calculation":"amortization","periods":10,"principal":10000,"rate":0.006666666666666667} get_series Series ~185
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.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | Read the data as published on this date. |
| end | string | – | The last observation date wanted. |
| provider | string | – | For a concept, only this provider's candidates. |
| start | string | – | The first observation date wanted. |
| target | string | yes | A catalog concept id (such as us.unemployment.rate) or provider:series (such as bls:LNS14000000). |
| vintage | string | – | A vintage label: latest, first_release, all or as_of:YYYY-MM-DD. |
| Name | Type | Req | Description |
|---|---|---|---|
| attributions | array | yes | – |
| concept | string|null | yes | – |
| frame | object | yes | – |
| skipped | array | yes | – |
| sources | array | yes | – |
No examples provided.
international_parity_conditions International parity conditions ~117
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"base_rate":0.03,"calculation":"covered_interest_parity","compounding":"continuous","frequency":"annual","quote_rate":0.01,"spot":0.75,"years":2}{"base_rate":0.045,"calculation":"uncovered_interest_parity","compounding":"periodic","frequency":"annual","quote_rate":0.005,"spot":150,"years":1}{"base_inflation":0.035,"calculation":"relative_ppp","quote_inflation":0.02,"spot":1.25,"years":5}{"base_price":4.95,"calculation":"absolute_ppp","quote_price":5.69,"spot":1.1}{"base_inflation":0.01,"base_rate":0.02,"calculation":"international_fisher","quote_inflation":0.03,"quote_rate":0.05}{"base_inflation":0.02,"base_price_level":115,"calculation":"real_exchange_rate","quote_inflation":0.03,"quote_price_level":120,"spot":1.1,"spot_change":0.05} list_sources Data sources ~55
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| sources | array | yes | – |
No examples provided.
macro_policy_rule Monetary-policy rules ~147
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"taylor_1993","gap_measure":null,"inflation":0.03,"inflation_target":0.02,"inflation_weight":0.5,"lower_bound":null,"natural_unemployment":0.042,"neutral_nominal_rate":null,"neutral_real_rate":0.01,"okun_coefficient":2,"output_gap":null,"previous_rate":null,"resource_weight":0.5,"smoothing":0,"unemployment":0.043}{"calculation":"taylor_1999","gap_measure":null,"inflation":0.025,"inflation_target":0.02,"inflation_weight":0.5,"lower_bound":null,"natural_unemployment":null,"neutral_nominal_rate":null,"neutral_real_rate":0.005,"okun_coefficient":2,"output_gap":0.01,"previous_rate":null,"resource_weight":1,"smoothing":0,"unemployment":null}{"calculation":"balanced_approach","gap_measure":null,"inflation":0.026,"inflation_target":0.02,"inflation_weight":0.5,"lower_bound":null,"natural_unemployment":0.042,"neutral_nominal_rate":0.03,"neutral_real_rate":null,"okun_coefficient":2,"output_gap":null,"previous_rate":null,"resource_weight":1,"smoothing":0,"unemployment":0.044}{"calculation":"balanced_approach_shortfalls","gap_measure":null,"inflation":0.02,"inflation_target":0.02,"inflation_weight":0.5,"lower_bound":null,"natural_unemployment":0.042,"neutral_nominal_rate":null,"neutral_real_rate":0.005,"okun_coefficient":2,"output_gap":null,"previous_rate":null,"resource_weight":1,"smoothing":0,"unemployment":0.035}{"calculation":"adjusted_taylor_1993","cumulative_shortfall":0.01,"gap_measure":null,"inflation":0.02,"inflation_target":0.02,"inflation_weight":0.5,"lower_bound":0.00125,"natural_unemployment":0.042,"neutral_nominal_rate":null,"neutral_real_rate":0.005,"okun_coefficient":2,"output_gap":null,"previous_rate":null,"resource_weight":0.5,"smoothing":0,"unemployment":0.05}{"calculation":"first_difference","gap_measure":null,"inflation":0.03,"inflation_target":0.02,"inflation_weight":0.5,"lower_bound":null,"natural_unemployment":0.042,"natural_unemployment_lagged":null,"okun_coefficient":2,"output_gap":null,"output_gap_lagged":null,"previous_rate":0.0425,"resource_weight":0.5,"smoothing":0,"unemployment":0.042,"unemployment_lagged":0.04}{"calculation":"taylor_1999","gap_measure":null,"inflation":0.03,"inflation_target":0.02,"inflation_weight":0.5,"lower_bound":0.00125,"natural_unemployment":null,"neutral_nominal_rate":null,"neutral_real_rate":0.01,"okun_coefficient":2,"output_gap":0.005,"previous_rate":0.0375,"resource_weight":1,"smoothing":0.85,"unemployment":null}{"calculation":"path","cumulative_shortfall":0,"gap_measure":null,"inflation_high_path":[0.033,0.032,0.03,0.028,0.026],"inflation_low_path":[0.027,0.024,0.022,0.02,0.019],"inflation_path":[0.03,0.028,0.026,0.024,0.022],"inflation_target":0.02,"inflation_weight":0.5,"lower_bound":null,"natural_unemployment_lagged_path":null,"natural_unemployment_path":null,"neutral_nominal_rate":null,"neutral_real_rate":0.01,"okun_coefficient":2,"output_gap_high_path":[0.015,0.013,0.011,0.009,0.007],"output_gap_lagged_path":null,"output_gap_low_path":[0.005,0.002,0,-0.002,-0.003],"output_gap_path":[0.01,0.008,0.006,0.004,0.002],"previous_rate":null,"resource_weight":null,"rule":"taylor_1993","smoothing":0,"unemployment_high_path":null,"unemployment_lagged_path":null,"unemployment_low_path":null,"unemployment_path":null} performance_risk_adjusted Risk-adjusted performance ~191
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.
| Name | Type | Req | Description |
|---|---|---|---|
| benchmark_returns | array | yes | Benchmark return each period, aligned with the portfolio's |
| minimum_acceptable_return | number | – | Minimum acceptable return per period, for the Sortino ratio |
| periods_per_year | number | yes | Periods in a year, such as 12 or 252 |
| returns | array | yes | Portfolio return each period |
| risk_free_returns | array | – | Risk-free return each period; omit for zero |
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"benchmark_returns":[0.018,-0.01,0.029,0.011,-0.025,0.012,0.022,-0.002,0.01,0.016,-0.028,0.02],"minimum_acceptable_return":0,"periods_per_year":12,"returns":[0.021,-0.013,0.034,0.008,-0.022,0.015,0.027,-0.005,0.012,0.019,-0.031,0.024],"risk_free_returns":[0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002,0.002]} portfolio_mean_variance Mean-variance portfolios ~106
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"portfolio","correlations":[[1,0.3],[0.3,1]],"covariance":null,"expected_returns":[0.1,0.06],"volatilities":[0.2,0.1],"weights":[0.6,0.4]}{"calculation":"frontier","correlations":[[1,0.3,0.2],[0.3,1,0.5],[0.2,0.5,1]],"covariance":null,"expected_returns":[0.08,0.12,0.15],"max_return":null,"min_return":null,"points":5,"volatilities":[0.15,0.2,0.25]}{"calculation":"minimum_variance","correlations":[[1,0.3,0.2],[0.3,1,0.5],[0.2,0.5,1]],"covariance":null,"expected_returns":[0.08,0.12,0.15],"volatilities":[0.15,0.2,0.25]}{"calculation":"tangency","correlations":[[1,0.3,0.2],[0.3,1,0.5],[0.2,0.5,1]],"covariance":null,"expected_returns":[0.08,0.12,0.15],"risk_free_rate":0.03,"volatilities":[0.15,0.2,0.25]} risk_value_at_risk Value-at-risk and expected shortfall ~123
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | – | yes | – |
| manifest | – | yes | – |
| model_id | – | yes | – |
| model_version | – | yes | – |
| outputs | – | yes | – |
| warnings | array | yes | – |
{"calculation":"parametric","confidence":0.99,"horizon":10,"mean":0,"position_value":1000000,"volatility":0.012}{"calculation":"cornish_fisher","confidence":0.99,"excess_kurtosis":2,"horizon":1,"mean":0.0005,"position_value":1,"skewness":-0.5,"volatility":0.012}{"calculation":"historical","confidence":0.9,"horizon":1,"interpolation":"linear","position_value":1,"returns":[-0.031,0.012,-0.008,0.004,-0.019,0.022,0.001,-0.012,0.009,-0.002]}{"calculation":"monte_carlo","confidence":0.99,"degrees_of_freedom":4,"distribution":"student_t","horizon":1,"mean":0,"position_value":1,"seed":7,"simulations":20000,"volatility":0.012}{"calculation":"ewma","confidence":0.95,"decay":0.94,"horizon":1,"position_value":1,"returns":[0.004,-0.011,0.007,-0.002,0.013,-0.009]} run_model Model run ~222
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.
| Name | Type | Req | Description |
|---|---|---|---|
| as_of | string | – | Bind the model's data as published on this date (YYYY-MM-DD). |
| concepts | object | – | Field names mapped to catalog concept ids that replace their bindings' concepts. |
| inputs | object | – | 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. |
| model_id | string | yes | A model id, or an alias of one. |
| parameters | object | – | Values of the bound concepts' parameters. |
| profile | string | – | The named set of bindings to read; 'default' binds the latest data. |
| vintage | – | – | The vintage policy of every binding, in place of their own. |
| Name | Type | Req | Description |
|---|---|---|---|
| inputs | object | yes | – |
| manifest | – | yes | – |
| model_id | string | yes | – |
| model_version | integer | yes | – |
| outputs | object | yes | – |
| warnings | array | yes | – |
No examples provided.
search_models Model search ~138
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.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | – | – | Only the models of this domain. |
| limit | integer | – | The most entries a search returns, best first. |
| query | string | – | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| models | array | yes | – |
No examples provided.
How do I install the pyeconomics MCP server?
pyeconomics runs locally as a PyPI package, launched with uvx --from 'pyeconomics[mcp]==1.0.0b1' pyeconomics mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.
pypi · pyeconomics
claude mcp add pyeconomics-dev-pyeconomics -- uvx --from 'pyeconomics[mcp]==1.0.0b1' pyeconomics mcp
What is the pyeconomics MCP server?
pyeconomics is an MCP server listed in the public MCP registry as io.github.pyeconomics-dev/pyeconomics. Tested, cited economics and finance models and data, with a provenance manifest per result. This page covers its PyPI package (pyeconomics).
Is the pyeconomics MCP server safe to use?
pyeconomics scores 72 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 6 November 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the pyeconomics MCP server expose?
pyeconomics exposes 21 tools: corporate_capital_budgeting, corporate_cost_of_capital, derivatives_binomial_tree, derivatives_black_scholes_merton, describe_model, and 16 more. Their descriptions and schemas cost roughly 2,747 tokens of context every time the server is loaded.
Is the pyeconomics MCP server still maintained?
pyeconomics is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the pyeconomics MCP server under?
pyeconomics declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.
What did VerifyMCP test on the pyeconomics MCP server?
VerifyMCP ran 16 checks on pyeconomics, covering Known CVEs, Install scripts, Dependency health, Source repository and 12 more. One item could not be completed, a gap on our side rather than a finding about pyeconomics: Malware scan. Endpoint Security and Transport & Reachability do not apply to a PyPI package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.