金融数据查询服务器

一个基于Yahoo Finance数据的MCP服务器,提供股票价格、公司基本面、财务报表、分析师推荐等多种金融数据查询工具。

  • by rizkydwicmt
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 rizkydwicmt/yfinance-mcp-server

使用说明

YFinance MCP服务器

一个用于雅虎财经数据的综合MCP(模型上下文协议)服务器,由 y融资 Python库。提供12个工具,涵盖股票价格、公司基本面、财务报表、分析师建议、期权、股息、市场推动者、筛选器、搜索和新闻。

特性

工具 说明
tool_get_stock_info 公司信息——行业、市值、市盈率、利润率、描述
tool_get_stock_price 当前价格、变化百分比、日范围、交易量、52周范围
tool_get_history 历史OHLCV数据(可定制的周期和间隔)
tool_get_financials 损益表、资产负债表、现金流量表(年度/季度)
tool_get_recommendations 分析师评级、价格目标、升级/降级
tool_get_options 期权链——希腊的看涨期权和看跌期权
tool_get_dividends 股息历史+当前收益率
tool_compare_stocks 并排比较多达10只股票
tool_get_market_movers 涨幅最大、跌幅最大、最活跃的股票
tool_screen_stocks 按行业、市值、市盈率、股息收益率筛选
tool_search_stocks 按名称、行业或关键字查找股票代码
tool_get_news 任何股票的最新新闻文章

支持的市场

使用 雅虎财经支持的任何股票代码:

市场 示例
🇺🇸 美国 亚太电力公司、微软、谷歌、特斯拉、亚马逊
🇮🇩 印度尼西亚 BBCA。JK、BBRI.JK、TLKM。JK
🇯🇵 日本 7203.T(丰田),6758.T(索尼)
🇬🇧 英国 谢尔。L、 阿赞。L、 HSBA。L
🇭🇰 香港 0700.HK(腾讯)
📊 ETF SPY、QQQ、VTI、VOO
₿ 加密货币 BTC-USD、ETH-USD、SOL-USD
📈 指数 ^GSPC(标准普尔500指数),^JKSE(IDX指数)
💱 外汇 美元IDR=X,欧元兑美元=X

安装

先决条件

  • python ≥ 3.10
  • 紫外线 (推荐)或 点

选项A:使用紫外线安装(推荐)

紫外线 自动管理Python版本和虚拟环境。

# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone the project from GitHub
git clone https://github.com/rizkydwicmt/yfinance-mcp-server.git yfinance-mcp-server
cd yfinance-mcp-server

# Create venv with Python 3.12 and install
uv venv .venv --python 3.12
uv pip install -e . --python .venv/bin/python

# Verify
.venv/bin/yfin-mcp --help

选项B:使用pip安装

# Ensure Python ≥ 3.10
python3 --version

# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate   # Linux/macOS
# .venv\Scripts\activate    # Windows

# Install in editable mode
pip install -e .

# Verify
yfin-mcp --help

选项C:从源代码安装(无venv)

pip install -e /path/to/yfinance-mcp-server

运行服务器

独立(标准传输)

服务器使用MCP stdio传输通过stdin/stdout进行通信:

# If installed in a venv
.venv/bin/yfin-mcp

# If installed globally
yfin-mcp

# Or run directly with Python
python -m yfinance_mcp.server

注: 服务器被设计为由MCP客户端(如Claude、Cursor或mcporter)启动。独立运行它将启动stdio侦听器,您将看不到交互式输出。

使用mcporter CLI

麦克波特 是一个用于管理和调用MCP服务器的CLI工具。

1.配置mcporter

将yfinance服务器添加到您的 mcporter.json:

{
  "mcpServers": {
    "yfinance": {
      "command": "/absolute/path/to/yfinance-mcp-server/.venv/bin/yfin-mcp"
    }
  }
}

2.验证注册

# List all tools
mcporter --config /path/to/mcporter.json list yfinance

