universal-mcp-applications 0.1.13__py3-none-any.whl → 0.1.14__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.

Files changed (54) hide show
  1. universal_mcp/applications/aws_s3/app.py +71 -71
  2. universal_mcp/applications/calendly/app.py +199 -199
  3. universal_mcp/applications/canva/app.py +189 -189
  4. universal_mcp/applications/domain_checker/app.py +31 -24
  5. universal_mcp/applications/e2b/app.py +6 -7
  6. universal_mcp/applications/elevenlabs/app.py +24 -20
  7. universal_mcp/applications/exa/app.py +25 -20
  8. universal_mcp/applications/falai/app.py +44 -41
  9. universal_mcp/applications/file_system/app.py +20 -12
  10. universal_mcp/applications/firecrawl/app.py +46 -47
  11. universal_mcp/applications/fireflies/app.py +79 -79
  12. universal_mcp/applications/fpl/app.py +83 -74
  13. universal_mcp/applications/github/README.md +0 -1028
  14. universal_mcp/applications/github/app.py +55 -50227
  15. universal_mcp/applications/google_calendar/app.py +63 -65
  16. universal_mcp/applications/google_docs/app.py +78 -78
  17. universal_mcp/applications/google_drive/app.py +361 -440
  18. universal_mcp/applications/google_gemini/app.py +34 -17
  19. universal_mcp/applications/google_mail/app.py +117 -117
  20. universal_mcp/applications/google_searchconsole/app.py +41 -47
  21. universal_mcp/applications/google_sheet/app.py +157 -164
  22. universal_mcp/applications/http_tools/app.py +16 -16
  23. universal_mcp/applications/linkedin/app.py +26 -31
  24. universal_mcp/applications/ms_teams/app.py +190 -190
  25. universal_mcp/applications/openai/app.py +55 -56
  26. universal_mcp/applications/outlook/app.py +57 -57
  27. universal_mcp/applications/perplexity/app.py +17 -17
  28. universal_mcp/applications/reddit/app.py +225 -4053
  29. universal_mcp/applications/replicate/app.py +40 -42
  30. universal_mcp/applications/resend/app.py +157 -154
  31. universal_mcp/applications/scraper/app.py +24 -24
  32. universal_mcp/applications/serpapi/app.py +18 -20
  33. universal_mcp/applications/sharepoint/app.py +46 -36
  34. universal_mcp/applications/slack/app.py +66 -66
  35. universal_mcp/applications/tavily/app.py +7 -7
  36. universal_mcp/applications/twitter/api_segments/compliance_api.py +17 -20
  37. universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +35 -40
  38. universal_mcp/applications/twitter/api_segments/dm_events_api.py +18 -21
  39. universal_mcp/applications/twitter/api_segments/likes_api.py +19 -22
  40. universal_mcp/applications/twitter/api_segments/lists_api.py +59 -68
  41. universal_mcp/applications/twitter/api_segments/spaces_api.py +36 -42
  42. universal_mcp/applications/twitter/api_segments/trends_api.py +7 -8
  43. universal_mcp/applications/twitter/api_segments/tweets_api.py +159 -185
  44. universal_mcp/applications/twitter/api_segments/usage_api.py +5 -6
  45. universal_mcp/applications/twitter/api_segments/users_api.py +230 -264
  46. universal_mcp/applications/unipile/app.py +99 -105
  47. universal_mcp/applications/whatsapp/app.py +86 -82
  48. universal_mcp/applications/whatsapp_business/app.py +147 -147
  49. universal_mcp/applications/youtube/app.py +290 -290
  50. universal_mcp/applications/zenquotes/app.py +6 -6
  51. {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.14.dist-info}/METADATA +1 -1
  52. {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.14.dist-info}/RECORD +54 -54
  53. {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.14.dist-info}/WHEEL +0 -0
  54. {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.14.dist-info}/licenses/LICENSE +0 -0
@@ -40,7 +40,7 @@ class FplApp(APIApplication):
40
40
  def __init__(self, integration: Integration | None = None, **kwargs) -> None:
41
41
  super().__init__(name="fpl", integration=integration, **kwargs)
42
42
 
43
- def get_league_analytics(
43
+ def analyze_league(
44
44
  self,
45
45
  league_id: int,
46
46
  analysis_type: str = "overview",
@@ -48,10 +48,10 @@ class FplApp(APIApplication):
48
48
  end_gw: int | None = None,
49
49
  ) -> dict[str, Any]:
50
50
  """
51
- Get rich analytics for a Fantasy Premier League mini-league
52
-
51
+ Performs advanced analysis on an FPL league for a given gameweek range. It routes requests based on the analysis type ('overview', 'historical', 'team_composition') to provide deeper insights beyond the basic rankings from `get_league_standings`, such as historical performance or team composition.
52
+
53
53
  Returns visualization-optimized data for various types of league analysis.
54
-
54
+
55
55
  Args:
56
56
  league_id: ID of the league to analyze
57
57
  analysis_type: Type of analysis to perform:
@@ -61,14 +61,14 @@ class FplApp(APIApplication):
61
61
  start_gw: Starting gameweek (defaults to 1)
62
62
  end_gw: Ending gameweek (defaults to current)
63
63
  api: FPL API instance (import from your api.py)
64
-
64
+
65
65
  Returns:
66
66
  Rich analytics data structured for visualization
67
-
67
+
68
68
  Raises:
69
69
  ValueError: Raised when analysis_type is invalid.
70
70
  RuntimeError: Raised when API request fails.
71
-
71
+
72
72
  Tags:
73
73
  leagues, analytics, important
74
74
  """
@@ -166,18 +166,19 @@ class FplApp(APIApplication):
166
166
  return {"error": f"Unexpected error: {str(e)}"}
167
167
 
168
168
  def get_league_standings(self, league_id: int) -> dict[str, Any]:
169
- """Get standings for a specified FPL league
170
-
169
+ """
170
+ Retrieves current standings for a specified FPL classic mini-league by its ID. It fetches and parses raw API data to provide a direct snapshot of the league table, distinguishing it from `get_league_analytics` which performs deeper, historical analysis.
171
+
171
172
  Args:
172
173
  league_id: ID of the league to fetch
173
-
174
+
174
175
  Returns:
175
176
  League information with standings and team details
176
-
177
+
177
178
  Raises:
178
179
  ValueError: Raised when league_id is invalid.
179
180
  RuntimeError: Raised when API request fails.
180
-
181
+
181
182
  Tags:
182
183
  leagues, standings, important
183
184
  """
@@ -214,8 +215,9 @@ class FplApp(APIApplication):
214
215
  include_history: bool = True,
215
216
  include_fixtures: bool = True,
216
217
  ) -> dict[str, Any]:
217
- """Get detailed information and statistics for a specific player
218
-
218
+ """
219
+ Fetches a detailed profile for a specific FPL player, identified by ID or name. It can include gameweek performance history, filterable by range, and future fixtures. This provides an in-depth look at one player, differing from broader search or analysis functions like `search_fpl_players`.
220
+
219
221
  Args:
220
222
  player_id: FPL player ID (if provided, takes precedence over player_name)
221
223
  player_name: Player name to search for (used if player_id not provided)
@@ -223,14 +225,14 @@ class FplApp(APIApplication):
223
225
  end_gameweek: Ending gameweek for filtering player history
224
226
  include_history: Whether to include gameweek-by-gameweek history
225
227
  include_fixtures: Whether to include upcoming fixtures
226
-
228
+
227
229
  Returns:
228
230
  Comprehensive player information including stats and history
229
-
231
+
230
232
  Raises:
231
233
  ValueError: Raised when both player_id and player_name are missing.
232
234
  KeyError: Raised when player is not found in the database.
233
-
235
+
234
236
  Tags:
235
237
  players, important
236
238
  """
@@ -243,44 +245,45 @@ class FplApp(APIApplication):
243
245
  include_fixtures,
244
246
  )
