universal-mcp-applications 0.1.17__py3-none-any.whl → 0.1.19__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 (88) hide show
  1. universal_mcp/applications/ahrefs/README.md +3 -3
  2. universal_mcp/applications/airtable/README.md +3 -3
  3. universal_mcp/applications/asana/README.md +3 -3
  4. universal_mcp/applications/aws_s3/README.md +29 -0
  5. universal_mcp/applications/bill/README.md +249 -0
  6. universal_mcp/applications/calendly/README.md +45 -45
  7. universal_mcp/applications/canva/README.md +35 -35
  8. universal_mcp/applications/clickup/README.md +4 -4
  9. universal_mcp/applications/contentful/README.md +1 -2
  10. universal_mcp/applications/crustdata/README.md +3 -3
  11. universal_mcp/applications/domain_checker/README.md +2 -2
  12. universal_mcp/applications/e2b/README.md +4 -4
  13. universal_mcp/applications/elevenlabs/README.md +3 -77
  14. universal_mcp/applications/exa/README.md +7 -7
  15. universal_mcp/applications/falai/README.md +13 -12
  16. universal_mcp/applications/falai/app.py +6 -6
  17. universal_mcp/applications/figma/README.md +3 -3
  18. universal_mcp/applications/file_system/README.md +13 -0
  19. universal_mcp/applications/firecrawl/README.md +9 -9
  20. universal_mcp/applications/firecrawl/app.py +10 -10
  21. universal_mcp/applications/fireflies/README.md +14 -14
  22. universal_mcp/applications/fpl/README.md +12 -12
  23. universal_mcp/applications/fpl/app.py +5 -5
  24. universal_mcp/applications/github/README.md +10 -10
  25. universal_mcp/applications/github/app.py +9 -9
  26. universal_mcp/applications/google_calendar/README.md +10 -10
  27. universal_mcp/applications/google_calendar/app.py +10 -10
  28. universal_mcp/applications/google_docs/README.md +14 -14
  29. universal_mcp/applications/google_docs/app.py +12 -12
  30. universal_mcp/applications/google_drive/README.md +54 -57
  31. universal_mcp/applications/google_drive/app.py +38 -38
  32. universal_mcp/applications/google_gemini/README.md +3 -14
  33. universal_mcp/applications/google_gemini/app.py +13 -12
  34. universal_mcp/applications/google_mail/README.md +20 -20
  35. universal_mcp/applications/google_mail/app.py +19 -19
  36. universal_mcp/applications/google_searchconsole/README.md +10 -10
  37. universal_mcp/applications/google_searchconsole/app.py +8 -8
  38. universal_mcp/applications/google_sheet/README.md +25 -25
  39. universal_mcp/applications/google_sheet/app.py +20 -20
  40. universal_mcp/applications/http_tools/README.md +5 -5
  41. universal_mcp/applications/hubspot/__init__.py +1 -1
  42. universal_mcp/applications/hubspot/api_segments/__init__.py +0 -0
  43. universal_mcp/applications/hubspot/api_segments/api_segment_base.py +25 -0
  44. universal_mcp/applications/hubspot/api_segments/crm_api.py +7337 -0
  45. universal_mcp/applications/hubspot/api_segments/marketing_api.py +1467 -0
  46. universal_mcp/applications/hubspot/app.py +74 -146
  47. universal_mcp/applications/klaviyo/README.md +0 -36
  48. universal_mcp/applications/linkedin/README.md +4 -4
  49. universal_mcp/applications/linkedin/app.py +4 -4
  50. universal_mcp/applications/mailchimp/README.md +3 -3
  51. universal_mcp/applications/ms_teams/README.md +31 -31
  52. universal_mcp/applications/ms_teams/app.py +28 -28
  53. universal_mcp/applications/neon/README.md +3 -3
  54. universal_mcp/applications/openai/README.md +18 -17
  55. universal_mcp/applications/outlook/README.md +9 -9
  56. universal_mcp/applications/outlook/app.py +9 -9
  57. universal_mcp/applications/perplexity/README.md +4 -4
  58. universal_mcp/applications/posthog/README.md +128 -127
  59. universal_mcp/applications/reddit/README.md +21 -124
  60. universal_mcp/applications/reddit/app.py +90 -89
  61. universal_mcp/applications/replicate/README.md +10 -10
  62. universal_mcp/applications/resend/README.md +29 -29
  63. universal_mcp/applications/scraper/README.md +4 -4
  64. universal_mcp/applications/scraper/app.py +31 -31
  65. universal_mcp/applications/semrush/README.md +3 -0
  66. universal_mcp/applications/serpapi/README.md +3 -3
  67. universal_mcp/applications/sharepoint/README.md +17 -0
  68. universal_mcp/applications/sharepoint/app.py +7 -7
  69. universal_mcp/applications/shortcut/README.md +3 -3
  70. universal_mcp/applications/slack/README.md +23 -0
  71. universal_mcp/applications/spotify/README.md +3 -3
  72. universal_mcp/applications/supabase/README.md +3 -3
  73. universal_mcp/applications/tavily/README.md +4 -4
  74. universal_mcp/applications/twilio/README.md +15 -0
  75. universal_mcp/applications/twitter/README.md +92 -89
  76. universal_mcp/applications/twitter/app.py +11 -11
  77. universal_mcp/applications/unipile/README.md +17 -17
  78. universal_mcp/applications/unipile/app.py +14 -14
  79. universal_mcp/applications/whatsapp/README.md +12 -12
  80. universal_mcp/applications/whatsapp/app.py +13 -13
  81. universal_mcp/applications/whatsapp_business/README.md +23 -23
  82. universal_mcp/applications/youtube/README.md +46 -46
  83. universal_mcp/applications/youtube/app.py +7 -1
  84. universal_mcp/applications/zenquotes/README.md +1 -1
  85. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.19.dist-info}/METADATA +2 -89
  86. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.19.dist-info}/RECORD +88 -83
  87. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.19.dist-info}/WHEEL +0 -0
  88. {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.19.dist-info}/licenses/LICENSE +0 -0
