Fibtec · pyvar.com · Claude Code plugins
Claude Code

385 functions,
right inside your agent.

8 domain skills, 5 architecture skills, and an MCP server exposing every pyvar function as a Claude Code tool — all generated straight from this repo, so none of it can drift out of sync with the live API.

13
Skills
1
MCP server
385
Functions as tools
MIT
Licence
Quickstart

Two commands to get started

# add the marketplace, once
$ /plugin marketplace add fibtecltd/pyvar

# install any skill…
$ /plugin install pyvar-market-risk@pyvar-marketplace

# …or the MCP server
$ /plugin install pyvar-mcp@pyvar-marketplace
1
Skills need nothing else
A skill is instructions Claude Code reads before touching that domain — architecture context, function signatures, routing notes on where the REST/async pattern differs from what you'd expect. No dependencies, no API key required just to install.
2
The MCP server needs a free API key
You'll be prompted for a pyvar API key during install — get a free-tier one here, no password or credit card. Every tool call is a real HTTPS request against the live API, so results always match what's actually deployed.
3
One manual step for the MCP server, for now
The plugin install flow doesn't yet install its Python dependencies — run pip install -e plugins/mcp once, from wherever the marketplace checked this repo out to. If a tool call fails with "command not found", this is almost certainly why.
8 domain skills

One skill per risk domain

📈
pyvar-market-risk
68 functions: VaR, ES, stress, Greeks, P&L attribution, backtesting, GARCH, FRTB SA/IMA
🏦
pyvar-credit-risk
55 functions: PD/LGD/EAD, IRB/SA, XVA full suite, IFRS 9 ECL, CDS, SA-CCR, scoring
💧
pyvar-liquidity-risk
40 functions: LCR, NSFR, HQLA, cash flow, ILAAP, intraday, LiqVaR
⚠️
pyvar-operational-risk
44 functions: LDA, AMA, SMA, RCSA, KRI, scenario, BEICF, cyber/model/IT risk
📊
pyvar-portfolio-analytics
50 functions: Markowitz/BL/risk-parity, Sharpe/Sortino, Brinson, FF5, PCA, HMM, ESG
📋
pyvar-regulatory
30 functions: Basel III/IV, FRTB, ICAAP/SREP, MiFID II, EMIR, Solvency II, CRR2
pyvar-derivatives
62 functions: BS/Heston/SABR/Dupire/LSM, exotic options, bonds, IRS/CDS, FX
⚖️
pyvar-alm
33 functions: Duration gap, NII/EVE, IRRBB 6 shocks, repricing, NMD, FTP
5 architecture skills

How pyvar is actually built

Not risk domains — the infrastructure layers underneath them. Load these when you're extending pyvar itself, not just calling it: the Numba JIT rules, the Celery/SQS broker constraints, the storage and observability conventions this repo's own CLAUDE.md enforces.

🌐
pyvar-arch-api-gateway
FastAPI, Pydantic v2, JWT, orjson, rate limiting, OpenAPI
📥
pyvar-arch-data-ingestion
Polars lazy scan, PyArrow, Parquet, Arrow IPC, schema validation
⚙️
pyvar-arch-compute
NumPy/Numba JIT, SciPy, Dask, Ray, Celery+Redis task dispatch
🗄️
pyvar-arch-storage
Redis cache, PostgreSQL/SQLAlchemy, S3/MinIO Parquet object store
📡
pyvar-arch-observability
Prometheus, Grafana, Sentry, Bandit, input validation security
The MCP server

Two tools to start.
385 more if you need them.

list_pyvar_functions(domain?)
Browse available functions, optionally filtered to one domain — alm, credit-risk, derivatives, liquidity, market-risk, operational, portfolio, regulatory.
call_pyvar_function(domain, function_name, params)
Call any function by name, with params validated against that function's own schema before the request goes out. These two tools are the intended first choice — reaching for one generic dispatcher over guessing among 385 individually named tools keeps tool selection reliable at this scale.

Every one of the 385 functions is also registered as its own precisely-typed tool — alm_stress_test, historical_simulation_var, and so on — for when you already know exactly which one you want.

# thin wrapper, not a bundled engine —
# every call is a real HTTPS request
# against the live pyvar API

tool call_pyvar_function(
  domain="market-risk",
  function_name="historical_simulation_var",
  params={...}
)
source of truth

Generated, not hand-maintained.

All 13 skills and the MCP server's 385+2 tools are generated straight from this repo's own skills and function catalogue — CI fails if the committed output ever drifts from what regenerating produces.