雅虎金融MCP服务器
一种模型上下文协议(MCP)服务器,通过RapidAPI Yahoo Finance 15 API提供对Yahoo Finance数据的访问。该服务器提供24种工具,用于检索股票市场数据、财务报表、期权数据等。
特性
- 股市数据:实时报价、历史数据和市场统计
- 财务报表:损益表、资产负债表、现金流量表
- 收益数据:季度收益、估计和历史趋势
- 选项数据:完整的期权链,包括罢工和溢价
- 市场分析:内幕交易、机构所有权、分析师建议
- 公司信息:配置文件、关键统计数据和日历事件
可用工具
市场数据工具
- 搜索 -搜索股票、ETF和共同基金
- 获取市场报价 -获取股票的当前市场报价
- 获取市场新闻 -获取特定股票的市场新闻
- get_market_screener -获取热门股票和市场动态
库存数据工具
- get_stock_profile -公司简介和业务信息
- get_stock_财务数据 -全面的财务指标和比率
- get_stock_key_统计 -关键统计数据和估值指标
- get_stock_balance_sheet -资产负债表数据(季度和年度)
- get_stock_insider_holders -主要内幕人士信息
- get_stock_sec_files -SEC文件和文件
分析工具
- get_stock_recommendation_trend -分析师推荐趋势
- get_stock_upgrade_downgrade_history -分析师升级/降级
- get_stock_net_share_purchase_activity -净购股统计
- get_stock_机构_所有权 -机构所有权数据
- get_stock_index_trend -指数相关趋势数据
- get_stock_insider_transactions -内幕交易活动
- get_stock_cashflow_statement -现金流量表数据(季度和年度)
- get_stock_calendar_events -收益日期、股息和事件
- get_stock_earnings_trend -收益趋势分析
- get_stock_earnings_history -历史收益数据
- get_stock_收益 -收益数据和季度业绩
- get_stock_income_statement -损益表数据(季度和年度)
- get_stock_历史 -不同时间间隔的历史价格数据
选项数据
- 获取选项数据 -包含罢工和溢价的完整期权链
Claude桌面设置
将以下内容添加到您的Claude Desktop配置文件中(claude_desktop_config.json):
{
"mcpServers": {
"YahooFinance": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Tilak-Shenoy/mcp-yh-finance.git",
"yahoofinance"
],
"env": {
"RAPIDAPI_KEY": "YOUR_API_KEY"
}
}
}
}这应该会自动提取代码并运行工具。跟随 获取RapidAPI密钥 获取API密钥。如果您不想对服务器进行任何代码更改,可以在这里停止。
安装
先决条件
- Python 3.12或更高版本
- 订阅Yahoo Finance 15 API的RapidAPI帐户
- MCP兼容客户端(例如Claude Desktop)
设置步骤
- 克隆存储库
git clone
cd mcp-yh-finance- 安装依赖项
如果你没有 uv 安装后,您可以使用以下命令进行安装:
# On macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"同步依赖关系
uv sync- 设置环境变量
将以下内容添加到您的Claude Desktop配置文件中(claude_desktop_config.json):
{
"mcpServers": {
"YahooFinance": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-yh-finance",
"run",
"yahoofinance"
],
"env": {
"RAPID_API_KEY": "your_api_key_here"
}
}
}
}获取RapidAPI密钥
- 注册地址: 拉皮达皮
- 订阅 雅虎财经15 API
- 将API密钥复制到claude_desktop_config.json文件中的env-param
刀具参数
公共参数
- 符号 (str):股票代码(例如,“AAPL”、“GOOGL”和“MSFT”)
- 间隔 (str):历史数据的时间间隔
- 有效值:“1m”、“2m”、“5m”、“15m”、”30m“、”60m“、“90m”“、”1h“、”1d“、”5d“、”1周“、”1mo“、”3mo“
- 日期 (str):选项和日历数据的日期格式为YYYY-MM-DD
搜索参数
- 怎么翻译 (str):查找股票/ETF的搜索查询
市场数据参数
- 心脏 (str):新闻的逗号分隔的股票代码
- 类型 (str):新闻类型(“全部”、“视频”、“新闻发布”)
- 筛选器_类型 (str):筛选类型(“趋势”、“赢家”、“输家”等)
错误处理
服务器提供全面的错误处理:
- 无效参数:返回描述性错误消息
- API故障:返回“无法获取\[数据\]”消息
- 网络问题:自动重试逻辑(如适用)
- 速率限制:遵守API费率限制
API费率限制
雅虎财经15 API有以下免费使用,但您可以订阅以获得每月更多的请求和更高的费率限制。
检查您的RapidAPI仪表板,了解当前的使用情况和限制。
发展
项目结构
mcp-yh-finance/
├── src/
│ └── yh_finance/
│ ├── __init__.py
│ ├── main.py # Server entry point
│ ├── api_handler.py # API request handler
│ ├── yh_tools.py # Tool definitions
│ └── .env # Environment variables
├── pyproject.toml # Project configuration
└── README.md # This file添加新工具
- 在中定义工具功能
yh_tools.py - 使用
@server.tool()装饰器 - 遵循命名约定:
get_[data_type] - 实施适当的错误处理
- 添加全面的文档字符串
例子:
@server.tool()
async def get_custom_data(ctx: Context, symbol: str) -> str:
"""Get custom data for a stock.
Args:
symbol (str): Stock symbol.
Returns:
str: JSON string with custom data.
"""
url = f"{BASE_URL}/endpoint/{symbol}"
response = await make_api_request(url, {}, ctx)
if not response:
return "Unable to fetch custom data."
return json.dumps(response, indent=4)贡献
- 分叉存储库
- 创建要素分支
- 添加新功能的测试
- 更新文档
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
支持
- 问题:在GitHub上报告错误和功能请求
- API支持:联系RapidAPI了解雅虎财经API问题
- 文档:查看此README和内联代码文档
更新日志
版本1.0.0
- 首次发布,包含24种金融工具
- 支持股票、ETF和共同基金
- 选项数据和日历事件
- 全面的错误处理
- Claude桌面集成
______________________________________________________________________
备注:此服务器需要对Yahoo Finance 15 API进行有效的RapidAPI订阅。根据您的订阅级别,某些功能可能会受到限制。