@@ -21,7 +21,7 @@ class GoogleDriveApp(APIApplication):
21
21
  self, file_id: str, add_parents: str, remove_parents: str
22
22
  ) -> dict[str, Any]:
23
23
  """
24
- Moves a specified file to a new folder in Google Drive by updating its parent references. It adds the file to a destination folder and removes it from the source, returning the updated file metadata.
24
+ Moves a file to a new folder by updating its parent references. This function adds the file to a destination folder (`add_parents`) and removes it from the source (`remove_parents`), offering a focused alternative to the more comprehensive `update_file_metadata` function.
25
25
 
26
26
  Args:
27
27
  file_id: The ID of the file to move
@@ -48,7 +48,7 @@ class GoogleDriveApp(APIApplication):
48
48
 
49
49
  def get_drive_info(self) -> dict[str, Any]:
50
50
  """
51
- Fetches key user and storage quota information for the authenticated Google Drive account. This streamlined function provides a focused alternative to `information_about_user_and_drive`, which queries the same endpoint but exposes all available API parameters.
51
+ Fetches key user and storage quota information for the authenticated Google Drive account. This streamlined function offers a focused alternative to `get_about_info`, which queries the same endpoint but exposes all available API parameters, providing a simpler way to get essential account details.
52
52
 
53
53
  Returns:
54
54
  A dictionary containing Drive information including storage quota (usage, limit) and user details (name, email, etc.).
@@ -70,7 +70,7 @@ class GoogleDriveApp(APIApplication):
70
70
  self, page_size: int = 10, query: str | None = None, order_by: str | None = None
71
71
  ) -> dict[str, Any]:
72
72
  """
73
- Searches for files in Google Drive, allowing for powerful filtering, sorting, and pagination. This curated function offers a more user-friendly alternative to the comprehensive `list_user_sfiles` method, making it ideal for targeted queries like finding files by name or type.
73
+ Searches for files in Google Drive, allowing for powerful filtering, sorting, and pagination. This streamlined function offers a more user-friendly alternative to the comprehensive `search_files_advanced` method, making it ideal for targeted queries like finding files by name, type, or parent folder.
74
74
 
75
75
  Args:
76
76
  page_size: Maximum number of files to return per page (default: 10)
@@ -101,7 +101,7 @@ class GoogleDriveApp(APIApplication):
101
101
 
102
102
  def get_file_details(self, file_id: str) -> dict[str, Any]:
103
103
  """
104
- Retrieves all default metadata for a specific file from Google Drive using its ID. This is a simplified alternative to `get_file_metadata`, fetching complete file attributes without optional query parameters for customizing the response.
104
+ Fetches all default metadata for a specific file by its unique ID. This function provides a simple, direct retrieval of a single file's complete attributes, differing from `search_files` which performs broad queries for multiple files based on various criteria.
105
105
 
106
106
  Args:
107
107
  file_id: String identifier of the file whose metadata should be retrieved
@@ -122,7 +122,7 @@ class GoogleDriveApp(APIApplication):
122
122
 
123
123
  def trash_file(self, file_id: str) -> dict[str, Any]:
124
124
  """
125
- Moves a specified file to the trash using its ID. It provides simplified error handling by catching exceptions and returning a dictionary with a success or error message, unlike `delete_file_by_id` which raises exceptions on failure.
125
+ Moves a specified file to the trash using its ID. It provides simplified error handling by returning a dictionary with a success or error message, unlike the `permanently_delete_file` function which raises an exception on failure.
126
126
 
127
127
  Args:
128
128
  file_id: The unique identifier string of the file to be deleted from Google Drive
@@ -151,7 +151,7 @@ class GoogleDriveApp(APIApplication):
151
151
  mime_type: str = "text/plain",
152
152
  ) -> dict[str, Any]:
153
153
  """
154
- Creates a new file in Google Drive from a given text string. The function first creates the file's metadata (name, parent folder), then uploads the provided string as its content, returning the new file's full metadata upon completion.
154
+ Creates a file in Google Drive using an in-memory text string. Unlike `upload_file_from_path`, which reads from a local file, this function first creates the file's metadata (name, parent) and then uploads the provided string content, returning the new file's complete metadata upon completion.
155
155
 
156
156
  Args:
157
157
  file_name: Name of the file to create on Google Drive
@@ -188,7 +188,7 @@ class GoogleDriveApp(APIApplication):
188
188
 
189
189
  def find_folder_id_by_name(self, folder_name: str) -> str | None:
190
190
  """
191
- Searches for a non-trashed folder by its exact name and returns the ID of the first match. This utility, used by `create_folder` to resolve parent names, logs errors and returns None if the folder is not found or the API request fails.
191
+ Searches for a non-trashed folder by its exact name, returning the ID of the first match. As a utility for `create_folder`, it resolves parent names to IDs and returns None if the folder isn't found or an API error occurs, logging the failure internally.
192
192
 
193
193
  Args:
194
194
  folder_name: The name of the folder to search for in Google Drive
@@ -216,7 +216,7 @@ class GoogleDriveApp(APIApplication):
216
216
 
217
217
  def create_folder(self, folder_name: str, parent_id: str = None) -> dict[str, Any]:
218
218
  """