# With full schema
mcporter --config /path/to/mcporter.json list yfinance --schema

3.调用工具

# Get current stock price
mcporter call yfinance.tool_get_stock_price symbol=AAPL

# Get historical data
mcporter call yfinance.tool_get_history symbol=BBCA.JK period=1y interval=1wk

# Compare stocks
mcporter call yfinance.tool_compare_stocks symbols="AAPL,MSFT,GOOG"

# Search for stocks
mcporter call yfinance.tool_search_stocks query="semiconductor ETF"

# Get market movers
mcporter call yfinance.tool_get_market_movers mover_type=gainers

# Get financial statements
mcporter call yfinance.tool_get_financials symbol=MSFT statement_type=income quarterly=true

# Screen stocks
mcporter call yfinance.tool_screen_stocks sector=Technology min_market_cap=1000000000

# Get news
mcporter call yfinance.tool_get_news symbol=TSLA max_items=5

使用OpenClaw进行部署

开爪 是一个自托管的AI网关,为AI代理管理MCP服务器。

步骤1:将项目复制到服务器

scp -r -P <port> ./yfinance-mcp-server user@your-server:/root/project/mcp/yfinance-mcp-server

步骤2:在服务器上安装

# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Create venv + install
/root/.local/bin/uv venv /root/project/mcp/yfinance-mcp-server/.venv --python 3.12
/root/.local/bin/uv pip install -e /root/project/mcp/yfinance-mcp-server/ \
  --python /root/project/mcp/yfinance-mcp-server/.venv/bin/python

步骤3:添加到OpenClaw/mcporter配置

编辑mcporter配置文件(通常在 /root/clawd/config/mcporter.json):

{
  "mcpServers": {
    "yfinance": {
      "command": "/root/project/mcp/yfinance-mcp-server/.venv/bin/yfin-mcp"
    }
  }
}

步骤4:验证

mcporter --config /root/clawd/config/mcporter.json list yfinance --schema
mcporter --config /root/clawd/config/mcporter.json call yfinance.tool_get_stock_price symbol=AAPL

预期产量:

{
  "symbol": "AAPL",
  "shortName": "Apple Inc.",
  "currentPrice": 255.78,
  "change": -5.95,
  "changePercent": -2.27,
  "marketCap_formatted": "3.76T",
  "direction": "▼"
}

安装为OpenClaw技能

OpenClaw代理可以通过其 技能 系统。技能是包含以下内容的文件夹 SKILL.md 提供AI代理工具文档和使用示例的文件。

快速安装(一个命令)

# On your OpenClaw server — copy SKILL.md into the skills directory
sudo mkdir -p /root/clawd/skills/yfinance && \
sudo cp /root/project/mcp/yfinance-mcp-server/SKILL.md /root/clawd/skills/yfinance/SKILL.md

手动安装(逐步)

步骤1:创建技能目录

sudo mkdir -p /root/clawd/skills/yfinance

第二步:复制SKILL.md

# From the project directory
sudo cp /root/project/mcp/yfinance-mcp-server/SKILL.md /root/clawd/skills/yfinance/SKILL.md

# Or from source (if installing on a new server)
scp -P <port> ./SKILL.md user@your-server:/tmp/SKILL.md
sudo mkdir -p /root/clawd/skills/yfinance
sudo cp /tmp/SKILL.md /root/clawd/skills/yfinance/SKILL.md

步骤3:(可选)添加技能README

sudo cp /root/project/mcp/yfinance-mcp-server/README.md /root/clawd/skills/yfinance/README.md

步骤4:验证技能是否已安装

# Check skill files exist
ls -la /root/clawd/skills/yfinance/
# Expected:
#   SKILL.md    — tool reference for AI agents
#   README.md   — optional human-readable overview

# Check SKILL.md has correct frontmatter
head -3 /root/clawd/skills/yfinance/SKILL.md
# Expected:
#   ---
#   name: yfinance
#   description: Access Yahoo Finance data — stock prices, history, financials, ...

