risk-analytics-mcp-server
# risk-analytics-mcp-server
**An MCP server that gives AI agents quantitative risk tools.**
Any MCP client (Claude Code, Claude Desktop, or your own agent) gets seven
tools backed by two real engines — [market-risk-engine](https://github.com/chenxi-bot21/market-risk-engine)
and [credit-risk-model](https://github.com/chenxi-bot21/credit-risk-model):
| Tool | What it does |
|---|---|
| `compute_var_es` | Portfolio VaR & Expected Shortfall four ways — historical, parametric-normal, Cornish-Fisher, Monte Carlo — so the agent can *compare* methods, not just get a number. |
| `garch_volatility` | GARCH(1,1) fit by maximum likelihood (no `arch` dependency) + mean-reverting h-day vol forecast. |
| `backtest_var` | Walk-forward VaR backtest with Kupiec POF, Christoffersen independence / conditional-coverage tests, and the Basel traffic-light zone. |
| `stress_test` | Preset crisis-shock library (GFC equity crash, 2020 pandemic, +200bp rates, flight to quality, USD squeeze) + the portfolio's own worst historical windows. |
| `evt_tail_risk` | Peaks-over-threshold GPD tail fit; EVT VaR/ES for the 99.5%+ region where empirical quantiles run out of data. |
| `score_credit_application` | 12-month PD, scorecard points and letter rating from a WoE logistic scorecard (PDO points scaling). |
| `credit_model_summary` | The scorecard's held-out AUROC/Gini/KS and per-feature Information Values. |
Every market tool works with **no data at all** — omit the returns and it
runs on a seeded 4-asset synthetic demo book (EQUITY/BOND/GOLD/FX, ~5
trading years), so an agent can explore the tools fully offline. Pass your
own daily returns (fractions, `0.01` = 1%) to analyze a real portfolio.
VaR/ES are reported as positive daily loss fractions.
The credit scorecard is trained once per process on the engine's seeded
synthetic 12k-loan book and cached; the methodology (monotonic WoE binning,
logistic regression, points scaling, ratings) is the production pattern, the
score itself is a demo.
## Install & connect
```bash
pip install git+https://github.com/chenxi-bot21/risk-analytics-mcp-server.git
```
Claude Code:
```bash
claude mcp add risk -- risk-mcp
```
Claude Desktop / any MCP client (stdio transport):
```json
{
"mcpServers": {
"risk": { "command": "risk-mcp" }
}
}
```
Or without installing, via uv:
```json
{
"mcpServers": {
"risk": {
"command": "uvx",
"args": ["--from", "git+https://github.com/chenxi-bot21/risk-analytics-mcp-server.git", "risk-mcp"]
}
}
}
```
## Example prompts once connected
- *"What's the 99% VaR of a portfolio that's 60% equity, 30% bonds, 10% gold? Compare methods — do the tails look fat?"*
- *"Backtest a 99% historical VaR on these returns and tell me which Basel zone it lands in."* (paste returns)
- *"Score this applicant: 24 years old, $25k income, $30k loan at 26%, DTI 42, utilization 130%, 4 delinquencies…"*
## Architecture
```
src/risk_mcp/
├── market.py # JSON-friendly wrappers around marketrisk (pure functions)
├── credit.py # cached synthetic-trained WoE scorecard + scoring
└── server.py # FastMCP registration shim — no logic of its own
```
The wrappers are plain functions with plain-type signatures, so the whole
surface is unit-tested (19 tests) without a running server; one test drives
a tool through the actual MCP protocol layer.
```bash
python -m unittest discover -s tests -t .
```
## License
MIT.
TDQS
Scored across 7 tools
Each tool targets a distinct area of risk analytics: VaR computation, backtesting, credit scoring, EVT, GARCH, stress testing, and credit model metadata. No two tools overlap in purpose.
All names use lowercase with underscores, but some follow a verb_noun pattern (e.g., backtest_var, compute_var_es) while others are noun phrases (e.g., credit_model_summary, garch_volatility). This minor inconsistency does not hinder readability.
Seven tools cover the core risk analytics workflow without being excessive. Each tool earns its place, covering computation, backtesting, credit risk, and stress testing.
The set covers key risk functions: VaR/ES estimation, backtesting, volatility modeling, tail risk, credit scoring, and stress testing. Missing features like data ingestion or portfolio optimization are minor gaps.