219
- Creates a new folder in Google Drive, optionally within a parent folder specified by its name or ID. If a name is provided for the parent, the function automatically resolves it to an ID. Returns the metadata for the newly created folder.
219
+ Creates a new folder in Google Drive, optionally within a parent specified by name or ID. If a parent name is given, it internally resolves it to an ID using the `find_folder_id_by_name` function. Returns the metadata for the newly created folder upon successful creation.
220
220
 
221
221
  Args:
222
222
  folder_name: Name of the folder to create
@@ -261,7 +261,7 @@ class GoogleDriveApp(APIApplication):
261
261
  mime_type: str = None,
262
262
  ) -> dict[str, Any]:
263
263
  """
264
- Uploads a local file to Google Drive by reading its binary content from a path. It first creates the file's metadata entry, then uploads the content, returning the new file's metadata. This differs from `create_file_from_text` which uses in-memory string content instead of a local file.
264
+ Uploads a local file to Google Drive by reading its binary content from a path. It creates the file's metadata, uploads the content, and returns the new file's metadata. This differs from `create_text_file` which uses in-memory string content instead of a local file path.
265
265
 
266
266
  Args:
267
267
  file_name: Name to give the file on Google Drive
@@ -397,7 +397,7 @@ class GoogleDriveApp(APIApplication):
397
397
  xgafv: str | None = None,
398
398
  ) -> dict[str, Any]:
399
399
  """
400
- Retrieves detailed information for a single installed Google Drive application using its unique ID. This function fetches one app, unlike `list_user_sinstalled_apps` which returns a complete list, allowing for targeted data retrieval about a specific application.
400
+ Retrieves detailed information for a single installed Google Drive application using its unique ID. This provides a targeted alternative to `list_installed_apps`, which returns a complete list, allowing for focused data retrieval about a specific application.
401
401
 
402
402
  Args:
403
403
  appId (string): appId
@@ -467,7 +467,7 @@ class GoogleDriveApp(APIApplication):
467
467
  userIp: str | None = None,
468
468
  ) -> dict[str, Any]:
469
469
  """
470
- Retrieves information about the user's account and Google Drive settings from the API's `/about` endpoint. This generic function provides full parameter control, offering a more flexible alternative to the `get_drive_info` method, which requests specific predefined fields like storage quota and user details.
470
+ Retrieves user account and Drive settings from the `/about` endpoint. This generic function provides full parameter control, offering a flexible alternative to the `get_drive_info` method, which requests specific, predefined fields like storage quota and user details.
471
471
 
472
472
  Args:
473
473
  alt (string): Data format for the response. Example: 'json'.
@@ -945,7 +945,7 @@ class GoogleDriveApp(APIApplication):
945
945
  userIp: str | None = None,
946
946
  ) -> dict[str, Any]:
947
947
  """
948
- Retrieves a list of comments for a specified file in Google Drive. Supports pagination and filtering options, such as including deleted comments or specifying a start time for modifications, to customize the results.
948
+ Retrieves a paginated list of all top-level comments for a specified Google Drive file. It supports filtering by modification time and including deleted comments, fetching parent comments rather than replies, unlike `list_comment_replies`.
949
949
 
950
950
  Args:
951
951
  fileId (string): fileId
@@ -1028,7 +1028,7 @@ class GoogleDriveApp(APIApplication):
1028
1028
  resolved: str | None = None,
1029
1029
  ) -> dict[str, Any]:
1030
1030
  """
1031
- Creates a new comment on a specified Google Drive file. It requires a file ID and the comment's content, returning the new comment's metadata. This adds top-level comments, distinct from `create_areply_to_acomment` which replies to existing comments.
1031
+ Creates a new comment on a specified Google Drive file. It requires a file ID and the comment's content, returning the new comment's metadata. This adds top-level comments, distinct from `create_comment_reply` which replies to existing comments.
1032
1032
 
1033
1033
  Args:
1034
1034
  fileId (string): fileId
@@ -1128,7 +1128,7 @@ class GoogleDriveApp(APIApplication):
1128
1128
  userIp: str | None = None,
1129
1129
  ) -> dict[str, Any]:
1130
1130
  """
1131
- Retrieves the metadata for a specific comment on a file, identified by both the file ID and the comment ID. This function can optionally include deleted comments in the result, returning the comment's details.
1131
+ Retrieves a single comment's metadata using its unique comment and file IDs. This provides targeted access to one comment, unlike `list_file_comments` which lists all comments for a file. It can optionally include deleted comments in the returned data.
1132
1132
 
1133
1133
  Args:
1134
1134
  fileId (string): fileId
@@ -1197,7 +1197,7 @@ class GoogleDriveApp(APIApplication):
1197
1197
  userIp: str | None = None,
1198
1198
  ) -> Any:
1199
1199
  """
1200
- Permanently deletes a specific comment from a Google Drive file, identified by both the file ID and the comment ID. This action is irreversible and removes the comment from the associated file's history, distinct from deleting a reply.
1200
+ Permanently deletes a specific comment from a Google Drive file, identified by both the file and comment IDs. This irreversible action removes the top-level comment and its replies, distinguishing it from the `delete_reply` function which targets only individual replies within a comment thread.
1201
1201
 
1202
1202
  Args:
1203
1203
  fileId (string): fileId
@@ -1375,7 +1375,7 @@ class GoogleDriveApp(APIApplication):
1375
1375
  userIp: str | None = None,
1376
1376
  ) -> dict[str, Any]:
1377
1377
  """