技能提供什么

安装后,OpenClaw服务器上的AI代理将看到yfinance技能,并可以:

  • 查询任何市场(美国、印度尼西亚、日本等)的实时股票价格
  • 分析财务报表和基本面
  • 并排比较多只股票
  • 按行业、市值、市盈率筛选股票
  • 获取分析师建议和期权链
  • 搜索股票行情并阅读最新消息

需求

技能文档(SKILL.md)告诉特工 有哪些可用的工具,但实际的MCP服务器也必须在中安装和注册 mcporter.json。请参阅 使用OpenClaw进行部署 上面的部分。

技能目录结构

/root/clawd/
├── config/
│   └── mcporter.json        ← MCP server registration
└── skills/
    └── yfinance/
        ├── SKILL.md          ← Tool reference (required)
        └── README.md         ← Overview (optional)

与AI客户端集成

克劳德桌面版

增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "yfinance": {
      "command": "/absolute/path/to/yfinance-mcp-server/.venv/bin/yfin-mcp"
    }
  }
}

光标

增添 .cursor/mcp.json 在项目根目录中:

{
  "mcpServers": {
    "yfinance": {
      "command": "/absolute/path/to/yfinance-mcp-server/.venv/bin/yfin-mcp"
    }
  }
}

VS代码(副本)

增添 .vscode/mcp.json:

{
  "servers": {
    "yfinance": {
      "type": "stdio",
      "command": "/absolute/path/to/yfinance-mcp-server/.venv/bin/yfin-mcp"
    }
  }
}

Windsurf/Cline/任何MCP客户端

服务器使用标准 stdio传输,因此它适用于任何兼容MCP的客户端。向客户指出 yfin-mcp 二进制作为命令。


项目结构

yfinance-mcp-server/
├── pyproject.toml                  # Package config, deps, entry point
├── README.md                       # This file
├── SKILL.md                        # Tool reference for AI agents
├── src/
│   └── yfinance_mcp/
│       ├── __init__.py             # Package version
│       ├── server.py               # FastMCP server + all 12 tool registrations
│       ├── types.py                # Enums (Period, Interval, StatementType, etc.)
│       ├── utils.py                # JSON encoding, DataFrame helpers, error handling
│       └── tools/
│           ├── __init__.py
│           ├── ticker.py           # 7 ticker tools (info, price, history, etc.)
│           ├── market.py           # 3 market tools (compare, movers, screener)
│           └── search.py           # 2 search/news tools
└── tests/
    └── (test files)

查询示例

一旦连接到AI助手:

  • “AAPL目前的价格是多少?”
  • “显示BBCA.JK过去一年的历史数据”
  • “比较TSLA、RIVN和NIO的关键指标”
  • “获取Microsoft的损益表”
  • “搜索半导体股票”
  • “给我看看今天市场涨幅最大的股票”
  • “分析师对特斯拉有什么建议?”
  • “获取2025年3月到期的AAPL期权链”
  • “筛选市盈率低于25、市值超过100亿美元的科技股”
  • “关于苹果的最新消息”

故障排除

FastMCP.__init__() got an unexpected keyword argument 'version'

已安装 mcp[cli] 版本可能不支持 version kwarg。服务器已打好补丁,可以使用 FastMCP("YFinance MCP Server") 没有额外的kwargs。

mcporter: Unknown MCP server 'yfinance'

mcporter从以下位置读取配置 ./config/mcporter.json 相对于工作目录。从配置的父目录运行,或使用 --config:

mcporter --config /path/to/mcporter.json list yfinance

pip: command not found /Python太旧了

使用 uv --它会自动下载和管理Python版本:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv .venv --python 3.12
uv pip install -e . --python .venv/bin/python

速率限制/API错误

雅虎财经可能会限制大量使用。服务器内置了错误处理功能——错误以结构化JSON的形式返回,而不是崩溃。

许可证

麻省理工学院