universal-mcp-applications 0.1.21__py3-none-any.whl → 0.1.23__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of universal-mcp-applications might be problematic. Click here for more details.
- universal_mcp/applications/BEST_PRACTICES.md +166 -0
- universal_mcp/applications/airtable/app.py +0 -1
- universal_mcp/applications/apollo/app.py +0 -1
- universal_mcp/applications/aws_s3/app.py +40 -39
- universal_mcp/applications/browser_use/README.md +1 -0
- universal_mcp/applications/browser_use/__init__.py +0 -0
- universal_mcp/applications/browser_use/app.py +71 -0
- universal_mcp/applications/calendly/app.py +125 -125
- universal_mcp/applications/canva/app.py +95 -99
- universal_mcp/applications/confluence/app.py +0 -1
- universal_mcp/applications/contentful/app.py +4 -5
- universal_mcp/applications/domain_checker/app.py +11 -15
- universal_mcp/applications/e2b/app.py +4 -4
- universal_mcp/applications/elevenlabs/app.py +18 -15
- universal_mcp/applications/exa/app.py +17 -17
- universal_mcp/applications/falai/app.py +28 -29
- universal_mcp/applications/file_system/app.py +9 -9
- universal_mcp/applications/firecrawl/app.py +36 -36
- universal_mcp/applications/fireflies/app.py +55 -56
- universal_mcp/applications/fpl/app.py +49 -50
- universal_mcp/applications/ghost_content/app.py +0 -1
- universal_mcp/applications/github/app.py +41 -43
- universal_mcp/applications/google_calendar/app.py +40 -39
- universal_mcp/applications/google_docs/app.py +168 -232
- universal_mcp/applications/google_drive/app.py +212 -215
- universal_mcp/applications/google_gemini/app.py +1 -5
- universal_mcp/applications/google_mail/app.py +91 -90
- universal_mcp/applications/google_searchconsole/app.py +29 -29
- universal_mcp/applications/google_sheet/app.py +115 -115
- universal_mcp/applications/hashnode/README.md +6 -3
- universal_mcp/applications/hashnode/app.py +174 -25
- universal_mcp/applications/http_tools/app.py +10 -11
- universal_mcp/applications/hubspot/__init__.py +1 -1
- universal_mcp/applications/hubspot/api_segments/api_segment_base.py +36 -7
- universal_mcp/applications/hubspot/api_segments/crm_api.py +368 -368
- universal_mcp/applications/hubspot/api_segments/marketing_api.py +115 -115
- universal_mcp/applications/hubspot/app.py +131 -72
- universal_mcp/applications/jira/app.py +0 -1
- universal_mcp/applications/linkedin/app.py +20 -20
- universal_mcp/applications/markitdown/app.py +10 -5
- universal_mcp/applications/ms_teams/app.py +123 -123
- universal_mcp/applications/openai/app.py +40 -39
- universal_mcp/applications/outlook/app.py +32 -32
- universal_mcp/applications/perplexity/app.py +4 -4
- universal_mcp/applications/reddit/app.py +69 -70
- universal_mcp/applications/resend/app.py +116 -117
- universal_mcp/applications/rocketlane/app.py +0 -1
- universal_mcp/applications/scraper/__init__.py +1 -1
- universal_mcp/applications/scraper/app.py +80 -81
- universal_mcp/applications/serpapi/app.py +14 -14
- universal_mcp/applications/sharepoint/app.py +19 -20
- universal_mcp/applications/shopify/app.py +0 -1
- universal_mcp/applications/slack/app.py +48 -48
- universal_mcp/applications/tavily/app.py +4 -4
- universal_mcp/applications/twitter/api_segments/compliance_api.py +13 -15
- universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +20 -20
- universal_mcp/applications/twitter/api_segments/dm_events_api.py +12 -12
- universal_mcp/applications/twitter/api_segments/likes_api.py +12 -12
- universal_mcp/applications/twitter/api_segments/lists_api.py +37 -39
- universal_mcp/applications/twitter/api_segments/spaces_api.py +24 -24
- universal_mcp/applications/twitter/api_segments/trends_api.py +4 -4
- universal_mcp/applications/twitter/api_segments/tweets_api.py +105 -105
- universal_mcp/applications/twitter/api_segments/usage_api.py +4 -4
- universal_mcp/applications/twitter/api_segments/users_api.py +136 -136
- universal_mcp/applications/twitter/app.py +6 -2
- universal_mcp/applications/unipile/app.py +90 -97
- universal_mcp/applications/whatsapp/app.py +53 -54
- universal_mcp/applications/whatsapp/audio.py +39 -35
- universal_mcp/applications/whatsapp/whatsapp.py +176 -154
- universal_mcp/applications/whatsapp_business/app.py +92 -92
- universal_mcp/applications/yahoo_finance/app.py +105 -63
- universal_mcp/applications/youtube/app.py +193 -196
- universal_mcp/applications/zenquotes/__init__.py +2 -0
- universal_mcp/applications/zenquotes/app.py +5 -5
- {universal_mcp_applications-0.1.21.dist-info → universal_mcp_applications-0.1.23.dist-info}/METADATA +2 -1
- {universal_mcp_applications-0.1.21.dist-info → universal_mcp_applications-0.1.23.dist-info}/RECORD +78 -74
- {universal_mcp_applications-0.1.21.dist-info → universal_mcp_applications-0.1.23.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.21.dist-info → universal_mcp_applications-0.1.23.dist-info}/licenses/LICENSE +0 -0
|
@@ -7,11 +7,8 @@ from typing import Annotated
|
|
|
7
7
|
|
|
8
8
|
from google import genai
|
|
9
9
|
from google.genai import types
|
|
10
|
-
from loguru import logger
|
|
11
10
|
from PIL import Image
|
|
12
|
-
|
|
13
11
|
from universal_mcp.applications.application import APIApplication
|
|
14
|
-
from universal_mcp.applications.file_system.app import FileSystemApp
|
|
15
12
|
from universal_mcp.integrations import Integration
|
|
16
13
|
|
|
17
14
|
|
|
@@ -216,10 +213,9 @@ class GoogleGeminiApp(APIApplication):
|
|
|
216
213
|
|
|
217
214
|
async def test_google_gemini():
|
|
218
215
|
app = GoogleGeminiApp()
|
|
219
|
-
|
|
216
|
+
await app.generate_image(
|
|
220
217
|
"A beautiful women potrait with red green hair color"
|
|
221
218
|
)
|
|
222
|
-
print(result)
|
|
223
219
|
|
|
224
220
|
|
|
225
221
|
if __name__ == "__main__":
|
|
@@ -4,7 +4,6 @@ from email.message import EmailMessage
|
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
6
|
from loguru import logger
|
|
7
|
-
|
|
8
7
|
from universal_mcp.applications.application import APIApplication
|
|
9
8
|
from universal_mcp.integrations import Integration
|
|
10
9
|
|
|
@@ -25,22 +24,22 @@ class GoogleMailApp(APIApplication):
|
|
|
25
24
|
) -> dict[str, Any]:
|
|
26
25
|
"""
|
|
27
26
|
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.
|
|
28
|
-
|
|
27
|
+
|
|
29
28
|
Args:
|
|
30
29
|
to: The email address of the recipient
|
|
31
30
|
subject: The subject line of the email
|
|
32
31
|
body: The content of the email message
|
|
33
32
|
body_type: The MIME subtype for the body ("plain" or "html"). Defaults to "plain".
|
|
34
33
|
thread_id: Optional thread ID to make this a reply to an existing conversation
|
|
35
|
-
|
|
34
|
+
|
|
36
35
|
Returns:
|
|
37
36
|
A string containing either a success confirmation message or an error description
|
|
38
|
-
|
|
37
|
+
|
|
39
38
|
Raises:
|
|
40
39
|
NotAuthorizedError: When Gmail API authentication is not valid or has expired
|
|
41
40
|
KeyError: When required configuration keys are missing
|
|
42
41
|
Exception: For any other unexpected errors during the email sending process
|
|
43
|
-
|
|
42
|
+
|
|
44
43
|
Tags:
|
|
45
44
|
send, email, api, communication, important, thread, reply, openWorldHint
|
|
46
45
|
"""
|
|
@@ -80,22 +79,22 @@ class GoogleMailApp(APIApplication):
|
|
|
80
79
|
) -> dict[str, Any]:
|
|
81
80
|
"""
|
|
82
81
|
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.
|
|
83
|
-
|
|
82
|
+
|
|
84
83
|
Args:
|
|
85
84
|
to: The email address of the recipient
|
|
86
85
|
subject: The subject line of the draft email
|
|
87
86
|
body: The main content/message of the draft email
|
|
88
87
|
body_type: The MIME subtype for the body ("plain" or "html"). Defaults to "plain".
|
|
89
88
|
thread_id: Optional thread ID to make this draft a reply to an existing conversation
|
|
90
|
-
|
|
89
|
+
|
|
91
90
|
Returns:
|
|
92
91
|
A string containing either a success message with the draft ID or an error message describing the failure
|
|
93
|
-
|
|
92
|
+
|
|
94
93
|
Raises:
|
|
95
94
|
NotAuthorizedError: When the user's Gmail API authorization is invalid or expired
|
|
96
95
|
KeyError: When required configuration keys are missing
|
|
97
96
|
Exception: For general API errors, network issues, or other unexpected problems
|
|
98
|
-
|
|
97
|
+
|
|
99
98
|
Tags:
|
|
100
99
|
create, email, draft, gmail, api, important, thread, reply, html
|
|
101
100
|
"""
|
|
@@ -119,18 +118,18 @@ class GoogleMailApp(APIApplication):
|
|
|
119
118
|
def send_draft(self, draft_id: str) -> dict[str, Any]:
|
|
120
119
|
"""
|
|
121
120
|
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.
|
|
122
|
-
|
|
121
|
+
|
|
123
122
|
Args:
|
|
124
123
|
draft_id: The unique identifier of the Gmail draft to be sent
|
|
125
|
-
|
|
124
|
+
|
|
126
125
|
Returns:
|
|
127
126
|
A string containing either a success message with the sent message ID or an error message detailing the failure reason
|
|
128
|
-
|
|
127
|
+
|
|
129
128
|
Raises:
|
|
130
129
|
NotAuthorizedError: When the user's Gmail API authorization is invalid or expired
|
|
131
130
|
KeyError: When required configuration keys are missing from the API response
|
|
132
131
|
Exception: For other unexpected errors during the API request or response handling
|
|
133
|
-
|
|
132
|
+
|
|
134
133
|
Tags:
|
|
135
134
|
send, email, api, communication, important, draft
|
|
136
135
|
"""
|
|
@@ -148,19 +147,19 @@ class GoogleMailApp(APIApplication):
|
|
|
148
147
|
def get_draft(self, draft_id: str, format: str = "full") -> dict[str, Any]:
|
|
149
148
|
"""
|
|
150
149
|
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.
|
|
151
|
-
|
|
150
|
+
|
|
152
151
|
Args:
|
|
153
152
|
draft_id: String identifier of the draft email to retrieve
|
|
154
153
|
format: Output format of the draft (options: minimal, full, raw, metadata). Defaults to 'full'
|
|
155
|
-
|
|
154
|
+
|
|
156
155
|
Returns:
|
|
157
156
|
A formatted string containing the draft email details (ID, recipient, subject) or an error message if retrieval fails
|
|
158
|
-
|
|
157
|
+
|
|
159
158
|
Raises:
|
|
160
159
|
NotAuthorizedError: When the user's Gmail authorization is invalid or expired
|
|
161
160
|
KeyError: When required configuration keys or response data fields are missing
|
|
162
161
|
Exception: For any other unexpected errors during draft retrieval
|
|
163
|
-
|
|
162
|
+
|
|
164
163
|
Tags:
|
|
165
164
|
retrieve, email, gmail, draft, api, format, important
|
|
166
165
|
"""
|
|
@@ -184,20 +183,20 @@ class GoogleMailApp(APIApplication):
|
|
|
184
183
|
) -> dict[str, Any]:
|
|
185
184
|
"""
|
|
186
185
|
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.
|
|
187
|
-
|
|
186
|
+
|
|
188
187
|
Args:
|
|
189
188
|
max_results: Maximum number of drafts to return (max 500, default 20)
|
|
190
189
|
q: Search query string to filter drafts using Gmail search syntax (default None)
|
|
191
190
|
include_spam_trash: Boolean flag to include drafts from spam and trash folders (default False)
|
|
192
|
-
|
|
191
|
+
|
|
193
192
|
Returns:
|
|
194
193
|
A formatted string containing the list of draft IDs and count information, or an error message if the request fails
|
|
195
|
-
|
|
194
|
+
|
|
196
195
|
Raises:
|
|
197
196
|
NotAuthorizedError: When the Gmail API authentication is missing or invalid
|
|
198
197
|
KeyError: When required configuration keys are missing
|
|
199
198
|
Exception: For general errors during API communication or data processing
|
|
200
|
-
|
|
199
|
+
|
|
201
200
|
Tags:
|
|
202
201
|
list, email, drafts, gmail, api, search, query, pagination, important
|
|
203
202
|
"""
|
|
@@ -222,13 +221,13 @@ class GoogleMailApp(APIApplication):
|
|
|
222
221
|
def get_message_details(self, message_id: str) -> dict[str, Any]:
|
|
223
222
|
"""
|
|
224
223
|
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.
|
|
225
|
-
|
|
224
|
+
|
|
226
225
|
Args:
|
|
227
226
|
message_id: The unique identifier of the Gmail message to retrieve
|
|
228
|
-
|
|
227
|
+
|
|
229
228
|
Returns:
|
|
230
229
|
A dictionary containing the cleaned message details (serializable as JSON)
|
|
231
|
-
|
|
230
|
+
|
|
232
231
|
Tags:
|
|
233
232
|
retrieve, email, format, api, gmail, message, important, body, content, attachments
|
|
234
233
|
"""
|
|
@@ -265,8 +264,6 @@ class GoogleMailApp(APIApplication):
|
|
|
265
264
|
"attachments": attachments,
|
|
266
265
|
}
|
|
267
266
|
|
|
268
|
-
|
|
269
|
-
|
|
270
267
|
def _extract_email_body(self, payload):
|
|
271
268
|
"""
|
|
272
269
|
Extracts the email body content from the Gmail API payload.
|
|
@@ -332,26 +329,30 @@ class GoogleMailApp(APIApplication):
|
|
|
332
329
|
list: List of attachment dictionaries with attachment_id, filename, mime_type, and size
|
|
333
330
|
"""
|
|
334
331
|
attachments = []
|
|
335
|
-
|
|
332
|
+
|
|
336
333
|
try:
|
|
337
334
|
if payload.get("filename") and payload.get("body", {}).get("attachmentId"):
|
|
338
|
-
attachments.append(
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
335
|
+
attachments.append(
|
|
336
|
+
{
|
|
337
|
+
"attachment_id": payload["body"]["attachmentId"],
|
|
338
|
+
"filename": payload["filename"],
|
|
339
|
+
"mime_type": payload.get("mimeType", ""),
|
|
340
|
+
"size": payload.get("body", {}).get("size", 0),
|
|
341
|
+
}
|
|
342
|
+
)
|
|
344
343
|
|
|
345
344
|
parts = payload.get("parts", [])
|
|
346
345
|
for part in parts:
|
|
347
346
|
if part.get("filename") and part.get("body", {}).get("attachmentId"):
|
|
348
|
-
attachments.append(
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
347
|
+
attachments.append(
|
|
348
|
+
{
|
|
349
|
+
"attachment_id": part["body"]["attachmentId"],
|
|
350
|
+
"filename": part["filename"],
|
|
351
|
+
"mime_type": part.get("mimeType", ""),
|
|
352
|
+
"size": part.get("body", {}).get("size", 0),
|
|
353
|
+
}
|
|
354
|
+
)
|
|
355
|
+
|
|
355
356
|
elif part.get("parts"):
|
|
356
357
|
nested_attachments = self._extract_attachments(part)
|
|
357
358
|
attachments.extend(nested_attachments)
|
|
@@ -388,7 +389,7 @@ class GoogleMailApp(APIApplication):
|
|
|
388
389
|
) -> dict[str, Any]:
|
|
389
390
|
"""
|
|
390
391
|
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.
|
|
391
|
-
|
|
392
|
+
|
|
392
393
|
Args:
|
|
393
394
|
max_results: Maximum number of messages to return (max 500, default 20)
|
|
394
395
|
q: Search query string to filter messages using Gmail search syntax.
|
|
@@ -409,15 +410,15 @@ class GoogleMailApp(APIApplication):
|
|
|
409
410
|
- 'has:attachment' for emails with attachments
|
|
410
411
|
- 'is:unread' for unread emails
|
|
411
412
|
include_spam_trash: Boolean flag to include messages from spam and trash folders (default False)
|
|
412
|
-
|
|
413
|
+
|
|
413
414
|
Returns:
|
|
414
415
|
A dictionary containing the list of messages and next page token for pagination
|
|
415
|
-
|
|
416
|
+
|
|
416
417
|
Raises:
|
|
417
418
|
NotAuthorizedError: When the Gmail API authentication is invalid or missing
|
|
418
419
|
KeyError: When required configuration keys are missing
|
|
419
420
|
Exception: For general API errors, network issues, or other unexpected problems
|
|
420
|
-
|
|
421
|
+
|
|
421
422
|
Tags:
|
|
422
423
|
list, messages, gmail, search, query, pagination, important
|
|
423
424
|
"""
|
|
@@ -472,18 +473,18 @@ class GoogleMailApp(APIApplication):
|
|
|
472
473
|
def get_email_thread(self, thread_id: str) -> dict[str, Any]:
|
|
473
474
|
"""
|
|
474
475
|
Fetches a complete email conversation by its unique thread ID. Unlike `get_message_details`, which retrieves a single message, this returns all messages and metadata for the entire thread, providing the full context of the conversation.
|
|
475
|
-
|
|
476
|
+
|
|
476
477
|
Args:
|
|
477
478
|
thread_id: The unique identifier of the Gmail thread to retrieve
|
|
478
|
-
|
|
479
|
+
|
|
479
480
|
Returns:
|
|
480
481
|
A dictionary containing the thread details and all messages in the thread
|
|
481
|
-
|
|
482
|
+
|
|
482
483
|
Raises:
|
|
483
484
|
NotAuthorizedError: When Gmail API authentication is invalid or missing
|
|
484
485
|
KeyError: When required configuration keys are missing
|
|
485
486
|
Exception: For general errors during API communication or data processing
|
|
486
|
-
|
|
487
|
+
|
|
487
488
|
Tags:
|
|
488
489
|
retrieve, email, thread, gmail, api, conversation, important, readOnlyHint, openWorldHint
|
|
489
490
|
"""
|
|
@@ -495,17 +496,17 @@ class GoogleMailApp(APIApplication):
|
|
|
495
496
|
def list_labels(self) -> dict[str, Any]:
|
|
496
497
|
"""
|
|
497
498
|
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`.
|
|
498
|
-
|
|
499
|
+
|
|
499
500
|
Args:
|
|
500
501
|
None: This method takes no arguments
|
|
501
|
-
|
|
502
|
+
|
|
502
503
|
Returns:
|
|
503
504
|
A formatted string containing a list of Gmail labels categorized by type (system and user), with their IDs, or an error message if the operation fails.
|
|
504
|
-
|
|
505
|
+
|
|
505
506
|
Raises:
|
|
506
507
|
NotAuthorizedError: Raised when the user's Gmail authorization is invalid or missing
|
|
507
508
|
Exception: Raised when any other unexpected error occurs during the API request or data processing
|
|
508
|
-
|
|
509
|
+
|
|
509
510
|
Tags:
|
|
510
511
|
list, gmail, labels, fetch, organize, important, management
|
|
511
512
|
"""
|
|
@@ -521,17 +522,17 @@ class GoogleMailApp(APIApplication):
|
|
|
521
522
|
def create_label(self, name: str) -> dict[str, Any]:
|
|
522
523
|
"""
|
|
523
524
|
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.
|
|
524
|
-
|
|
525
|
+
|
|
525
526
|
Args:
|
|
526
527
|
name: The display name of the label to create
|
|
527
|
-
|
|
528
|
+
|
|
528
529
|
Returns:
|
|
529
530
|
A formatted string containing the creation status, including the new label's name and ID if successful, or an error message if the creation fails
|
|
530
|
-
|
|
531
|
+
|
|
531
532
|
Raises:
|
|
532
533
|
NotAuthorizedError: Raised when the request lacks proper Gmail API authorization
|
|
533
534
|
Exception: Raised for any other unexpected errors during label creation
|
|
534
|
-
|
|
535
|
+
|
|
535
536
|
Tags:
|
|
536
537
|
create, label, gmail, management, important
|
|
537
538
|
"""
|
|
@@ -554,17 +555,17 @@ class GoogleMailApp(APIApplication):
|
|
|
554
555
|
def get_profile(self) -> dict[str, Any]:
|
|
555
556
|
"""
|
|
556
557
|
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.
|
|
557
|
-
|
|
558
|
+
|
|
558
559
|
Args:
|
|
559
560
|
None: This method takes no arguments besides self
|
|
560
|
-
|
|
561
|
+
|
|
561
562
|
Returns:
|
|
562
563
|
A formatted string containing the user's Gmail profile information or an error message if the request fails
|
|
563
|
-
|
|
564
|
+
|
|
564
565
|
Raises:
|
|
565
566
|
NotAuthorizedError: Raised when the user's credentials are invalid or authorization is required
|
|
566
567
|
Exception: Raised for any other unexpected errors during the API request or data processing
|
|
567
|
-
|
|
568
|
+
|
|
568
569
|
Tags:
|
|
569
570
|
fetch, profile, gmail, user-info, api-request, important
|
|
570
571
|
"""
|
|
@@ -595,7 +596,7 @@ class GoogleMailApp(APIApplication):
|
|
|
595
596
|
) -> dict[str, Any]:
|
|
596
597
|
"""
|
|
597
598
|
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`.
|
|
598
|
-
|
|
599
|
+
|
|
599
600
|
Args:
|
|
600
601
|
userId (string): userId
|
|
601
602
|
id (string): id
|
|
@@ -658,10 +659,10 @@ class GoogleMailApp(APIApplication):
|
|
|
658
659
|
}
|
|
659
660
|
}
|
|
660
661
|
```
|
|
661
|
-
|
|
662
|
+
|
|
662
663
|
Returns:
|
|
663
664
|
dict[str, Any]: Successful response
|
|
664
|
-
|
|
665
|
+
|
|
665
666
|
Tags:
|
|
666
667
|
Drafts
|
|
667
668
|
"""
|
|
@@ -714,7 +715,7 @@ class GoogleMailApp(APIApplication):
|
|
|
714
715
|
) -> dict[str, Any]:
|
|
715
716
|
"""
|
|
716
717
|
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.
|
|
717
|
-
|
|
718
|
+
|
|
718
719
|
Args:
|
|
719
720
|
userId (string): userId
|
|
720
721
|
id (string): id
|
|
@@ -729,10 +730,10 @@ class GoogleMailApp(APIApplication):
|
|
|
729
730
|
upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
|
|
730
731
|
uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
|
|
731
732
|
xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
|
|
732
|
-
|
|
733
|
+
|
|
733
734
|
Returns:
|
|
734
735
|
dict[str, Any]: Successful response
|
|
735
|
-
|
|
736
|
+
|
|
736
737
|
Tags:
|
|
737
738
|
Messages, important
|
|
738
739
|
"""
|
|
@@ -780,7 +781,7 @@ class GoogleMailApp(APIApplication):
|
|
|
780
781
|
) -> dict[str, Any]:
|
|
781
782
|
"""
|
|
782
783
|
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.
|
|
783
|
-
|
|
784
|
+
|
|
784
785
|
Args:
|
|
785
786
|
userId (string): userId
|
|
786
787
|
id (string): id
|
|
@@ -795,10 +796,10 @@ class GoogleMailApp(APIApplication):
|
|
|
795
796
|
upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
|
|
796
797
|
uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
|
|
797
798
|
xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
|
|
798
|
-
|
|
799
|
+
|
|
799
800
|
Returns:
|
|
800
801
|
dict[str, Any]: Successful response
|
|
801
|
-
|
|
802
|
+
|
|
802
803
|
Tags:
|
|
803
804
|
Messages
|
|
804
805
|
"""
|
|
@@ -847,7 +848,7 @@ class GoogleMailApp(APIApplication):
|
|
|
847
848
|
) -> dict[str, Any]:
|
|
848
849
|
"""
|
|
849
850
|
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.
|
|
850
|
-
|
|
851
|
+
|
|
851
852
|
Args:
|
|
852
853
|
userId (string): userId
|
|
853
854
|
messageId (string): messageId
|
|
@@ -863,10 +864,10 @@ class GoogleMailApp(APIApplication):
|
|
|
863
864
|
upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
|
|
864
865
|
uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
|
|
865
866
|
xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
|
|
866
|
-
|
|
867
|
+
|
|
867
868
|
Returns:
|
|
868
869
|
dict[str, Any]: Successful response
|
|
869
|
-
|
|
870
|
+
|
|
870
871
|
Tags:
|
|
871
872
|
Messages
|
|
872
873
|
"""
|
|
@@ -925,7 +926,7 @@ class GoogleMailApp(APIApplication):
|
|
|
925
926
|
) -> dict[str, Any]:
|
|
926
927
|
"""
|
|
927
928
|
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.
|
|
928
|
-
|
|
929
|
+
|
|
929
930
|
Args:
|
|
930
931
|
userId (string): userId
|
|
931
932
|
id (string): id
|
|
@@ -967,10 +968,10 @@ class GoogleMailApp(APIApplication):
|
|
|
967
968
|
"type": "system"
|
|
968
969
|
}
|
|
969
970
|
```
|
|
970
|
-
|
|
971
|
+
|
|
971
972
|
Returns:
|
|
972
973
|
dict[str, Any]: Successful response
|
|
973
|
-
|
|
974
|
+
|
|
974
975
|
Tags:
|
|
975
976
|
Labels
|
|
976
977
|
"""
|
|
@@ -1031,7 +1032,7 @@ class GoogleMailApp(APIApplication):
|
|
|
1031
1032
|
) -> Any:
|
|
1032
1033
|
"""
|
|
1033
1034
|
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`.
|
|
1034
|
-
|
|
1035
|
+
|
|
1035
1036
|
Args:
|
|
1036
1037
|
userId (string): userId
|
|
1037
1038
|
id (string): id
|
|
@@ -1046,10 +1047,10 @@ class GoogleMailApp(APIApplication):
|
|
|
1046
1047
|
upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
|
|
1047
1048
|
uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
|
|
1048
1049
|
xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
|
|
1049
|
-
|
|
1050
|
+
|
|
1050
1051
|
Returns:
|
|
1051
1052
|
Any: No Content
|
|
1052
|
-
|
|
1053
|
+
|
|
1053
1054
|
Tags:
|
|
1054
1055
|
Labels
|
|
1055
1056
|
"""
|
|
@@ -1097,7 +1098,7 @@ class GoogleMailApp(APIApplication):
|
|
|
1097
1098
|
) -> dict[str, Any]:
|
|
1098
1099
|
"""
|
|
1099
1100
|
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.
|
|
1100
|
-
|
|
1101
|
+
|
|
1101
1102
|
Args:
|
|
1102
1103
|
userId (string): userId
|
|
1103
1104
|
id (string): id
|
|
@@ -1112,10 +1113,10 @@ class GoogleMailApp(APIApplication):
|
|
|
1112
1113
|
upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
|
|
1113
1114
|
uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
|
|
1114
1115
|
xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
|
|
1115
|
-
|
|
1116
|
+
|
|
1116
1117
|
Returns:
|
|
1117
1118
|
dict[str, Any]: Successful response
|
|
1118
|
-
|
|
1119
|
+
|
|
1119
1120
|
Tags:
|
|
1120
1121
|
settings, Filters
|
|
1121
1122
|
"""
|
|
@@ -1163,7 +1164,7 @@ class GoogleMailApp(APIApplication):
|
|
|
1163
1164
|
) -> Any:
|
|
1164
1165
|
"""
|
|
1165
1166
|
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`.
|
|
1166
|
-
|
|
1167
|
+
|
|
1167
1168
|
Args:
|
|
1168
1169
|
userId (string): userId
|
|
1169
1170
|
id (string): id
|
|
@@ -1178,10 +1179,10 @@ class GoogleMailApp(APIApplication):
|
|
|
1178
1179
|
upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
|
|
1179
1180
|
uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
|
|
1180
1181
|
xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
|
|
1181
|
-
|
|
1182
|
+
|
|
1182
1183
|
Returns:
|
|
1183
1184
|
Any: No Content
|
|
1184
|
-
|
|
1185
|
+
|
|
1185
1186
|
Tags:
|
|
1186
1187
|
settings, Filters
|
|
1187
1188
|
"""
|
|
@@ -1228,7 +1229,7 @@ class GoogleMailApp(APIApplication):
|
|
|
1228
1229
|
) -> dict[str, Any]:
|
|
1229
1230
|
"""
|
|
1230
1231
|
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.
|
|
1231
|
-
|
|
1232
|
+
|
|
1232
1233
|
Args:
|
|
1233
1234
|
userId (string): userId
|
|
1234
1235
|
access_token (string): OAuth access token. Example: '{{access_token}}'.
|
|
@@ -1242,10 +1243,10 @@ class GoogleMailApp(APIApplication):
|
|
|
1242
1243
|
upload_protocol (string): Upload protocol for media (e.g. "raw", "multipart"). Example: '{{upload_protocol}}'.
|
|
1243
1244
|
uploadType (string): Legacy upload protocol for media (e.g. "media", "multipart"). Example: '{{uploadType}}'.
|
|
1244
1245
|
xgafv (string): V1 error format. Example: '{{$.xgafv}}'.
|
|
1245
|
-
|
|
1246
|
+
|
|
1246
1247
|
Returns:
|
|
1247
1248
|
dict[str, Any]: Successful response
|
|
1248
|
-
|
|
1249
|
+
|
|
1249
1250
|
Tags:
|
|
1250
1251
|
settings, Filters
|
|
1251
1252
|
"""
|
|
@@ -1293,7 +1294,7 @@ class GoogleMailApp(APIApplication):
|
|
|
1293
1294
|
) -> dict[str, Any]:
|
|
1294
1295
|
"""
|
|
1295
1296
|
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.
|
|
1296
|
-
|
|
1297
|
+
|
|
1297
1298
|
Args:
|
|
1298
1299
|
userId (string): userId
|
|
1299
1300
|
access_token (string): OAuth access token. Example: '{{access_token}}'.
|
|
@@ -1338,10 +1339,10 @@ class GoogleMailApp(APIApplication):
|
|
|
1338
1339
|
"id": "in aute anim"
|
|
1339
1340
|
}
|
|
1340
1341
|
```
|
|
1341
|
-
|
|
1342
|
+
|
|
1342
1343
|
Returns:
|
|
1343
1344
|
dict[str, Any]: Successful response
|
|
1344
|
-
|
|
1345
|
+
|
|
1345
1346
|
Tags:
|
|
1346
1347
|
settings, Filters
|
|
1347
1348
|
"""
|