universal-mcp-applications 0.1.12__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 +164 -118
  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.12.dist-info → universal_mcp_applications-0.1.14.dist-info}/METADATA +2 -2
  52. {universal_mcp_applications-0.1.12.dist-info → universal_mcp_applications-0.1.14.dist-info}/RECORD +54 -54
  53. {universal_mcp_applications-0.1.12.dist-info → universal_mcp_applications-0.1.14.dist-info}/WHEEL +0 -0
  54. {universal_mcp_applications-0.1.12.dist-info → universal_mcp_applications-0.1.14.dist-info}/licenses/LICENSE +0 -0
@@ -30,6 +30,9 @@ class ReplicateApp(APIApplication):
30
30
 
31
31
  @property
32
32
  def replicate_client(self) -> replicate.Client:
33
+ """
34
+ Lazily initializes and returns an authenticated `replicate.Client` instance. On first access, it fetches the API key from the configured integration and caches the client, ensuring a single instance is used for all subsequent API calls within the application. Raises `NotAuthorizedError` on credential failure.
35
+ """
33
36
  if self._replicate_client is None:
34
37
  credentials = self.integration.get_credentials()
35
38
  logger.info(
@@ -57,20 +60,19 @@ class ReplicateApp(APIApplication):
57
60
  use_file_output: bool | None = True,
58
61
  ) -> Any:
59
62
  """
60
- Run a Replicate model and wait for its output. This is a blocking call from the user's perspective.
61
- If the model output is an iterator, this tool will collect all items into a list.
62
-
63
+ Executes a Replicate model synchronously, blocking until it completes and returns the final output. This abstracts the polling logic required by asynchronous jobs. If a model streams results, this function conveniently collects all items into a list before returning, unlike the non-blocking `submit_prediction` method.
64
+
63
65
  Args:
64
66
  model_ref: The model identifier string (e.g., "owner/name" or "owner/name:version_id").
65
67
  inputs: A dictionary of inputs for the model.
66
68
  use_file_output: If True (default), file URLs in output are wrapped in FileOutput objects.
67
-
69
+
68
70
  Returns:
69
71
  The model's output. If the model streams output, a list of all streamed items is returned.
70
-
72
+
71
73
  Raises:
72
74
  ToolError: If the Replicate API request fails or the model encounters an error.
73
-
75
+
74
76
  Tags:
75
77
  run, execute, ai, synchronous, replicate, important
76
78
  """
@@ -128,20 +130,20 @@ class ReplicateApp(APIApplication):
128
130
  webhook_events_filter: list[str] | None = None,
129
131
  ) -> str:
130
132
  """
131
- Submits a prediction request to Replicate for asynchronous processing.
132
-
133
+ Submits a model execution request to Replicate for non-blocking, asynchronous processing. It immediately returns a prediction ID for tracking, unlike the synchronous `run` method which waits for the final result. The returned ID can be used with `get_prediction` or `fetch_prediction_output` to monitor the job.
134
+
133
135
  Args:
134
136
  model_ref: The model identifier string (e.g., "owner/name" or "owner/name:version_id").
135
137
  inputs: A dictionary of inputs for the model.
136
138
  webhook: URL to receive a POST request with prediction updates.
137
139
  webhook_events_filter: List of events to trigger webhooks (e.g., ["start", "output", "logs", "completed"]).
138
-
140
+
139
141
  Returns:
140
142
  The ID (str) of the created prediction.
141
-
143
+
142
144
  Raises:
143
145
  ToolError: If the Replicate API request fails.
144
-
146
+
145
147
  Tags:
146
148
  submit, async_job, start, ai, queue, replicate
147
149
  """
@@ -184,17 +186,17 @@ class ReplicateApp(APIApplication):
184
186
 
185
187
  async def get_prediction(self, prediction_id: str) -> Prediction:
186
188
  """
187
- Retrieves the current state and details of a Replicate prediction.
188
-
189
+ Retrieves the full details and current state of a Replicate prediction by its ID. This function performs a non-blocking status check, returning the prediction object immediately. Unlike `fetch_prediction_output`, it does not wait for the job to complete and is used for monitoring progress.
190
+
189
191
  Args:
190
192
  prediction_id: The unique ID of the prediction.
191
-
193
+
192
194
  Returns:
193
195
  A Replicate Prediction object containing status, logs, output (if ready), etc.
194
-
196
+
195
197
  Raises:
196
198
  ToolError: If the Replicate API request fails.
197
-
199
+
198
200
  Tags:
199
201
  status, check, async_job, monitoring, ai, replicate
200
202
  """
@@ -222,21 +224,19 @@ class ReplicateApp(APIApplication):
222
224
  f"An unexpected error occurred while getting status for prediction {prediction_id}: {e}"
