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.

Files changed (143) hide show
  1. universal_mcp/applications/BEST_PRACTICES.md +166 -0
  2. universal_mcp/applications/ahrefs/README.md +3 -3
  3. universal_mcp/applications/airtable/README.md +3 -3
  4. universal_mcp/applications/airtable/app.py +0 -1
  5. universal_mcp/applications/apollo/app.py +0 -1
  6. universal_mcp/applications/asana/README.md +3 -3
  7. universal_mcp/applications/aws_s3/README.md +29 -0
  8. universal_mcp/applications/aws_s3/app.py +40 -39
  9. universal_mcp/applications/bill/README.md +249 -0
  10. universal_mcp/applications/browser_use/README.md +1 -0
  11. universal_mcp/applications/browser_use/__init__.py +0 -0
  12. universal_mcp/applications/browser_use/app.py +71 -0
  13. universal_mcp/applications/calendly/README.md +45 -45
  14. universal_mcp/applications/calendly/app.py +125 -125
  15. universal_mcp/applications/canva/README.md +35 -35
  16. universal_mcp/applications/canva/app.py +95 -99
  17. universal_mcp/applications/clickup/README.md +4 -4
  18. universal_mcp/applications/confluence/app.py +0 -1
  19. universal_mcp/applications/contentful/README.md +1 -2
  20. universal_mcp/applications/contentful/app.py +4 -5
  21. universal_mcp/applications/crustdata/README.md +3 -3
  22. universal_mcp/applications/domain_checker/README.md +2 -2
  23. universal_mcp/applications/domain_checker/app.py +11 -15
  24. universal_mcp/applications/e2b/README.md +4 -4
  25. universal_mcp/applications/e2b/app.py +4 -4
  26. universal_mcp/applications/elevenlabs/README.md +3 -77
  27. universal_mcp/applications/elevenlabs/app.py +18 -15
  28. universal_mcp/applications/exa/README.md +7 -7
  29. universal_mcp/applications/exa/app.py +17 -17
  30. universal_mcp/applications/falai/README.md +13 -12
  31. universal_mcp/applications/falai/app.py +34 -35
  32. universal_mcp/applications/figma/README.md +3 -3
  33. universal_mcp/applications/file_system/README.md +13 -0
  34. universal_mcp/applications/file_system/app.py +9 -9
  35. universal_mcp/applications/firecrawl/README.md +9 -9
  36. universal_mcp/applications/firecrawl/app.py +46 -46
  37. universal_mcp/applications/fireflies/README.md +14 -14
  38. universal_mcp/applications/fireflies/app.py +164 -57
  39. universal_mcp/applications/fpl/README.md +12 -12
  40. universal_mcp/applications/fpl/app.py +54 -55
  41. universal_mcp/applications/ghost_content/app.py +0 -1
  42. universal_mcp/applications/github/README.md +10 -10
  43. universal_mcp/applications/github/app.py +50 -52
  44. universal_mcp/applications/google_calendar/README.md +10 -10
  45. universal_mcp/applications/google_calendar/app.py +50 -49
  46. universal_mcp/applications/google_docs/README.md +14 -14
  47. universal_mcp/applications/google_docs/app.py +307 -233
  48. universal_mcp/applications/google_drive/README.md +54 -57
  49. universal_mcp/applications/google_drive/app.py +270 -261
  50. universal_mcp/applications/google_gemini/README.md +3 -14
  51. universal_mcp/applications/google_gemini/app.py +15 -18
  52. universal_mcp/applications/google_mail/README.md +20 -20
  53. universal_mcp/applications/google_mail/app.py +110 -109
  54. universal_mcp/applications/google_searchconsole/README.md +10 -10
  55. universal_mcp/applications/google_searchconsole/app.py +37 -37
  56. universal_mcp/applications/google_sheet/README.md +25 -25
  57. universal_mcp/applications/google_sheet/app.py +270 -266
  58. universal_mcp/applications/hashnode/README.md +6 -3
  59. universal_mcp/applications/hashnode/app.py +174 -25
  60. universal_mcp/applications/http_tools/README.md +5 -5
  61. universal_mcp/applications/http_tools/app.py +10 -11
  62. universal_mcp/applications/hubspot/api_segments/__init__.py +0 -0
  63. universal_mcp/applications/hubspot/api_segments/api_segment_base.py +54 -0
  64. universal_mcp/applications/hubspot/api_segments/crm_api.py +7337 -0
  65. universal_mcp/applications/hubspot/api_segments/marketing_api.py +1467 -0
  66. universal_mcp/applications/hubspot/app.py +2 -15
  67. universal_mcp/applications/jira/app.py +0 -1
  68. universal_mcp/applications/klaviyo/README.md +0 -36
  69. universal_mcp/applications/linkedin/README.md +18 -4
  70. universal_mcp/applications/linkedin/app.py +763 -162
  71. universal_mcp/applications/mailchimp/README.md +3 -3
  72. universal_mcp/applications/markitdown/app.py +10 -5
  73. universal_mcp/applications/ms_teams/README.md +31 -31
  74. universal_mcp/applications/ms_teams/app.py +151 -151
  75. universal_mcp/applications/neon/README.md +3 -3
  76. universal_mcp/applications/onedrive/README.md +24 -0
  77. universal_mcp/applications/onedrive/__init__.py +1 -0
  78. universal_mcp/applications/onedrive/app.py +338 -0
  79. universal_mcp/applications/openai/README.md +18 -17
  80. universal_mcp/applications/openai/app.py +40 -39
  81. universal_mcp/applications/outlook/README.md +9 -9
  82. universal_mcp/applications/outlook/app.py +307 -225
  83. universal_mcp/applications/perplexity/README.md +4 -4
  84. universal_mcp/applications/perplexity/app.py +4 -4
  85. universal_mcp/applications/posthog/README.md +128 -127
  86. universal_mcp/applications/reddit/README.md +21 -124
  87. universal_mcp/applications/reddit/app.py +51 -68
  88. universal_mcp/applications/resend/README.md +29 -29
  89. universal_mcp/applications/resend/app.py +116 -117
  90. universal_mcp/applications/rocketlane/app.py +0 -1
  91. universal_mcp/applications/scraper/README.md +7 -4
  92. universal_mcp/applications/scraper/__init__.py +1 -1
  93. universal_mcp/applications/scraper/app.py +341 -103
  94. universal_mcp/applications/semrush/README.md +3 -0
  95. universal_mcp/applications/serpapi/README.md +3 -3
  96. universal_mcp/applications/serpapi/app.py +14 -14
  97. universal_mcp/applications/sharepoint/README.md +19 -0
  98. universal_mcp/applications/sharepoint/app.py +285 -173
  99. universal_mcp/applications/shopify/app.py +0 -1
  100. universal_mcp/applications/shortcut/README.md +3 -3
  101. universal_mcp/applications/slack/README.md +23 -0
  102. universal_mcp/applications/slack/app.py +79 -48
  103. universal_mcp/applications/spotify/README.md +3 -3
  104. universal_mcp/applications/supabase/README.md +3 -3
  105. universal_mcp/applications/tavily/README.md +4 -4
  106. universal_mcp/applications/tavily/app.py +4 -4
  107. universal_mcp/applications/twilio/README.md +15 -0
  108. universal_mcp/applications/twitter/README.md +92 -89
  109. universal_mcp/applications/twitter/api_segments/compliance_api.py +13 -15
  110. universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +20 -20
  111. universal_mcp/applications/twitter/api_segments/dm_events_api.py +12 -12
  112. universal_mcp/applications/twitter/api_segments/likes_api.py +12 -12
  113. universal_mcp/applications/twitter/api_segments/lists_api.py +37 -39
  114. universal_mcp/applications/twitter/api_segments/spaces_api.py +24 -24
  115. universal_mcp/applications/twitter/api_segments/trends_api.py +4 -4
  116. universal_mcp/applications/twitter/api_segments/tweets_api.py +105 -105
  117. universal_mcp/applications/twitter/api_segments/usage_api.py +4 -4
  118. universal_mcp/applications/twitter/api_segments/users_api.py +136 -136
  119. universal_mcp/applications/twitter/app.py +15 -11
  120. universal_mcp/applications/whatsapp/README.md +12 -12
  121. universal_mcp/applications/whatsapp/app.py +66 -67
  122. universal_mcp/applications/whatsapp/audio.py +39 -35
  123. universal_mcp/applications/whatsapp/whatsapp.py +176 -154
  124. universal_mcp/applications/whatsapp_business/README.md +23 -23
  125. universal_mcp/applications/whatsapp_business/app.py +92 -92
  126. universal_mcp/applications/yahoo_finance/README.md +17 -0
  127. universal_mcp/applications/yahoo_finance/__init__.py +1 -0
  128. universal_mcp/applications/yahoo_finance/app.py +300 -0
  129. universal_mcp/applications/youtube/README.md +46 -46
  130. universal_mcp/applications/youtube/app.py +208 -195
  131. universal_mcp/applications/zenquotes/README.md +1 -1
  132. universal_mcp/applications/zenquotes/__init__.py +2 -0
  133. universal_mcp/applications/zenquotes/app.py +5 -5
  134. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/METADATA +5 -90
  135. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/RECORD +137 -128
  136. universal_mcp/applications/replicate/README.md +0 -18
  137. universal_mcp/applications/replicate/__init__.py +0 -1
  138. universal_mcp/applications/replicate/app.py +0 -493
  139. universal_mcp/applications/unipile/README.md +0 -28
  140. universal_mcp/applications/unipile/__init__.py +0 -1
  141. universal_mcp/applications/unipile/app.py +0 -827
  142. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/WHEEL +0 -0
  143. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/licenses/LICENSE +0 -0