1378
- Retrieves a paginated list of shared drives accessible to the user. Supports optional query-based filtering and can be executed with domain administrator privileges to list all shared drives within the domain. Returns a dictionary containing the list of drives and pagination details.
1378
+ Retrieves a paginated list of shared drives accessible to the user. Supports optional query-based filtering and can be executed with domain administrator privileges to list all shared drives within the domain, returning a dictionary containing the list of drives and pagination details.
1379
1379
 
1380
1380
  Args:
1381
1381
  pageSize (string): Maximum number of shared drives to return per page. Example: '<integer>'.
@@ -1553,7 +1553,7 @@ class GoogleDriveApp(APIApplication):
1553
1553
  userIp: str | None = None,
1554
1554
  ) -> dict[str, Any]:
1555
1555
  """
1556
- Retrieves metadata for a specific shared drive using its ID. Supports domain administrator access and allows specifying fields for partial responses. Unlike `get_drive_info` which gets user account data, this function targets the properties of a single shared drive.
1556
+ Retrieves metadata for a specific shared drive using its ID. Unlike `get_drive_info`, which gets user account data, this function targets a single drive's properties. It supports domain administrator access and allows specifying fields to customize the response, returning the drive's detailed information.
1557
1557
 
1558
1558
  Args:
1559
1559
  driveId (string): driveId
@@ -1620,7 +1620,7 @@ class GoogleDriveApp(APIApplication):
1620
1620
  userIp: str | None = None,
1621
1621
  ) -> Any:
1622
1622
  """
1623
- Permanently deletes a shared drive using its unique ID. This action is irreversible. An option is available for domain administrators to simultaneously delete all items contained within the specified drive, making it distinct from file deletion functions like `delete_file`.
1623
+ Permanently deletes a shared drive by its ID. This irreversible action removes the entire drive and, unlike `trash_file`, can optionally delete all its contents for domain administrators, providing a complete removal solution for a shared workspace.
1624
1624
 
1625
1625
  Args:
1626
1626
  driveId (string): driveId
@@ -1700,7 +1700,7 @@ class GoogleDriveApp(APIApplication):
1700
1700
  themeId: str | None = None,
1701
1701
  ) -> dict[str, Any]:
1702
1702
  """
1703
- Updates metadata properties for a specific shared drive using its ID. Modifiable attributes include name, theme, background, and color. This function sends a PATCH request to the Google Drive API and returns a dictionary containing the updated shared drive's full metadata.
1703
+ Updates a shared drive's metadata properties, such as its name, theme, or color, using its ID. This function sends a PATCH request to modify the drive and returns a dictionary containing the complete, updated metadata for the shared drive upon success.
1704
1704
 
1705
1705
  Args:
1706
1706
  driveId (string): driveId
@@ -1864,7 +1864,7 @@ class GoogleDriveApp(APIApplication):
1864
1864
  userIp: str | None = None,
1865
1865
  ) -> dict[str, Any]:
1866
1866
  """
1867
- Makes a hidden shared drive visible again in the user's default view by its ID. This function sends a POST request to the Google Drive API's `/unhide` endpoint, effectively reversing the action of the `hide_drive_by_id_post` function.
1867
+ Makes a hidden shared drive visible again in the user's default view by its ID. This function sends a POST request to the Google Drive API's `/unhide` endpoint, effectively reversing the action of the `hide_drive` function, and returns the updated drive metadata.
1868
1868
 
1869
1869
  Args:
1870
1870
  driveId (string): driveId
@@ -1946,7 +1946,7 @@ class GoogleDriveApp(APIApplication):
1946
1946
  userIp: str | None = None,
1947
1947
  ) -> dict[str, Any]:
1948
1948
  """
1949
- Exhaustively lists or searches for files, exposing numerous API parameters for advanced filtering, sorting, and pagination. This low-level function offers more granular control than the simplified `list_files` method by directly mapping to the Google Drive API's full capabilities for file retrieval.
1949
+ Exhaustively lists or searches files using advanced parameters for filtering, sorting, and pagination. As a low-level alternative to the simplified `search_files` function, it provides granular control by exposing the full range of Google Drive API query options for complex retrieval.
1950
1950
 
1951
1951
  Args:
1952
1952
  corpora (string): Groupings of files to which the query applies. Supported groupings are: 'user' (files created by, opened by, or shared directly with the user), 'drive' (files in the specified shared drive as indicated by the 'driveId'), 'domain' (files shared to the user's domain), and 'allDrives' (A combination of 'user' and 'drive' for all drives where the user is a member). When able, use 'user' or 'drive', instead of 'allDrives', for efficiency. Example: '<string>'.
@@ -2104,7 +2104,7 @@ class GoogleDriveApp(APIApplication):
2104
2104
  writersCanShare: str | None = None,
2105
2105
  ) -> dict[str, Any]:
2106
2106
  """
2107
- Creates a new file's metadata resource in Google Drive, allowing for detailed configuration of properties like name, MIME type, and parent folders. Unlike `upload_a_file` or `create_file_from_text`, this function only creates the metadata entry without uploading any actual file content.
2107
+ Creates a new file's metadata resource in Google Drive, allowing detailed configuration of properties like name, MIME type, and parent folders. Unlike `upload_file_from_path` or `create_text_file`, this function only creates the metadata entry without uploading any file content.
2108
2108
 
2109
2109
  Args:
2110
2110
  enforceSingleParent (string): Deprecated. Creating files in multiple folders is no longer supported. Example: '<boolean>'.
@@ -2319,7 +2319,7 @@ class GoogleDriveApp(APIApplication):
2319
2319
  userIp: str | None = None,
2320
2320
  ) -> dict[str, Any]:
2321
2321
  """
2322
- Pre-generates a specified number of unique IDs for future files or shortcuts from the Google Drive API. Allows specifying the quantity, storage space ('drive' or 'appDataFolder'), and item type, optimizing creation workflows by providing identifiers in advance.
2322
+ Generates a batch of unique IDs for future Google Drive files or shortcuts. This utility optimizes creation workflows by allowing identifiers to be fetched in advance, specifying quantity, storage space (e.g., 'drive'), and item type (e.g., 'files').
2323
2323
 
2324
2324
  Args:
2325
2325
  count (string): The number of IDs to return. Example: '<integer>'.
@@ -2386,7 +2386,7 @@ class GoogleDriveApp(APIApplication):
2386
2386
  userIp: str | None = None,
2387
2387
  ) -> Any:
2388
2388
  """
2389
- Permanently deletes all files and folders from the trash. It can target the user's main trash or a specific shared drive's trash if a `driveId` is provided. This action is irreversible, differing from `delete_file` which only moves items to the trash.
2389
+ Permanently deletes all files and folders from the trash. This irreversible action can target the user's main trash or a specific shared drive's trash via its `driveId`, distinguishing it from `trash_file` which only moves a single item to the trash.
2390
2390
 
2391
2391
  Args:
2392
2392
  driveId (string): If set, empties the trash of the provided shared drive. Example: '{{driveId}}'.
@@ -2453,7 +2453,7 @@ class GoogleDriveApp(APIApplication):
2453
2453
  userIp: str | None = None,
2454
2454
  ) -> Any:
2455
2455
  """
2456
- Permanently deletes a specific file by its ID, bypassing the trash. Unlike the simpler `delete_file` wrapper, this function exposes numerous optional API parameters for advanced control over the deletion process, such as handling files in shared drives.
2456
+ Permanently deletes a file by its ID, bypassing the trash for irreversible removal. Unlike the simpler `trash_file` function, this method offers advanced control through numerous optional API parameters, such as handling files located in shared drives.
2457
2457
 
2458
2458
  Args:
2459
2459
  fileId (string): fileId
@@ -2594,7 +2594,7 @@ class GoogleDriveApp(APIApplication):
2594
2594
  writersCanShare: str | None = None,
2595
2595
  ) -> dict[str, Any]:
2596
2596
  """
2597
- Modifies a file's metadata properties, such as name, description, or trashed status, using its unique ID. It supports a wide range of updatable fields and can also move files between folders by changing parent attributes, acting as a comprehensive alternative to the `move_files` function.
2597
+ Modifies a file's metadata properties, such as name, description, or trashed status, using its unique ID. It also moves files by changing parent attributes, acting as a comprehensive alternative to the more specialized `move_file` function.
2598
2598
 
2599
2599
  Args:
2600
2600
  fileId (string): fileId
@@ -3092,7 +3092,7 @@ class GoogleDriveApp(APIApplication):
3092
3092
  userIp: str | None = None,
3093
3093
  ) -> Any:
3094
3094
  """
3095
- Exports a Google Workspace document (e.g., Google Doc) by its ID, converting it into a specified format like PDF or XLSX. The target format is determined by the `mimeType` argument. The function returns the raw content of the exported file, not JSON metadata.
3095
+ Exports a Google Workspace document (e.g., Google Doc) by its ID, converting it to a specified format like PDF using the `mimeType` argument. This function returns the raw, converted file content for download, differentiating it from methods that retrieve metadata.
3096
3096
 
3097
3097
  Args:
3098
3098
  fileId (string): fileId
@@ -3159,7 +3159,7 @@ class GoogleDriveApp(APIApplication):
3159
3159
  userIp: str | None = None,
3160
3160
  ) -> dict[str, Any]:
3161
3161
  """
3162
- Retrieves a paginated list of all labels applied to a specific file in Google Drive, identified by its unique ID. It allows controlling the number of results per page and navigating through pages of labels.
3162
+ Retrieves a paginated list of all labels applied to a specific file in Google Drive, identified by its unique ID. It allows controlling the number of results per page and navigating through pages of labels, differing from `modify_file_labels` which alters them.
3163
3163
 
3164
3164
  Args:
3165
3165
  fileId (string): fileId
@@ -3321,7 +3321,7 @@ class GoogleDriveApp(APIApplication):
3321
3321
  type: str | None = None,
3322
3322
  ) -> dict[str, Any]:
3323
3323
  """
3324
- Establishes a push notification channel to monitor a specific file in Google Drive. This function configures a webhook by sending a POST request to the file's 'watch' endpoint, enabling real-time notifications for any changes, such as content or metadata updates, to the specified file.
3324
+ Establishes a push notification channel for a specific file, enabling real-time updates via webhook. Unlike `watch_drive_changes`, which monitors an entire drive, this function provides targeted notifications for content or metadata updates to a single file identified by its ID.
3325
3325
 
3326
3326
  Args:
3327
3327
  fileId (string): fileId
@@ -3431,7 +3431,7 @@ class GoogleDriveApp(APIApplication):
3431
3431
  userIp: str | None = None,
3432
3432
  ) -> dict[str, Any]:
3433
3433
  """
3434
- Retrieves the list of permissions for a specified file or shared drive in Google Drive. This function supports pagination and various query parameters to customize the results for different access levels, such as domain administration.
3434
+ Retrieves the list of permissions for a specified file or shared drive. This function supports pagination and various query parameters to customize results for different access levels, such as domain administration, unlike `get_permission_by_id` which fetches a single permission.
3435
3435
 
3436
3436
  Args:
3437
3437
  fileId (string): fileId
@@ -3529,7 +3529,7 @@ class GoogleDriveApp(APIApplication):
3529
3529
  view: str | None = None,
