金融数据服务

YFinance MCP Server是一个功能丰富的金融数据服务,通过简单的MCP工具提供Yahoo Finance的几乎所有功能,适用于金融分析、投资决策和机器学习工作流。

  • by itsmejay80
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 itsmejay80/yfinance-mcp-server

使用说明

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 文件(如果包含)。您可以随意调整或扩展。