QuantPortfolioMCP

QuantPortfolioMCP

MCP server for quantitative portfolio optimization and analysis, providing tools for market data ingestion, covariance estimation, portfolio construction (mean-variance, Black-Litterman, HRP, CVaR, regularized), risk attribution, and statistical analysis to AI assistants.

Category
访问服务器

README

QuantPortfolioMCP

Version Python License

A quantitative portfolio optimization MCP server that exposes portfolio construction, covariance estimation, risk attribution, and statistical analysis tools to AI assistants through the Model Context Protocol (MCP).

The core idea is to keep numerical computation deterministic and executable in Python while allowing an AI assistant to orchestrate the analytical workflow and interpret the results. MCP tools are designed to be callable by an LLM rather than requiring the model to perform the underlying financial mathematics itself.


Current Architecture

AI Assistant / MCP Client
          │
          ▼
   QuantPortfolioMCP
          │
          ├── Market Data
          │      └── yfinance
          │
          ├── Statistical Analysis
          │      └── scipy.stats / NumPy
          │
          ├── Covariance Engine
          │      ├── Sample
          │      ├── EWMA
          │      └── Ledoit-Wolf
          │
          ├── Portfolio Optimization
          │      ├── Mean-Variance
          │      ├── Black-Litterman
          │      ├── HRP
          │      ├── CVaR
          │      └── L1/L2 Regularization
          │
          └── Risk Attribution
                 ├── Portfolio Volatility
                 ├── Marginal Risk Contribution
                 ├── Component Risk Contribution
                 └── Diversification Ratio

Current Features

1. Market Data Ingestion

get_market_data()

Fetches historical market data and converts it into quantitative inputs required by the portfolio engine.

Current flow:

Ticker List
    ↓
Historical Prices
    ↓
Daily Returns
    ↓
Annualized Mean Returns
    ↓
Covariance Matrix
    ↓
Correlation Matrix

Supports ticker formats for:

  • NSE — .NS
  • BSE — .BO
  • US equities — standard tickers

The tool returns the underlying daily returns together with the calculated statistics.


2. Covariance Estimation

estimate_covariance_matrix()

Three covariance estimators are currently available:

Sample Covariance

Traditional historical covariance estimator.

EWMA

Exponentially weights recent observations more heavily.

Ledoit-Wolf Shrinkage

Shrinks the empirical covariance matrix toward a structured target to improve stability when the matrix is noisy or poorly conditioned.

Historical Returns
       │
       ├── Sample
       ├── EWMA
       └── Ledoit-Wolf
              ↓
       Covariance Matrix

3. Portfolio Optimization

The MCP currently exposes multiple portfolio construction methodologies.

Mean-Variance Optimization

optimize_mean_variance()

Supports:

  • Minimum volatility
  • Maximum Sharpe ratio
  • Target-return efficient portfolio
  • Long-only constraints
  • Custom portfolio bounds
Expected Returns + Covariance
              ↓
       Optimization
              ↓
       Portfolio Weights

Black-Litterman

optimize_black_litterman()

Combines:

Market Equilibrium
       +
Investor Views
       +
View Confidence
       ↓
Posterior Expected Returns
       ↓
Optimal Portfolio

The output also reports:

  • Equilibrium returns
  • Posterior returns
  • Market weights
  • Optimized weights
  • Active bets

Hierarchical Risk Parity

optimize_hierarchical_risk_parity()

Uses correlation-based hierarchical clustering to construct a portfolio without directly relying on covariance-matrix inversion.

Current implementation includes:

  • Correlation-based distance
  • Hierarchical clustering
  • Quasi-diagonalization
  • Cluster-based allocation
  • Risk contribution analysis

CVaR / Expected Shortfall Optimization

optimize_cvar()

Uses a linear-programming formulation of Conditional Value at Risk to optimize the portfolio against downside/tail losses.

Current functionality includes:

  • Configurable confidence level
  • Portfolio bounds
  • Historical return scenarios
  • Expected Shortfall minimization

Regularized Optimization

optimize_regularized()

Adds L1 and L2 penalties to portfolio optimization.

This is intended to reduce unstable or extreme portfolio allocations.

Expected Return
      +
Risk
      +
L1 Penalty
      +
L2 Penalty
      ↓
Regularized Portfolio

4. Portfolio Risk Attribution

calculate_portfolio_attribution()

Decomposes portfolio risk into:

  • Total portfolio volatility
  • Marginal Risk Contribution (MRC)
  • Component Risk Contribution (CRC)
  • Diversification Ratio

This allows the portfolio to be examined not only by return, but by where the risk is actually coming from.

Portfolio
    │
    ├── Asset A → Risk Contribution
    ├── Asset B → Risk Contribution
    ├── Asset C → Risk Contribution
    └── Asset D → Risk Contribution

5. Statistical Analysis MCP

The project also contains a statistical-analysis MCP containing tools for quantitative diagnostics.

Descriptive Statistics

  • Mean
  • Median
  • Variance
  • Standard deviation
  • Range
  • Quartiles
  • IQR
  • Skewness
  • Kurtosis
  • Coefficient of variation
  • Percentiles
  • Quantiles
  • Frequency tables

Statistical Tests

  • One-sample t-test
  • ANOVA
  • Chi-square
  • Mann-Whitney U
  • Wilcoxon
  • Binomial test
  • Shapiro-Wilk normality test

Dependence Analysis

  • Pearson correlation
  • Spearman correlation
  • Kendall's Tau
  • Covariance
  • Linear regression

