mcpField
M
MCP Yahoo Finance

MCP Yahoo Finance

本地服务
github.com/maxscheijen金融数据282 周前更新

关于 MCP Yahoo Finance

MCP Yahoo Finance 是一个 MCP 服务,用于从 Yahoo Finance 获取股票价格、公司信息、历史价格、财务报表、新闻和期权数据。项目目前处于早期开发阶段,工具名称和返回字段可能随版本变化。

主要功能

  1. 01实时股价与报价查询
  2. 02历史价格与区间收益分析
  3. 03财务报表与分红数据
  4. 04新闻与分析师评级
  5. 05期权到期日与期权链

适用场景

  1. 01比较多只股票的收益与波动率
  2. 02查询某公司的财务报表与分红记录
  3. 03获取特定到期日的期权链数据

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 get_current_stock_price、get_historical_stock_prices、get_income_statement、get_option_chain 等工具,返回 JSON 格式数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Yahoo Finance

PyPI - Version PyPI - Python Version PyPI - License

MCP Yahoo Finance 是一个 Model Context Protocol(MCP)服务。它从 Yahoo Finance 获取数据。你可以用它获取股价、公司数据、历史价格、财务报告、新闻、分析师评级、财报日期、股息和期权数据。

此项目仍处于早期开发阶段。不同版本间的工具名称和响应字段可能会发生变化。

安装

无需单独安装即可运行 mcp-yahoo-finance。请使用 uvx。

使用 pip
pip install mcp-yahoo-finance
使用 Git

克隆仓库,然后安装开发环境:

git clone [email protected]:maxscheijen/mcp-yahoo-finance.git
cd mcp-yahoo-finance
uv sync

配置

Claude Desktop

将以下条目添加到 claude_desktop_config.json 文件中:

{
    "mcpServers": {
        "yahoo-finance": {
            "command": "uvx",
            "args": ["mcp-yahoo-finance"]
        }
    }
}

你也可以使用 Docker。将 IMAGE 替换为 Docker 镜像名称:

{
    "mcpServers": {
        "yahoo-finance": {
            "command": "docker",
            "args": ["run", "-i", "--rm", "IMAGE"]
        }
    }
}
VS Code

将以下条目添加到 .vscode/mcp.json 文件中:

{
    "servers": {
        "yahoo-finance": {
            "command": "uvx",
            "args": ["mcp-yahoo-finance"]
        }
    }
}

示例问题

你可以提出以下问题:

  1. “Apple 的股价是多少?”
  2. “提供 AAPL 的详细报价,包括前收盘价、盘中区间和市场状态。”
  3. “展示 Nvidia 的公司概况。”
  4. “Apple 和 Google 的股价差异是多少?”
  5. “Apple 的股价在 2024-01-01 到 2025-01-01 期间变动了多少?”
  6. “AAPL 有哪些可用的期权到期日?”
  7. “展示到期日为 2024-01-19 的 AAPL 期权链。”
  8. “Tesla 有哪些看涨期权和看跌期权?”

响应数据

工具以 JSON 格式返回数据。以下是详细报价的示例:

{
  "symbol": "AAPL",
  "currentPrice": 243.5822,
  "previousClose": 241.33,
  "absoluteChange": 2.2522,
  "percentChange": 0.9331,
  "open": 242.1,
  "dayHigh": 244.2,
  "dayLow": 241.9,
  "volume": 45678901,
  "marketStatus": "REGULAR",
  "currency": "USD",
  "exchange": "NMS",
  "timestamp": "2025-01-02T15:30:00+00:00",
  "source": {
    "provider": "Yahoo Finance",
    "endpoint": "info",
    "fetchedAt": "2025-01-02T15:30:01+00:00"
  }
}

所有工具的错误都使用相同格式。错误包含错误代码和消息:

{
  "error": {
    "code": "NO_DATA",
    "message": "No historical data found for AAPL"
  }
}

