# atilaahmettaner/tradingview-mcp architecture

> Architecture diagram of the GitHub repository atilaahmettaner/tradingview-mcp, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/atilaahmettaner/tradingview-mcp
- Repository: https://github.com/atilaahmettaner/tradingview-mcp

## Overview

TradingView MCP exposes market-data and analysis tools to AI clients. The main workflow is a client tool request, server-side validation and dispatch, then market-data retrieval and domain analysis before a structured result returns. Major branches include screeners and scanners, technical and smart-money analysis, backtesting, sentiment/news, Yahoo Finance, futures/options, and EGX-specific analysis; hosted chart rendering is also documented. Service internals and external-provider links are based on the sampled source and README, so unsampled tool wiring is represented only where supported.

Main entry points: [`src/tradingview_mcp/server.py`](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/server.py) (MCP Server), [`src/tradingview_mcp/core/services/egx_service.py`](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/egx_service.py) (EGX Analysis), [`src/tradingview_mcp/core/services/screener_service.py`](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/screener_service.py) (TradingView Screener), [`src/tradingview_mcp/core/services/scanner_service.py`](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/scanner_service.py) (Market Scanners)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["MCP Interface"]
  node_server["MCP Server<br/>[server.py]"]
  node_validators["Input Validation<br/>[validators.py]"]
  node_errors["Error Envelopes<br/>[errors.py]"]
  node_chart["Interactive Charts<br/>[server.py]"]
end

subgraph group_market["Market Data"]
  node_tv_screener["TradingView Screener"]
  node_screener_provider["Screener Provider"]
  node_scanner["Market Scanners<br/>[scanner_service.py]"]
  node_coinlist["Symbol Universe<br/>[coinlist.py]"]
  node_coin_data["Exchange Symbol Lists"]
  node_yahoo["Yahoo Finance"]
  node_proxy["Proxy Manager<br/>[proxy_manager.py]"]
end

subgraph group_analysis["Analysis"]
  node_indicators["Technical Indicators<br/>[indicators.py]"]
  node_indicator_calc["Indicator Calculations<br/>[indicators_calc.py]"]
  node_smart_money["Smart-Money Analysis"]
  node_backtest["Backtesting"]
  node_marketaux["News Sentiment"]
end

subgraph group_special["Market Specialties"]
  node_futures["Futures Analysis<br/>[futures_service.py]"]
  node_options["Options Analysis<br/>[options_service.py]"]
  node_egx["EGX Analysis<br/>[egx_service.py]"]
  node_egx_data["EGX Reference Data<br/>[egx_sectors.py]"]
  node_extended["Extended Hours"]
  node_bitcoin["Bitcoin Market"]
  node_multi_agent["Multi-Agent Analysis"]
end

node_client(("MCP Client"))
node_tradingview["TradingView Data"]
node_marketaux_api["Marketaux News"]
node_yahoo_api["Yahoo Market Data"]

node_client -->|"requests tools"| node_server
node_server -->|"validates inputs"| node_validators
node_server -->|"dispatches market queries"| node_tv_screener
node_server -->|"dispatches scans"| node_scanner
node_server -->|"dispatches analysis"| node_indicators
node_server -->|"dispatches backtests"| node_backtest
node_server -->|"dispatches sentiment"| node_marketaux
node_server -->|"dispatches quotes"| node_yahoo
node_server -->|"dispatches futures tools"| node_futures
node_server -->|"dispatches options tools"| node_options
node_server -->|"dispatches EGX tools"| node_egx
node_server -->|"dispatches hours data"| node_extended
node_server -->|"dispatches market data"| node_bitcoin
node_server -->|"dispatches combined analysis"| node_multi_agent
node_server -->|"serves chart tools"| node_chart
node_server -->|"formats failures"| node_errors
node_coinlist -->|"loads symbols"| node_coin_data
node_server -->|"resolves symbols"| node_coinlist
node_tv_screener -->|"fetches analysis"| node_tradingview
node_screener_provider -->|"fetches screener data"| node_tradingview
node_scanner -->|"queries market data"| node_tv_screener
node_egx -->|"reads sector metadata"| node_egx_data
node_egx -->|"fetches EGX analysis"| node_tradingview
node_indicators -->|"uses calculations"| node_indicator_calc
node_smart_money -->|"uses calculations"| node_indicator_calc
node_marketaux -->|"fetches news"| node_marketaux_api
node_yahoo -->|"fetches quotes"| node_yahoo_api
node_proxy -.->|"routes proxied requests"| node_tradingview