@@ -2,7 +2,6 @@ from collections.abc import Callable
2
2
  from typing import Any
3
3
 
4
4
  from gql import gql
5
-
6
5
  from universal_mcp.applications.application import (
7
6
  GraphQLApplication,
8
7
  )
@@ -25,18 +24,18 @@ class FirefliesApp(GraphQLApplication):
25
24
  ) -> dict[str, Any]:
26
25
  """
27
26
  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
-
27
+
29
28
  Args:
30
29
  start_time: Optional start time for analytics (ISO 8601 format, e.g., "2024-01-01T00:00:00Z").
31
30
  end_time: Optional end time for analytics (ISO 8601 format, e.g., "2024-01-31T23:59:59Z").
32
-
31
+
33
32
  Returns:
34
33
  A dictionary containing team analytics data.
35
34
  Example: {"team": {"conversation": {"average_filler_words": 0.5}}}
36
-
35
+
37
36
  Raises:
38
37
  Exception: If the API request fails.
39
-
38
+
40
39
  Tags:
41
40
  analytics, team, fireflies, query
42
41
  """
@@ -63,17 +62,17 @@ class FirefliesApp(GraphQLApplication):
63
62
  def get_transcript_ai_outputs(self, transcript_id: str) -> list[dict[str, Any]]:
64
63
  """
65
64
  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
-
65
+
67
66
  Args:
68
67
  transcript_id: The ID of the transcript.
69
-
68
+
70
69
  Returns:
71
70
  A list of dictionaries, each representing an AI app output.
72
71
  Example: [{"transcript_id": "...", "user_id": "...", ...}]
73
-
72
+
74
73
  Raises:
75
74
  Exception: If the API request fails.
76
-
75
+
77
76
  Tags:
78
77
  ai, apps, transcript, fireflies, query
79
78
  """
@@ -99,17 +98,17 @@ class FirefliesApp(GraphQLApplication):
99
98
  def get_user_details(self, user_id: str) -> dict[str, Any]:
100
99
  """
101
100
  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
-
101
+
103
102
  Args:
104
103
  user_id: The ID of the user.
105
-
104
+
106
105
  Returns:
107
106
  A dictionary containing user details (e.g., name, integrations).
108
107
  Example: {"name": "John Doe", "integrations": [...]}
109
-
108
+
110
109
  Raises:
111
110
  Exception: If the API request fails.
112
-
111
+
113
112
  Tags:
114
113
  user, details, fireflies, query, important
115
114
  """
@@ -128,14 +127,14 @@ class FirefliesApp(GraphQLApplication):
128
127
  def list_users(self) -> list[dict[str, Any]]:
129
128
  """
130
129
  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
-
130
+
132
131
  Returns:
133
132
  A list of dictionaries, each representing a user with their name and integrations.
134
133
  Example: [{"name": "Justin Fly", "integrations": ["zoom", "slack"]}, ...]
135
-
134
+
136
135
  Raises:
137
136
  Exception: If the API request fails.
138
-
137
+
139
138
  Tags:
140
139
  user, list, users, fireflies, query
141
140
  """
@@ -158,25 +157,133 @@ class FirefliesApp(GraphQLApplication):
158
157
  def get_transcript_details(self, transcript_id: str) -> dict[str, Any]:
159
158
  """
160
159
  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
-
160
+
162
161
  Args:
163
162
  transcript_id: The ID of the transcript.
164
-
163
+
165
164
  Returns:
166
165
  A dictionary containing transcript details (e.g., title, id).
167
166
  Example: {"title": "Meeting Notes", "id": "..."}
168
-
167
+
169
168
  Raises:
170
169
  Exception: If the API request fails.
171
-
170
+
172
171
  Tags:
173
172
  transcript, details, fireflies, query, important
174
173
  """
175
174
  query_gql = gql("""
176
175
  query Transcript($transcriptId: String!) {
177
176
  transcript(id: $transcriptId) {
178
- title
179
177
  id
178
+ title
179
+ host_email
180
+ organizer_email
181
+ user {
182
+ user_id
183
+ email
184
+ name
185
+ num_transcripts
186
+ recent_meeting
187
+ minutes_consumed
188
+ is_admin
189
+ integrations
190
+ }
191
+ speakers {
192
+ id
193
+ name
194
+ }
195
+ transcript_url
196
+ participants
197
+ meeting_attendees {
198
+ displayName
199
+ email
200
+ phoneNumber
201
+ name
202
+ location
203
+ }
204
+ fireflies_users
205
+ duration
206
+ dateString
207
+ date
208
+ audio_url
209
+ video_url
210
+ sentences {
211
+ index
212
+ speaker_name
213
+ speaker_id
214
+ text
215
+ raw_text
216
+ start_time
217
+ end_time
218
+ ai_filters {
219
+ task
220
+ pricing
221
+ metric
222
+ question
223
+ date_and_time
224
+ text_cleanup
225
+ sentiment
226
+ }
227
+ }
228
+ calendar_id
229
+ summary {
230
+ action_items
231
+ keywords
232
+ outline
233
+ overview
234
+ shorthand_bullet
235
+ gist
236
+ bullet_gist
237
+ short_summary
238
+ short_overview
239
+ meeting_type
240
+ topics_discussed
241
+ transcript_chapters
242
+ }
243
+ meeting_info {
244
+ fred_joined
245
+ silent_meeting
246
+ summary_status
247
+ }
248
+ cal_id
249
+ calendar_type
250
+ apps_preview {
251
+ outputs {
252
+ transcript_id
253
+ user_id
254
+ app_id
255
+ created_at
256
+ title
257
+ prompt
258
+ response
259
+ }
260
+ }
261
+ meeting_link
262
+ analytics {
263
+ sentiments {
264
+ negative_pct
265
+ neutral_pct
266
+ positive_pct
267
+ }
268
+ categories {
269
+ questions
270
+ date_times
271
+ metrics
272
+ tasks
273
+ }
274
+ speakers {
275
+ speaker_id
276
+ name
277
+ duration
278
+ word_count
279
+ longest_monologue
280
+ monologues_count
281
+ filler_words
282
+ questions
283
+ duration_pct
284
+ words_per_minute
285
+ }
286
+ }
180
287
  }
181
288
  }
182
289
  """)
@@ -187,17 +294,17 @@ class FirefliesApp(GraphQLApplication):
187
294
  def list_transcripts(self, user_id: str | None = None) -> list[dict[str, Any]]:
