universal-mcp-applications 0.1.13__py3-none-any.whl → 0.1.14__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of universal-mcp-applications might be problematic. Click here for more details.
- universal_mcp/applications/aws_s3/app.py +71 -71
- universal_mcp/applications/calendly/app.py +199 -199
- universal_mcp/applications/canva/app.py +189 -189
- universal_mcp/applications/domain_checker/app.py +31 -24
- universal_mcp/applications/e2b/app.py +6 -7
- universal_mcp/applications/elevenlabs/app.py +24 -20
- universal_mcp/applications/exa/app.py +25 -20
- universal_mcp/applications/falai/app.py +44 -41
- universal_mcp/applications/file_system/app.py +20 -12
- universal_mcp/applications/firecrawl/app.py +46 -47
- universal_mcp/applications/fireflies/app.py +79 -79
- universal_mcp/applications/fpl/app.py +83 -74
- universal_mcp/applications/github/README.md +0 -1028
- universal_mcp/applications/github/app.py +55 -50227
- universal_mcp/applications/google_calendar/app.py +63 -65
- universal_mcp/applications/google_docs/app.py +78 -78
- universal_mcp/applications/google_drive/app.py +361 -440
- universal_mcp/applications/google_gemini/app.py +34 -17
- universal_mcp/applications/google_mail/app.py +117 -117
- universal_mcp/applications/google_searchconsole/app.py +41 -47
- universal_mcp/applications/google_sheet/app.py +157 -164
- universal_mcp/applications/http_tools/app.py +16 -16
- universal_mcp/applications/linkedin/app.py +26 -31
- universal_mcp/applications/ms_teams/app.py +190 -190
- universal_mcp/applications/openai/app.py +55 -56
- universal_mcp/applications/outlook/app.py +57 -57
- universal_mcp/applications/perplexity/app.py +17 -17
- universal_mcp/applications/reddit/app.py +225 -4053
- universal_mcp/applications/replicate/app.py +40 -42
- universal_mcp/applications/resend/app.py +157 -154
- universal_mcp/applications/scraper/app.py +24 -24
- universal_mcp/applications/serpapi/app.py +18 -20
- universal_mcp/applications/sharepoint/app.py +46 -36
- universal_mcp/applications/slack/app.py +66 -66
- universal_mcp/applications/tavily/app.py +7 -7
- universal_mcp/applications/twitter/api_segments/compliance_api.py +17 -20
- universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +35 -40
- universal_mcp/applications/twitter/api_segments/dm_events_api.py +18 -21
- universal_mcp/applications/twitter/api_segments/likes_api.py +19 -22
- universal_mcp/applications/twitter/api_segments/lists_api.py +59 -68
- universal_mcp/applications/twitter/api_segments/spaces_api.py +36 -42
- universal_mcp/applications/twitter/api_segments/trends_api.py +7 -8
- universal_mcp/applications/twitter/api_segments/tweets_api.py +159 -185
- universal_mcp/applications/twitter/api_segments/usage_api.py +5 -6
- universal_mcp/applications/twitter/api_segments/users_api.py +230 -264
- universal_mcp/applications/unipile/app.py +99 -105
- universal_mcp/applications/whatsapp/app.py +86 -82
- universal_mcp/applications/whatsapp_business/app.py +147 -147
- universal_mcp/applications/youtube/app.py +290 -290
- universal_mcp/applications/zenquotes/app.py +6 -6
- {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.14.dist-info}/METADATA +1 -1
- {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.14.dist-info}/RECORD +54 -54
- {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.14.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.13.dist-info → universal_mcp_applications-0.1.14.dist-info}/licenses/LICENSE +0 -0
|
@@ -38,13 +38,13 @@ class HttpToolsApp(APIApplication):
|
|
|
38
38
|
self, url: str, headers: dict | None = None, query_params: dict | None = None
|
|
39
39
|
):
|
|
40
40
|
"""
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
Executes an HTTP GET request to a given URL with optional headers and query parameters. It handles HTTP errors by raising an exception and processes the response, returning parsed JSON or a dictionary with the raw text and status details if JSON is unavailable.
|
|
42
|
+
|
|
43
43
|
Args:
|
|
44
44
|
url (str): The URL to send the GET request to. Example: "https://api.example.com/data"
|
|
45
45
|
headers (dict, optional): Optional HTTP headers to include in the request. Example: {"Authorization": "Bearer token"}
|
|
46
46
|
query_params (dict, optional): Optional dictionary of query parameters to include in the request. Example: {"page": 1}
|
|
47
|
-
|
|
47
|
+
|
|
48
48
|
Returns:
|
|
49
49
|
dict: The JSON response from the GET request, or text if not JSON.
|
|
50
50
|
Tags:
|
|
@@ -61,13 +61,13 @@ class HttpToolsApp(APIApplication):
|
|
|
61
61
|
self, url: str, headers: dict | None = None, body: dict | None = None
|
|
62
62
|
):
|
|
63
63
|
"""
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
Sends an HTTP POST request to a URL with an optional JSON body and headers. It returns the parsed JSON response or raw text if parsing fails and raises an exception for HTTP errors. It is used for creating new resources, unlike http_get which retrieves data.
|
|
65
|
+
|
|
66
66
|
Args:
|
|
67
67
|
url (str): The URL to send the POST request to. Example: "https://api.example.com/data"
|
|
68
68
|
headers (dict, optional): Optional HTTP headers to include in the request. Example: {"Content-Type": "application/json"}
|
|
69
69
|
body (dict, optional): Optional JSON body to include in the request. Example: {"name": "John"}
|
|
70
|
-
|
|
70
|
+
|
|
71
71
|
Returns:
|
|
72
72
|
dict: The JSON response from the POST request, or text if not JSON.
|
|
73
73
|
Tags:
|
|
@@ -80,13 +80,13 @@ class HttpToolsApp(APIApplication):
|
|
|
80
80
|
|
|
81
81
|
def http_put(self, url: str, headers: dict | None = None, body: dict | None = None):
|
|
82
82
|
"""
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
Performs an HTTP PUT request to update or replace a resource at a specified URL. It accepts an optional JSON body and headers, raises an exception for error responses, and returns the parsed JSON response or a dictionary with the raw text and status details.
|
|
84
|
+
|
|
85
85
|
Args:
|
|
86
86
|
url (str): The URL to send the PUT request to. Example: "https://api.example.com/data/1"
|
|
87
87
|
headers (dict, optional): Optional HTTP headers to include in the request. Example: {"Authorization": "Bearer token"}
|
|
88
88
|
body (dict, optional): Optional JSON body to include in the request. Example: {"name": "Jane"}
|
|
89
|
-
|
|
89
|
+
|
|
90
90
|
Returns:
|
|
91
91
|
dict: The JSON response from the PUT request, or text if not JSON.
|
|
92
92
|
Tags:
|
|
@@ -101,20 +101,20 @@ class HttpToolsApp(APIApplication):
|
|
|
101
101
|
self, url: str, headers: dict | None = None, body: dict | None = None
|
|
102
102
|
):
|
|
103
103
|
"""
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
Sends an HTTP DELETE request to a URL with optional headers and a JSON body. Raises an exception for HTTP error statuses and returns the parsed JSON response. If the response isn't JSON, it returns the text content, status code, and headers.
|
|
105
|
+
|
|
106
106
|
Args:
|
|
107
107
|
url (str): The URL to send the DELETE request to. Example: "https://api.example.com/data/1"
|
|
108
108
|
headers (dict, optional): Optional HTTP headers to include in the request. Example: {"Authorization": "Bearer token"}
|
|
109
109
|
body (dict, optional): Optional JSON body to include in the request. Example: {"reason": "obsolete"}
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
Returns:
|
|
112
112
|
dict: The JSON response from the DELETE request, or text if not JSON.
|
|
113
113
|
Tags:
|
|
114
114
|
delete, important
|
|
115
115
|
"""
|
|
116
116
|
logger.debug(f"DELETE request to {url} with headers {headers} and body {body}")
|
|
117
|
-
response = httpx.delete(url,
|
|
117
|
+
response = httpx.delete(url, headers=headers)
|
|
118
118
|
response.raise_for_status()
|
|
119
119
|
return self._handle_response(response)
|
|
120
120
|
|
|
@@ -122,13 +122,13 @@ class HttpToolsApp(APIApplication):
|
|
|
122
122
|
self, url: str, headers: dict | None = None, body: dict | None = None
|
|
123
123
|
):
|
|
124
124
|
"""
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
Sends an HTTP PATCH request to apply partial modifications to a resource at a given URL. It accepts optional headers and a JSON body. It returns the parsed JSON response, or the raw text with status details if the response is not valid JSON.
|
|
126
|
+
|
|
127
127
|
Args:
|
|
128
128
|
url (str): The URL to send the PATCH request to. Example: "https://api.example.com/data/1"
|
|
129
129
|
headers (dict, optional): Optional HTTP headers to include in the request. Example: {"Authorization": "Bearer token"}
|
|
130
130
|
body (dict, optional): Optional JSON body to include in the request. Example: {"status": "active"}
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
Returns:
|
|
133
133
|
dict: The JSON response from the PATCH request, or text if not JSON.
|
|
134
134
|
Tags:
|
|
@@ -37,31 +37,26 @@ class LinkedinApp(APIApplication):
|
|
|
37
37
|
is_reshare_disabled: bool = False,
|
|
38
38
|
) -> dict[str, str]:
|
|
39
39
|
"""
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
Publishes a new text post to a specified LinkedIn author's feed (person or organization). It requires commentary and allows configuring visibility, distribution, and lifecycle state. Upon success, it returns the unique URN and a direct URL for the newly created post, distinguishing it from update/delete operations.
|
|
41
|
+
|
|
42
42
|
Args:
|
|
43
43
|
commentary (str): The user generated commentary for the post. Supports mentions using format "@[Entity Name](urn:li:organization:123456)" and hashtags using "#keyword". Text linking to annotated entities must match the name exactly (case sensitive). For member mentions, partial name matching is supported.
|
|
44
|
-
|
|
45
44
|
author (str): The URN of the author creating the post. Use "urn:li:person:{id}" for individual posts or "urn:li:organization:{id}" for company page posts. Example: "urn:li:person:wGgGaX_xbB" or "urn:li:organization:2414183"
|
|
46
|
-
|
|
47
45
|
visibility (str): Controls who can view the post. Use "PUBLIC" for posts viewable by anyone on LinkedIn or "CONNECTIONS" for posts viewable by 1st-degree connections only. Defaults to "PUBLIC".
|
|
48
|
-
|
|
49
46
|
distribution (dict[str, Any], optional): Distribution settings for the post. If not provided, defaults to {"feedDistribution": "MAIN_FEED", "targetEntities": [], "thirdPartyDistributionChannels": []}. feedDistribution controls where the post appears in feeds, targetEntities specifies entities to target, and thirdPartyDistributionChannels defines external distribution channels.
|
|
50
|
-
|
|
51
47
|
lifecycle_state (str): The state of the post. Use "PUBLISHED" for live posts accessible to all entities, "DRAFT" for posts accessible only to author, "PUBLISH_REQUESTED" for posts submitted but processing, or "PUBLISH_FAILED" for posts that failed to publish. Defaults to "PUBLISHED".
|
|
52
|
-
|
|
53
48
|
is_reshare_disabled (bool): Whether resharing is disabled by the author. Set to True to prevent other users from resharing this post, or False to allow resharing. Defaults to False.
|
|
54
|
-
|
|
49
|
+
|
|
55
50
|
Returns:
|
|
56
51
|
dict[str, str]: Dictionary containing the post ID with key "post_id". Example: {"post_id": "urn:li:share:6844785523593134080"}
|
|
57
|
-
|
|
52
|
+
|
|
58
53
|
Raises:
|
|
59
54
|
ValueError: If required parameters (commentary, author) are missing or if x-restli-id header is not found
|
|
60
55
|
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body
|
|
61
|
-
|
|
56
|
+
|
|
62
57
|
Notes:
|
|
63
58
|
Requires LinkedIn API permissions: w_member_social (for individual posts) or w_organization_social (for company posts). All requests require headers: X-Restli-Protocol-Version: 2.0.0 and LinkedIn-Version: 202507. Rate limits: 150 requests per day per member, 100,000 requests per day per application. The Posts API replaces the deprecated ugcPosts API.
|
|
64
|
-
|
|
59
|
+
|
|
65
60
|
Tags:
|
|
66
61
|
posts, important
|
|
67
62
|
"""
|
|
@@ -102,17 +97,17 @@ class LinkedinApp(APIApplication):
|
|
|
102
97
|
"post_url": f"https://www.linkedin.com/feed/update/{post_id}",
|
|
103
98
|
}
|
|
104
99
|
|
|
105
|
-
def
|
|
100
|
+
def get_authenticated_user_profile(self) -> dict[str, Any]:
|
|
106
101
|
"""
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
Retrieves the authenticated user's profile information from the LinkedIn `/v2/userinfo` endpoint. It returns a dictionary containing the user's basic profile details, such as name and email, using the credentials from the active integration.
|
|
103
|
+
|
|
109
104
|
Returns:
|
|
110
105
|
dict[str, Any]: Dictionary containing your LinkedIn profile information.
|
|
111
|
-
|
|
106
|
+
|
|
112
107
|
Raises:
|
|
113
108
|
ValueError: If integration is not found
|
|
114
109
|
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body
|
|
115
|
-
|
|
110
|
+
|
|
116
111
|
Tags:
|
|
117
112
|
profile, info
|
|
118
113
|
"""
|
|
@@ -128,19 +123,19 @@ class LinkedinApp(APIApplication):
|
|
|
128
123
|
|
|
129
124
|
def delete_post(self, post_urn: str) -> dict[str, str]:
|
|
130
125
|
"""
|
|
131
|
-
|
|
132
|
-
|
|
126
|
+
Deletes a specific LinkedIn post identified by its unique Uniform Resource Name (URN). The function sends a DELETE request to the LinkedIn API and returns a confirmation dictionary with the deletion status upon a successful (HTTP 204) response.
|
|
127
|
+
|
|
133
128
|
Args:
|
|
134
129
|
post_urn (str): The URN of the post to delete. Can be either a ugcPostUrn (urn:li:ugcPost:{id}) or shareUrn (urn:li:share:{id}).
|
|
135
|
-
|
|
130
|
+
|
|
136
131
|
Returns:
|
|
137
132
|
dict[str, str]: Dictionary containing the deletion status. Example: {"status": "deleted", "post_urn": "urn:li:share:6844785523593134080"}
|
|
138
|
-
|
|
133
|
+
|
|
139
134
|
Raises:
|
|
140
135
|
ValueError: If required parameter (post_urn) is missing or if integration is not found
|
|
141
136
|
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body
|
|
142
|
-
|
|
143
|
-
|
|
137
|
+
|
|
138
|
+
|
|
144
139
|
Tags:
|
|
145
140
|
posts, important
|
|
146
141
|
"""
|
|
@@ -168,8 +163,8 @@ class LinkedinApp(APIApplication):
|
|
|
168
163
|
ad_context_status: str | None = None,
|
|
169
164
|
) -> dict[str, str]:
|
|
170
165
|
"""
|
|
171
|
-
|
|
172
|
-
|
|
166
|
+
Modifies an existing LinkedIn post identified by its URN. This function performs a partial update, allowing changes to specific attributes such as commentary, call-to-action details, lifecycle state, or sponsored ad context. It returns a confirmation dictionary upon successful completion of the PATCH request.
|
|
167
|
+
|
|
173
168
|
Args:
|
|
174
169
|
post_urn (str): The URN of the post to update. Can be either a ugcPostUrn (urn:li:ugcPost:{id}) or shareUrn (urn:li:share:{id}).
|
|
175
170
|
commentary (str | None, optional): The user generated commentary of this post in little format.
|
|
@@ -178,17 +173,17 @@ class LinkedinApp(APIApplication):
|
|
|
178
173
|
lifecycle_state (str | None, optional): The state of the content. Can be DRAFT, PUBLISHED, PUBLISH_REQUESTED, or PUBLISH_FAILED.
|
|
179
174
|
ad_context_name (str | None, optional): Update the name of the sponsored content.
|
|
180
175
|
ad_context_status (str | None, optional): Update the status of the sponsored content.
|
|
181
|
-
|
|
176
|
+
|
|
182
177
|
Returns:
|
|
183
178
|
dict[str, str]: Dictionary containing the update status. Example: {"status": "updated", "post_urn": "urn:li:share:6844785523593134080"}
|
|
184
|
-
|
|
179
|
+
|
|
185
180
|
Raises:
|
|
186
181
|
ValueError: If required parameter (post_urn) is missing or if integration is not found
|
|
187
182
|
HTTPStatusError: Raised when the API request fails with detailed error information including status code and response body
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
192
187
|
Tags:
|
|
193
188
|
posts, update, important
|
|
194
189
|
"""
|
|
@@ -237,7 +232,7 @@ class LinkedinApp(APIApplication):
|
|
|
237
232
|
"""
|
|
238
233
|
return [
|
|
239
234
|
self.create_post,
|
|
240
|
-
self.
|
|
235
|
+
self.get_authenticated_user_profile,
|
|
241
236
|
self.delete_post,
|
|
242
237
|
self.update_post,
|
|
243
238
|
]
|