Statistical Utilities

  • Z-scores
  • Moving averages
  • Bootstrap confidence intervals
  • Trimmed mean
  • Outlier detection
  • Geometric mean
  • Harmonic mean

This provides a foundation for adding statistical validation to portfolio research rather than relying exclusively on optimization outputs.


End-to-End Current Workflow

A typical portfolio analysis can currently follow this sequence:

1. Select Assets
       ↓
2. Fetch Historical Market Data
       ↓
3. Calculate Returns
       ↓
4. Examine Statistical Properties
       ↓
5. Estimate Covariance
       ↓
6. Select Portfolio Construction Method
       │
       ├── Mean-Variance
       ├── Black-Litterman
       ├── HRP
       ├── CVaR
       └── Regularized
       ↓
7. Generate Portfolio Weights
       ↓
8. Calculate Risk Attribution
       ↓
9. Interpret Portfolio Characteristics

The LLM acts primarily as the orchestration and interpretation layer, while NumPy/SciPy/Pandas perform the underlying numerical calculations.


Future Scope

The current project is intentionally structured so additional quantitative research layers can be added on top of the existing optimization engine.

Phase 1 — Portfolio Diagnostics

Add a comprehensive portfolio analytics layer:

  • Sharpe Ratio
  • Sortino Ratio
  • Calmar Ratio
  • Maximum Drawdown
  • VaR
  • CVaR
  • Beta
  • Tracking Error
  • Information Ratio
  • Downside Deviation
  • Turnover
  • Gross Exposure
  • Net Exposure

Phase 2 — Robust Portfolio Construction

Expand beyond the current estimators:

  • Robust covariance estimation
  • Oracle Approximating Shrinkage
  • Minimum Correlation portfolios
  • Risk Parity
  • Equal Risk Contribution
  • Maximum Diversification
  • Entropy-based portfolios
  • Factor-constrained optimization

Phase 3 — Factor Risk Engine

Introduce systematic factor analysis:

Portfolio
    ↓
Factor Exposure
    ├── Market
    ├── Size
    ├── Value
    ├── Momentum
    ├── Quality
    └── Sector

Future versions can calculate factor betas, factor contribution to risk and factor-neutral portfolios.


Phase 4 — Stress Testing & Scenario Analysis

Introduce historical and hypothetical stress scenarios.

Examples:

  • Global Financial Crisis
  • COVID crash
  • Interest-rate shocks
  • Inflation shocks
  • Equity-market crashes
  • Sector-specific shocks
  • Currency shocks
  • Custom user-defined scenarios
Portfolio
    ↓
Scenario Engine
    ↓
Shocked Returns
    ↓
Portfolio P&L
    ↓
Risk Attribution

Phase 5 — Backtesting Engine

Add a complete walk-forward portfolio backtesting framework.

Historical Data
      ↓
Training Window
      ↓
Portfolio Optimization
      ↓
Out-of-Sample Period
      ↓
Rebalance
      ↓
Repeat
      ↓
Performance Analysis

Metrics would include:

  • CAGR
  • Sharpe
  • Sortino
  • Maximum Drawdown
  • Calmar
  • Win Rate
  • Turnover
  • Transaction Costs
  • Tail Loss
  • Risk-adjusted performance

This would allow optimization methods to be evaluated based on out-of-sample performance rather than in-sample portfolio statistics alone.


Phase 6 — Robustness & Statistical Validation

Automatically test whether portfolio conclusions survive changes in assumptions.

Examples:

Lookback Period
     ×
Covariance Model
     ×
Rebalance Frequency
     ×
Transaction Cost
     ×
Optimization Method

The system can then determine whether a portfolio allocation is:

  • Stable
  • Parameter-sensitive
  • Regime-dependent
  • Statistically significant
  • Potentially overfit

Phase 7 — Regime Detection

Add market-regime analysis using:

  • Volatility regimes
  • Correlation regimes
  • Bull/bear regimes
  • Hidden Markov Models
  • Clustering
  • Regime-dependent covariance matrices

This would allow portfolio construction to adapt to changing market conditions.


Phase 8 — Advanced Data Sources

Expand market-data capabilities beyond basic historical equity prices.

Potential integrations:

  • NSE/BSE data
  • ETFs
  • Bonds
  • Government securities
  • FX
  • Commodities
  • Crypto
  • Central-bank data
  • Macroeconomic indicators
  • Interest-rate curves
  • Volatility indices
  • Options data

The goal is to evolve from an equity portfolio optimizer into a broader multi-asset quantitative research engine.


Long-Term Architecture

The eventual system can evolve toward:

                     AI / LLM
                         │
                         ▼
                 MCP Orchestration
                         │
          ┌──────────────┼──────────────┐
          ▼              ▼              ▼
      Market Data    Macro Data     Alternative Data
          │              │              │
          └──────────────┼──────────────┘
                         ▼
                Research & Statistics
                         │
                         ▼
                 Risk / Factor Engine
                         │
                         ▼
                Portfolio Optimizers
                         │
          ┌──────────────┼──────────────┐
          ▼              ▼              ▼
       Backtest      Stress Test    Robustness
          │              │              │
          └──────────────┼──────────────┘
                         ▼
                 Portfolio Decision
                         │
                         ▼
                Risk Attribution
                         │
                         ▼
                 AI Interpretation

The long-term objective is therefore not simply to provide an optimizer, but to build an agent-accessible quantitative research and portfolio construction engine where the AI orchestrates deterministic statistical, optimization, risk, and backtesting tools.

MCP is particularly suitable for this architecture because its tools are explicitly designed to expose callable functions that AI clients can invoke and compose into workflows.


推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选