返回市场
投资者代理

投资者代理

作者:ferdousbhai288 星标更新:2025-10-30

项目介绍

MseeP.ai 安全评估徽章

信任评分

investor-agent: 金融分析MCP服务器

概述

investor-agent 是一个模型上下文协议(MCP)服务器,它为大型语言模型提供全面的财务洞察和分析。它利用实时市场数据、基本面和技术分析来提供:

  • 市场动态: 最大赢家、输家和最活跃股票,支持不同市场时段
  • 股票代码分析: 公司概况、新闻、指标、分析师推荐及评级变动
  • 期权数据: 可定制参数筛选的期权链
  • 历史数据: 价格趋势和收益历史
  • 财务报表: 收入表、资产负债表和现金流量表
  • 所有权分析: 机构持有者和内部交易活动
  • 收益日历: 即将公布的收益公告,带有日期过滤功能
  • 市场情绪: CNN恐惧与贪婪指数、加密货币恐惧与贪婪指数以及Google趋势情绪分析
  • 技术分析: SMA、EMA、RSI、MACD、BBANDS指标(可选)
  • 日内数据: 通过Alpaca API获取15分钟历史股票条形图(可选)

该服务器集成yfinance以获取市场数据,并自动优化数据量以提高性能。

架构与性能

强大的缓存与错误处理策略:

  1. yfinance[nospam] → 内置智能缓存+速率限制,用于Yahoo Finance API
  2. hishel → 对外部API(CNN、加密货币、收益数据)的HTTP响应缓存
  3. tenacity → 对于瞬时故障的重试逻辑,采用指数退避

这种多层方法确保了可靠的数据交付,同时尊重API速率限制并最小化冗余请求。

预备条件

  • Python: 3.12或更高版本
  • 包管理器: uv。如需安装,请执行:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    

可选依赖项

安装

快速开始

# 仅核心功能
uvx investor-agent

# 带有技术指标(需要TA-Lib)
uvx "investor-agent[ta]"

# 带有Alpaca日内数据(需要Alpaca API密钥)
uvx "investor-agent[alpaca]"

# 带有所有可选功能
uvx "investor-agent[ta,alpaca]"

工具

市场数据

  • get_market_movers(category="most-active", count=25, market_session="regular") - 包括最大赢家、输家或最活跃股票的市场动态数据。支持不同市场时段(常规/盘前/盘后)的最活跃类别。返回最多100只股票,包括清洗过的百分比变化、成交量和市值数据
  • get_ticker_data(ticker, max_news=5, max_recommendations=5, max_upgrades=5) - 综合股票代码报告,具有基本字段过滤和可配置的新闻、分析师推荐及评级变动数量限制
  • get_options(ticker_symbol, num_options=10, start_date=None, end_date=None, strike_lower=None, strike_upper=None, option_type=None) - 期权数据,通过日期范围(YYYY-MM-DD)、行权价边界和期权类型(C=认购,P=认沽)进行高级筛选
  • get_price_history(ticker, period="1mo") - 历史OHLCV数据,具有智能间隔选择:对于≤1年的周期使用每日间隔,对于≥2年的周期使用每月间隔以优化数据量
  • get_financial_statements(ticker, statement_types=["income"], frequency="quarterly", max_periods=8) - 财务报表,支持并行获取。返回以报表类型为键的字典
  • get_institutional_holders(ticker, top_n=20) - 主要机构和共同基金持有人数据
  • get_earnings_history(ticker, max_entries=8) - 历史收益数据,具有可配置的条目数量限制
  • get_insider_trades(ticker, max_trades=20) - 近期内部交易活动,具有可配置的交易数量限制
  • get_nasdaq_earnings_calendar(date=None, limit=100) - 使用Nasdaq API获取即将公布的收益公告(YYYY-MM-DD格式,默认为今天)。
  • fetch_intraday_data(stock, window=200) - 使用Alpaca API获取15分钟历史股票条形图。返回包含时间戳和收盘价数据的CSV字符串,时区为EST。需要安装investor-agent[alpaca]并设置环境变量ALPACA_API_KEY/ALPACA_API_SECRET。

市场情绪

  • get_cnn_fear_greed_index(indicators=None) - CNN恐惧与贪婪指数,具有选择性指标过滤。可用指标:fear_and_greed, fear_and_greed_historical, put_call_options, market_volatility_vix, market_volatility_vix_50, junk_bond_demand, safe_haven_demand
  • get_crypto_fear_greed_index() - 当前加密货币恐惧与贪婪指数,带有值、分类和时间戳
  • get_google_trends(keywords, period_days=7) - Google Trends相关搜索兴趣,针对市场相关的关键词。需要跟踪关键词列表(例如,["股市崩盘", "牛市", "经济衰退", "通货膨胀"])。返回可以作为情绪指标使用的相对搜索兴趣分数。

技术分析

  • calculate_technical_indicator(ticker, indicator, period="1y", timeperiod=14, fastperiod=12, slowperiod=26, signalperiod=9, nbdev=2, matype=0, num_results=100) - 计算技术指标(SMA、EMA、RSI、MACD、BBANDS),具有可配置参数和结果限制。返回包含价格数据和指标数据的CSV字符串字典。matype值:0=SMA, 1=EMA, 2=WMA, 3=DEMA, 4=TEMA, 5=TRIMA, 6=KAMA, 7=MAMA, 8=T3。需要TA-Lib库。

使用MCP客户端

添加到您的claude_desktop_config.json

{
  "mcpServers": {
    "investor": {
      "command": "uvx",
      "args": ["investor-agent"]
    }
  }
}

本地测试

对于本地开发和测试,使用附带的chat.py脚本:

# 安装开发依赖项
uv sync --group dev

# 设置您的API密钥
export OPENAI_API_KEY="your-api-key"  # 或 ANTHROPIC_API_KEY, GEMINI_API_KEY等

# 可选:设置自定义模型(默认为openai:gpt-5-mini)
export MODEL_IDENTIFIER="your-preferred-model"

# 运行聊天界面
python chat.py

有关可用的模型提供商和标识符,请参阅pydantic-ai文档

调试

npx @modelcontextprotocol/inspector uvx investor-agent

许可证

MIT许可证。详情见LICENSE文件。