tradingview-chart-mcp

MCP.Pizza Chef: ertugrul59

When you want an assistant to look at a price chart, you normally have to open TradingView, set it up, screenshot, and paste. This does that for you: name a ticker and a timeframe and it captures the chart image directly. Handy for reviewing several symbols in a row without repeating the same clicks. It works in Claude Desktop and Cursor, needs no account, and drives a browser behind the scenes.

Data
Images/Design
Web/Research

Use This MCP server To

Get a chart image for a ticker Compare the same symbol on two timeframes Pull charts for several symbols in a row Look at a chart without opening TradingView Capture a chart to include in a note

README

MCP Server - TradingView Chart Image Scraper

smithery badge

This MCP server provides tools to fetch TradingView chart images based on ticker and interval.

Setup

  1. Create Virtual Environment:

    # Navigate to the project directory
    cd tradingview-chart-mcp
    # Create the venv (use python3 if python is not linked)
    python3 -m venv .venv
  2. Activate Virtual Environment:

    • macOS/Linux:
      source .venv/bin/activate
    • Windows (Git Bash/WSL):
      source .venv/Scripts/activate
    • Windows (Command Prompt):
      .venv\\Scripts\\activate.bat
    • Windows (PowerShell):
      .venv\\Scripts\\Activate.ps1
      (Note: You might need to adjust PowerShell execution policy: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser)

    Your terminal prompt should now indicate you are in the (.venv).

  3. Install Dependencies (inside venv):

    pip install -r requirements.txt
  4. Configure Environment (for Local Testing):

    • Copy .env.example to .env.
    • Fill in your TRADINGVIEW_SESSION_ID and TRADINGVIEW_SESSION_ID_SIGN in the .env file. You can obtain these from your browser's cookies after logging into TradingView.
    • This .env file is used when running the server directly (e.g., python main.py) for local testing.
    • Adjust optional scraper settings (MCP_SCRAPER_HEADLESS, etc.) in .env if needed for local runs.
  5. Ensure ChromeDriver: Make sure chromedriver is installed and accessible in your system's PATH, or configure the tview-scraper.py accordingly if it allows specifying a path.

Running the Server

Ensure your virtual environment is activated (source .venv/bin/activate or equivalent).

python main.py

Deactivating the Virtual Environment

When you are finished, you can deactivate the environment:

deactivate

Usage

Once the server is running (within the activated venv), you can interact with it using an MCP client, targeting the TradingView Chart Image server name.

Available Tools:

  • get_tradingview_chart_image(ticker: str, interval: str): Fetches the direct image URL for a TradingView chart.

Example Prompts:

  • "Get the 15 minute chart for NASDAQ:AAPL"
  • "Show me the daily chart for BYBIT:BTCUSDT.P"
  • "Fetch TradingView chart image for COINBASE:ETHUSD on the 60 timeframe"

🔌 Using with MCP Clients (Claude Desktop / Cursor)

This server supports two ways of providing configuration:

  1. Via .env file (for local testing): When running python main.py directly, the server will load credentials and settings from a .env file in the project directory.
  2. Via Client Environment Variables (Recommended for Integration): When run by an MCP client (like Claude/Cursor), you should configure the client to inject the required environment variables directly. These will override any values found in a .env file.

Claude Desktop

  1. Open your Claude Desktop configuration file:

    • Windows: %APPDATA%\\Claude\\claude_desktop_config.json
    • macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
  2. Add or merge the following within the mcpServers object. Provide your credentials in the env block:

    {
      "mcpServers": {
        "tradingview-chart-mcp": {
          "command": "/absolute/path/to/your/tradingview-chart-mcp/.venv/bin/python3",
          "args": ["/absolute/path/to/your/tradingview-chart-mcp/main.py"],
          "env": {
            "TRADINGVIEW_SESSION_ID": "YOUR_SESSION_ID_HERE",
            "TRADINGVIEW_SESSION_ID_SIGN": "YOUR_SESSION_ID_SIGN_HERE"
            // Optional: Add MCP_SCRAPER_* variables here too if needed
            // "MCP_SCRAPER_HEADLESS": "False"
          }
        }
        // ... other servers if any ...
      }
    }
  3. Replace the placeholder paths (command, args) with your actual absolute paths.

  4. Replace YOUR_SESSION_ID_HERE and YOUR_SESSION_ID_SIGN_HERE with your actual TradingView credentials.

  5. Restart Claude Desktop.

Cursor

  1. Go to: Settings -> Cursor Settings -> MCP -> Edit User MCP Config (~/.cursor/mcp.json).

  2. Add or merge the following within the mcpServers object. Provide your credentials in the env block:

    {
      "mcpServers": {
        "tradingview-chart-mcp": {
          "command": "/absolute/path/to/your/tradingview-chart-mcp/.venv/bin/python3",
          "args": ["/absolute/path/to/your/tradingview-chart-mcp/main.py"],
          "env": {
            "TRADINGVIEW_SESSION_ID": "YOUR_SESSION_ID_HERE",
            "TRADINGVIEW_SESSION_ID_SIGN": "YOUR_SESSION_ID_SIGN_HERE"
            // Optional: Add MCP_SCRAPER_* variables here too if needed
            // "MCP_SCRAPER_HEADLESS": "False"
          }
        }
        // ... other servers if any ...
      }
    }
  3. Replace the placeholder paths (command, args) with your actual absolute paths.

  4. Replace YOUR_SESSION_ID_HERE and YOUR_SESSION_ID_SIGN_HERE with your actual TradingView credentials.

  5. Restart Cursor.

Installing via Smithery

To install TradingView Chart Image Scraper for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @ertugrul59/tradingview-chart-mcp --client claude

tradingview-chart-mcp FAQ

Can I use this to get a chart without opening TradingView?
Yes — you name the ticker and timeframe and it captures the image for you.
Do I need an account or key?
No account is needed, since it captures publicly viewable charts.
Which apps does it work with?
It is documented for Claude Desktop and Cursor.
Can I request several charts at once?
Yes — it handles concurrent requests, so a run of symbols is fine.
How hard is it to set up?
It drives a browser behind the scenes, so setup takes a little technical comfort.