universal-mcp-applications 0.1.13__py3-none-any.whl → 0.1.15__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/aws_s3/app.py +71 -71
- universal_mcp/applications/calendly/app.py +199 -199
- universal_mcp/applications/canva/app.py +189 -189
- universal_mcp/applications/domain_checker/app.py +31 -24
- universal_mcp/applications/e2b/app.py +6 -7
- universal_mcp/applications/elevenlabs/app.py +24 -20
- universal_mcp/applications/exa/app.py +25 -20
- universal_mcp/applications/falai/app.py +44 -41
- universal_mcp/applications/file_system/app.py +20 -12
- universal_mcp/applications/firecrawl/app.py +46 -47
- universal_mcp/applications/fireflies/app.py +79 -79
- universal_mcp/applications/fpl/app.py +83 -74
- universal_mcp/applications/github/README.md +0 -1028
- universal_mcp/applications/github/app.py +55 -50227
- universal_mcp/applications/google_calendar/app.py +63 -65
- universal_mcp/applications/google_docs/app.py +78 -78
- universal_mcp/applications/google_drive/app.py +361 -440
- universal_mcp/applications/google_gemini/app.py +34 -17
- universal_mcp/applications/google_mail/app.py +117 -117
- universal_mcp/applications/google_searchconsole/app.py +41 -47
- universal_mcp/applications/google_sheet/app.py +157 -164
- universal_mcp/applications/http_tools/app.py +16 -16
- universal_mcp/applications/linkedin/app.py +26 -31
- universal_mcp/applications/ms_teams/app.py +190 -190
- universal_mcp/applications/openai/app.py +55 -56
- universal_mcp/applications/outlook/app.py +71 -71
- universal_mcp/applications/perplexity/app.py +17 -17
- universal_mcp/applications/reddit/app.py +225 -4053
- universal_mcp/applications/replicate/app.py +40 -42
- universal_mcp/applications/resend/app.py +157 -154
- universal_mcp/applications/scraper/app.py +24 -24
- universal_mcp/applications/serpapi/app.py +18 -20
- universal_mcp/applications/sharepoint/app.py +46 -36
- universal_mcp/applications/slack/app.py +66 -66
- universal_mcp/applications/tavily/app.py +7 -7
- universal_mcp/applications/twitter/api_segments/compliance_api.py +17 -20
- universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +35 -40
- universal_mcp/applications/twitter/api_segments/dm_events_api.py +18 -21
- universal_mcp/applications/twitter/api_segments/likes_api.py +19 -22
- universal_mcp/applications/twitter/api_segments/lists_api.py +59 -68
- universal_mcp/applications/twitter/api_segments/spaces_api.py +36 -42
- universal_mcp/applications/twitter/api_segments/trends_api.py +7 -8
- universal_mcp/applications/twitter/api_segments/tweets_api.py +159 -185
- universal_mcp/applications/twitter/api_segments/usage_api.py +5 -6
- universal_mcp/applications/twitter/api_segments/users_api.py +230 -264
- universal_mcp/applications/unipile/app.py +99 -105
- universal_mcp/applications/whatsapp/app.py +86 -82
- universal_mcp/applications/whatsapp_business/app.py +147 -147
- universal_mcp/applications/youtube/app.py +290 -290
- universal_mcp/applications/zenquotes/app.py +6 -6
- {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.15.dist-info}/METADATA +2 -2
- {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.15.dist-info}/RECORD +54 -54
- {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.15.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.15.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
|
|
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
|
-
|
|
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
|
-
"""
|
|
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
|
-
"""
|
|
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
|
|
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
|
-
"""
|
|
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
|
|
276
|
+
def get_gameweek_snapshot(self) -> dict[str, Any]:
|
|
274
277
|
"""
|
|
275
|
-
|
|
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
|
|
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
|
-
"""
|
|
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
|
-
"""
|
|
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
|
-
"""
|
|
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
|
|
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
|
-
"""
|
|
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
|
-
"""
|
|
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
|
-
"""
|
|
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
|
|
1292
|
-
"""
|
|
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.
|
|
1318
|
-
self.
|
|
1319
|
-
self.
|
|
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.
|
|
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.
|
|
1327
|
-
self.
|
|
1335
|
+
self.analyze_league,
|
|
1336
|
+
self.get_manager_team_info,
|
|
1328
1337
|
]
|