tradingview-mcp 1.0.0__py3-none-any.whl → 1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. tradingview_mcp/constants.py +6 -4
  2. tradingview_mcp/data/__init__.py +9 -0
  3. tradingview_mcp/data/column_display_names.json +827 -0
  4. tradingview_mcp/data/extracted/__init__.py +1 -0
  5. tradingview_mcp/data/extracted/ai_quick_reference.json +212 -0
  6. tradingview_mcp/data/extracted/common_fields.json +3627 -0
  7. tradingview_mcp/data/extracted/fields_by_market.json +23299 -0
  8. tradingview_mcp/data/extracted/screener_code_examples.json +9 -0
  9. tradingview_mcp/data/markets.json +83 -0
  10. tradingview_mcp/data/metainfo/bond.json +17406 -0
  11. tradingview_mcp/data/metainfo/bonds.json +1303 -0
  12. tradingview_mcp/data/metainfo/cfd.json +21603 -0
  13. tradingview_mcp/data/metainfo/coin.json +21111 -0
  14. tradingview_mcp/data/metainfo/crypto.json +23078 -0
  15. tradingview_mcp/data/metainfo/economics2.json +1026 -0
  16. tradingview_mcp/data/metainfo/forex.json +21003 -0
  17. tradingview_mcp/data/metainfo/futures.json +2972 -0
  18. tradingview_mcp/data/metainfo/ireland.json +22517 -0
  19. tradingview_mcp/data/metainfo/options.json +499 -0
  20. tradingview_mcp/data/metainfo/stocks.json +29808 -0
  21. tradingview_mcp/data/screeners/main_screeners.json +540 -0
  22. tradingview_mcp/data/screeners/markets.json +70 -0
  23. tradingview_mcp/data/screeners/stocks.json +416 -0
  24. tradingview_mcp/data/screeners/stocks_failed.json +36081 -0
  25. tradingview_mcp/docs_data.py +297 -0
  26. tradingview_mcp/scanner.py +2 -1
  27. tradingview_mcp/server.py +839 -51
  28. tradingview_mcp-1.0.dist-info/METADATA +334 -0
  29. tradingview_mcp-1.0.dist-info/RECORD +37 -0
  30. {tradingview_mcp-1.0.0.dist-info → tradingview_mcp-1.0.dist-info}/licenses/LICENSE +0 -2
  31. tradingview_mcp-1.0.0.dist-info/METADATA +0 -182
  32. tradingview_mcp-1.0.0.dist-info/RECORD +0 -13
  33. {tradingview_mcp-1.0.0.dist-info → tradingview_mcp-1.0.dist-info}/WHEEL +0 -0
  34. {tradingview_mcp-1.0.0.dist-info → tradingview_mcp-1.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,540 @@
1
+ [
2
+ {
3
+ "name": "Stocks (legacy)",
4
+ "url": "https://www.tradingview.com/legacy-screener/",
5
+ "query": {
6
+ "filter": [
7
+ {
8
+ "left": "type",
9
+ "operation": "in_range",
10
+ "right": [
11
+ "stock",
12
+ "dr",
13
+ "fund"
14
+ ]
15
+ },
16
+ {
17
+ "left": "subtype",
18
+ "operation": "in_range",
19
+ "right": [
20
+ "common",
21
+ "foreign-issuer",
22
+ "",
23
+ "etf",
24
+ "etf,odd",
25
+ "etf,otc",
26
+ "etf,cfd"
27
+ ]
28
+ },
29
+ {
30
+ "left": "exchange",
31
+ "operation": "in_range",
32
+ "right": [
33
+ "AMEX",
34
+ "NASDAQ",
35
+ "NYSE"
36
+ ]
37
+ },
38
+ {
39
+ "left": "is_primary",
40
+ "operation": "equal",
41
+ "right": true
42
+ },
43
+ {
44
+ "left": "active_symbol",
45
+ "operation": "equal",
46
+ "right": true
47
+ }
48
+ ],
49
+ "options": {
50
+ "lang": "en"
51
+ },
52
+ "markets": [
53
+ "america"
54
+ ],
55
+ "symbols": {
56
+ "query": {
57
+ "types": []
58
+ },
59
+ "tickers": []
60
+ },
61
+ "columns": [
62
+ "logoid",
63
+ "name",
64
+ "close",
65
+ "change",
66
+ "change_abs",
67
+ "Recommend.All",
68
+ "volume",
69
+ "Value.Traded",
70
+ "market_cap_basic",
71
+ "price_earnings_ttm",
72
+ "earnings_per_share_basic_ttm",
73
+ "number_of_employees",
74
+ "sector",
75
+ "description",
76
+ "type",
77
+ "subtype",
78
+ "update_mode",
79
+ "pricescale",
80
+ "minmov",
81
+ "fractional",
82
+ "minmove2",
83
+ "currency",
84
+ "fundamental_currency_code"
85
+ ],
86
+ "sort": {
87
+ "sortBy": "market_cap_basic",
88
+ "sortOrder": "desc"
89
+ },
90
+ "range": [
91
+ 0,
92
+ 150
93
+ ]
94
+ },
95
+ "query_as_code": "(Query()\n .select(\n 'logoid',\n 'name',\n 'close',\n 'change',\n 'change_abs',\n 'Recommend.All',\n 'volume',\n 'Value.Traded',\n 'market_cap_basic',\n 'price_earnings_ttm',\n 'earnings_per_share_basic_ttm',\n 'number_of_employees',\n 'sector',\n 'description',\n 'type',\n 'subtype',\n 'update_mode',\n 'pricescale',\n 'minmov',\n 'fractional',\n 'minmove2',\n 'currency',\n 'fundamental_currency_code',\n )\n .where(\n col('type').isin(['stock', 'dr', 'fund']),\n col('subtype').isin(\n ['common', 'foreign-issuer', '', 'etf', 'etf,odd', 'etf,otc', 'etf,cfd']\n ),\n col('exchange').isin(['AMEX', 'NASDAQ', 'NYSE']),\n col('is_primary') == True,\n col('active_symbol') == True,\n )\n .order_by('market_cap_basic', ascending=False)\n .limit(150)\n .set_markets('america'))"
96
+ },
97
+ {
98
+ "name": "Stocks (v2)",
99
+ "url": "https://www.tradingview.com/screener/",
100
+ "query": {
101
+ "columns": [
102
+ "ticker-view",
103
+ "close",
104
+ "type",
105
+ "typespecs",
106
+ "pricescale",
107
+ "minmov",
108
+ "fractional",
109
+ "minmove2",
110
+ "currency",
111
+ "change",
112
+ "volume",
113
+ "relative_volume_10d_calc",
114
+ "market_cap_basic",
115
+ "fundamental_currency_code",
116
+ "price_earnings_ttm",
117
+ "earnings_per_share_diluted_ttm",
118
+ "earnings_per_share_diluted_yoy_growth_ttm",
119
+ "dividends_yield_current",
120
+ "sector.tr",
121
+ "market",
122
+ "sector",
123
+ "AnalystRating",
124
+ "AnalystRating.tr"
125
+ ],
126
+ "filter": [
127
+ {
128
+ "left": "is_primary",
129
+ "operation": "equal",
130
+ "right": true
131
+ }
132
+ ],
133
+ "ignore_unknown_fields": false,
134
+ "options": {
135
+ "lang": "en"
136
+ },
137
+ "range": [
138
+ 0,
139
+ 100
140
+ ],
141
+ "sort": {
142
+ "sortBy": "market_cap_basic",
143
+ "sortOrder": "desc"
144
+ },
145
+ "symbols": {},
146
+ "markets": [
147
+ "america"
148
+ ],
149
+ "filter2": {
150
+ "operator": "and",
151
+ "operands": [
152
+ {
153
+ "operation": {
154
+ "operator": "or",
155
+ "operands": [
156
+ {
157
+ "operation": {
158
+ "operator": "and",
159
+ "operands": [
160
+ {
161
+ "expression": {
162
+ "left": "type",
163
+ "operation": "equal",
164
+ "right": "stock"
165
+ }
166
+ },
167
+ {
168
+ "expression": {
169
+ "left": "typespecs",
170
+ "operation": "has",
171
+ "right": [
172
+ "common"
173
+ ]
174
+ }
175
+ }
176
+ ]
177
+ }
178
+ },
179
+ {
180
+ "operation": {
181
+ "operator": "and",
182
+ "operands": [
183
+ {
184
+ "expression": {
185
+ "left": "type",
186
+ "operation": "equal",
187
+ "right": "stock"
188
+ }
189
+ },
190
+ {
191
+ "expression": {
192
+ "left": "typespecs",
193
+ "operation": "has",
194
+ "right": [
195
+ "preferred"
196
+ ]
197
+ }
198
+ }
199
+ ]
200
+ }
201
+ },
202
+ {
203
+ "operation": {
204
+ "operator": "and",
205
+ "operands": [
206
+ {
207
+ "expression": {
208
+ "left": "type",
209
+ "operation": "equal",
210
+ "right": "dr"
211
+ }
212
+ }
213
+ ]
214
+ }
215
+ },
216
+ {
217
+ "operation": {
218
+ "operator": "and",
219
+ "operands": [
220
+ {
221
+ "expression": {
222
+ "left": "type",
223
+ "operation": "equal",
224
+ "right": "fund"
225
+ }
226
+ },
227
+ {
228
+ "expression": {
229
+ "left": "typespecs",
230
+ "operation": "has_none_of",
231
+ "right": [
232
+ "etf"
233
+ ]
234
+ }
235
+ }
236
+ ]
237
+ }
238
+ }
239
+ ]
240
+ }
241
+ },
242
+ {
243
+ "expression": {
244
+ "left": "typespecs",
245
+ "operation": "has_none_of",
246
+ "right": [
247
+ "pre-ipo"
248
+ ]
249
+ }
250
+ }
251
+ ]
252
+ }
253
+ },
254
+ "query_as_code": "(Query()\n .select(\n 'ticker-view',\n 'close',\n 'type',\n 'typespecs',\n 'pricescale',\n 'minmov',\n 'fractional',\n 'minmove2',\n 'currency',\n 'change',\n 'volume',\n 'relative_volume_10d_calc',\n 'market_cap_basic',\n 'fundamental_currency_code',\n 'price_earnings_ttm',\n 'earnings_per_share_diluted_ttm',\n 'earnings_per_share_diluted_yoy_growth_ttm',\n 'dividends_yield_current',\n 'sector.tr',\n 'market',\n 'sector',\n 'AnalystRating',\n 'AnalystRating.tr',\n )\n .where(col('is_primary') == True)\n .where2(\n And(\n Or(\n And(col('type') == 'stock', col('typespecs').has(['common'])),\n And(col('type') == 'stock', col('typespecs').has(['preferred'])),\n And(col('type') == 'dr'),\n And(col('type') == 'fund', col('typespecs').has_none_of(['etf'])),\n ),\n col('typespecs').has_none_of(['pre-ipo']),\n )\n )\n .order_by('market_cap_basic', ascending=False)\n .limit(100)\n .set_markets('america')\n .set_property('ignore_unknown_fields', False)\n .set_property('symbols', {}))"
255
+ },
256
+ {
257
+ "name": "Forex",
258
+ "url": "https://www.tradingview.com/forex-screener/",
259
+ "query": {
260
+ "filter": [
261
+ {
262
+ "left": "sector",
263
+ "operation": "in_range",
264
+ "right": [
265
+ "Major",
266
+ "Minor"
267
+ ]
268
+ }
269
+ ],
270
+ "options": {
271
+ "lang": "en"
272
+ },
273
+ "markets": [
274
+ "forex"
275
+ ],
276
+ "symbols": {
277
+ "query": {
278
+ "types": [
279
+ "forex"
280
+ ]
281
+ },
282
+ "tickers": []
283
+ },
284
+ "columns": [
285
+ "base_currency_logoid",
286
+ "currency_logoid",
287
+ "name",
288
+ "close",
289
+ "change",
290
+ "change_abs",
291
+ "bid",
292
+ "ask",
293
+ "high",
294
+ "low",
295
+ "Recommend.All",
296
+ "description",
297
+ "type",
298
+ "subtype",
299
+ "update_mode",
300
+ "pricescale",
301
+ "minmov",
302
+ "fractional",
303
+ "minmove2"
304
+ ],
305
+ "sort": {
306
+ "sortBy": "name",
307
+ "sortOrder": "asc"
308
+ },
309
+ "range": [
310
+ 0,
311
+ 150
312
+ ]
313
+ },
314
+ "query_as_code": "(Query()\n .select(\n 'base_currency_logoid',\n 'currency_logoid',\n 'name',\n 'close',\n 'change',\n 'change_abs',\n 'bid',\n 'ask',\n 'high',\n 'low',\n 'Recommend.All',\n 'description',\n 'type',\n 'subtype',\n 'update_mode',\n 'pricescale',\n 'minmov',\n 'fractional',\n 'minmove2',\n )\n .where(col('sector').isin(['Major', 'Minor']))\n .order_by('name', ascending=True)\n .limit(150)\n .set_markets('forex')\n .set_property('symbols', {'query': {'types': ['forex']}, 'tickers': []}))"
315
+ },
316
+ {
317
+ "name": "Crypto",
318
+ "url": "https://www.tradingview.com/crypto-screener/",
319
+ "query": {
320
+ "filter": [],
321
+ "options": {
322
+ "lang": "en"
323
+ },
324
+ "markets": [
325
+ "crypto"
326
+ ],
327
+ "symbols": {
328
+ "query": {
329
+ "types": []
330
+ },
331
+ "tickers": []
332
+ },
333
+ "columns": [
334
+ "base_currency_logoid",
335
+ "currency_logoid",
336
+ "name",
337
+ "close",
338
+ "change",
339
+ "change_abs",
340
+ "high",
341
+ "low",
342
+ "volume",
343
+ "24h_vol|5",
344
+ "24h_vol_change|5",
345
+ "Recommend.All",
346
+ "exchange",
347
+ "description",
348
+ "type",
349
+ "subtype",
350
+ "update_mode",
351
+ "pricescale",
352
+ "minmov",
353
+ "fractional",
354
+ "minmove2"
355
+ ],
356
+ "sort": {
357
+ "sortBy": "24h_vol|5",
358
+ "sortOrder": "desc"
359
+ },
360
+ "price_conversion": {
361
+ "to_symbol": false
362
+ },
363
+ "range": [
364
+ 0,
365
+ 150
366
+ ]
367
+ },
368
+ "query_as_code": "(Query()\n .select(\n 'base_currency_logoid',\n 'currency_logoid',\n 'name',\n 'close',\n 'change',\n 'change_abs',\n 'high',\n 'low',\n 'volume',\n '24h_vol|5',\n '24h_vol_change|5',\n 'Recommend.All',\n 'exchange',\n 'description',\n 'type',\n 'subtype',\n 'update_mode',\n 'pricescale',\n 'minmov',\n 'fractional',\n 'minmove2',\n )\n .order_by('24h_vol|5', ascending=False)\n .limit(150)\n .set_markets('crypto')\n .set_property('price_conversion', {'to_symbol': False}))"
369
+ },
370
+ {
371
+ "name": "Crypto Coins",
372
+ "url": "https://www.tradingview.com/crypto-coins-screener/",
373
+ "query": {
374
+ "columns": [
375
+ "ticker-view",
376
+ "crypto_total_rank",
377
+ "close",
378
+ "type",
379
+ "typespecs",
380
+ "pricescale",
381
+ "minmov",
382
+ "fractional",
383
+ "minmove2",
384
+ "currency",
385
+ "24h_close_change|5",
386
+ "market_cap_calc",
387
+ "fundamental_currency_code",
388
+ "24h_vol_cmc",
389
+ "circulating_supply",
390
+ "24h_vol_to_market_cap",
391
+ "socialdominance",
392
+ "crypto_common_categories.tr",
393
+ "TechRating_1D",
394
+ "TechRating_1D.tr"
395
+ ],
396
+ "ignore_unknown_fields": false,
397
+ "options": {
398
+ "lang": "en"
399
+ },
400
+ "range": [
401
+ 0,
402
+ 100
403
+ ],
404
+ "sort": {
405
+ "sortBy": "crypto_total_rank",
406
+ "sortOrder": "asc"
407
+ },
408
+ "symbols": {},
409
+ "markets": [
410
+ "coin"
411
+ ]
412
+ },
413
+ "query_as_code": "(Query()\n .select(\n 'ticker-view',\n 'crypto_total_rank',\n 'close',\n 'type',\n 'typespecs',\n 'pricescale',\n 'minmov',\n 'fractional',\n 'minmove2',\n 'currency',\n '24h_close_change|5',\n 'market_cap_calc',\n 'fundamental_currency_code',\n '24h_vol_cmc',\n 'circulating_supply',\n '24h_vol_to_market_cap',\n 'socialdominance',\n 'crypto_common_categories.tr',\n 'TechRating_1D',\n 'TechRating_1D.tr',\n )\n .order_by('crypto_total_rank', ascending=True)\n .limit(100)\n .set_markets('coin')\n .set_property('ignore_unknown_fields', False)\n .set_property('symbols', {}))"
414
+ },
415
+ {
416
+ "name": "ETFs",
417
+ "url": "https://www.tradingview.com/etf-screener/",
418
+ "query": {
419
+ "columns": [
420
+ "ticker-view",
421
+ "close",
422
+ "type",
423
+ "typespecs",
424
+ "pricescale",
425
+ "minmov",
426
+ "fractional",
427
+ "minmove2",
428
+ "currency",
429
+ "change",
430
+ "Value.Traded",
431
+ "relative_volume_10d_calc",
432
+ "aum",
433
+ "fundamental_currency_code",
434
+ "nav_total_return.3Y",
435
+ "expense_ratio",
436
+ "asset_class.tr",
437
+ "focus.tr"
438
+ ],
439
+ "ignore_unknown_fields": false,
440
+ "options": {
441
+ "lang": "en"
442
+ },
443
+ "range": [
444
+ 0,
445
+ 100
446
+ ],
447
+ "sort": {
448
+ "sortBy": "aum",
449
+ "sortOrder": "desc"
450
+ },
451
+ "symbols": {},
452
+ "markets": [
453
+ "america"
454
+ ],
455
+ "filter2": {
456
+ "operator": "and",
457
+ "operands": [
458
+ {
459
+ "operation": {
460
+ "operator": "or",
461
+ "operands": [
462
+ {
463
+ "operation": {
464
+ "operator": "and",
465
+ "operands": [
466
+ {
467
+ "expression": {
468
+ "left": "typespecs",
469
+ "operation": "has",
470
+ "right": [
471
+ "etf"
472
+ ]
473
+ }
474
+ }
475
+ ]
476
+ }
477
+ },
478
+ {
479
+ "operation": {
480
+ "operator": "and",
481
+ "operands": [
482
+ {
483
+ "expression": {
484
+ "left": "type",
485
+ "operation": "equal",
486
+ "right": "structured"
487
+ }
488
+ }
489
+ ]
490
+ }
491
+ }
492
+ ]
493
+ }
494
+ }
495
+ ]
496
+ }
497
+ },
498
+ "query_as_code": "(Query()\n .select(\n 'ticker-view',\n 'close',\n 'type',\n 'typespecs',\n 'pricescale',\n 'minmov',\n 'fractional',\n 'minmove2',\n 'currency',\n 'change',\n 'Value.Traded',\n 'relative_volume_10d_calc',\n 'aum',\n 'fundamental_currency_code',\n 'nav_total_return.3Y',\n 'expense_ratio',\n 'asset_class.tr',\n 'focus.tr',\n )\n .where2(And(Or(And(col('typespecs').has(['etf'])), And(col('type') == 'structured'))))\n .order_by('aum', ascending=False)\n .limit(100)\n .set_markets('america')\n .set_property('ignore_unknown_fields', False)\n .set_property('symbols', {}))"
499
+ },
500
+ {
501
+ "name": "Bonds",
502
+ "url": "https://www.tradingview.com/bond-screener/",
503
+ "query": {
504
+ "columns": [
505
+ "ticker-view",
506
+ "isin-displayed",
507
+ "yield_to_worst",
508
+ "close_pct",
509
+ "close_net",
510
+ "type",
511
+ "typespecs",
512
+ "fundamental_currency_code",
513
+ "current_coupon",
514
+ "maturity_date",
515
+ "redemption_type.tr",
516
+ "bond_issuer_type.tr",
517
+ "bond_snp_rating_lt.tr",
518
+ "exchange.tr",
519
+ "source-logoid"
520
+ ],
521
+ "ignore_unknown_fields": false,
522
+ "options": {
523
+ "lang": "en"
524
+ },
525
+ "range": [
526
+ 0,
527
+ 100
528
+ ],
529
+ "sort": {
530
+ "sortBy": "bond_snp_rating_lt",
531
+ "sortOrder": "desc"
532
+ },
533
+ "symbols": {},
534
+ "markets": [
535
+ "bond"
536
+ ]
537
+ },
538
+ "query_as_code": "(Query()\n .select(\n 'ticker-view',\n 'isin-displayed',\n 'yield_to_worst',\n 'close_pct',\n 'close_net',\n 'type',\n 'typespecs',\n 'fundamental_currency_code',\n 'current_coupon',\n 'maturity_date',\n 'redemption_type.tr',\n 'bond_issuer_type.tr',\n 'bond_snp_rating_lt.tr',\n 'exchange.tr',\n 'source-logoid',\n )\n .order_by('bond_snp_rating_lt', ascending=False)\n .limit(100)\n .set_markets('bond')\n .set_property('ignore_unknown_fields', False)\n .set_property('symbols', {}))"
539
+ }
540
+ ]
@@ -0,0 +1,70 @@
1
+ [
2
+ "america",
3
+ "uae",
4
+ "argentina",
5
+ "austria",
6
+ "australia",
7
+ "bangladesh",
8
+ "belgium",
9
+ "bahrain",
10
+ "brazil",
11
+ "canada",
12
+ "switzerland",
13
+ "chile",
14
+ "china",
15
+ "colombia",
16
+ "cyprus",
17
+ "czech",
18
+ "germany",
19
+ "denmark",
20
+ "estonia",
21
+ "egypt",
22
+ "spain",
23
+ "finland",
24
+ "france",
25
+ "greece",
26
+ "hongkong",
27
+ "hungary",
28
+ "indonesia",
29
+ "israel",
30
+ "india",
31
+ "iceland",
32
+ "italy",
33
+ "japan",
34
+ "kenya",
35
+ "korea",
36
+ "kuwait",
37
+ "srilanka",
38
+ "lithuania",
39
+ "latvia",
40
+ "luxembourg",
41
+ "mexico",
42
+ "morocco",
43
+ "malaysia",
44
+ "nigeria",
45
+ "netherlands",
46
+ "norway",
47
+ "newzealand",
48
+ "peru",
49
+ "philippines",
50
+ "pakistan",
51
+ "poland",
52
+ "portugal",
53
+ "qatar",
54
+ "serbia",
55
+ "russia",
56
+ "romania",
57
+ "ksa",
58
+ "sweden",
59
+ "singapore",
60
+ "slovakia",
61
+ "thailand",
62
+ "tunisia",
63
+ "turkey",
64
+ "taiwan",
65
+ "uk",
66
+ "venezuela",
67
+ "vietnam",
68
+ "rsa",
69
+ "global"
70
+ ]