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
@@ -20,23 +20,23 @@ class FirefliesApp(GraphQLApplication):
20
20
  )
21
21
  self.integration = integration
22
22
 
23
- def get_team_analytics(
23
+ def get_team_conversation_analytics(
24
24
  self, start_time: str | None = None, end_time: str | None = None
25
25
  ) -> dict[str, Any]:
26
26
  """
27
- Fetches team analytics data within a specified time range.
28
-
27
+ Queries the Fireflies.ai API for team conversation analytics, specifically the average number of filler words. The data retrieval can optionally be filtered by a start and end time. Returns a dictionary containing the fetched analytics.
28
+
29
29
  Args:
30
30
  start_time: Optional start time for analytics (ISO 8601 format, e.g., "2024-01-01T00:00:00Z").
31
31
  end_time: Optional end time for analytics (ISO 8601 format, e.g., "2024-01-31T23:59:59Z").
32
-
32
+
33
33
  Returns:
34
34
  A dictionary containing team analytics data.
35
35
  Example: {"team": {"conversation": {"average_filler_words": 0.5}}}
36
-
36
+
37
37
  Raises:
38
38
  Exception: If the API request fails.
39
-
39
+
40
40
  Tags:
41
41
  analytics, team, fireflies, query
42
42
  """
@@ -60,20 +60,20 @@ class FirefliesApp(GraphQLApplication):
60
60
  result = self.query(query_gql, variables=variables if variables else None)
61
61
  return result.get("analytics", {})
62
62
 
63
- def get_ai_apps_outputs(self, transcript_id: str) -> list[dict[str, Any]]:
63
+ def get_transcript_ai_outputs(self, transcript_id: str) -> list[dict[str, Any]]:
64
64
  """
65
- Fetches AI Apps outputs for a given transcript.
66
-
65
+ Retrieves all AI-generated application outputs, such as summaries or analyses, associated with a specific transcript ID. It fetches the detailed prompt and response data for each AI app that has processed the transcript, providing a complete record of AI-generated content.
66
+
67
67
  Args:
68
68
  transcript_id: The ID of the transcript.
69
-
69
+
70
70
  Returns:
71
71
  A list of dictionaries, each representing an AI app output.
72
72
  Example: [{"transcript_id": "...", "user_id": "...", ...}]
73
-
73
+
74
74
  Raises:
75
75
  Exception: If the API request fails.
76
-
76
+
77
77
  Tags:
78
78
  ai, apps, transcript, fireflies, query
79
79
  """
@@ -98,18 +98,18 @@ class FirefliesApp(GraphQLApplication):
98
98
 
99
99
  def get_user_details(self, user_id: str) -> dict[str, Any]:
100
100
  """
101
- Fetches details for a specific user.
102
-
101
+ Fetches details, such as name and integrations, for a single user identified by their unique ID. This function queries for a specific user, differentiating it from `list_users` which retrieves a list of all users in the workspace.
102
+
103
103
  Args:
104
104
  user_id: The ID of the user.
105
-
105
+
106
106
  Returns:
107
107
  A dictionary containing user details (e.g., name, integrations).
108
108
  Example: {"name": "John Doe", "integrations": [...]}
109
-
109
+
110
110
  Raises:
111
111
  Exception: If the API request fails.
112
-
112
+
113
113
  Tags:
114
114
  user, details, fireflies, query, important
115
115
  """
@@ -127,15 +127,15 @@ class FirefliesApp(GraphQLApplication):
127
127
 
128
128
  def list_users(self) -> list[dict[str, Any]]:
129
129
  """
130
- Fetches a list of users in the workspace.
131
-
130
+ Retrieves a list of all users in the workspace, returning each user's name and configured integrations. It provides a complete team roster, differing from `get_user_details`, which fetches information for a single user by their ID.
131
+
132
132
  Returns:
133
133
  A list of dictionaries, each representing a user with their name and integrations.
134
134
  Example: [{"name": "Justin Fly", "integrations": ["zoom", "slack"]}, ...]
135
-
135
+
136
136
  Raises:
137
137
  Exception: If the API request fails.
138
-
138
+
139
139
  Tags:
140
140
  user, list, users, fireflies, query
141
141
  """
@@ -157,18 +157,18 @@ class FirefliesApp(GraphQLApplication):
157
157
 
158
158
  def get_transcript_details(self, transcript_id: str) -> dict[str, Any]:
159
159
  """
160
- Fetches details for a specific transcript.
161
-
160
+ Queries the Fireflies API for a single transcript's details, such as title and ID, using its unique identifier. It fetches one specific entry, distinguishing it from `list_transcripts`, which retrieves a collection, and from `get_ai_apps_outputs` which gets AI data from a transcript.
161
+
162
162
  Args:
163
163
  transcript_id: The ID of the transcript.
164
-
164
+
165
165
  Returns:
166
166
  A dictionary containing transcript details (e.g., title, id).
167
167
  Example: {"title": "Meeting Notes", "id": "..."}
168
-
168
+
169
169
  Raises:
170
170
  Exception: If the API request fails.
171
-
171
+
172
172
  Tags:
173
173
  transcript, details, fireflies, query, important
174
174
  """
@@ -186,18 +186,18 @@ class FirefliesApp(GraphQLApplication):
186
186
 
187
187
  def list_transcripts(self, user_id: str | None = None) -> list[dict[str, Any]]:
188
188
  """
189
- Fetches a list of transcripts, optionally filtered by user ID.
190
-
189
+ Fetches a list of meeting transcripts, returning the title and ID for each. The list can be filtered to return only transcripts for a specific user. This function complements `get_transcript_details`, which retrieves a single transcript by its unique ID.
190
+
191
191
  Args:
192
192
  user_id: Optional ID of the user to filter transcripts for.
193
-
193
+
194
194
  Returns:
195
195
  A list of dictionaries, each representing a transcript (e.g., title, id).
196
196
  Example: [{"title": "Meeting 1", "id": "..."}, {"title": "Meeting 2", "id": "..."}]
197
-
197
+
198
198
  Raises:
199
199
  Exception: If the API request fails.
200
-
200
+
201
201
  Tags:
202
202
  transcript, list, fireflies, query
203
203
  """
@@ -217,18 +217,18 @@ class FirefliesApp(GraphQLApplication):
217
217
 
218
218
  def get_bite_details(self, bite_id: str) -> dict[str, Any]:
219
219
  """
220
- Fetches details for a specific bite (soundbite/clip).
221
-
220
+ Retrieves detailed information for a specific bite (soundbite/clip) using its unique ID. It fetches data including the user ID, name, processing status, and summary. This provides a focused view of a single bite, distinguishing it from `list_bites` which fetches a collection of bites.
221
+
222
222
  Args:
223
223
  bite_id: The ID of the bite.
224
-
224
+
225
225
  Returns:
226
226
  A dictionary containing bite details (e.g., user_id, name, status, summary).
227
227
  Example: {"user_id": "...", "name": "Key Moment", "status": "processed", "summary": "..."}
228
-
228
+
229
229
  Raises:
230
230
  Exception: If the API request fails.
231
-
231
+
232
232
  Tags:
233
233
  bite, details, fireflies, query
234
234
  """
@@ -248,18 +248,18 @@ class FirefliesApp(GraphQLApplication):
248
248
 
249
249
  def list_bites(self, mine: bool | None = None) -> list[dict[str, Any]]:
250
250
  """
251
- Fetches a list of bites, optionally filtered to the current user's bites.
252
-
251
+ Retrieves a list of soundbites (clips) from the Fireflies API. An optional 'mine' parameter filters for soundbites belonging only to the authenticated user. Differentiates from 'get_bite_details' by fetching multiple items rather than a single one by ID.
252
+
253
253
  Args:
254
254
  mine: Optional boolean to filter for the authenticated user's bites (default true if not specified by API).
255
-
255
+
256
256
  Returns:
257
257
  A list of dictionaries, each representing a bite (e.g., user_id, name, end_time).
258
258
  Example: [{"user_id": "...", "name": "Clip 1", "end_time": "..."}]
259
-
259
+
260
260
  Raises:
261
261
  Exception: If the API request fails.
262
-
262
+
263
263
  Tags:
264
264
  bite, list, fireflies, query
265
265
  """
@@ -282,18 +282,18 @@ class FirefliesApp(GraphQLApplication):
282
282
 
283
283
  def add_to_live_meeting(self, meeting_link: str) -> dict[str, Any]:
284
284
  """
285
- Adds Fireflies.ai to a live meeting.
286
-
285
+ Executes a GraphQL mutation to make the Fireflies.ai notetaker join a live meeting specified by its URL. This action initiates the bot's recording and transcription process for the ongoing session and returns a success confirmation.
286
+
287
287
  Args:
288
288
  meeting_link: The URL of the live meeting (e.g., Google Meet link).
289
-
289
+
290
290
  Returns:
291
291
  A dictionary indicating the success of the operation.
292
292
  Example: {"success": true}
293
-
293
+
294
294
  Raises:
295
295
  Exception: If the API request fails.
296
-
296
+
297
297
  Tags:
298
298
  meeting, live, fireflies, mutation, important
299
299
  """
@@ -308,24 +308,24 @@ class FirefliesApp(GraphQLApplication):
308
308
  result = self.mutate(mutation_gql, variables=variables)
309
309
  return result.get("addToLiveMeeting", {})
310
310
 
311
- def create_bite(
311
+ def create_soundbite_from_transcript(
312
312
  self, transcript_id: str, start_time: float, end_time: float
313
313
  ) -> dict[str, Any]:
314
314
  """
315
- Creates a bite (soundbite/clip) from a transcript.
316
-
315
+ Creates a soundbite/clip from a specified segment of a transcript using its ID, start, and end times. This function executes a GraphQL mutation, returning details of the newly created bite, such as its ID and processing status.
316
+
317
317
  Args:
318
318
  transcript_id: The ID of the transcript.
319
319
  start_time: The start time of the bite in seconds (or relevant float unit).
320
320
  end_time: The end time of the bite in seconds (or relevant float unit).
321
-
321
+
322
322
  Returns:
323
323
  A dictionary containing details of the created bite (e.g., summary, status, id).
324
324
  Example: {"summary": "...", "status": "processing", "id": "..."}
325
-
325
+
326
326
  Raises:
327
327
  Exception: If the API request fails.
328
-
328
+
329
329
  Tags:
330
330
  bite, create, transcript, fireflies, mutation
331
331
  """
@@ -348,18 +348,18 @@ class FirefliesApp(GraphQLApplication):
348
348
 
349
349
  def delete_transcript(self, transcript_id: str) -> dict[str, Any]:
350
350
  """
351
- Deletes a transcript.
352
-
351
+ Permanently deletes a specific transcript from Fireflies.ai using its ID. This destructive operation executes a GraphQL mutation and returns a dictionary containing the details of the transcript (e.g., title, date) as it existed just before being removed, confirming the action.
352
+
353
353
  Args:
354
354
  transcript_id: The ID of the transcript to delete.
355
-
355
+
356
356
  Returns:
357
357
  A dictionary containing details of the deleted transcript.
358
358
  Example: {"title": "Old Meeting", "date": "...", "duration": ..., "organizer_email": "..."}
359
-
359
+
360
360
  Raises:
361
361
  Exception: If the API request fails.
362
-
362
+
363
363
  Tags:
364
364
  transcript, delete, fireflies, mutation, destructive
365
365
  """
@@ -379,19 +379,19 @@ class FirefliesApp(GraphQLApplication):
379
379
 
380
380
  def set_user_role(self, user_id: str, role: str) -> dict[str, Any]:
381
381
  """
382
- Sets the role for a user.
383
-
382
+ Assigns a new role (e.g., 'admin', 'member') to a user specified by their ID. This function executes a GraphQL mutation to modify user data and returns a dictionary with the user's updated name and admin status to confirm the change.
383
+
384
384
  Args:
385
385
  user_id: The ID of the user.
386
386
  role: The role to assign (e.g., "admin", "member").
387
-
387
+
388
388
  Returns:
389
389
  A dictionary containing the updated user details (e.g., name, is_admin).
390
390
  Example: {"name": "Jane Doe", "is_admin": true}
391
-
391
+
392
392
  Raises:
393
393
  Exception: If the API request fails.
394
-
394
+
395
395
  Tags:
396
396
  user, role, admin, fireflies, mutation
397
397
  """
@@ -407,28 +407,28 @@ class FirefliesApp(GraphQLApplication):
407
407
  result = self.mutate(mutation_gql, variables=variables)
408
408
  return result.get("setUserRole", {})
409
409
 
410
- def upload_audio(
410
+ def transcribe_audio_from_url(
411
411
  self,
412
412
  url: str,
413
413
  title: str | None = None,
414
414
  attendees: list[dict[str, str]] | None = None,
415
415
  ) -> dict[str, Any]:
416
416
  """
417
- Uploads an audio file for transcription.
418
-
417
+ Submits an audio file from a URL to the Fireflies.ai API for transcription. It can optionally associate a title and a list of attendees with the audio, returning the upload status and details upon completion.
418
+
419
419
  Args:
420
420
  url: The URL of the audio file.
421
421
  title: Optional title for the uploaded audio.
422
422
  attendees: Optional list of attendees. Each attendee is a dict
423
423
  with "displayName", "email", "phoneNumber".
424
-
424
+
425
425
  Returns:
426
426
  A dictionary indicating the success and details of the upload.
427
427
  Example: {"success": true, "title": "Uploaded Audio", "message": "..."}
428
-
428
+
429
429
  Raises:
430
430
  Exception: If the API request fails.
431
-
431
+
432
432
  Tags:
433
433
  audio, upload, transcript, fireflies, mutation
434
434
  """
@@ -451,23 +451,23 @@ class FirefliesApp(GraphQLApplication):
451
451
  result = self.mutate(mutation_gql, variables=variables)
452
452
  return result.get("uploadAudio", {})
453
453
 
454
- def update_meeting_title(
454
+ def update_transcript_title(
455
455
  self, transcript_id: str, new_title: str
456
456
  ) -> dict[str, Any]:
457
457
  """
458
- Updates the title of a meeting (transcript).
459
-
458
+ Updates the title of a specific transcript, identified by its ID, to a new value. This function executes a GraphQL mutation and returns a dictionary containing the newly assigned title upon successful completion of the request.
459
+
460
460
  Args:
461
461
  transcript_id: The ID of the transcript to update.
462
462
  new_title: The new title for the meeting.
463
-
463
+
464
464
  Returns:
465
465
  A dictionary containing the updated title.
466
466
  Example: {"title": "New Meeting Title"}
467
-
467
+
468
468
  Raises:
469
469
  Exception: If the API request fails.
470
-
470
+
471
471
  Tags:
472
472
  transcript, meeting, title, update, fireflies, mutation
473
473
  """
@@ -490,8 +490,8 @@ class FirefliesApp(GraphQLApplication):
490
490
  A list of callable tool methods.
491
491
  """
492
492
  return [
493
- self.get_team_analytics,
494
- self.get_ai_apps_outputs,
493
+ self.get_team_conversation_analytics,
494
+ self.get_transcript_ai_outputs,
495
495
  self.get_user_details,
496
496
  self.list_users,
497
497
  self.get_transcript_details,
@@ -499,9 +499,9 @@ class FirefliesApp(GraphQLApplication):
499
499
  self.get_bite_details,
500
500
  self.list_bites,
501
501
  self.add_to_live_meeting,
502
- self.create_bite,
502
+ self.create_soundbite_from_transcript,
503
503
  self.delete_transcript,
504
504
  self.set_user_role,
505
- self.upload_audio,
506
- self.update_meeting_title,
505
+ self.transcribe_audio_from_url,
506
+ self.update_transcript_title,
507
507
  ]