223
225
  ) from e
224
226
 
225
- async def fetch_prediction_output(self, prediction_id: str) -> Any:
227
+ async def await_prediction_result(self, prediction_id: str) -> Any:
226
228
  """
227
- Retrieves the output of a completed Replicate prediction.
228
- If the prediction is not yet complete, this method will wait for it to finish.
229
- If the model output is an iterator, this tool will collect all items into a list.
230
-
229
+ Retrieves the final output for a given prediction ID, waiting for the job to complete if it is still running. This function complements `submit_prediction` by blocking until the asynchronous task finishes, raising an error if the prediction fails or is canceled.
230
+
231
231
  Args:
232
232
  prediction_id: The unique ID of the prediction.
233
-
233
+
234
234
  Returns:
235
235
  The output of the prediction. If the model streams output, a list of all streamed items is returned.
236
-
236
+
237
237
  Raises:
238
238
  ToolError: If the prediction fails, is canceled, or an API error occurs.
239
-
239
+
240
240
  Tags:
241
241
  result, fetch_output, async_job, wait, ai, replicate
242
242
  """
@@ -305,17 +305,17 @@ class ReplicateApp(APIApplication):
305
305
 
306
306
  async def cancel_prediction(self, prediction_id: str) -> None:
307
307
  """
308
- Cancels a running or queued Replicate prediction.
309
-
308
+ Sends a request to cancel a running or queued Replicate prediction. It first checks the prediction's status, only proceeding if it is not already in a terminal state (e.g., succeeded, failed), and gracefully handles jobs that cannot be canceled.
309
+
310
310
  Args:
311
311
  prediction_id: The unique ID of the prediction to cancel.
312
-
312
+
313
313
  Returns:
314
314
  None.
315
-
315
+
316
316
  Raises:
317
317
  ToolError: If the cancellation request fails.
318
-
318
+
319
319
  Tags:
320
320
  cancel, async_job, ai, replicate, management
321
321
  """
@@ -353,18 +353,17 @@ class ReplicateApp(APIApplication):
353
353
 
354
354
  async def upload_file(self, file_path: str) -> str:
355
355
  """
356
- Uploads a local file to Replicate and returns its public URL.
357
- Replicate uses these URLs for file inputs in models.
358
-
356
+ Uploads a local file from a given path to Replicate's storage, returning a public URL. This URL is essential for providing file-based inputs to Replicate models via functions like `run` or `submit_prediction`. Fails if the file is not found or the upload encounters an error.
357
+
359
358
  Args:
360
359
  file_path: The absolute or relative path to the local file.
361
-
360
+
362
361
  Returns:
363
362
  A string containing the public URL of the uploaded file (e.g., "https://replicate.delivery/pbxt/...").
364
-
363
+
365
364
  Raises:
366
365
  ToolError: If the file is not found or if the upload operation fails.
367
-
366
+
368
367
  Tags:
369
368
  upload, file, storage, replicate, important
370
369
  """
@@ -417,9 +416,8 @@ class ReplicateApp(APIApplication):
417
416
  extra_arguments: dict[str, Any] | None = None,
418
417
  ) -> Any:
419
418
  """
420
- Generates images using a specified Replicate model (defaults to SDXL).
421
- This is a convenience wrapper around the `run` tool.
422
-
419
+ Generates images synchronously using a specified model, defaulting to SDXL. As a convenience wrapper around the generic `run` function, it simplifies image creation by exposing common parameters like `prompt` and `width`, and waits for the model to complete before returning the resulting image URLs.
420
+
423
421
  Args:
424
422
  prompt: The text prompt for image generation.
425
423
  model_ref: The Replicate model identifier string.
@@ -430,13 +428,13 @@ class ReplicateApp(APIApplication):
430
428
  num_outputs: Number of images to generate.
431
429
  seed: Optional random seed for reproducibility.
432
430
  extra_arguments: Dictionary of additional arguments specific to the model.
433
-
431
+
434
432
  Returns:
435
433
  The output from the image generation model, typically a list of image URLs.
436
-
434
+
437
435
  Raises:
438
436
  ToolError: If the image generation fails.
439
-
437
+
440
438
  Tags:
441
439
  generate, image, ai, replicate, sdxl, important, default
442
440
  """
@@ -488,7 +486,7 @@ class ReplicateApp(APIApplication):
488
486
  self.run,
489
487
  self.submit_prediction,
490
488
  self.get_prediction,
491
- self.fetch_prediction_output,
489
+ self.await_prediction_result,
492
490
  self.cancel_prediction,
493
491
  self.upload_file,
494
492
  self.generate_image,