返回市场
MCP服务器AlphaVantage

MCP服务器AlphaVantage

作者:Hasan-Syed257 星标更新:2025-06-17

项目介绍

【技术文档摘要】: MseeP.ai 安全评估徽章

股票市场分析的MCP服务器

在MseeP上验证

概述

该项目实现了一个用于股票市场分析的模型上下文协议(MCP)服务器。它提供实时股票价格数据,计算关键的技术指标如移动平均线和相对强弱指数(RSI),并利用AlphaVantage API进行趋势检测。该服务器可以与像Claude这样的大型语言模型集成,以增强财务洞察力。

我为什么构建它

我开发这个MCP服务器是为了简化股票市场分析,通过自动化数据获取和技术指标计算来实现。目标是帮助交易者和投资者通过利用AI辅助的见解做出基于数据的决策。通过使用MCP,此服务器可以无缝连接到LLMs,允许它们实时检索金融数据并执行分析。

特性

  • 使用AlphaVantage API获取实时股票数据
  • 计算移动平均线(短期和长期)以分析趋势
  • 检测趋势交叉(黄金交叉和死亡交叉)
  • 计算**相对强弱指数(RSI)**以确定超买/超卖条件
  • 提供MCP工具和资源以实现无缝AI集成
  • 未来可扩展性(例如,回测策略,交易平台集成)

预备条件

开始之前,请确保您拥有以下内容:

  • 已安装Python 3.10+
  • MCP SDK 1.2.0+
  • AlphaVantage API密钥(在AlphaVantage注册)
  • Python和股票市场指标的基本理解

安装

要设置项目,请按照以下步骤操作:

1. 安装依赖项

使用uv(推荐):

uv add mcp[cli] httpx

使用pip

pip install mcp httpx

2. 获取AlphaVantage API密钥

  • AlphaVantage注册
  • 记下您的API密钥以便后续使用

3. 克隆仓库

git clone https://github.com/your-username/mcp-stock-analysis.git
cd mcp-stock-analysis

4. 设置环境变量

创建一个.env文件,并添加您的AlphaVantage API密钥:

ALPHA_VANTAGE_API_KEY=your_api_key_here

运行MCP服务器

要启动服务器,请运行:

python server.py

或使用MCP:

mcp install server.py

对于开发模式:

mcp dev server.py

它是如何工作的

获取盘中股票数据

服务器从AlphaVantage获取实时股票价格数据:

@mcp.tool()
def fetch_intraday_data(symbol: str, interval: str = "5min") -> dict:
    """获取盘中股票价格数据。"""
    url = f"https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol={symbol}&interval={interval}&apikey={API_KEY}"
    response = httpx.get(url)
    return response.json()

移动平均线(短期 vs 长期)

移动平均线有助于平滑价格数据以识别趋势:

@mcp.tool()
def calculate_moving_averages(prices: list[float], short_window: int = 50, long_window: int = 200) -> dict:
    """计算短期和长期移动平均线。"""
    short_ma = sum(prices[-short_window:]) / short_window
    long_ma = sum(prices[-long_window:]) / long_window
    return {"short_ma": short_ma, "long_ma": long_ma}

检测趋势交叉(黄金交叉 & 死亡交叉)

  • 黄金交叉:短期MA高于长期MA → 看涨信号
  • 死亡交叉:短期MA低于长期MA → 看跌信号
@mcp.tool()
def detect_trend_crossover(short_ma: float, long_ma: float) -> str:
    """检测是否发生了黄金交叉或死亡交叉。"""
    if short_ma > long_ma:
        return "黄金交叉 - 看涨趋势"
    elif short_ma < long_ma:
        return "死亡交叉 - 看跌趋势"
    return "没有显著交叉"

相对强弱指数(RSI)

RSI衡量动量,帮助确定股票是否超买/超卖:

@mcp.tool()
def calculate_rsi(prices: list[float], period: int = 14) -> float:
    """计算RSI指标。"""
    gains = [max(0, prices[i] - prices[i-1]) for i in range(1, len(prices))]
    losses = [max(0, prices[i-1] - prices[i]) for i in range(1, len(prices))]
    avg_gain = sum(gains[-period:]) / period
    avg_loss = sum(losses[-period:]) / period
    rs = avg_gain / avg_loss if avg_loss != 0 else float('inf')
    return 100 - (100 / (1 + rs))

超买/超卖条件

  • RSI > 70 → 超买(潜在卖出信号)
  • RSI < 30 → 超卖(潜在买入信号)
@mcp.tool()
def determine_rsi_condition(rsi: float) -> str:
    """确定RSI是否指示超买或超卖条件。"""
    if rsi > 70:
        return "超买 - 考虑卖出"
    elif rsi < 30:
        return "超卖 - 考虑买入"
    return "中性"

未来改进

此MCP服务器可以通过添加更多特性进行扩展:

  • 更多技术指标:MACD,布林带等。
  • 回测:根据策略规则模拟过去的交易。
  • 交易平台集成:连接到经纪人进行实时交易。

贡献

欢迎通过提交拉取请求或报告问题来贡献。让我们使股票市场分析更加普及和AI驱动!

联系我

如果您有任何问题或建议,请随时联系!

🔗 LinkedInSyed Hasan
🤗 Hugging FaceSyed-Hasan-8503