投资组合mcp
由以下组件驱动的投资组合分析MCP服务器 mcp参考缓存 用于构建高效处理财务数据的AI代理工具。
  
特性
- 投资组合管理:使用持久存储创建、读取、更新、删除投资组合
- 数据源:雅虎财经(股票/ETF)、CoinGecko(加密货币)、合成(GBM模拟)
- 分析工具:回报率、波动率、夏普比率、索蒂诺比率、风险价值、提款、相关性
- 优化:高效前沿、蒙特卡洛模拟、权重优化
- 基于引用的缓存:通过mcp-refcache缓存大型数据集,以避免上下文膨胀
安装
使用紫外线(推荐)
# Clone the repository
git clone https://github.com/l4b4r4b4b4/portfolio-mcp
cd portfolio-mcp
# Install dependencies
uv sync
# Run the server
uv run portfolio-mcp stdio使用pip
pip install portfolio-mcp
portfolio-mcp stdio快速开始
连接到克劳德桌面
添加到您的Claude Desktop配置(~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"portfolio-mcp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/portfolio-mcp", "portfolio-mcp", "stdio"]
}
}
}基本用法
连接后,您可以使用自然语言:
"Create a portfolio called 'tech_stocks' with AAPL, GOOG, and MSFT"
"Analyze the returns and volatility of my tech_stocks portfolio"
"Optimize my portfolio for maximum Sharpe ratio"
"Show me the efficient frontier with 20 points"
"Compare my portfolios by Sharpe ratio"可用工具
投资组合管理(6个工具)
create_portfolio-使用符号和权重创建新的投资组合get_portfolio-检索投资组合详细信息和指标list_portfolios-列出所有存储的投资组合delete_portfolio-删除投资组合update_portfolio_weights-修改投资组合权重clone_portfolio-使用可选的新权重创建副本
分析工具(8个工具)
get_portfolio_metrics-综合指标(回报率、波动率、夏普指数、索蒂诺指数、风险价值)get_returns-每日、日志或累计回报get_correlation_matrix-资产相关性分析get_covariance_matrix-方差-协方差结构get_individual_stock_metrics-按资产统计get_drawdown_analysis-最大缩编和恢复分析compare_portfolios-并排投资组合比较
优化工具(4个工具)
optimize_portfolio-优化权重(最大夏普、最小波动率、目标回报率/vol)get_efficient_frontier-生成高效的边界曲线run_monte_carlo-投资组合分析的蒙特卡罗模拟apply_optimization-应用优化并更新存储的投资组合
数据工具(8个工具)
generate_price_series-生成合成的GBM价格数据generate_portfolio_scenarios-创建多个场景数据集get_sample_portfolio_data-获取测试样本数据get_trending_coins-CoinGecko的加密货币趋势search_crypto_coins-搜索加密资产get_crypto_info-详细的加密货币信息list_crypto_symbols-可用的加密符号映射get_cached_result-按引用ID检索缓存的大型结果
建筑
portfolio-mcp/
├── app/
│ ├── __init__.py
│ ├── __main__.py # Typer CLI entry point
│ ├── config.py # Pydantic settings
│ ├── server.py # FastMCP server setup
│ ├── storage.py # RefCache-based portfolio storage
│ ├── models.py # Pydantic models for I/O
│ ├── data_sources.py # Yahoo Finance + CoinGecko APIs
│ └── tools/ # MCP tool implementations
│ ├── portfolio.py
│ ├── analysis.py
│ ├── optimization.py
│ └── data.py
└── tests/ # 163 tests, 81% coverage基于引用的缓存
此服务器使用 mcp参考缓存 为了高效地处理大型结果:
- 大结果被缓存 -当工具返回的数据超过预览大小时,它将存储在缓存中
- 返回引用 -工具返回a
ref_id以及数据的预览/示例 - 按需提供完整数据 -使用
get_cached_result(ref_id=...)检索完整数据
这可以防止在处理价格历史或蒙特卡洛模拟等大型数据集时上下文窗口膨胀。
发展
先决条件
- Python 3.12+
- 紫外线 (推荐)或pip
设置
# Clone and install
git clone https://github.com/l4b4r4b4b4/portfolio-mcp
cd portfolio-mcp
uv sync
# Run tests
uv run pytest --cov
# Lint and format
uv run ruff check .
uv run ruff format .本地运行
# stdio mode (for MCP clients)
uv run portfolio-mcp stdio
# SSE mode (for web clients)
uv run portfolio-mcp sse --port 8080
# Streamable HTTP mode
uv run portfolio-mcp streamable-http --port 8080配置
环境变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
LOG_LEVEL | 日志记录级别 | INFO |
CACHE_TTL | 默认缓存TTL(秒) | 3600 |
许可证
MIT许可证-请参阅 许可证 了解详情。