245
247
 
246
- def search_fpl_players(
248
+ def find_players(
247
249
  self,
248
250
  query: str,
249
251
  position: str | None = None,
250
252
  team: str | None = None,
251
253
  limit: int = 5,
252
254
  ) -> dict[str, Any]:
253
- """Search for FPL players by name with optional filtering
254
-
255
+ """
256
+ Searches for FPL players by full or partial name with optional filtering by team and position. This is a discovery tool, differentiating it from `get_player_information` which fetches a specific known player. It serves as a public interface to the internal `search_players` utility.
257
+
255
258
  Args:
256
259
  query: Player name or partial name to search for
257
260
  position: Optional position filter (GKP, DEF, MID, FWD)
258
261
  team: Optional team name filter
259
262
  limit: Maximum number of results to return
260
-
263
+
261
264
  Returns:
262
265
  List of matching players with details
263
-
266
+
264
267
  Raises:
265
268
  ValueError: Raised when query parameter is empty or invalid.
266
269
  TypeError: Raised when position or team filters are invalid.
267
-
270
+
268
271
  Tags:
269
272
  players, search, important
270
273
  """
271
274
  return search_players(query, position, team, limit)
272
275
 
273
- def get_gameweek_status(self) -> dict[str, Any]:
276
+ def get_gameweek_snapshot(self) -> dict[str, Any]:
274
277
  """
275
- Get precise information about current, previous, and next gameweeks.
276
-
278
+ Provides a detailed snapshot of the FPL schedule by identifying the current, previous, and next gameweeks. It calculates the precise real-time status of the current gameweek (e.g., 'Imminent', 'In Progress') and returns key deadline times and overall season progress.
279
+
277
280
  Returns:
278
281
  Detailed information about gameweek timing, including exact status.
279
-
282
+
280
283
  Raises:
281
284
  RuntimeError: If gameweek data cannot be retrieved.
282
285
  ValueError: If gameweek data is malformed or incomplete.
283
-
286
+
284
287
  Tags:
285
288
  gameweek, status, timing, important
286
289
  """
@@ -324,7 +327,7 @@ class FplApp(APIApplication):
324
327
  },
325
328
  }
326
329
 
327
- def analyze_players(
330
+ def screen_players(
328
331
  self,
329
332
  position: str | None = None,
330
333
  team: str | None = None,
@@ -340,8 +343,9 @@ class FplApp(APIApplication):
340
343
  sort_order: str = "desc",
341
344
  limit: int = 20,
342
345
  ) -> dict[str, Any]:
343
- """Filter and analyze FPL players based on multiple criteria
344
-
346
+ """
347
+ Filters the FPL player database using multiple criteria like position, price, points, and form. Returns a sorted list of matching players, summary statistics for the filtered group, and optional recent gameweek performance data to aid in player discovery and analysis.
348
+
345
349
  Args:
346
350
  position: Player position (e.g., "midfielders", "defenders")
347
351
  team: Team name filter
@@ -356,14 +360,14 @@ class FplApp(APIApplication):
356
360
  sort_by: Metric to sort results by (default: total_points)
357
361
  sort_order: Sort direction ("asc" or "desc")
358
362
  limit: Maximum number of players to return
359
-
363
+
360
364
  Returns:
361
365
  Filtered player data with summary statistics
362
-
366
+
363
367
  Raises:
364
368
  ValueError: Raised when query parameter is empty or invalid.
365
369
  TypeError: Raised when position or team filters are invalid.
366
-
370
+
367
371
  Tags:
368
372
  players, analyze, important
369
373
  """
@@ -604,22 +608,23 @@ class FplApp(APIApplication):
604
608
  num_gameweeks: int = 5,
605
609
  include_fixture_analysis: bool = True,
606
610
  ) -> dict[str, Any]:
607
- """Compare multiple players across various metrics
608
-
611
+ """
612
+ Performs a detailed comparison of multiple players based on specified metrics, recent gameweek history, and upcoming fixture analysis. It provides a side-by-side breakdown, identifies the best performer per metric, and determines an overall winner, considering fixture difficulty, blanks, and doubles for a comprehensive overview.
613
+
609
614
  Args:
610
615
  player_names: List of player names to compare (2-5 players recommended)
611
616
  metrics: List of metrics to compare
612
617
  include_gameweeks: Whether to include gameweek-by-gameweek comparison
613
618
  num_gameweeks: Number of recent gameweeks to include in comparison
614
619
  include_fixture_analysis: Whether to include fixture analysis including blanks and doubles
615
-
620
+
616
621
  Returns:
617
622
  Detailed comparison of players across the specified metrics
618
-
623
+
619
624
  Raises:
620
625
  ValueError: Raised when player_names parameter is empty or invalid.
621
626
  TypeError: Raised when metrics parameter is invalid.
622
-
627
+
623
628
  Tags:
624
629
  players, compare, important
625
630
  """
@@ -936,19 +941,20 @@ class FplApp(APIApplication):
936
941
  def analyze_player_fixtures(
937
942
  self, player_name: str, num_fixtures: int = 5
938
943
  ) -> dict[str, Any]:
939
- """Analyze upcoming fixtures for a player and provide a difficulty rating
940
-
944
+ """
945
+ Analyzes a player's upcoming fixture difficulty. Given a player's name, it retrieves their schedule for a set number of matches, returning a detailed list and a calculated difficulty rating. This method is a focused alternative to the more comprehensive `analyze_fixtures` function.
946
+
941
947
  Args:
942
948
  player_name: Player name to search for
943
949
  num_fixtures: Number of upcoming fixtures to analyze (default: 5)
944
-
950
+
945
951
  Returns:
946
952
  Analysis of player's upcoming fixtures with difficulty ratings
947
-
953
+
948
954
  Raises:
949
955
  ValueError: Raised when player_name parameter is empty or invalid.
950
956
  TypeError: Raised when num_fixtures parameter is invalid.
951
-
957
+
952
958
  Tags:
953
959
  players, fixtures, important
954
960
  """
@@ -963,7 +969,7 @@ class FplApp(APIApplication):
963
969
 
964
970
  return analysis
965
971
 