click node_server "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/server.py"
click node_validators "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/utils/validators.py"
click node_errors "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/errors.py"
click node_tv_screener "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/screener_service.py"
click node_screener_provider "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/screener_provider.py"
click node_scanner "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/scanner_service.py"
click node_coinlist "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/coinlist.py"
click node_coin_data "https://github.com/atilaahmettaner/tradingview-mcp/tree/main/src/tradingview_mcp/coinlist"
click node_indicators "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/indicators.py"
click node_indicator_calc "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/indicators_calc.py"
click node_smart_money "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/smart_money_service.py"
click node_backtest "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/backtest_service.py"
click node_marketaux "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/marketaux_service.py"
click node_yahoo "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/yahoo_finance_service.py"
click node_futures "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/futures_service.py"
click node_options "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/options_service.py"
click node_egx "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/egx_service.py"
click node_egx_data "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/data/egx_sectors.py"
click node_extended "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/extended_hours_service.py"
click node_bitcoin "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/bitcoin_market_service.py"
click node_multi_agent "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/multi_agent_service.py"
click node_proxy "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/proxy_manager.py"
click node_chart "https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/server.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_server,node_validators,node_errors,node_chart,node_client,node_tradingview toneBlue
class node_tv_screener,node_screener_provider,node_scanner,node_coinlist,node_coin_data,node_yahoo,node_proxy toneAmber
class node_indicators,node_indicator_calc,node_smart_money,node_backtest,node_marketaux toneMint
class node_futures,node_options,node_egx,node_egx_data,node_extended,node_bitcoin,node_multi_agent toneRose
class node_marketaux_api,node_yahoo_api toneIndigo
```

## Components

### MCP Interface

- [MCP Server](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/server.py): `src/tradingview_mcp/server.py`
- [Input Validation](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/utils/validators.py): `src/tradingview_mcp/core/utils/validators.py`
- [Error Envelopes](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/errors.py): `src/tradingview_mcp/core/errors.py`
- [Interactive Charts](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/server.py): `src/tradingview_mcp/server.py`

### Market Data

- [TradingView Screener](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/screener_service.py): `src/tradingview_mcp/core/services/screener_service.py`
- [Screener Provider](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/screener_provider.py): `src/tradingview_mcp/core/services/screener_provider.py`
- [Market Scanners](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/scanner_service.py): `src/tradingview_mcp/core/services/scanner_service.py`
- [Symbol Universe](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/coinlist.py): `src/tradingview_mcp/core/services/coinlist.py`
- [Exchange Symbol Lists](https://github.com/atilaahmettaner/tradingview-mcp/tree/main/src/tradingview_mcp/coinlist): `src/tradingview_mcp/coinlist`
- [Yahoo Finance](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/yahoo_finance_service.py): `src/tradingview_mcp/core/services/yahoo_finance_service.py`
- [Proxy Manager](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/proxy_manager.py): `src/tradingview_mcp/core/services/proxy_manager.py`

### Analysis

- [Technical Indicators](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/indicators.py): `src/tradingview_mcp/core/services/indicators.py`
- [Indicator Calculations](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/indicators_calc.py): `src/tradingview_mcp/core/services/indicators_calc.py`
- [Smart-Money Analysis](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/smart_money_service.py): `src/tradingview_mcp/core/services/smart_money_service.py`
- [Backtesting](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/backtest_service.py): `src/tradingview_mcp/core/services/backtest_service.py`
- [News Sentiment](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/marketaux_service.py): `src/tradingview_mcp/core/services/marketaux_service.py`

### Market Specialties

- [Futures Analysis](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/futures_service.py): `src/tradingview_mcp/core/services/futures_service.py`
- [Options Analysis](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/options_service.py): `src/tradingview_mcp/core/services/options_service.py`
- [EGX Analysis](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/egx_service.py): `src/tradingview_mcp/core/services/egx_service.py`
- [EGX Reference Data](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/data/egx_sectors.py): `src/tradingview_mcp/core/data/egx_sectors.py`
- [Extended Hours](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/extended_hours_service.py): `src/tradingview_mcp/core/services/extended_hours_service.py`
- [Bitcoin Market](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/bitcoin_market_service.py): `src/tradingview_mcp/core/services/bitcoin_market_service.py`
- [Multi-Agent Analysis](https://github.com/atilaahmettaner/tradingview-mcp/blob/main/src/tradingview_mcp/core/services/multi_agent_service.py): `src/tradingview_mcp/core/services/multi_agent_service.py`

### Other components

- **MCP Client**
- **TradingView Data**
- **Marketaux News**
- **Yahoo Market Data**

## Connections

- MCP Client → MCP Server: requests tools
- MCP Server → Input Validation: validates inputs
- MCP Server → TradingView Screener: dispatches market queries
- MCP Server → Market Scanners: dispatches scans
- MCP Server → Technical Indicators: dispatches analysis
- MCP Server → Backtesting: dispatches backtests
- MCP Server → News Sentiment: dispatches sentiment
- MCP Server → Yahoo Finance: dispatches quotes
- MCP Server → Futures Analysis: dispatches futures tools
- MCP Server → Options Analysis: dispatches options tools
- MCP Server → EGX Analysis: dispatches EGX tools
- MCP Server → Extended Hours: dispatches hours data
- MCP Server → Bitcoin Market: dispatches market data
- MCP Server → Multi-Agent Analysis: dispatches combined analysis
- MCP Server → Interactive Charts: serves chart tools
- MCP Server → Error Envelopes: formats failures
- Symbol Universe → Exchange Symbol Lists: loads symbols
- MCP Server → Symbol Universe: resolves symbols
- TradingView Screener → TradingView Data: fetches analysis
- Screener Provider → TradingView Data: fetches screener data
- Market Scanners → TradingView Screener: queries market data
- EGX Analysis → EGX Reference Data: reads sector metadata
- EGX Analysis → TradingView Data: fetches EGX analysis
- Technical Indicators → Indicator Calculations: uses calculations
- Smart-Money Analysis → Indicator Calculations: uses calculations
- News Sentiment → Marketaux News: fetches news
- Yahoo Finance → Yahoo Market Data: fetches quotes
- Proxy Manager → TradingView Data: routes proxied requests
