Yahoo Finance

Um servidor MCP para consultar dados do Yahoo Finance usando a biblioteca yfinance.

Documentação

Servidor MCP do Yahoo Finance

Este projeto fornece um servidor Model Context Protocol (MCP) que expõe várias funções da biblioteca yfinance como ferramentas individuais. Isso permite que um cliente MCP (como o Claude Desktop) consulte dados do Yahoo Finance.

Pré-requisitos

  • Python: Certifique-se de ter o Python instalado (Python 3.8+ recomendado).
  • uv: Este projeto usa uv para gerenciamento de ambiente e pacotes. Se você não o tiver, instale-o seguindo as instruções aqui: https://github.com/astral-sh/uv

Configuração

  1. Clone o repositório:

    git clone git@github.com:a05031113/yahoo-fianace-mcp.git
    cd yahoo-finance # Or your repository directory name
    
  2. Crie um ambiente virtual: É altamente recomendável usar um ambiente virtual. Crie um usando uv:

    uv venv
    

    Isso criará um diretório .venv.

  3. Ative o ambiente virtual:

    • No macOS/Linux:
      source .venv/bin/activate
      
    • No Windows (Git Bash/WSL):
      source .venv/Scripts/activate
      
    • No Windows (Prompt de Comando/PowerShell):
      .venv\Scripts\activate
      

    Você deve ver (.venv) no início do prompt do seu terminal.

  4. Instale as dependências: Instale os pacotes Python necessários usando uv:

    uv pip install -r requirements.txt
    

Executando o Servidor

Este servidor se comunica via entrada/saída padrão (stdio), conforme esperado pelo MCP. Para executar o servidor, basta executar o script main.py usando o interpretador Python do seu ambiente virtual ativado:

python main.py

O servidor iniciará e imprimirá mensagens de log no erro padrão (stderr), aguardando solicitações JSON-RPC na entrada padrão (stdin).

Normalmente, você configuraria seu cliente MCP (por exemplo, no arquivo JSON de configurações) para executar este comando:

{
  "mcpServers": {
    "yahoo_finance_engine": {
      "command": "/path/to/your/yahoo-finance/.venv/bin/python", // Adjust path accordingly
      "args": [
        "/path/to/your/yahoo-finance/main.py" // Adjust path accordingly
      ]
    }
    // ... other servers
  }
}

O cliente MCP então gerenciará a inicialização e a comunicação com este processo do servidor.

Ferramentas Disponíveis

O servidor expõe os métodos públicos da classe YahooFinance (definida em src/tool.py) como ferramentas MCP individuais. Isso inclui (mas não se limita a):

  • get_current_stock_price(symbol: str)
  • get_stock_price_by_date(symbol: str, date: str)
  • get_stock_price_date_range(symbol: str, start_date: str, end_date: str)
  • get_historical_stock_prices(symbol: str, period: str = "1mo", interval: str = "1d")
  • get_dividends(symbol: str)
  • get_income_statement(symbol: str, freq: str = "yearly")
  • get_cashflow(symbol: str, freq: str = "yearly")
  • get_balance_sheet(symbol: str, freq: str = "yearly")
  • get_earning_dates(symbol: str, limit: int = 12)
  • get_news(symbol: str)
  • get_company_info(symbol: str)
  • get_splits(symbol: str)
  • get_recommendations(symbol: str)
  • get_analyst_price_targets(symbol: str)
  • get_major_holders(symbol: str)
  • get_institutional_holders(symbol: str)
  • get_mutualfund_holders(symbol: str)
  • get_option_expiration_dates(symbol: str)
  • get_option_chain(symbol: str, date: str)
  • get_sustainability(symbol: str)

Consulte as docstrings em main.py ou src/tool.py para obter detalhes sobre os parâmetros de cada ferramenta.

Certificado pela Revisão MCP. https://mcpreview.com/mcp-servers/a05031113/yahoo-fianace-mcp