universal-mcp-applications 0.1.20__py3-none-any.whl → 0.1.22__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 +76 -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 +56 -56
- 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 +234 -16
- 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 +321 -71
- 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 +206 -199
- universal_mcp/applications/zenquotes/__init__.py +2 -0
- universal_mcp/applications/zenquotes/app.py +3 -3
- {universal_mcp_applications-0.1.20.dist-info → universal_mcp_applications-0.1.22.dist-info}/METADATA +2 -1
- {universal_mcp_applications-0.1.20.dist-info → universal_mcp_applications-0.1.22.dist-info}/RECORD +78 -74
- {universal_mcp_applications-0.1.20.dist-info → universal_mcp_applications-0.1.22.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.20.dist-info → universal_mcp_applications-0.1.22.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
from typing import Any
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
2
3
|
from .api_segment_base import APISegmentBase
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
class MarketingApi(APISegmentBase):
|
|
6
|
-
|
|
7
7
|
def __init__(self, main_app_client: Any):
|
|
8
8
|
super().__init__(main_app_client)
|
|
9
9
|
|
|
10
10
|
def get_marketing_campaigns(
|
|
11
11
|
self,
|
|
12
|
-
sort:
|
|
13
|
-
after:
|
|
14
|
-
limit:
|
|
15
|
-
name:
|
|
16
|
-
properties:
|
|
12
|
+
sort: str | None = None,
|
|
13
|
+
after: str | None = None,
|
|
14
|
+
limit: int | None = None,
|
|
15
|
+
name: str | None = None,
|
|
16
|
+
properties: list[str] | None = None,
|
|
17
17
|
) -> dict[str, Any]:
|
|
18
18
|
"""
|
|
19
19
|
|
|
@@ -84,10 +84,10 @@ class MarketingApi(APISegmentBase):
|
|
|
84
84
|
|
|
85
85
|
def batch_read_campaigns_post(
|
|
86
86
|
self,
|
|
87
|
-
inputs:
|
|
88
|
-
startDate:
|
|
89
|
-
endDate:
|
|
90
|
-
properties:
|
|
87
|
+
inputs: list[dict[str, Any]],
|
|
88
|
+
startDate: str | None = None,
|
|
89
|
+
endDate: str | None = None,
|
|
90
|
+
properties: list[str] | None = None,
|
|
91
91
|
) -> dict[str, Any]:
|
|
92
92
|
"""
|
|
93
93
|
|
|
@@ -131,7 +131,7 @@ class MarketingApi(APISegmentBase):
|
|
|
131
131
|
)
|
|
132
132
|
return self._handle_response(response)
|
|
133
133
|
|
|
134
|
-
def update_campaigns_batch(self, inputs:
|
|
134
|
+
def update_campaigns_batch(self, inputs: list[dict[str, Any]]) -> dict[str, Any]:
|
|
135
135
|
"""
|
|
136
136
|
|
|
137
137
|
Updates multiple marketing campaigns in a batch using the POST method, requiring a JSON body and authentication via OAuth2 or private apps with "marketing.campaigns.read" permissions.
|
|
@@ -166,8 +166,8 @@ class MarketingApi(APISegmentBase):
|
|
|
166
166
|
def get_campaign_metrics(
|
|
167
167
|
self,
|
|
168
168
|
campaignGuid: str,
|
|
169
|
-
startDate:
|
|
170
|
-
endDate:
|
|
169
|
+
startDate: str | None = None,
|
|
170
|
+
endDate: str | None = None,
|
|
171
171
|
) -> dict[str, Any]:
|
|
172
172
|
"""
|
|
173
173
|
|
|
@@ -202,10 +202,10 @@ class MarketingApi(APISegmentBase):
|
|
|
202
202
|
self,
|
|
203
203
|
campaignGuid: str,
|
|
204
204
|
assetType: str,
|
|
205
|
-
after:
|
|
206
|
-
limit:
|
|
207
|
-
startDate:
|
|
208
|
-
endDate:
|
|
205
|
+
after: str | None = None,
|
|
206
|
+
limit: str | None = None,
|
|
207
|
+
startDate: str | None = None,
|
|
208
|
+
endDate: str | None = None,
|
|
209
209
|
) -> dict[str, Any]:
|
|
210
210
|
"""
|
|
211
211
|
|
|
@@ -246,7 +246,7 @@ class MarketingApi(APISegmentBase):
|
|
|
246
246
|
response = self._get(url, params=query_params)
|
|
247
247
|
return self._handle_response(response)
|
|
248
248
|
|
|
249
|
-
def archive_campaigns_batch(self, inputs:
|
|
249
|
+
def archive_campaigns_batch(self, inputs: list[dict[str, Any]]) -> Any:
|
|
250
250
|
"""
|
|
251
251
|
|
|
252
252
|
Archives a batch of marketing campaigns using the HubSpot API, requiring a JSON request body and returning a 204 status upon successful completion.
|
|
@@ -351,9 +351,9 @@ class MarketingApi(APISegmentBase):
|
|
|
351
351
|
def get_campaign_revenue_report(
|
|
352
352
|
self,
|
|
353
353
|
campaignGuid: str,
|
|
354
|
-
attributionModel:
|
|
355
|
-
startDate:
|
|
356
|
-
endDate:
|
|
354
|
+
attributionModel: str | None = None,
|
|
355
|
+
startDate: str | None = None,
|
|
356
|
+
endDate: str | None = None,
|
|
357
357
|
) -> dict[str, Any]:
|
|
358
358
|
"""
|
|
359
359
|
|
|
@@ -389,7 +389,7 @@ class MarketingApi(APISegmentBase):
|
|
|
389
389
|
response = self._get(url, params=query_params)
|
|
390
390
|
return self._handle_response(response)
|
|
391
391
|
|
|
392
|
-
def create_campaigns_batch(self, inputs:
|
|
392
|
+
def create_campaigns_batch(self, inputs: list[dict[str, Any]]) -> dict[str, Any]:
|
|
393
393
|
"""
|
|
394
394
|
|
|
395
395
|
Creates multiple marketing campaigns in a single operation using the "POST" method, accepting a JSON body with campaign details and returning a status message upon successful creation.
|
|
@@ -448,9 +448,9 @@ class MarketingApi(APISegmentBase):
|
|
|
448
448
|
def get_campaign_by_guid(
|
|
449
449
|
self,
|
|
450
450
|
campaignGuid: str,
|
|
451
|
-
startDate:
|
|
452
|
-
endDate:
|
|
453
|
-
properties:
|
|
451
|
+
startDate: str | None = None,
|
|
452
|
+
endDate: str | None = None,
|
|
453
|
+
properties: list[str] | None = None,
|
|
454
454
|
) -> dict[str, Any]:
|
|
455
455
|
"""
|
|
456
456
|
|
|
@@ -546,10 +546,10 @@ class MarketingApi(APISegmentBase):
|
|
|
546
546
|
self,
|
|
547
547
|
campaignGuid: str,
|
|
548
548
|
contactType: str,
|
|
549
|
-
startDate:
|
|
550
|
-
endDate:
|
|
551
|
-
limit:
|
|
552
|
-
after:
|
|
549
|
+
startDate: str | None = None,
|
|
550
|
+
endDate: str | None = None,
|
|
551
|
+
limit: int | None = None,
|
|
552
|
+
after: str | None = None,
|
|
553
553
|
) -> dict[str, Any]:
|
|
554
554
|
"""
|
|
555
555
|
|
|
@@ -592,10 +592,10 @@ class MarketingApi(APISegmentBase):
|
|
|
592
592
|
|
|
593
593
|
def list_email_statistics(
|
|
594
594
|
self,
|
|
595
|
-
startTimestamp:
|
|
596
|
-
endTimestamp:
|
|
597
|
-
emailIds:
|
|
598
|
-
property:
|
|
595
|
+
startTimestamp: str | None = None,
|
|
596
|
+
endTimestamp: str | None = None,
|
|
597
|
+
emailIds: list[int] | None = None,
|
|
598
|
+
property: str | None = None,
|
|
599
599
|
) -> dict[str, Any]:
|
|
600
600
|
"""
|
|
601
601
|
|
|
@@ -667,10 +667,10 @@ class MarketingApi(APISegmentBase):
|
|
|
667
667
|
|
|
668
668
|
def get_email_statistics_histogram(
|
|
669
669
|
self,
|
|
670
|
-
interval:
|
|
671
|
-
startTimestamp:
|
|
672
|
-
endTimestamp:
|
|
673
|
-
emailIds:
|
|
670
|
+
interval: str | None = None,
|
|
671
|
+
startTimestamp: str | None = None,
|
|
672
|
+
endTimestamp: str | None = None,
|
|
673
|
+
emailIds: list[int] | None = None,
|
|
674
674
|
) -> dict[str, Any]:
|
|
675
675
|
"""
|
|
676
676
|
|
|
@@ -825,24 +825,24 @@ class MarketingApi(APISegmentBase):
|
|
|
825
825
|
def update_email_draft_by_id(
|
|
826
826
|
self,
|
|
827
827
|
emailId: str,
|
|
828
|
-
rssData:
|
|
829
|
-
subject:
|
|
830
|
-
testing:
|
|
831
|
-
publishDate:
|
|
832
|
-
language:
|
|
833
|
-
businessUnitId:
|
|
834
|
-
content:
|
|
835
|
-
webversion:
|
|
836
|
-
archived:
|
|
837
|
-
subscriptionDetails:
|
|
838
|
-
activeDomain:
|
|
839
|
-
name:
|
|
840
|
-
campaign:
|
|
841
|
-
from_:
|
|
842
|
-
state:
|
|
843
|
-
to:
|
|
844
|
-
subcategory:
|
|
845
|
-
sendOnPublish:
|
|
828
|
+
rssData: dict[str, Any] | None = None,
|
|
829
|
+
subject: str | None = None,
|
|
830
|
+
testing: dict[str, Any] | None = None,
|
|
831
|
+
publishDate: str | None = None,
|
|
832
|
+
language: str | None = None,
|
|
833
|
+
businessUnitId: str | None = None,
|
|
834
|
+
content: dict[str, Any] | None = None,
|
|
835
|
+
webversion: dict[str, Any] | None = None,
|
|
836
|
+
archived: bool | None = None,
|
|
837
|
+
subscriptionDetails: dict[str, Any] | None = None,
|
|
838
|
+
activeDomain: str | None = None,
|
|
839
|
+
name: str | None = None,
|
|
840
|
+
campaign: str | None = None,
|
|
841
|
+
from_: dict[str, Any] | None = None,
|
|
842
|
+
state: str | None = None,
|
|
843
|
+
to: dict[str, Any] | None = None,
|
|
844
|
+
subcategory: str | None = None,
|
|
845
|
+
sendOnPublish: bool | None = None,
|
|
846
846
|
) -> dict[str, Any]:
|
|
847
847
|
"""
|
|
848
848
|
|
|
@@ -936,9 +936,9 @@ class MarketingApi(APISegmentBase):
|
|
|
936
936
|
def get_email_revisions(
|
|
937
937
|
self,
|
|
938
938
|
emailId: str,
|
|
939
|
-
after:
|
|
940
|
-
before:
|
|
941
|
-
limit:
|
|
939
|
+
after: str | None = None,
|
|
940
|
+
before: str | None = None,
|
|
941
|
+
limit: int | None = None,
|
|
942
942
|
) -> dict[str, Any]:
|
|
943
943
|
"""
|
|
944
944
|
|
|
@@ -997,7 +997,7 @@ class MarketingApi(APISegmentBase):
|
|
|
997
997
|
response = self._get(url, params=query_params)
|
|
998
998
|
return self._handle_response(response)
|
|
999
999
|
|
|
1000
|
-
def clone_email(self, id: str, cloneName:
|
|
1000
|
+
def clone_email(self, id: str, cloneName: str | None = None) -> dict[str, Any]:
|
|
1001
1001
|
"""
|
|
1002
1002
|
|
|
1003
1003
|
Clones a marketing email using the POST method at the "/marketing/v3/emails/clone" endpoint, creating a duplicate email with the same properties as the original but with a unique ID.
|
|
@@ -1032,20 +1032,20 @@ class MarketingApi(APISegmentBase):
|
|
|
1032
1032
|
|
|
1033
1033
|
def list_marketing_emails(
|
|
1034
1034
|
self,
|
|
1035
|
-
createdAt:
|
|
1036
|
-
createdAfter:
|
|
1037
|
-
createdBefore:
|
|
1038
|
-
updatedAt:
|
|
1039
|
-
updatedAfter:
|
|
1040
|
-
updatedBefore:
|
|
1041
|
-
sort:
|
|
1042
|
-
after:
|
|
1043
|
-
limit:
|
|
1044
|
-
includeStats:
|
|
1045
|
-
type:
|
|
1046
|
-
isPublished:
|
|
1047
|
-
includedProperties:
|
|
1048
|
-
archived:
|
|
1035
|
+
createdAt: str | None = None,
|
|
1036
|
+
createdAfter: str | None = None,
|
|
1037
|
+
createdBefore: str | None = None,
|
|
1038
|
+
updatedAt: str | None = None,
|
|
1039
|
+
updatedAfter: str | None = None,
|
|
1040
|
+
updatedBefore: str | None = None,
|
|
1041
|
+
sort: list[str] | None = None,
|
|
1042
|
+
after: str | None = None,
|
|
1043
|
+
limit: int | None = None,
|
|
1044
|
+
includeStats: bool | None = None,
|
|
1045
|
+
type: str | None = None,
|
|
1046
|
+
isPublished: bool | None = None,
|
|
1047
|
+
includedProperties: list[str] | None = None,
|
|
1048
|
+
archived: bool | None = None,
|
|
1049
1049
|
) -> dict[str, Any]:
|
|
1050
1050
|
"""
|
|
1051
1051
|
|
|
@@ -1103,24 +1103,24 @@ class MarketingApi(APISegmentBase):
|
|
|
1103
1103
|
def create_email_marketing_campaign(
|
|
1104
1104
|
self,
|
|
1105
1105
|
name: str,
|
|
1106
|
-
feedbackSurveyId:
|
|
1107
|
-
rssData:
|
|
1108
|
-
subject:
|
|
1109
|
-
testing:
|
|
1110
|
-
publishDate:
|
|
1111
|
-
language:
|
|
1112
|
-
businessUnitId:
|
|
1113
|
-
content:
|
|
1114
|
-
webversion:
|
|
1115
|
-
archived:
|
|
1116
|
-
subscriptionDetails:
|
|
1117
|
-
activeDomain:
|
|
1118
|
-
campaign:
|
|
1119
|
-
from_:
|
|
1120
|
-
state:
|
|
1121
|
-
to:
|
|
1122
|
-
subcategory:
|
|
1123
|
-
sendOnPublish:
|
|
1106
|
+
feedbackSurveyId: str | None = None,
|
|
1107
|
+
rssData: dict[str, Any] | None = None,
|
|
1108
|
+
subject: str | None = None,
|
|
1109
|
+
testing: dict[str, Any] | None = None,
|
|
1110
|
+
publishDate: str | None = None,
|
|
1111
|
+
language: str | None = None,
|
|
1112
|
+
businessUnitId: str | None = None,
|
|
1113
|
+
content: dict[str, Any] | None = None,
|
|
1114
|
+
webversion: dict[str, Any] | None = None,
|
|
1115
|
+
archived: bool | None = None,
|
|
1116
|
+
subscriptionDetails: dict[str, Any] | None = None,
|
|
1117
|
+
activeDomain: str | None = None,
|
|
1118
|
+
campaign: str | None = None,
|
|
1119
|
+
from_: dict[str, Any] | None = None,
|
|
1120
|
+
state: str | None = None,
|
|
1121
|
+
to: dict[str, Any] | None = None,
|
|
1122
|
+
subcategory: str | None = None,
|
|
1123
|
+
sendOnPublish: bool | None = None,
|
|
1124
1124
|
) -> dict[str, Any]:
|
|
1125
1125
|
"""
|
|
1126
1126
|
|
|
@@ -1251,9 +1251,9 @@ class MarketingApi(APISegmentBase):
|
|
|
1251
1251
|
def get_email_by_id_marketing(
|
|
1252
1252
|
self,
|
|
1253
1253
|
emailId: str,
|
|
1254
|
-
includeStats:
|
|
1255
|
-
includedProperties:
|
|
1256
|
-
archived:
|
|
1254
|
+
includeStats: bool | None = None,
|
|
1255
|
+
includedProperties: list[str] | None = None,
|
|
1256
|
+
archived: bool | None = None,
|
|
1257
1257
|
) -> dict[str, Any]:
|
|
1258
1258
|
"""
|
|
1259
1259
|
|
|
@@ -1290,7 +1290,7 @@ class MarketingApi(APISegmentBase):
|
|
|
1290
1290
|
return self._handle_response(response)
|
|
1291
1291
|
|
|
1292
1292
|
def delete_email_by_id_marketing(
|
|
1293
|
-
self, emailId: str, archived:
|
|
1293
|
+
self, emailId: str, archived: bool | None = None
|
|
1294
1294
|
) -> Any:
|
|
1295
1295
|
"""
|
|
1296
1296
|
|
|
@@ -1319,25 +1319,25 @@ class MarketingApi(APISegmentBase):
|
|
|
1319
1319
|
def patch_email_by_id(
|
|
1320
1320
|
self,
|
|
1321
1321
|
emailId: str,
|
|
1322
|
-
archived:
|
|
1323
|
-
rssData:
|
|
1324
|
-
subject:
|
|
1325
|
-
testing:
|
|
1326
|
-
publishDate:
|
|
1327
|
-
language:
|
|
1328
|
-
businessUnitId:
|
|
1329
|
-
content:
|
|
1330
|
-
webversion:
|
|
1331
|
-
archived_body:
|
|
1332
|
-
subscriptionDetails:
|
|
1333
|
-
activeDomain:
|
|
1334
|
-
name:
|
|
1335
|
-
campaign:
|
|
1336
|
-
from_:
|
|
1337
|
-
state:
|
|
1338
|
-
to:
|
|
1339
|
-
subcategory:
|
|
1340
|
-
sendOnPublish:
|
|
1322
|
+
archived: bool | None = None,
|
|
1323
|
+
rssData: dict[str, Any] | None = None,
|
|
1324
|
+
subject: str | None = None,
|
|
1325
|
+
testing: dict[str, Any] | None = None,
|
|
1326
|
+
publishDate: str | None = None,
|
|
1327
|
+
language: str | None = None,
|
|
1328
|
+
businessUnitId: str | None = None,
|
|
1329
|
+
content: dict[str, Any] | None = None,
|
|
1330
|
+
webversion: dict[str, Any] | None = None,
|
|
1331
|
+
archived_body: bool | None = None,
|
|
1332
|
+
subscriptionDetails: dict[str, Any] | None = None,
|
|
1333
|
+
activeDomain: str | None = None,
|
|
1334
|
+
name: str | None = None,
|
|
1335
|
+
campaign: str | None = None,
|
|
1336
|
+
from_: dict[str, Any] | None = None,
|
|
1337
|
+
state: str | None = None,
|
|
1338
|
+
to: dict[str, Any] | None = None,
|
|
1339
|
+
subcategory: str | None = None,
|
|
1340
|
+
sendOnPublish: bool | None = None,
|
|
1341
1341
|
) -> dict[str, Any]:
|
|
1342
1342
|
"""
|
|
1343
1343
|
|