3530
3530
  ) -> dict[str, Any]:
3531
3531
  """
3532
- Creates a new permission for a file or shared drive, assigning roles like 'reader' to a user, group, or domain. This comprehensive method supports options like notification emails and ownership transfer, distinguishing it from the simplified `grant_google_drive_access` function.
3532
+ Creates a permission for a file or shared drive, assigning roles like 'reader' to a user, group, or domain. This comprehensive method supports advanced options like notification emails and ownership transfer, distinguishing it from the simplified `create_permission` function which offers fewer parameters.
3533
3533
 
3534
3534
  Args:
3535
3535
  fileId (string): fileId
@@ -3653,7 +3653,7 @@ class GoogleDriveApp(APIApplication):
3653
3653
  userIp: str | None = None,
3654
3654
  ) -> dict[str, Any]:
3655
3655
  """
3656
- Retrieves the metadata for a specific permission on a file or shared drive, identified by its unique permission ID. This provides targeted access information, unlike `list_file_permissions`, which fetches all permissions for a file or drive.
3656
+ Retrieves metadata for a specific permission on a file or shared drive, identified by its unique ID. This provides targeted access information, unlike `list_file_permissions` which fetches all permissions for a file.
3657
3657
 
3658
3658
  Args:
3659
3659
  fileId (string): fileId
@@ -3938,7 +3938,7 @@ class GoogleDriveApp(APIApplication):
3938
3938
  userIp: str | None = None,
3939
3939
  ) -> dict[str, Any]:
3940
3940
  """
3941
- Retrieves a paginated list of replies for a specific comment on a Google Drive file, requiring both file and comment IDs. It can optionally include deleted replies. This function targets replies to a single comment, distinguishing it from functions listing all top-level comments on a file.
3941
+ Fetches a paginated list of replies for a specific comment, requiring both file and comment IDs. It can optionally include deleted replies. Unlike `list_file_comments`, which retrieves all top-level comments, this function targets replies within a single comment's thread.
3942
3942
 
3943
3943
  Args:
3944
3944
  fileId (string): fileId
@@ -4118,7 +4118,7 @@ class GoogleDriveApp(APIApplication):
4118
4118
  userIp: str | None = None,
4119
4119
  ) -> dict[str, Any]:
4120
4120
  """
4121
- Retrieves a specific reply to a comment on a file, identified by the file, comment, and reply IDs. Unlike `list_acomment_sreplies`, this fetches a single reply's data. It can optionally include deleted replies in the response, returning a dictionary with the reply's metadata.
4121
+ Retrieves a specific reply's metadata from a comment thread using file, comment, and reply IDs. Unlike `list_comment_replies`, which fetches all replies for a comment, this function targets a single one and can optionally include deleted replies in the result.
4122
4122
 
4123
4123
  Args:
4124
4124
  fileId (string): fileId
@@ -4191,7 +4191,7 @@ class GoogleDriveApp(APIApplication):
4191
4191
  userIp: str | None = None,
4192
4192
  ) -> Any:
4193
4193
  """
4194
- Permanently deletes a specific reply associated with a comment on a Google Drive file. This operation requires the file ID, parent comment ID, and the specific reply ID to make a targeted DELETE request to the Google Drive API.
4194
+ Permanently deletes a specific reply from a comment on a Google Drive file. This targeted operation requires file, comment, and reply IDs to remove a single nested reply, distinguishing it from `delete_comment` which removes an entire top-level comment.
4195
4195
 
4196
4196
  Args:
4197
4197
  fileId (string): fileId
@@ -4435,7 +4435,7 @@ class GoogleDriveApp(APIApplication):
4435
4435
  userIp: str | None = None,
4436
4436
  ) -> dict[str, Any]:
4437
4437
  """
4438
- Retrieves the metadata for a single, specific revision of a file using its file ID and revision ID. This function is distinct from `list_afile_srevisions`, which returns a list of all revisions for a file, by targeting one historical version.
4438
+ Fetches metadata for a single, specific file revision using its file and revision IDs. Unlike `list_file_revisions` which lists a file's complete version history, this function targets one historical version to retrieve its unique metadata.
4439
4439
 
4440
4440
  Args:
4441
4441
  fileId (string): fileId
@@ -4504,7 +4504,7 @@ class GoogleDriveApp(APIApplication):
4504
4504
  userIp: str | None = None,
4505
4505
  ) -> Any:
4506
4506
  """
4507
- Permanently deletes a specific revision of a file, identified by its file and revision IDs. This action is irreversible and removes a single historical version, which is distinct from other functions in this class that delete the entire file or move it to the trash.
4507
+ Permanently deletes a specific revision of a file, identified by its file and revision IDs. This irreversible action removes a single historical version, distinguishing it from functions like `permanently_delete_file`, which deletes the entire file, or `trash_file`, which moves it to the trash.
4508
4508
 
4509
4509
  Args:
4510
4510
  fileId (string): fileId
@@ -4683,7 +4683,7 @@ class GoogleDriveApp(APIApplication):
4683
4683
  type: str | None = None,
4684
4684
  ) -> dict[str, Any]:
4685
4685
  """
4686
- Creates a new permission for a file, granting a specified role (e.g., 'reader') to a user, group, or domain. This is a simplified alternative to the more comprehensive `post_file_permission` function, focusing on core sharing functionality.
4686
+ Grants a specified role (e.g., 'reader') to a user or group for a file. This is a simplified alternative to the comprehensive `create_file_permission` function, focusing only on the core arguments required for basic sharing operations and omitting advanced options like notification settings or ownership transfer.
4687
4687
 
4688
4688
  Args:
4689
4689
  fileId (string): fileId
@@ -9,17 +9,6 @@ This is automatically generated from OpenAPI schema for the GoogleGeminiApp API.
9
9
 
10
10
  | Tool | Description |
11
11
  |------|-------------|
12
- | `fetch_model` | Retrieves the configuration details of current model via a GET request. |
13
- | `fetch_models` | Retrieves a paginated list of available models, supporting page size and token parameters for result navigation. |
14
- | `text_only_input` | Generates content using the Gemini 1.5 Flash model via POST request, |
15
- | `generate_atext_stream` | Generates a streaming response from the Gemini 1.5 Flash model for multimodal input content. |
16
- | `resumable_upload_request` | Initiates a file upload by sending file metadata. |
17
- | `prompt_document` | Generates content using the Gemini model with document context. |
18
- | `text_tokens` | Calculates the number of tokens and billable characters for input content using a gemini-2.0-flash. |
19
- | `fetch_tuned_models` | Retrieves a list of tuned models at the specified page size using the GET method. |
20
- | `create_atuned_model` | Creates a tuned model using the "POST" method at the "/v1beta/tunedModels" endpoint and returns a response upon successful creation. |
21
- | `prompt_the_tuned_model` | Generates content using a specified tuned model defined at path "/v1beta/{tunedModel}:generateContent" by sending a POST request. |
22
- | `delete_tuned_model` | Deletes a specified tuned model and returns a success status upon removal. |
23
- | `generate_embeddings` | Generates a text embedding vector from input text using the specified Gemini Embedding model, allowing for semantic analysis and comparison of textual content. |
24
- | `batch_embeddings` | Generates batch embeddings for a list of text inputs using the "gemini-embedding-exp-03-07" model via a POST request to the "/v1beta/models/text-embedding-004:batchEmbedContents" endpoint. |
25
- | `discovery_document` | Retrieves discovery metadata for REST APIs, including available endpoints and parameters, based on the specified version. |
12
+ | `generate_text` | Generates text using the Google Gemini model based on a given prompt. |
13
+ | `generate_image` | Generates an image based on a text prompt and an optional reference image using the Google Gemini model. |
14
+ | `generate_audio` | Generates audio from a given text prompt using the Google Gemini model's Text-to-Speech (TTS) capabilities. |
@@ -65,7 +65,7 @@ class GoogleGeminiApp(APIApplication):
65
65
  async def generate_image(
66
66
  self,
67
67
  prompt: Annotated[str, "The prompt to generate image from"],
68
- image: Annotated[str, "The reference image path"] | None = None,
68
+ images: Annotated[list[str], "The reference images path"] | None = None,
69
69
  model: str = "gemini-2.5-flash-image-preview",
70
70
  ) -> list:
71
71
  """
@@ -75,7 +75,7 @@ class GoogleGeminiApp(APIApplication):
75
75
 
76
76
  Args:
77
77
  prompt (str): The descriptive text prompt to guide the image generation. For example: "A futuristic city at sunset with flying cars."
78
- image (str, optional): An optional URL or local file path to a reference image. This image will be used as a basis for the generation.
78
+ images (list[str], optional): An optional list of URL to a reference image. These images will be used as a basis for the generation.
79
79
  model (str, optional): The Gemini model to use for image generation. Defaults to "gemini-2.5-flash-image-preview".
80
80
 
81
81
  Returns:
@@ -96,16 +96,17 @@ class GoogleGeminiApp(APIApplication):
96
96
  """
97
97
  # The Gemini API is synchronous, so run in a thread
98
98
  contents = [prompt]
