内容
雅虎财经MCP一个 [FastMhttps://gofastmcp.com) 服务器,通过 [`yfinancegithub.com/ranaroussi/yfinance) 库,暴露雅股票数据为M。
不需要API密钥 — ` 通过匿名cookie/碎牌与雅虎财经的未公开的端点进行通信,该令牌会自动获取。这是非,如果雅虎更改其前端中断或受到速率限制,但或凭证。
## 工具列表
| 工具 | 描述 |
|---|---|
| `get_current_price 通过股票代码或公司名称获取股票的当前价格 |
|_historical_data` | 历史高低收成交量数据(默认:过去5年) |
| `get_trend` | 趋势方向、移动平均线、动量、波动率 |
| `get_price_stats` | 自定义最近交易日数量的价格变化统计(例如“过去10天的平均变化”) |
| `get_sector_companies` | 某个行业/主题/板块的顶级公司(例如“AI”、“半导体”、“银行”),附实时股价数据 |
| `get_stock_news` | 股票的最新新闻头条 |
| `research_stock` | 将趋势 + 最近活动 + 新闻在一个调用中捆,用于研究/展望型问题 |
所有工具都接受股票代码(`AAPL`)或公司名称(`Apple`)— 名称通过雅虎的搜索端点自动解析为股票代码。
## 项目布局
```
src/yfinance_mcp/
app.py # 共享的FastMCP实例
resolve.py # 股票代码 / 行业 / 主题解析(纯 server.py #点(从环境变量读取传输,运行mcp)
/
quotes.py # get_current_price
history.py # get_historical_data, get_trend, get_price_stats
sectors.py _sector_companies
# get_stock_news
# research_stock
# 纯计算单元测试(无网络)
/ # CI:在推送运行pytest
```
每个工具将纯计算(例如_trend`、`compute_price 在 `history.py` 中网络获取分开,以便对数学运算进行单元无需访问雅虎财经。
地设置
```bashfinance-mcp
pythonm venv .venv
.venvip install -e ".```
运行测试:
.venv/bin/```
运行服务器(stdio本地MCP客户端):
```bash
.venv/bin/yfinance-m# 或:.venv -m yfinance_m
```
### 克劳
添加到 `claude_config.json`:
```{
"mcpServers": "yahoo-finance": {
"command": "/absolute/path/to/yfinance-mcp/./yfinance-mcp"
}
}
}
```
## 在实例上部署(远程访问)
`stdio` 传输仅在MCP客户端本地启动进程时才有效。要从EC2访问服务器,请改为上运行。
### 配置
- 实例都可以使用(例如 `.micro` / `t`),Amazon Linux 202 Ubuntu 22.04- 在实例的 **安全组,仅为可信打开您将运行的端口 `8000`)非您在前面添加身份LS,否则不要将其打开到 `0.0.0`。
### 安装依赖项
```bash yum install -y python-pip git #
# 或:sudo && sudo apt install -y python3 python3-venv git # Ubuntu
git clone <您的仓库网址> yfinance-mcp yfinance-mcp
pythonm venv .venv
/bin/pip install -e .
3. 在HTTP上服务器读取 `MCP`、`MCP_HOST`、`MCP_PORT` 环境变量:
```bash
MCP_TRANSPORT=http MCP_PORT=8000 .venv/bin/yfinance-mcp
```
这将MCP端点提供在 `http://<ec2-public-ip>:8000/mcp`。测试它:
```bash
curl -X POST http://<ec2-public-ip0/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json," \
-d '{"jsonrpc":"2.0","id":1":"initialize","params":{"protocol2024-11","capabilities":{},"clientInfo":{"name":"test","version.0"}}}'
```
4. 使用system运行
创建 `/etc/yfinance-mcp.service`:
```Unit]
Description虎财经MCP服务器=network.target
[Service=simple
User=ec2-user
WorkingDirectory=/-user/yfinance-mcp=MCP_TRANSPORT=http=MCP_HOST=0.0.0
Environment_PORT=8000
=/home/ec2-user/yfinance-mcp/.venv/bin/ycp
Restart=on
[Install]
W=multi-user.target
```
```bash
sudo-reload
sudo systemctlnow yfinance-mcp
status yfinance-mcp
-u yfinance -f # 日志
```
### 5推荐)放在Nginx + TLS后面
服务器没有验证 — 任何能访问都可以调用工具。对于超出组的范围的任何操作放在Nginx后面作为反向代理,并使用TLS( Encrypt/certbot)和基本或允许列表,然后让 `https://your-domain` 而不是原始端口。组对互联网关闭,只向代理上打开443### 6. 连接远程MCP客户端
任何支持HTTP流式HTTP传输的客户端都可以使用服务器URL,例如 `https://yourcp` 或 `http2-ip>:8000/m。请参阅您的文档,了解它如何CP服务器URL(配置因客户端而异)。
许可证
MIT — 请 [LICENSE](LICENSE)。