966
- def analyze_fixtures(
972
+ def analyze_entity_fixtures(
967
973
  self,
968
974
  entity_type: str = "player",
969
975
  entity_name: str | None = None,
@@ -971,25 +977,25 @@ class FplApp(APIApplication):
971
977
  include_blanks: bool = True,
972
978
  include_doubles: bool = True,
973
979
  ) -> dict[str, Any]:
974
- """Analyze upcoming fixtures for players, teams, or positions
975
-
980
+ """
981
+ Provides a detailed fixture difficulty analysis for a specific player, team, or an entire position over a set number of gameweeks. It calculates a difficulty score and can include blank/double gameweek data, offering broader analysis than the player-only `analyze_player_fixtures`.
982
+
976
983
  Args:
977
984
  entity_type: Type of entity to analyze ("player", "team", or "position")
978
985
  entity_name: Name of the specific entity
979
986
  num_gameweeks: Number of gameweeks to look ahead
980
987
  include_blanks: Whether to include blank gameweek info
981
988
  include_doubles: Whether to include double gameweek info
982
-
989
+
983
990
  Returns:
984
991
  Fixture analysis with difficulty ratings and summary
985
-
992
+
986
993
  Raises:
987
994
  ValueError: Raised when entity_type parameter is invalid.
988
995
  TypeError: Raised when num_gameweeks parameter is invalid.
989
-
996
+
990
997
  Tags:
991
998
  players, fixtures, important
992
-
993
999
  """
994
1000
 
995
1001
  # Normalize entity type
@@ -1253,54 +1259,57 @@ class FplApp(APIApplication):
1253
1259
  return result
1254
1260
 
1255
1261
  def get_blank_gameweeks(self, num_weeks: int = 5) -> list[dict[str, Any]]:
1256
- """Get information about upcoming blank gameweeks where teams don't have fixtures
1257
-
1262
+ """
1263
+ Identifies upcoming 'blank' gameweeks where teams lack a scheduled fixture. The function returns a list detailing each blank gameweek and the affected teams within a specified number of weeks, which is essential for strategic planning. It is distinct from `get_double_gameweeks`.
1264
+
1258
1265
  Args:
1259
1266
  num_weeks: Number of upcoming gameweeks to check (default: 5)
1260
-
1267
+
1261
1268
  Returns:
1262
1269
  Information about blank gameweeks and affected teams
1263
-
1270
+
1264
1271
  Raises:
1265
1272
  ValueError: Raised when num_weeks parameter is invalid.
1266
1273
  TypeError: Raised when num_weeks parameter has incorrect type.
1267
-
1274
+
1268
1275
  Tags:
1269
1276
  gameweeks, blanks, important
1270
1277
  """
1271
1278
  return get_blank_gameweeks(num_weeks)
1272
1279
 
1273
1280
  def get_double_gameweeks(self, num_weeks: int = 5) -> list[dict[str, Any]]:
1274
- """Get information about upcoming double gameweeks where teams have multiple fixtures
1275
-
1281
+ """
1282
+ Identifies upcoming double gameweeks where teams have multiple fixtures within a specified number of weeks. It returns a list detailing each double gameweek and the teams involved. This function specifically finds gameweeks with extra matches, unlike `get_blank_gameweeks` which finds those with none.
1283
+
1276
1284
  Args:
1277
1285
  num_weeks: Number of upcoming gameweeks to check (default: 5)
1278
-
1286
+
1279
1287
  Returns:
1280
1288
  Information about double gameweeks and affected teams
1281
-
1289
+
1282
1290
  Raises:
1283
1291
  ValueError: Raised when num_weeks parameter is invalid.
1284
1292
  TypeError: Raised when num_weeks parameter has incorrect type.
1285
-
1293
+
1286
1294
  Tags:
1287
1295
  gameweeks, doubles, important
1288
1296
  """
1289
1297
  return get_double_gameweeks(num_weeks)
1290
1298
 
1291
- def team_info(self, team_id: str) -> dict[str, Any]:
1292
- """Get information about a team
1293
-
1299
+ def get_manager_team_info(self, team_id: str) -> dict[str, Any]:
1300
+ """
1301
+ Retrieves detailed information for a specific FPL manager's team (an "entry") using its unique ID. This is distinct from functions analyzing Premier League clubs, as it targets an individual user's fantasy squad and its performance details within the game.
1302
+
1294
1303
  Args:
1295
1304
  team_id: The ID of the team to get information about
1296
-
1305
+
1297
1306
  Returns:
1298
1307
  Information about the team
1299
-
1308
+
1300
1309
  Raises:
1301
1310
  ValueError: Raised when team_id parameter is invalid.
1302
-
1303
-
1311
+
1312
+
1304
1313
  Tags:
1305
1314
  teams, important
1306
1315
  """
@@ -1314,15 +1323,15 @@ class FplApp(APIApplication):
1314
1323
  """
1315
1324
  return [
1316
1325
  self.get_player_information,
1317
- self.search_fpl_players,
1318
- self.get_gameweek_status,
1319
- self.analyze_players,
1326
+ self.find_players,
1327
+ self.get_gameweek_snapshot,
1328
+ self.screen_players,
1320
1329
  self.compare_players,
1321
1330
  self.analyze_player_fixtures,
1322
- self.analyze_fixtures,
1331
+ self.analyze_entity_fixtures,
1323
1332
  self.get_blank_gameweeks,
1324
1333
  self.get_double_gameweeks,
1325
1334
  self.get_league_standings,
1326
- self.get_league_analytics,
1327
- self.team_info,
1335
+ self.analyze_league,
1336
+ self.get_manager_team_info,
1328
1337
  ]