universal-mcp-applications 0.1.17__py3-none-any.whl → 0.1.33__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.
Potentially problematic release.
This version of universal-mcp-applications might be problematic. Click here for more details.
- universal_mcp/applications/BEST_PRACTICES.md +166 -0
- universal_mcp/applications/ahrefs/README.md +3 -3
- universal_mcp/applications/airtable/README.md +3 -3
- universal_mcp/applications/airtable/app.py +0 -1
- universal_mcp/applications/apollo/app.py +0 -1
- universal_mcp/applications/asana/README.md +3 -3
- universal_mcp/applications/aws_s3/README.md +29 -0
- universal_mcp/applications/aws_s3/app.py +40 -39
- universal_mcp/applications/bill/README.md +249 -0
- universal_mcp/applications/browser_use/README.md +1 -0
- universal_mcp/applications/browser_use/__init__.py +0 -0
- universal_mcp/applications/browser_use/app.py +71 -0
- universal_mcp/applications/calendly/README.md +45 -45
- universal_mcp/applications/calendly/app.py +125 -125
- universal_mcp/applications/canva/README.md +35 -35
- universal_mcp/applications/canva/app.py +95 -99
- universal_mcp/applications/clickup/README.md +4 -4
- universal_mcp/applications/confluence/app.py +0 -1
- universal_mcp/applications/contentful/README.md +1 -2
- universal_mcp/applications/contentful/app.py +4 -5
- universal_mcp/applications/crustdata/README.md +3 -3
- universal_mcp/applications/domain_checker/README.md +2 -2
- universal_mcp/applications/domain_checker/app.py +11 -15
- universal_mcp/applications/e2b/README.md +4 -4
- universal_mcp/applications/e2b/app.py +4 -4
- universal_mcp/applications/elevenlabs/README.md +3 -77
- universal_mcp/applications/elevenlabs/app.py +18 -15
- universal_mcp/applications/exa/README.md +7 -7
- universal_mcp/applications/exa/app.py +17 -17
- universal_mcp/applications/falai/README.md +13 -12
- universal_mcp/applications/falai/app.py +34 -35
- universal_mcp/applications/figma/README.md +3 -3
- universal_mcp/applications/file_system/README.md +13 -0
- universal_mcp/applications/file_system/app.py +9 -9
- universal_mcp/applications/firecrawl/README.md +9 -9
- universal_mcp/applications/firecrawl/app.py +46 -46
- universal_mcp/applications/fireflies/README.md +14 -14
- universal_mcp/applications/fireflies/app.py +164 -57
- universal_mcp/applications/fpl/README.md +12 -12
- universal_mcp/applications/fpl/app.py +54 -55
- universal_mcp/applications/ghost_content/app.py +0 -1
- universal_mcp/applications/github/README.md +10 -10
- universal_mcp/applications/github/app.py +50 -52
- universal_mcp/applications/google_calendar/README.md +10 -10
- universal_mcp/applications/google_calendar/app.py +50 -49
- universal_mcp/applications/google_docs/README.md +14 -14
- universal_mcp/applications/google_docs/app.py +307 -233
- universal_mcp/applications/google_drive/README.md +54 -57
- universal_mcp/applications/google_drive/app.py +270 -261
- universal_mcp/applications/google_gemini/README.md +3 -14
- universal_mcp/applications/google_gemini/app.py +15 -18
- universal_mcp/applications/google_mail/README.md +20 -20
- universal_mcp/applications/google_mail/app.py +110 -109
- universal_mcp/applications/google_searchconsole/README.md +10 -10
- universal_mcp/applications/google_searchconsole/app.py +37 -37
- universal_mcp/applications/google_sheet/README.md +25 -25
- universal_mcp/applications/google_sheet/app.py +270 -266
- universal_mcp/applications/hashnode/README.md +6 -3
- universal_mcp/applications/hashnode/app.py +174 -25
- universal_mcp/applications/http_tools/README.md +5 -5
- universal_mcp/applications/http_tools/app.py +10 -11
- universal_mcp/applications/hubspot/api_segments/__init__.py +0 -0
- universal_mcp/applications/hubspot/api_segments/api_segment_base.py +54 -0
- universal_mcp/applications/hubspot/api_segments/crm_api.py +7337 -0
- universal_mcp/applications/hubspot/api_segments/marketing_api.py +1467 -0
- universal_mcp/applications/hubspot/app.py +2 -15
- universal_mcp/applications/jira/app.py +0 -1
- universal_mcp/applications/klaviyo/README.md +0 -36
- universal_mcp/applications/linkedin/README.md +18 -4
- universal_mcp/applications/linkedin/app.py +763 -162
- universal_mcp/applications/mailchimp/README.md +3 -3
- universal_mcp/applications/markitdown/app.py +10 -5
- universal_mcp/applications/ms_teams/README.md +31 -31
- universal_mcp/applications/ms_teams/app.py +151 -151
- universal_mcp/applications/neon/README.md +3 -3
- universal_mcp/applications/onedrive/README.md +24 -0
- universal_mcp/applications/onedrive/__init__.py +1 -0
- universal_mcp/applications/onedrive/app.py +338 -0
- universal_mcp/applications/openai/README.md +18 -17
- universal_mcp/applications/openai/app.py +40 -39
- universal_mcp/applications/outlook/README.md +9 -9
- universal_mcp/applications/outlook/app.py +307 -225
- universal_mcp/applications/perplexity/README.md +4 -4
- universal_mcp/applications/perplexity/app.py +4 -4
- universal_mcp/applications/posthog/README.md +128 -127
- universal_mcp/applications/reddit/README.md +21 -124
- universal_mcp/applications/reddit/app.py +51 -68
- universal_mcp/applications/resend/README.md +29 -29
- universal_mcp/applications/resend/app.py +116 -117
- universal_mcp/applications/rocketlane/app.py +0 -1
- universal_mcp/applications/scraper/README.md +7 -4
- universal_mcp/applications/scraper/__init__.py +1 -1
- universal_mcp/applications/scraper/app.py +341 -103
- universal_mcp/applications/semrush/README.md +3 -0
- universal_mcp/applications/serpapi/README.md +3 -3
- universal_mcp/applications/serpapi/app.py +14 -14
- universal_mcp/applications/sharepoint/README.md +19 -0
- universal_mcp/applications/sharepoint/app.py +285 -173
- universal_mcp/applications/shopify/app.py +0 -1
- universal_mcp/applications/shortcut/README.md +3 -3
- universal_mcp/applications/slack/README.md +23 -0
- universal_mcp/applications/slack/app.py +79 -48
- universal_mcp/applications/spotify/README.md +3 -3
- universal_mcp/applications/supabase/README.md +3 -3
- universal_mcp/applications/tavily/README.md +4 -4
- universal_mcp/applications/tavily/app.py +4 -4
- universal_mcp/applications/twilio/README.md +15 -0
- universal_mcp/applications/twitter/README.md +92 -89
- universal_mcp/applications/twitter/api_segments/compliance_api.py +13 -15
- universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +20 -20
- universal_mcp/applications/twitter/api_segments/dm_events_api.py +12 -12
- universal_mcp/applications/twitter/api_segments/likes_api.py +12 -12
- universal_mcp/applications/twitter/api_segments/lists_api.py +37 -39
- universal_mcp/applications/twitter/api_segments/spaces_api.py +24 -24
- universal_mcp/applications/twitter/api_segments/trends_api.py +4 -4
- universal_mcp/applications/twitter/api_segments/tweets_api.py +105 -105
- universal_mcp/applications/twitter/api_segments/usage_api.py +4 -4
- universal_mcp/applications/twitter/api_segments/users_api.py +136 -136
- universal_mcp/applications/twitter/app.py +15 -11
- universal_mcp/applications/whatsapp/README.md +12 -12
- universal_mcp/applications/whatsapp/app.py +66 -67
- universal_mcp/applications/whatsapp/audio.py +39 -35
- universal_mcp/applications/whatsapp/whatsapp.py +176 -154
- universal_mcp/applications/whatsapp_business/README.md +23 -23
- universal_mcp/applications/whatsapp_business/app.py +92 -92
- universal_mcp/applications/yahoo_finance/README.md +17 -0
- universal_mcp/applications/yahoo_finance/__init__.py +1 -0
- universal_mcp/applications/yahoo_finance/app.py +300 -0
- universal_mcp/applications/youtube/README.md +46 -46
- universal_mcp/applications/youtube/app.py +208 -195
- universal_mcp/applications/zenquotes/README.md +1 -1
- universal_mcp/applications/zenquotes/__init__.py +2 -0
- universal_mcp/applications/zenquotes/app.py +5 -5
- {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/METADATA +5 -90
- {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/RECORD +137 -128
- universal_mcp/applications/replicate/README.md +0 -18
- universal_mcp/applications/replicate/__init__.py +0 -1
- universal_mcp/applications/replicate/app.py +0 -493
- universal_mcp/applications/unipile/README.md +0 -28
- universal_mcp/applications/unipile/__init__.py +0 -1
- universal_mcp/applications/unipile/app.py +0 -827
- {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
import yfinance as yf
|
|
4
|
+
from universal_mcp.applications.application import APIApplication
|
|
5
|
+
from universal_mcp.integrations import Integration
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class YahooFinanceApp(APIApplication):
|
|
9
|
+
"""
|
|
10
|
+
Application for interacting with Yahoo Finance data using yfinance library.
|
|
11
|
+
Provides tools to retrieve stock information, historical data, news, and financial statements.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
def __init__(self, integration: Integration | None = None, **kwargs) -> None:
|
|
15
|
+
super().__init__(name="yahoo_finance", integration=integration, **kwargs)
|
|
16
|
+
|
|
17
|
+
def get_stock_info(self, symbol: str) -> dict[str, Any]:
|
|
18
|
+
"""
|
|
19
|
+
Gets real-time stock information including current price, market cap, financial ratios, and company details.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
|
|
23
|
+
|
|
24
|
+
Returns:
|
|
25
|
+
Complete dictionary with all available stock data fields from Yahoo Finance
|
|
26
|
+
|
|
27
|
+
Raises:
|
|
28
|
+
ValueError: Invalid or empty symbol
|
|
29
|
+
KeyError: Stock symbol not found
|
|
30
|
+
ConnectionError: Network or API issues
|
|
31
|
+
|
|
32
|
+
Tags:
|
|
33
|
+
stock, info, real-time, price, financials, company-data, important
|
|
34
|
+
"""
|
|
35
|
+
if not symbol:
|
|
36
|
+
raise ValueError("Stock symbol cannot be empty")
|
|
37
|
+
|
|
38
|
+
symbol = symbol.upper().strip()
|
|
39
|
+
ticker = yf.Ticker(symbol)
|
|
40
|
+
|
|
41
|
+
info = ticker.info
|
|
42
|
+
if not info or info.get("regularMarketPrice") is None:
|
|
43
|
+
raise KeyError(f"Stock symbol '{symbol}' not found or invalid")
|
|
44
|
+
|
|
45
|
+
return info
|
|
46
|
+
|
|
47
|
+
def get_stock_history(
|
|
48
|
+
self,
|
|
49
|
+
symbol: str,
|
|
50
|
+
period: str = "1mo",
|
|
51
|
+
interval: str = "1d",
|
|
52
|
+
start_date: str | None = None,
|
|
53
|
+
end_date: str | None = None,
|
|
54
|
+
) -> dict:
|
|
55
|
+
"""
|
|
56
|
+
Gets historical price data for a stock with OHLCV data, dividends, and stock splits.
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
|
|
60
|
+
period: Time period ('1d', '5d', '1mo', '3mo', '6mo', '1y', '2y', '5y', '10y', 'ytd', 'max')
|
|
61
|
+
interval: Data interval ('1m', '2m', '5m', '15m', '30m', '60m', '90m', '1h', '1d', '5d', '1wk', '1mo', '3mo')
|
|
62
|
+
start_date: Start date in 'YYYY-MM-DD' format (overrides period)
|
|
63
|
+
end_date: End date in 'YYYY-MM-DD' format (used with start_date)
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
Dictionary with historical stock data, dates as string keys
|
|
67
|
+
|
|
68
|
+
Tags:
|
|
69
|
+
stock, history, ohlcv, price-data, time-series, important
|
|
70
|
+
"""
|
|
71
|
+
if not symbol:
|
|
72
|
+
raise ValueError("Stock symbol cannot be empty")
|
|
73
|
+
|
|
74
|
+
symbol = symbol.upper().strip()
|
|
75
|
+
ticker = yf.Ticker(symbol)
|
|
76
|
+
|
|
77
|
+
df = ticker.history(
|
|
78
|
+
period=period, interval=interval, start=start_date, end=end_date
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
try:
|
|
82
|
+
data = df.to_dict("index") # type: ignore
|
|
83
|
+
if data:
|
|
84
|
+
converted_data = {}
|
|
85
|
+
for key, value in data.items():
|
|
86
|
+
if hasattr(key, 'strftime'):
|
|
87
|
+
converted_key = key.strftime('%Y-%m-%d')
|
|
88
|
+
else:
|
|
89
|
+
converted_key = str(key)
|
|
90
|
+
converted_data[converted_key] = value
|
|
91
|
+
return converted_data
|
|
92
|
+
return data
|
|
93
|
+
except:
|
|
94
|
+
return {}
|
|
95
|
+
|
|
96
|
+
def get_stock_news(self, symbol: str, limit: int = 10) -> list[Any]:
|
|
97
|
+
"""
|
|
98
|
+
Gets latest news articles for a stock from Yahoo Finance.
|
|
99
|
+
|
|
100
|
+
Args:
|
|
101
|
+
symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
|
|
102
|
+
limit: Maximum number of articles to return (1-50). Defaults to 10
|
|
103
|
+
|
|
104
|
+
Returns:
|
|
105
|
+
Raw list of news articles from Yahoo Finance
|
|
106
|
+
|
|
107
|
+
Tags:
|
|
108
|
+
stock, news, articles, sentiment, important
|
|
109
|
+
"""
|
|
110
|
+
if not symbol:
|
|
111
|
+
raise ValueError("Stock symbol cannot be empty")
|
|
112
|
+
|
|
113
|
+
symbol = symbol.upper().strip()
|
|
114
|
+
ticker = yf.Ticker(symbol)
|
|
115
|
+
|
|
116
|
+
news = ticker.news
|
|
117
|
+
return news[:limit] if news else []
|
|
118
|
+
|
|
119
|
+
def get_financial_statements(
|
|
120
|
+
self, symbol: str, statement_type: str = "income"
|
|
121
|
+
) -> dict:
|
|
122
|
+
"""
|
|
123
|
+
Gets financial statements for a stock from Yahoo Finance.
|
|
124
|
+
|
|
125
|
+
Args:
|
|
126
|
+
symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
|
|
127
|
+
statement_type: Type of statement ('income', 'balance', 'cashflow', 'earnings'). Defaults to 'income'
|
|
128
|
+
|
|
129
|
+
Returns:
|
|
130
|
+
Dictionary with financial statement data
|
|
131
|
+
|
|
132
|
+
Tags:
|
|
133
|
+
stock, financial-statements, earnings, important
|
|
134
|
+
"""
|
|
135
|
+
if not symbol:
|
|
136
|
+
raise ValueError("Stock symbol cannot be empty")
|
|
137
|
+
|
|
138
|
+
symbol = symbol.upper().strip()
|
|
139
|
+
ticker = yf.Ticker(symbol)
|
|
140
|
+
|
|
141
|
+
if statement_type == "income":
|
|
142
|
+
df = ticker.income_stmt
|
|
143
|
+
elif statement_type == "balance":
|
|
144
|
+
df = ticker.balance_sheet
|
|
145
|
+
elif statement_type == "cashflow":
|
|
146
|
+
df = ticker.cashflow
|
|
147
|
+
elif statement_type == "earnings":
|
|
148
|
+
df = ticker.earnings
|
|
149
|
+
else:
|
|
150
|
+
df = ticker.income_stmt
|
|
151
|
+
|
|
152
|
+
try:
|
|
153
|
+
data = df.to_dict("dict") # type: ignore
|
|
154
|
+
if data:
|
|
155
|
+
converted_data = {}
|
|
156
|
+
for key, value in data.items():
|
|
157
|
+
if hasattr(key, 'strftime'):
|
|
158
|
+
converted_key = key.strftime('%Y-%m-%d')
|
|
159
|
+
else:
|
|
160
|
+
converted_key = str(key)
|
|
161
|
+
converted_data[converted_key] = value
|
|
162
|
+
return converted_data
|
|
163
|
+
return data
|
|
164
|
+
except:
|
|
165
|
+
return {}
|
|
166
|
+
|
|
167
|
+
def get_stock_recommendations(
|
|
168
|
+
self, symbol: str, rec_type: str = "recommendations"
|
|
169
|
+
) -> list[dict]:
|
|
170
|
+
"""
|
|
171
|
+
Gets analyst recommendations for a stock from Yahoo Finance.
|
|
172
|
+
|
|
173
|
+
Args:
|
|
174
|
+
symbol: Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT')
|
|
175
|
+
rec_type: Type of recommendation data ('recommendations', 'upgrades_downgrades'). Defaults to 'recommendations'
|
|
176
|
+
|
|
177
|
+
Returns:
|
|
178
|
+
List of dictionaries with analyst recommendation data
|
|
179
|
+
|
|
180
|
+
Tags:
|
|
181
|
+
stock, recommendations, analyst-ratings, important
|
|
182
|
+
"""
|
|
183
|
+
if not symbol:
|
|
184
|
+
raise ValueError("Stock symbol cannot be empty")
|
|
185
|
+
|
|
186
|
+
symbol = symbol.upper().strip()
|
|
187
|
+
ticker = yf.Ticker(symbol)
|
|
188
|
+
|
|
189
|
+
if rec_type == "upgrades_downgrades":
|
|
190
|
+
df = ticker.upgrades_downgrades
|
|
191
|
+
else:
|
|
192
|
+
df = ticker.recommendations
|
|
193
|
+
|
|
194
|
+
try:
|
|
195
|
+
return df.to_dict("records") # type: ignore
|
|
196
|
+
except:
|
|
197
|
+
return []
|
|
198
|
+
|
|
199
|
+
def search(
|
|
200
|
+
self,
|
|
201
|
+
query: str,
|
|
202
|
+
max_results: int = 10,
|
|
203
|
+
news_count: int = 5,
|
|
204
|
+
include_research: bool = False,
|
|
205
|
+
) -> dict[str, Any]:
|
|
206
|
+
"""
|
|
207
|
+
Search Yahoo Finance for quotes, news, and research using yfinance Search.
|
|
208
|
+
|
|
209
|
+
Args:
|
|
210
|
+
query: Search query (company name, ticker symbol, or keyword)
|
|
211
|
+
max_results: Maximum number of quote results to return. Defaults to 10
|
|
212
|
+
news_count: Number of news articles to return. Defaults to 5
|
|
213
|
+
include_research: Whether to include research data. Defaults to False
|
|
214
|
+
|
|
215
|
+
Returns:
|
|
216
|
+
Dictionary containing quotes, news, and optionally research data
|
|
217
|
+
|
|
218
|
+
Tags:
|
|
219
|
+
search, quotes, news, research, important
|
|
220
|
+
"""
|
|
221
|
+
if not query:
|
|
222
|
+
raise ValueError("Search query cannot be empty")
|
|
223
|
+
|
|
224
|
+
search = yf.Search(
|
|
225
|
+
query,
|
|
226
|
+
max_results=max_results,
|
|
227
|
+
news_count=news_count,
|
|
228
|
+
include_research=include_research,
|
|
229
|
+
)
|
|
230
|
+
|
|
231
|
+
result = {}
|
|
232
|
+
for attr in dir(search):
|
|
233
|
+
if not attr.startswith("_"):
|
|
234
|
+
try:
|
|
235
|
+
value = getattr(search, attr)
|
|
236
|
+
if not callable(value):
|
|
237
|
+
result[attr] = value
|
|
238
|
+
except:
|
|
239
|
+
continue
|
|
240
|
+
|
|
241
|
+
return result
|
|
242
|
+
|
|
243
|
+
def lookup_ticker(
|
|
244
|
+
self, query: str, lookup_type: str = "all", count: int = 25
|
|
245
|
+
) -> list[dict]:
|
|
246
|
+
"""
|
|
247
|
+
Look up ticker symbols by type using yfinance Lookup.
|
|
248
|
+
|
|
249
|
+
Args:
|
|
250
|
+
query: Search query for ticker lookup
|
|
251
|
+
lookup_type: Type of lookup ('all', 'stock', 'mutualfund', 'etf', 'index', 'future', 'currency', 'cryptocurrency'). Defaults to 'all'
|
|
252
|
+
count: Maximum number of results to return. Defaults to 25
|
|
253
|
+
|
|
254
|
+
Returns:
|
|
255
|
+
List of dictionaries with ticker lookup results
|
|
256
|
+
|
|
257
|
+
Tags:
|
|
258
|
+
lookup, ticker, symbols, important
|
|
259
|
+
"""
|
|
260
|
+
if not query:
|
|
261
|
+
raise ValueError("Lookup query cannot be empty")
|
|
262
|
+
|
|
263
|
+
try:
|
|
264
|
+
lookup = yf.Lookup(query)
|
|
265
|
+
|
|
266
|
+
if lookup_type == "stock":
|
|
267
|
+
results = lookup.get_stock(count=count)
|
|
268
|
+
elif lookup_type == "mutualfund":
|
|
269
|
+
results = lookup.get_mutualfund(count=count)
|
|
270
|
+
elif lookup_type == "etf":
|
|
271
|
+
results = lookup.get_etf(count=count)
|
|
272
|
+
elif lookup_type == "index":
|
|
273
|
+
results = lookup.get_index(count=count)
|
|
274
|
+
elif lookup_type == "future":
|
|
275
|
+
results = lookup.get_future(count=count)
|
|
276
|
+
elif lookup_type == "currency":
|
|
277
|
+
results = lookup.get_currency(count=count)
|
|
278
|
+
elif lookup_type == "cryptocurrency":
|
|
279
|
+
results = lookup.get_cryptocurrency(count=count)
|
|
280
|
+
else: # default to 'all'
|
|
281
|
+
results = lookup.get_all(count=count)
|
|
282
|
+
|
|
283
|
+
try:
|
|
284
|
+
return results.to_dict("records") # type: ignore
|
|
285
|
+
except:
|
|
286
|
+
return []
|
|
287
|
+
|
|
288
|
+
except Exception as e:
|
|
289
|
+
return [{"query": query, "error": f"Lookup failed: {str(e)}"}]
|
|
290
|
+
|
|
291
|
+
def list_tools(self):
|
|
292
|
+
return [
|
|
293
|
+
self.get_stock_info,
|
|
294
|
+
self.get_stock_history,
|
|
295
|
+
self.get_stock_news,
|
|
296
|
+
self.get_financial_statements,
|
|
297
|
+
self.get_stock_recommendations,
|
|
298
|
+
self.search,
|
|
299
|
+
self.lookup_ticker,
|
|
300
|
+
]
|
|
@@ -9,49 +9,49 @@ This is automatically generated from OpenAPI schema for the YoutubeApp API.
|
|
|
9
9
|
|
|
10
10
|
| Tool | Description |
|
|
11
11
|
|------|-------------|
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `
|
|
17
|
-
| `get_reporttypes` | Retrieves a
|
|
18
|
-
| `delete_captions` | Deletes
|
|
19
|
-
| `
|
|
20
|
-
| `delete_comments` |
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `delete_live_broadcasts` | Deletes
|
|
24
|
-
| `
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
-
| `delete_live_chat_moderators` | Deletes a live chat moderator
|
|
30
|
-
| `delete_videos` | Deletes specified videos from
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `get_activities` |
|
|
37
|
-
| `
|
|
38
|
-
| `delete_channel_sections` | Deletes
|
|
39
|
-
| `
|
|
40
|
-
| `get_comment_threads` |
|
|
41
|
-
| `get_fanfundingevents` |
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `delete_livestreams` | Deletes
|
|
46
|
-
| `
|
|
47
|
-
| `delete_playlists` | Deletes
|
|
48
|
-
| `get_search` |
|
|
49
|
-
| `
|
|
50
|
-
| `delete_subscriptions` | Deletes
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
| `get_video_abuse_report_reasons` |
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
| `delete_groups` | Deletes
|
|
57
|
-
| `
|
|
12
|
+
| `list_job_reports` | Retrieves a paginated list of all reports for a specific job ID, with options for filtering by date. Unlike `get_jobs_job_reports_report`, which fetches a single report by its ID, this function returns a collection of reports associated with a job. |
|
|
13
|
+
| `get_job_report` | Fetches a single, specific report identified by its `reportId` from within a given `jobId`. This retrieves an individual record, distinguishing it from `get_jobs_job_reports`, which returns a list of reports for a job. The request can be made on behalf of a content owner. |
|
|
14
|
+
| `delete_job` | Deletes a specific job resource using its unique `jobId`, optionally on behalf of a content owner. This action permanently removes the job itself, differentiating it from functions that only retrieve or manage job reports. |
|
|
15
|
+
| `list_jobs` | Retrieves a paginated list of asynchronous jobs from the YouTube Reporting API. Supports filtering by content owner and including system-managed jobs. This function lists multiple jobs, distinct from `get_jobs_job_reports` which retrieves reports for a single job. |
|
|
16
|
+
| `download_report_media` | Downloads the content of a bulk data report from the YouTube Reporting API by its unique `resourceName`. This function retrieves the actual media file generated by a reporting job, distinct from functions that only fetch report metadata. |
|
|
17
|
+
| `get_reporttypes` | Retrieves a list of available report types from the YouTube Reporting API, supporting pagination and filtering. This function returns metadata about what kinds of reports can be generated, distinct from functions like `get_reports` that fetch actual report content. |
|
|
18
|
+
| `delete_captions` | Deletes a specific YouTube caption resource using its unique ID, with optional delegation for content owners. This management function removes the entire caption track, unlike `get_captions` which only retrieves the transcript text for a given video ID. |
|
|
19
|
+
| `get_transcript_text` | Fetches the full text transcript for a YouTube video using its ID. Unlike other methods using the official API, this function utilizes the `youtube-transcript-api` library to extract and concatenate all caption snippets into a single, timestamp-free string of the video's spoken content. |
|
|
20
|
+
| `delete_comments` | Permanently removes a specific comment identified by its unique ID via a DELETE request. Unlike moderation functions like `add_comments_mark_as_spam`, which only alter a comment's state, this action is irreversible and deletes the resource. An `id` is required to specify the target comment. |
|
|
21
|
+
| `mark_comment_as_spam` | Marks a specified YouTube comment as spam via a POST request to the API. This moderation action is distinct from deleting comments (`delete_comments`) or setting other statuses like 'approved' or 'rejected' (`add_comments_set_moderation_status`). |
|
|
22
|
+
| `set_comment_moderation_status` | Sets the moderation status (e.g., 'approved', 'rejected') for specified comments and can optionally ban the author. Unlike `add_comments_mark_as_spam`, this function allows for various moderation states, providing more granular control over comment management. |
|
|
23
|
+
| `delete_live_broadcasts` | Deletes a YouTube live broadcast event by its unique ID via the API. This request can be made on behalf of a content owner or channel. It targets the `/liveBroadcasts` endpoint, distinguishing it from `delete_livestreams` which manages the actual content stream. |
|
|
24
|
+
| `bind_live_broadcast_to_stream` | Binds a YouTube live broadcast to a video stream using their respective IDs. This action associates the broadcast's metadata with the content stream, optionally performing the action on behalf of a content owner, facilitating the link between a planned event and its live video feed. |
|
|
25
|
+
| `control_live_broadcast` | Sends control commands to a YouTube live broadcast, identified by its ID. It can display a slate or schedule an action using a time offset. Unlike `add_live_broadcasts_transition`, which alters broadcast status (e.g., 'live'), this function manages in-stream state. |
|
|
26
|
+
| `transition_live_broadcast` | Changes a YouTube live broadcast's status (e.g., making it 'live' or 'complete') by posting to the API's transition endpoint. This function alters the broadcast's lifecycle state, distinct from other control actions like binding it to a stream, and returns the API's JSON response. |
|
|
27
|
+
| `delete_live_chat_ban` | Deletes a specific YouTube live chat ban using its unique ID. It sends a DELETE request to the `/liveChat/bans` endpoint to revoke the ban, allowing the user to participate in the chat again. |
|
|
28
|
+
| `delete_live_chat_message` | Deletes a specific YouTube live chat message identified by its unique ID. This function targets the `/liveChat/messages` endpoint, distinguishing it from `delete_live_chat_bans` and `delete_live_chat_moderators`, which manage different aspects of a live chat. |
|
|
29
|
+
| `delete_live_chat_moderators` | Deletes a specific YouTube live chat moderator using their unique ID. This function sends a DELETE request to the `/liveChat/moderators` API endpoint and returns the server's JSON response, confirming the successful removal or detailing errors. The moderator ID is a required parameter for this action. |
|
|
30
|
+
| `delete_videos` | Deletes a specified YouTube video using its unique ID. The operation can be performed on behalf of a content owner by sending an HTTP DELETE request to the `/videos` endpoint. It's distinct from other video functions that only modify or retrieve metadata, like rating or abuse reports. |
|
|
31
|
+
| `get_video_ratings` | Retrieves the authenticated user's rating (e.g., 'like', 'dislike') for specified videos. This function fetches existing rating data, distinct from `add_videos_rate` which submits a new rating, and can be performed on behalf of a content owner. |
|
|
32
|
+
| `rate_video` | Submits a rating (e.g., 'like', 'dislike') for a video specified by its unique ID. This function sends a POST request to the YouTube API's `/videos/rate` endpoint and returns the server's JSON response upon successful submission. |
|
|
33
|
+
| `report_video_for_abuse` | Reports a video for abuse via a POST request to the YouTube API. An optional parameter allows a content owner to submit the report on behalf of their account, flagging potentially inappropriate content for review by YouTube. |
|
|
34
|
+
| `set_channel_watermark` | Sets a branding watermark on a specified YouTube channel. The operation targets the channel using its ID and can be executed on behalf of a content owner. This function contrasts with `add_watermarks_unset`, which removes the watermark. |
|
|
35
|
+
| `unset_channel_watermark` | Removes the branding watermark for a specified YouTube channel via an API POST request. This operation, the inverse of `add_watermarks_set`, can be executed on behalf of a content owner to unset the channel's current watermark. |
|
|
36
|
+
| `get_activities` | Retrieves a list of YouTube activities, such as video uploads or social posts. Supports filtering by channel, authenticated user's feed, publication date, and region. The function also handles pagination to navigate through large result sets and returns the JSON response from the API. |
|
|
37
|
+
| `insert_channel_banner` | Uploads and sets a new banner image for a specified YouTube channel. This function makes a POST request to the `/channelBanners/insert` endpoint, optionally on behalf of a content owner, and returns details of the newly created banner. |
|
|
38
|
+
| `delete_channel_sections` | Deletes a YouTube channel section by its unique ID via an API request. The operation can be performed on behalf of a content owner for delegated management, returning a JSON response upon success or raising an HTTPError for failures like invalid IDs or insufficient permissions. |
|
|
39
|
+
| `list_channels` | Retrieves channel data from the YouTube API using specific filters like ID, username, or ownership status (`mine`, `managedByMe`). The function supports pagination and localization, returning a JSON object containing details for the targeted channels. |
|
|
40
|
+
| `get_comment_threads` | Retrieves YouTube comment threads using filters like channel ID, video ID, or search terms. It supports pagination and sorting, serving as the primary method for fetching comment data, distinct from other functions in the script that moderate or delete individual comments. |
|
|
41
|
+
| `get_fanfundingevents` | Fetches a list of fan funding events from the YouTube API for the authenticated user's channel. Supports pagination, localization, and partial responses to retrieve customized event data like Super Chat or Super Stickers based on specified filter criteria and response parts. |
|
|
42
|
+
| `get_guide_categories` | Retrieves a list of official YouTube guide categories (e.g., Music, Sports). This function queries the `/guideCategories` endpoint, allowing results to be filtered by ID or region and localized for a specific language. These are distinct from the categories assigned to individual videos. |
|
|
43
|
+
| `get_i18n_languages` | Retrieves a list of supported internationalization (i18n) languages from the YouTube API's `/i18nLanguages` endpoint. It can optionally localize the language names in the response. This function is distinct from `get_regions`, which fetches supported geographical regions. |
|
|
44
|
+
| `get_i18n_regions` | Fetches a list of geographic regions supported by the YouTube API for content localization. It can localize region names using the 'hl' parameter. This is distinct from get_languages, which retrieves supported languages, not geographic areas. |
|
|
45
|
+
| `delete_livestreams` | Deletes one or more YouTube livestreams by ID via the `/liveStreams` API endpoint, optionally on behalf of a content owner. This function is distinct from `delete_live_broadcasts`, which targets a different live video resource, and returns the server's JSON response upon successful deletion. |
|
|
46
|
+
| `delete_playlist_items` | Deletes one or more YouTube playlist items by their unique IDs. The operation can be performed on behalf of a content owner for delegated authorization, sending a DELETE request to the `/playlistItems` endpoint and returning the server's response. |
|
|
47
|
+
| `delete_playlists` | Deletes a YouTube playlist by its unique ID via a DELETE request to the API. The operation can be performed on behalf of a specific content owner for delegated management. This function targets the entire playlist, distinct from `delete_play_list_items` which removes individual videos from a playlist. |
|
|
48
|
+
| `get_search` | Performs a versatile search on YouTube for videos, channels, or playlists. This function supports extensive filters, including keywords, publication dates, location, and specific video attributes like category or duration, returning a paginated list of matching resources from the YouTube Data API. |
|
|
49
|
+
| `list_sponsors` | Retrieves a list of sponsors for the authenticated user's YouTube channel. This function supports filtering, pagination, and specifying which resource parts to include in the response, allowing for flexible and customized data fetching of sponsor information. |
|
|
50
|
+
| `delete_subscriptions` | Deletes a specific YouTube channel subscription identified by its unique ID. This function sends a DELETE request to the `/subscriptions` API endpoint and returns the server's JSON response, confirming the operation's success or failure. |
|
|
51
|
+
| `get_super_chat_events` | Retrieves a paginated list of Super Chat events from the YouTube Data API. Allows for localization and specifying which resource parts to include in the response. This function is distinct from `get_fanfundingevents`, which fetches a different type of monetary contribution event. |
|
|
52
|
+
| `set_video_thumbnail` | Sets a custom thumbnail for a specified YouTube video via a POST request to the `/thumbnails/set` API endpoint. The operation can be performed on behalf of a content owner for delegated management of video assets. |
|
|
53
|
+
| `get_video_abuse_report_reasons` | Retrieves a list of valid reasons (e.g., spam, hate speech) for reporting abusive video content. Supports response localization using a language code (`hl`) and allows filtering which parts of the reason resource (e.g., ID, snippet) are returned, providing metadata before submitting a report. |
|
|
54
|
+
| `get_video_categories` | Retrieves official YouTube video categories used for classifying uploaded videos, allowing filtering by ID, region, or language. This is distinct from `get_guecategories`, which fetches channel browsing guides, not categories for individual video uploads. |
|
|
55
|
+
| `delete_group_items` | Deletes specified items from a YouTube Analytics group via an API request. An item can be targeted by its unique ID, and the action can be performed on behalf of a content owner. This function is distinct from `delete_groups`, which removes the entire group. |
|
|
56
|
+
| `delete_groups` | Deletes a YouTube group by its ID via an API request, optionally on behalf of a content owner. Unlike `delete_groupitems`, which only removes an item from a group, this function deletes the entire group entity. |
|
|
57
|
+
| `get_analytics_report` | Queries the YouTube Analytics API for performance reports, allowing customization via metrics, dimensions, and filters. Unlike `get_jobs_job_reports` which manages bulk report jobs, this function fetches analytical data directly, providing on-demand insights into channel or content performance. |
|