188
295
  """
189
296
  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
-
297
+
191
298
  Args:
192
299
  user_id: Optional ID of the user to filter transcripts for.
193
-
300
+
194
301
  Returns:
195
302
  A list of dictionaries, each representing a transcript (e.g., title, id).
196
303
  Example: [{"title": "Meeting 1", "id": "..."}, {"title": "Meeting 2", "id": "..."}]
197
-
304
+
198
305
  Raises:
199
306
  Exception: If the API request fails.
200
-
307
+
201
308
  Tags:
202
309
  transcript, list, fireflies, query
203
310
  """
@@ -218,17 +325,17 @@ class FirefliesApp(GraphQLApplication):
218
325
  def get_bite_details(self, bite_id: str) -> dict[str, Any]:
219
326
  """
220
327
  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
-
328
+
222
329
  Args:
223
330
  bite_id: The ID of the bite.
224
-
331
+
225
332
  Returns:
226
333
  A dictionary containing bite details (e.g., user_id, name, status, summary).
227
334
  Example: {"user_id": "...", "name": "Key Moment", "status": "processed", "summary": "..."}
228
-
335
+
229
336
  Raises:
230
337
  Exception: If the API request fails.
231
-
338
+
232
339
  Tags:
233
340
  bite, details, fireflies, query
234
341
  """
@@ -249,17 +356,17 @@ class FirefliesApp(GraphQLApplication):
249
356
  def list_bites(self, mine: bool | None = None) -> list[dict[str, Any]]:
250
357
  """
251
358
  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
-
359
+
253
360
  Args:
254
361
  mine: Optional boolean to filter for the authenticated user's bites (default true if not specified by API).
255
-
362
+
256
363
  Returns:
257
364
  A list of dictionaries, each representing a bite (e.g., user_id, name, end_time).
258
365
  Example: [{"user_id": "...", "name": "Clip 1", "end_time": "..."}]
259
-
366
+
260
367
  Raises:
261
368
  Exception: If the API request fails.
262
-
369
+
263
370
  Tags:
264
371
  bite, list, fireflies, query
265
372
  """
@@ -283,17 +390,17 @@ class FirefliesApp(GraphQLApplication):
283
390
  def add_to_live_meeting(self, meeting_link: str) -> dict[str, Any]:
284
391
  """
285
392
  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
-
393
+
287
394
  Args:
288
395
  meeting_link: The URL of the live meeting (e.g., Google Meet link).
289
-
396
+
290
397
  Returns:
291
398
  A dictionary indicating the success of the operation.
292
399
  Example: {"success": true}
293
-
400
+
294
401
  Raises:
295
402
  Exception: If the API request fails.
296
-
403
+
297
404
  Tags:
298
405
  meeting, live, fireflies, mutation, important
299
406
  """
@@ -313,19 +420,19 @@ class FirefliesApp(GraphQLApplication):
313
420
  ) -> dict[str, Any]:
314
421
  """
315
422
  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
-
423
+
317
424
  Args:
318
425
  transcript_id: The ID of the transcript.
319
426
  start_time: The start time of the bite in seconds (or relevant float unit).
320
427
  end_time: The end time of the bite in seconds (or relevant float unit).
321
-
428
+
322
429
  Returns:
323
430
  A dictionary containing details of the created bite (e.g., summary, status, id).
324
431
  Example: {"summary": "...", "status": "processing", "id": "..."}
325
-
432
+
326
433
  Raises:
327
434
  Exception: If the API request fails.
328
-
435
+
329
436
  Tags:
330
437
  bite, create, transcript, fireflies, mutation
331
438
  """
@@ -349,17 +456,17 @@ class FirefliesApp(GraphQLApplication):
349
456
  def delete_transcript(self, transcript_id: str) -> dict[str, Any]:
350
457
  """
351
458
  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
-
459
+
353
460
  Args:
354
461
  transcript_id: The ID of the transcript to delete.
355
-
462
+
356
463
  Returns:
357
464
  A dictionary containing details of the deleted transcript.
358
465
  Example: {"title": "Old Meeting", "date": "...", "duration": ..., "organizer_email": "..."}
359
-
466
+
360
467
  Raises:
361
468
  Exception: If the API request fails.
362
-
469
+
363
470
  Tags:
364
471
  transcript, delete, fireflies, mutation, destructive
365
472
  """
