使用说明
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的形式返回,而不是崩溃。
许可证
麻省理工学院