使用说明
YFinance MCP服务器
功能齐全 模型上下文协议(MCP) 该服务器通过简单的键入MCP工具公开了雅虎财经几乎所有的功能。
内置于 FastMCP 因此,您可以将其直接插入任何LLM工作流、代理框架或官方MCP客户端SDK。
特性
- 25+工具,包括:
- 价格历史(单个和多个股票代码)
- 财务报表(收入、资产负债表、现金流量)
- 分析师数据(建议、价格目标、收益估算)
- 所有权和内幕交易
- 股息、分割和行动
- 期权链
- 新闻和收益日历
- 基金/ETF持有量
- ESG和可持续性指标
- 股票筛选器和搜索工具
- 批量操作和融资全局配置
- 纯Python,无需外部服务。
- 暴露两者 标准输入输出 (默认)和 HTTP/SSE 如果您想通过网络提供服务,请使用传输。
需求
- Python 3.10+
- pipx (用于MCP客户端集成)
所有依赖项都列在 requirements.txt (生成如下)。
pandas
yfinance
fastmcp
如果您已经手动安装了软件包,则可以跳过下一步。
安装pipx
如果您没有安装pipx,请先安装:
macOS:
brew install pipx
Linux/Ubuntu:
sudo apt install pipx
# or
python3 -m pip install --user pipx
窗户:
python -m pip install --user pipx
安装后,确保pipx在您的PATH中:
pipx ensurepath
安装
选项1:从PyPI安装(推荐)
pip install yfinance-mcp-server
选项2:从源代码安装
# 1) Clone the repository
git clone https://github.com/itsmejay80/yfinance-mcp-server.git
cd yfinance-mcp-server
# 2) (Optional) create a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# 3) Install dependencies
pip install -r requirements.txt
运行服务器
如果从PyPI安装:
yfinance-mcp-server
如果从源代码运行:
python main.py
您应该看到一个FastMCP横幅,如:
╭─ FastMCP 2.0 ─────────────────────────╮
│ 🖥️ Server name: yfinance-server │
│ 📦 Transport: STDIO │
│ … │
╰───────────────────────────────────────╯
服务器正在监听 标准输入输出 默认情况下(非常适合嵌入到其他进程中)。
要公开HTTP端点,请执行以下操作:
from fastmcp import FastMCP
from main import mcp # reuse the configured server
if __name__ == "__main__":
# Starts an HTTP server on http://0.0.0.0:8000
mcp.run(transport="http", host="0.0.0.0", port=8000)
MCP客户端的配置
光标IDE
将此添加到光标MCP设置中:
{
"mcpServers": {
"yfinance": {
"command": "pipx",
"args": [
"run",
"yfinance-mcp-server"
]
}
}
}
克劳德桌面
将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"yfinance": {
"command": "pipx",
"args": [
"run",
"yfinance-mcp-server"
]
}
}
}
自定义配置
如果从源代码安装或需要自定义路径:
{
"mcpServers": {
"yfinance-server": {
"command": "python",
"args": ["/path/to/yfinance-mcp-server/main.py"],
"cwd": "/path/to/yfinance-mcp-server"
}
}
}
消耗工具
使用FastMCP客户端从Python
from fastmcp import FastMCPClient
client = FastMCPClient("http://localhost:8000")
# List available tools
for tool in client.list_tools():
print(tool.name, "->", tool.description)
# Call a tool
resp = client.call_tool("get_stock_history", {
"symbol": "AAPL",
"period": "6mo",
"interval": "1d"
})
print(resp)
从命令行(stdio)
您可以将JSON-RPC请求通过管道传输到正在运行的进程中;大多数用户会让代理框架来管理这一点。有关详细信息,请参阅FastMCP文档。
项目结构
MCPWorld/
├── main.py # all tool definitions + entrypoint
├── requirements.txt # dependency list
└── README.md # you are here
部署
服务器是自包含的——任何可以运行Python的平台都可以承载它。
对于一个命令部署,请查看 FastMCP云.
许可证
此项目根据MIT许可证获得许可(参见 LICENSE 文件(如果包含)。您可以随意调整或扩展。