历史数据和表格结果保留数据源中的列名。日期使用 YYYY-MM-DD 格式。服务不会显示 Yahoo Finance 使用的时区。

历史价格工具默认返回调整后价格。调整后价格包含拆股和股息带来的变动。若要获取未经这些调整的价格,请在 get_historical_stock_prices 中将 adjusted 设为 false。

日期查询包含开始日期和结束日期。如果日期是周末或市场假日,该日期可能没有价格数据。在这种情况下,工具会返回 NO_DATA 错误。

如果报价或公司数据缺失,其值为 null。新闻工具默认返回 10 篇文章,最多可返回 100 篇。返回内容包括标题、URL、发布方、缩略图、相关股票代码和发布时间。发布时间使用 UTC 和 ISO 8601 格式。你可以设置 start_date 和 end_date 来筛选新闻。筛选范围包含这两个日期。

评级、财报、股息、财务报告和期权工具使用顶层 symbol 字段。只要 Yahoo Finance 上有相关数据,它们就会返回这些数据。

可用工具

symbol 值请使用 Yahoo Finance 股票代码。示例:AAPL 和 MSFT。

工具用途
get_current_stock_price获取当前股价和报价数据。
get_rich_quote获取包含价格、价格变动、交易区间、市场状态和来源数据的报价。
get_company_overview获取公司简介,包括所属板块、行业、市值、网站、员工人数、描述和来源数据。
get_symbol_comparison比较最多 20 个股票代码的当前报价。
get_performance_analysis比较多个股票代码的回报率、移动平均线、波动率、回撤、基准回报率和相关性。
get_stock_price_by_date获取某个交易日的调整后收盘价。
get_stock_price_date_range获取指定日期范围内的调整后收盘价。
get_historical_stock_prices获取指定周期和时间间隔的历史价格。
get_dividends获取过往股息派发记录。
get_stock_splits获取过往股票拆分记录。
get_capital_gains获取资本利得派发记录。
get_upcoming_dividends获取未来的股息日期和股息率。
get_earnings_analytics获取业绩结果和预估数据。
get_income_statement按年度、季度或滚动期间获取损益表。
get_cashflow按期间获取现金流量表。
get_earning_dates获取过去和未来的业绩发布日期。
get_news获取 Yahoo Finance 新闻。可以设置日期筛选条件。
get_recommendations获取分析师建议。
get_option_expiration_dates获取可用的期权到期日。
get_option_chain获取某个到期日的看涨期权和看跌期权。可以按行权价、价内外状态、流动性、价差、类型和结果数量进行筛选。
get_option_summary获取某个到期日的隐含波动率、未平仓合约数、成交量、看跌/看涨比率和最大痛点。

性能计算

性能分析使用经过股票拆分和股息调整的收盘价。

总回报率为 (last close / first close) - 1。

年化波动率为每日回报率的标准差乘以 sqrt(252)。

最大回撤是相对于此前高点的最大跌幅。

该工具根据各股票代码共同日期的每日回报率计算相关性。因此,它可以比较交易日历不同的股票代码。

本地开发

运行 uv sync 以安装锁定的开发环境。然后运行以下命令:

uv run pytest
uv run ruff check .
uv run ruff format --check .
uv build

你也可以使用以下 Makefile 命令:

make test
make lint
make docker-build

测试使用模拟的 Yahoo Finance 数据,不会向 Yahoo Finance 发起实时请求。

构建 Docker 镜像

运行以下命令:

docker build -t mcp-yahoo-finance .

使用 MCP Inspector 测试

运行以下命令:

npx @modelcontextprotocol/inspector uv run mcp-yahoo-finance

Yahoo Finance 限制

Yahoo Finance 是第三方数据源,其数据可能延迟、不完整或不可用。本项目不提供投资建议,也不保证数据准确、完整或最新。使用重要数据前,请先通过权威来源核实。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。