使用说明
YFinance MCP服务器
一个全面的模型上下文协议(MCP)服务器,通过雅虎金融API集成提供财务数据。该服务器使AI代理能够访问实时股票市场数据、历史价格、财务报表和市场分析。
特性
- 10种综合金融工具 完整的市场数据访问
- 实时股票信息 包括价格、市值和关键指标
- 历史数据分析 具有灵活的时间段和间隔
- 财务报表 (损益表、资产负债表、现金流量表)
- 收益数据 (年度和季度)
- 股息和拆分历史
- 新闻和分析师建议
- 股票搜索和多报价支持
- 稳健的错误处理 具有结构化JSON响应
- FastMCP框架 支持异步以实现高性能
快速开始
先决条件
- Python 3.11+
- uv(Python包管理器)
安装
# Clone the repository
git clone https://github.com/barvhaim/yfinance-mcp-server.git
cd yfinance-mcp-server
# Install dependencies
uv sync
运行服务器
# Start the MCP server
uv run main.py
# The server will start and be ready to accept MCP client connections
可用工具
1.get_stock_info
获取全面的股票信息,包括当前价格、市值和财务指标。
参数:
symbol(str):股票代码(例如“AAPL”、“GOOGL”)
退货: 股票信息,包括价格、市值、市盈率、股息率、52周区间、成交量、贝塔系数和公司详细信息。
2.获取历史数据
以灵活的时间段和间隔检索历史股票价格数据。
参数:
symbol(str):股票代码period(str):时间段(1d、5d、1mo、3mo、6mo、1y、2y、5y、10y、ytd、max)interval(str):数据间隔(1m、2m、5m、15m、30m、60m、90m、1h、1d、5d、1wk、1mo、3mo)
退货: 历史OHLCV数据,包括日期和体积信息。
3.get_dividends
获取股票的股息支付历史记录。
参数:
symbol(str):股票代码
退货: 股息支付清单,包括日期和金额。
4.get_splits
检索股票分割历史记录。
参数:
symbol(str):股票代码
退货: 带有日期和分割比率的股票分割列表。
5.财务人员
获取全面的财务报表。
参数:
symbol(str):股票代码quarterly(bool):如果为True,则获取季度数据,如果为False,则获取年度数据
退货: 损益表、资产负债表和现金流量表数据。
6.获取收益
检索收益数据进行分析。
参数:
symbol(str):股票代码
退货: 年度和季度收益数据。
7.获取新闻
获取与股票相关的最新新闻文章。
参数:
symbol(str):股票代码count(int):要返回的文章数(默认值:10)
退货: 包含标题、链接、出版商和时间戳的新闻文章列表。
8.获得表彰
获取分析师的建议和评级。
参数:
symbol(str):股票代码
退货: 分析师建议列表,包括公司、评级和行动。
9.搜索库存
按公司名称或股票代码搜索股票。
参数:
query(str):搜索查询(公司名称或股票代码)limit(int):返回的最大结果数(默认值:10)
退货: 带有符号、名称和交易所信息的匹配股票列表。
10.获取多个引号
同时获取多只股票的当前报价。
参数:
symbols(List[str]):股票代码列表
退货: 包含当前价格、变化和基本指标的股票报价词典。
使用示例
股票基本信息
# Get Apple stock information
result = await get_stock_info("AAPL")
print(f"Current Price: ${result['current_price']}")
print(f"Market Cap: ${result['market_cap']:,}")
历史数据分析
# Get 1-year daily data for Google
result = await get_historical_data("GOOGL", period="1y", interval="1d")
print(f"Retrieved {result['count']} data points")
多个股票报价
# Get quotes for tech stocks
result = await get_multiple_quotes(["AAPL", "GOOGL", "MSFT", "AMZN"])
for symbol, quote in result['quotes'].items():
print(f"{symbol}: ${quote['current_price']}")
MCP客户端集成
Claude桌面集成
要将此服务器与Claude Desktop连接,请执行以下操作:
-
启动服务器 在一个终端中:
uv run main.py -
配置Claude桌面 通过编辑MCP设置文件:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json视窗:
%APPDATA%\Claude\claude_desktop_config.json -
添加服务器配置:
{ "yfinance": { "command": "uv", "args": [ "--directory", "/path/to/yfinance-mcp-server", "run", "main.py" ] } } -
更新cwd路径 到您的实际项目目录
-
重新启动克劳德桌面 加载新服务器
-
验证连接 问克劳德:“你有什么财务数据工具?”
替代方案:直接连接
对于其他MCP客户端:
- 启动服务器:
uv run main.py - 配置您的MCP客户端 连接到服务器终结点
- 工具将被自动发现 由您的AI代理
- 使用标准股票代码 (AAPL、GOOGL、MSFT等)使用工具
发展
代码格式化
# Format code with black
uv run black .
# Check formatting
uv run black --check .
# Show formatting differences
uv run black --diff .
添加新工具
- 在中创建一个新的异步函数
main.py - 用…装饰
@mcp.tool() - 添加适当的类型提示和文档字符串
- 包括错误处理
- 测试实施情况
环境变量
复制 .env.sample 向 .env 对于所需的任何配置:
cp .env.sample .env
错误处理
所有工具都包括全面的错误处理:
- 无效符号 返回结构化错误消息
- 网络问题 被发现并报告
- 数据不可用 处理得当
- 速率限制 自动受到财务部门的尊重
性能注意事项
- 异步操作 为了获得最佳性能
- 高效的数据序列化 使用结构化JSON
- 最少的数据处理 减少延迟
- 内置缓存 通过yfinance获取频繁访问的数据
依赖项
- fastmcp -用于MCP服务器实现的FastMCP框架
- y融资 -雅虎金融API财务数据
- python dotenv -环境变量管理
- 黑色 -代码格式
- 媒染剂 -数据验证和序列化
许可证
该项目在MIT许可证下可用。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 黑色格式化代码
- 提交拉取请求
支持
对于问题和疑问:
- 检查 问题 章节
- 查看
CLAUDE.md开发指导文件 - 确保所有依赖项都已正确安装
uv sync
更新日志
v0.1.0
- 初步实施10个财务数据工具
- FastMCP服务器框架集成
- 全面的错误处理
- 金融API全面覆盖
- MCP客户端集成支持