tvscreener/mcp/
tool_args.rs1use schemars::JsonSchema;
7use serde::Deserialize;
8
9#[derive(Debug, Deserialize, JsonSchema)]
10pub(crate) struct DiscoverFieldsArgs {
11 pub(crate) search_term: String,
12 #[serde(default)]
13 pub(crate) asset_type: Option<String>,
14 #[serde(default)]
15 pub(crate) limit: Option<u32>,
16}
17
18#[derive(Debug, Default, Deserialize, JsonSchema)]
19pub(crate) struct AssetTypeArgs {
20 #[serde(default)]
21 pub(crate) asset_type: Option<String>,
22}
23
24#[derive(Debug, Default, Deserialize, JsonSchema)]
25pub(crate) struct CustomQueryArgs {
26 #[serde(default)]
27 pub(crate) asset_type: Option<String>,
28 #[serde(default)]
29 pub(crate) fields: Option<String>,
30 #[serde(default)]
31 pub(crate) filters: Option<String>,
32 #[serde(default)]
33 pub(crate) sort_by: Option<String>,
34 #[serde(default)]
35 pub(crate) ascending: Option<bool>,
36 #[serde(default)]
37 pub(crate) limit: Option<u32>,
38}
39
40#[derive(Debug, Default, Deserialize, JsonSchema)]
41pub(crate) struct SearchStocksArgs {
42 #[serde(default)]
43 pub(crate) price_range: Option<String>,
44 #[serde(default)]
45 pub(crate) market_cap_billions_range: Option<String>,
46 #[serde(default)]
47 pub(crate) sectors: Option<String>,
48 #[serde(default)]
49 pub(crate) sort_by: Option<String>,
50 #[serde(default)]
51 pub(crate) limit: Option<u32>,
52}
53
54#[derive(Debug, Default, Deserialize, JsonSchema)]
55pub(crate) struct SearchCryptoArgs {
56 #[serde(default)]
57 pub(crate) min_volume_millions: Option<f64>,
58 #[serde(default)]
59 pub(crate) min_market_cap_billions: Option<f64>,
60 #[serde(default)]
61 pub(crate) limit: Option<u32>,
62}
63
64#[derive(Debug, Default, Deserialize, JsonSchema)]
65pub(crate) struct SearchForexArgs {
66 #[serde(default)]
67 pub(crate) min_volume_millions: Option<f64>,
68 #[serde(default)]
69 pub(crate) limit: Option<u32>,
70}
71
72#[derive(Debug, Default, Deserialize, JsonSchema)]
73pub(crate) struct GetTopMoversArgs {
74 #[serde(default)]
75 pub(crate) asset_type: Option<String>,
76 #[serde(default)]
77 pub(crate) direction: Option<String>,
78 #[serde(default)]
79 pub(crate) limit: Option<u32>,
80}
81
82#[derive(Debug, Deserialize, JsonSchema)]
83pub(crate) struct GetPresetArgs {
84 pub(crate) name: String,
85}
86
87#[derive(Debug, Default, Deserialize, JsonSchema)]
88pub(crate) struct BuildPayloadArgs {
89 #[serde(default)]
90 pub(crate) asset_type: Option<String>,
91 #[serde(default)]
92 pub(crate) fields: Option<String>,
93 #[serde(default)]
94 pub(crate) filters: Option<String>,
95 #[serde(default)]
96 pub(crate) sort_by: Option<String>,
97 #[serde(default)]
98 pub(crate) indices: Option<String>,
99 #[serde(default)]
100 pub(crate) markets: Option<String>,
101}
102
103#[derive(Debug, Deserialize, JsonSchema)]
104pub(crate) struct SearchByIndexArgs {
105 pub(crate) indices: String,
106 #[serde(default)]
107 pub(crate) markets: Option<String>,
108 #[serde(default)]
109 pub(crate) fields: Option<String>,
110 #[serde(default)]
111 pub(crate) sort_by: Option<String>,
112 #[serde(default)]
113 pub(crate) limit: Option<u32>,
114}