99
- if image:
100
- if image.startswith(("http://", "https://")):
101
- import requests
102
-
103
- response = requests.get(image)
104
- response.raise_for_status()
105
- image = Image.open(io.BytesIO(response.content))
106
- else:
107
- image = Image.open(image)
108
- contents.append(image)
99
+ if images:
100
+ for image in images:
101
+ if image.startswith(("http://", "https://")):
102
+ import requests
103
+
104
+ response = requests.get(image)
105
+ response.raise_for_status()
106
+ image = Image.open(io.BytesIO(response.content))
107
+ else:
108
+ image = Image.open(image)
109
+ contents.append(image)
109
110
  response = self.genai_client.models.generate_content(
110
111
  model=model,
111
112
  contents=contents,
@@ -9,23 +9,23 @@ This is automatically generated from OpenAPI schema for the GoogleMailApp API.
9
9
 
10
10
  | Tool | Description |
11
11
  |------|-------------|
12
- | `send_email` | Sends an email using the Gmail API and returns a confirmation or error message. |
13
- | `create_draft` | Creates a draft email message in Gmail using the Gmail API and returns a confirmation status. |
14
- | `send_draft` | Sends an existing draft email using the Gmail API and returns a confirmation message. |
15
- | `get_draft` | Retrieves and formats a specific draft email from Gmail by its ID |
16
- | `list_drafts` | Retrieves and formats a list of email drafts from the user's Gmail mailbox with optional filtering and pagination. |
17
- | `get_message` | Retrieves and formats a specific email message from Gmail API by its ID, including sender, recipient, date, subject, and full message body content. |
18
- | `list_messages` | Retrieves and formats a list of messages from the user's Gmail mailbox with optional filtering and pagination support. |
19
- | `list_labels` | Retrieves and formats a list of all labels (both system and user-created) from the user's Gmail account, organizing them by type and sorting them alphabetically. |
20
- | `create_label` | Creates a new Gmail label with specified visibility settings and returns creation status details. |
21
- | `get_profile` | Retrieves and formats the user's Gmail profile information including email address, message count, thread count, and history ID. |
22
- | `update_drafts` | Updates an existing Gmail draft with new message content and metadata. |
23
- | `trash_messsages` | Moves a message to the trash folder (acts like delete functionality). |
24
- | `untrash_messages` | Moves a message out of the trash, effectively undoing a trash action and restoring the message to the user's mailbox. |
25
- | `get_attachments` | Retrieves the actual file content of a specific attachment from a Gmail message |
26
- | `update_labels` | Update an existing Gmail label's properties such as name, color, or visibility. |
27
- | `delete_labels` | Delete a Gmail label by its ID. |
28
- | `get_filters` | Fetch Gmail filter configuration and rules by filter ID |
29
- | `delete_filters` | Remove Gmail filter and its associated automation rules |
30
- | `list_filters` | Retrieve all Gmail filters and their automation settings |
31
- | `create_filters` | Set up new Gmail filter with criteria and automated actions |
12
+ | `send_email` | Composes and immediately sends an email message via the Gmail API. It can function as a reply within an existing conversation if a `thread_id` is provided. This action is distinct from `send_draft`, which sends a previously saved draft message, or `create_draft`, which only saves an email. |
13
+ | `create_draft` | Saves a new email draft in Gmail with a specified recipient, subject, and body. An optional thread ID can create the draft as a reply within an existing conversation, distinguishing it from `send_email`, which sends immediately. |
14
+ | `send_draft` | Sends a pre-existing Gmail draft identified by its unique ID. It posts to the `/drafts/send` endpoint, converting a saved draft into a sent message. This function acts on drafts from `create_draft` and differs from `send_email`, which composes and sends an email in one step. |
15
+ | `get_draft` | Retrieves a specific Gmail draft by its unique ID. This function allows specifying the output format (e.g., full, raw) to control the response detail. Unlike `list_drafts`, it fetches a single, known draft rather than a collection of multiple drafts. |
16
+ | `list_drafts` | Fetches a list of email drafts, allowing filtering by a search query and limiting results. It can optionally include drafts from spam and trash, returning a collection of draft objects. This is distinct from `get_draft`, which retrieves only a single, specific draft by its ID. |
17
+ | `get_message_details` | Retrieves a specific email from Gmail by its ID. It parses the API response to extract and format key details—including sender, subject, body, and attachments—into a structured dictionary. This function provides detailed data for a single message, distinguishing it from `list_messages` which fetches multiple messages. |
18
+ | `list_messages` | Fetches a paginated list of detailed email messages using optional search queries. It concurrently retrieves full content (sender, subject, body) for each message, returning the results and a pagination token. This differs from `get_message_details`, which fetches only a single message. |
19
+ | `list_labels` | Fetches a complete list of all available labels from the user's Gmail account via the API. It retrieves both system-defined (e.g., INBOX) and user-created labels, returning their names and IDs, complementing management functions like `create_label` and `update_label`. |
20
+ | `create_label` | Creates a new Gmail label with a specified name, hardcoding its visibility to ensure it appears in both label and message lists. This function complements `update_label` and `delete_label` by adding new organizational tags to the user's account via the API. |
21
+ | `get_profile` | Retrieves the authenticated user's Gmail profile from the API. The profile includes the user's email address, total message and thread counts, and the mailbox's history ID, offering a high-level summary of the account's state. |
22
+ | `update_draft` | Replaces the entire content of a specific Gmail draft, identified by its ID, with a new message object. This allows complete modification of the recipient, subject, and body, serving as the primary "edit" function for drafts created via `create_draft`. |
23
+ | `trash_message` | Moves a specific Gmail message to the trash folder by its unique ID. This action performs a soft delete and is the direct counterpart to `untrash_message`, which restores a message. It requires both a user ID and the specific message ID to make the API call. |
24
+ | `untrash_message` | Restores a specific Gmail message from the trash to the user's mailbox, identified by its unique ID. It serves as the direct counterpart to `trash_message`, undoing the deletion action and making the message visible again in the user's account via an API call. |
25
+ | `get_attachment` | Fetches the raw, base64-encoded content of a specific email attachment using its unique ID. It requires the parent message and user IDs for a targeted API request, returning the file's size and data for download or processing, unlike functions that only list attachment metadata. |
26
+ | `update_label` | Updates an existing Gmail label's properties, such as its name, color, or visibility, using its unique ID. This modification function is distinct from `create_label` and `delete_label`, returning the full, updated label resource from the API upon successful completion. |
27
+ | `delete_label` | Permanently removes a specific Gmail label from a user's account, identified by its unique ID. This function performs an irreversible deletion via an API call, requiring both the `userId` and the label `id`. It is the destructive counterpart to `create_label` and `update_label`. |
28
+ | `get_filter` | Fetches a single Gmail filter's configuration by its unique ID for a specified user. It returns the filter’s criteria (e.g., sender) and actions (e.g., add label). This differs from `get_all_filters`, which retrieves a complete list of all filters for the user. |
29
+ | `delete_filter` | Permanently removes a specific Gmail filter, identified by its unique ID, from a user's account. This action deletes the filter's criteria and all associated automation rules, making it the destructive counterpart to `create_filter` and `get_filter`. |
30
+ | `get_all_filters` | Retrieves all configured email filters for a specified Gmail user ID. It fetches a list of a user's filters, including their matching criteria and automated actions, distinguishing it from `get_filter`, which retrieves only a single filter. |
31
+ | `create_filter` | Creates a new automated email filter in Gmail for a specified user. It requires defining matching criteria (e.g., sender, subject) and an action (e.g., add label). This function adds new rules, distinguishing it from `get_all_filters` and `delete_filter` which manage existing ones. |