@@ -380,18 +487,18 @@ class FirefliesApp(GraphQLApplication):
380
487
  def set_user_role(self, user_id: str, role: str) -> dict[str, Any]:
381
488
  """
382
489
  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
-
490
+
384
491
  Args:
385
492
  user_id: The ID of the user.
386
493
  role: The role to assign (e.g., "admin", "member").
387
-
494
+
388
495
  Returns:
389
496
  A dictionary containing the updated user details (e.g., name, is_admin).
390
497
  Example: {"name": "Jane Doe", "is_admin": true}
391
-
498
+
392
499
  Raises:
393
500
  Exception: If the API request fails.
394
-
501
+
395
502
  Tags:
396
503
  user, role, admin, fireflies, mutation
397
504
  """
@@ -415,20 +522,20 @@ class FirefliesApp(GraphQLApplication):
415
522
  ) -> dict[str, Any]:
416
523
  """
417
524
  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
-
525
+
419
526
  Args:
420
527
  url: The URL of the audio file.
421
528
  title: Optional title for the uploaded audio.
422
529
  attendees: Optional list of attendees. Each attendee is a dict
423
530
  with "displayName", "email", "phoneNumber".
424
-
531
+
425
532
  Returns:
426
533
  A dictionary indicating the success and details of the upload.
427
534
  Example: {"success": true, "title": "Uploaded Audio", "message": "..."}
428
-
535
+
429
536
  Raises:
430
537
  Exception: If the API request fails.
431
-
538
+
432
539
  Tags:
433
540
  audio, upload, transcript, fireflies, mutation
434
541
  """
@@ -456,18 +563,18 @@ class FirefliesApp(GraphQLApplication):
456
563
  ) -> dict[str, Any]:
457
564
  """
458
565
  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
-
566
+
460
567
  Args:
461
568
  transcript_id: The ID of the transcript to update.
462
569
  new_title: The new title for the meeting.
463
-
570
+
464
571
  Returns:
465
572
  A dictionary containing the updated title.
466
573
  Example: {"title": "New Meeting Title"}
467
-
574
+
468
575
  Raises:
469
576
  Exception: If the API request fails.
470
-
577
+
471
578
  Tags:
472
579
  transcript, meeting, title, update, fireflies, mutation
473
580
  """
@@ -9,15 +9,15 @@ This is automatically generated from OpenAPI schema for the FplApp API.
9
9
 
10
10
  | Tool | Description |
11
11
  |------|-------------|
12
- | `get_player_information` | Get detailed information and statistics for a specific player |
13
- | `search_fpl_players` | Search for FPL players by name with optional filtering |
14
- | `get_gameweek_status` | Get precise information about current, previous, and next gameweeks. |
15
- | `analyze_players` | Filter and analyze FPL players based on multiple criteria |
16
- | `compare_players` | Compare multiple players across various metrics |
17
- | `analyze_player_fixtures` | Analyze upcoming fixtures for a player and provide a difficulty rating |
18
- | `analyze_fixtures` | Analyze upcoming fixtures for players, teams, or positions |
19
- | `get_blank_gameweeks` | Get information about upcoming blank gameweeks where teams don't have fixtures |
20
- | `get_double_gameweeks` | Get information about upcoming double gameweeks where teams have multiple fixtures |
21
- | `get_league_standings` | Get standings for a specified FPL league |
22
- | `get_league_analytics` | Get rich analytics for a Fantasy Premier League mini-league |
23
- | `team_info` | Get information about a team |
12
+ | `get_player_information` | 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`. |
13
+ | `find_players` | 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. |
14
+ | `get_gameweek_snapshot` | 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. |
15
+ | `screen_players` | 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. |
16
+ | `compare_players` | 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. |
17
+ | `analyze_player_fixtures` | 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. |
18
+ | `analyze_entity_fixtures` | 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`. |
19
+ | `get_blank_gameweeks` | 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`. |
20
+ | `get_double_gameweeks` | 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. |
21
+ | `get_league_standings` | 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. |
22
+ | `analyze_league` | 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. |
23
+ | `get_manager_team_info` | 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. |