MCP Server for Stock Market Analysis

MCP Server for Stock Market Analysis

Hasan-Syed25

研究与数据
访问服务器

README

用于股票市场分析的 MCP 服务器

概述

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

构建原因

我开发此 MCP 服务器旨在通过自动化数据获取和技术指标计算来简化股票市场分析。目标是帮助交易者和投资者通过利用 AI 辅助的洞察力做出数据驱动的决策。通过使用 MCP,此服务器可以无缝地与 LLM 连接,允许它们实时检索财务数据并执行分析。

功能

  • 使用 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:
    """Fetches intraday stock price data."""
    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:
    """Calculates short-term and long-term moving averages."""
    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:
    """Detects if a Golden Cross or Death Cross has occurred."""
    if short_ma > long_ma:
        return "Golden Cross - Bullish Trend"
    elif short_ma < long_ma:
        return "Death Cross - Bearish Trend"
    return "No significant crossover"

相对强弱指数 (RSI)

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

@mcp.tool()
def calculate_rsi(prices: list[float], period: int = 14) -> float:
    """Calculates RSI indicator."""
    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:
    """Determines whether the RSI indicates overbought or oversold conditions."""
    if rsi > 70:
        return "Overbought - Consider Selling"
    elif rsi < 30:
        return "Oversold - Consider Buying"
    return "Neutral"

未来增强

此 MCP 服务器可以通过其他功能进行扩展:

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

贡献

欢迎通过提交 pull request 或报告问题来做出贡献。 让我们使股票市场分析更易于访问且由 AI 驱动!

联系我

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

🔗 LinkedIn: Syed Hasan 🤗 Hugging Face: Syed-Hasan-8503

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python