universal-mcp-applications 0.1.25__py3-none-any.whl → 0.1.32__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.
- universal_mcp/applications/google_docs/app.py +6 -2
- universal_mcp/applications/google_gemini/app.py +3 -3
- universal_mcp/applications/google_sheet/app.py +6 -2
- universal_mcp/applications/linkedin/README.md +16 -4
- universal_mcp/applications/linkedin/app.py +748 -153
- universal_mcp/applications/onedrive/README.md +24 -0
- universal_mcp/applications/onedrive/__init__.py +1 -0
- universal_mcp/applications/onedrive/app.py +338 -0
- universal_mcp/applications/outlook/app.py +253 -209
- universal_mcp/applications/reddit/app.py +30 -47
- universal_mcp/applications/scraper/app.py +304 -290
- universal_mcp/applications/sharepoint/README.md +16 -14
- universal_mcp/applications/sharepoint/app.py +267 -154
- universal_mcp/applications/slack/app.py +31 -0
- {universal_mcp_applications-0.1.25.dist-info → universal_mcp_applications-0.1.32.dist-info}/METADATA +2 -2
- {universal_mcp_applications-0.1.25.dist-info → universal_mcp_applications-0.1.32.dist-info}/RECORD +18 -18
- universal_mcp/applications/unipile/README.md +0 -28
- universal_mcp/applications/unipile/__init__.py +0 -1
- universal_mcp/applications/unipile/app.py +0 -1077
- {universal_mcp_applications-0.1.25.dist-info → universal_mcp_applications-0.1.32.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.25.dist-info → universal_mcp_applications-0.1.32.dist-info}/licenses/LICENSE +0 -0
|
@@ -11,7 +11,7 @@ class GoogleDocsApp(APIApplication):
|
|
|
11
11
|
|
|
12
12
|
def create_document(self, title: str) -> dict[str, Any]:
|
|
13
13
|
"""
|
|
14
|
-
Creates a blank Google Document with a specified title by sending a POST request to the Google Docs API. The function returns a dictionary containing the new document's metadata, including the unique document ID required by other functions for subsequent modifications or retrieval.
|
|
14
|
+
Creates a blank Google Document with a specified title by sending a POST request to the Google Docs API. The function returns a dictionary containing the new document's metadata, including the unique document ID required by other functions for subsequent modifications or retrieval. Note that you need to call other google_docs functions (e.g. `google_docs__insert_text`) to actually add content after creating the document.
|
|
15
15
|
|
|
16
16
|
Args:
|
|
17
17
|
title: The title for the new Google Document to be created.
|
|
@@ -30,7 +30,11 @@ class GoogleDocsApp(APIApplication):
|
|
|
30
30
|
document_data = {"title": title}
|
|
31
31
|
response = self._post(url, data=document_data)
|
|
32
32
|
response.raise_for_status()
|
|
33
|
-
|
|
33
|
+
payload = response.json()
|
|
34
|
+
payload["Note"] = (
|
|
35
|
+
"You must load and call other google docs content functions (like google_docs__insert_text)"
|
|
36
|
+
)
|
|
37
|
+
return payload
|
|
34
38
|
|
|
35
39
|
def get_document(self, document_id: str) -> dict[str, Any]:
|
|
36
40
|
"""
|
|
@@ -62,9 +62,9 @@ class GoogleGeminiApp(APIApplication):
|
|
|
62
62
|
async def generate_image(
|
|
63
63
|
self,
|
|
64
64
|
prompt: Annotated[str, "The prompt to generate image from"],
|
|
65
|
-
images: Annotated[list[str], "The reference
|
|
65
|
+
images: Annotated[list[str], "The reference image URLs"] | None = None,
|
|
66
66
|
model: str = "gemini-2.5-flash-image-preview",
|
|
67
|
-
) ->
|
|
67
|
+
) -> dict:
|
|
68
68
|
"""
|
|
69
69
|
Generates an image based on a text prompt and an optional reference image using the Google Gemini model.
|
|
70
70
|
This tool is ideal for creating visual content or modifying existing images based on natural language descriptions.
|
|
@@ -72,7 +72,7 @@ class GoogleGeminiApp(APIApplication):
|
|
|
72
72
|
|
|
73
73
|
Args:
|
|
74
74
|
prompt (str): The descriptive text prompt to guide the image generation. For example: "A futuristic city at sunset with flying cars."
|
|
75
|
-
images (list[str], optional): An optional list of
|
|
75
|
+
images (list[str], optional): An optional list of URLs to reference images. These images will be used as a basis for the generation.
|
|
76
76
|
model (str, optional): The Gemini model to use for image generation. Defaults to "gemini-2.5-flash-image-preview".
|
|
77
77
|
|
|
78
78
|
Returns:
|
|
@@ -21,7 +21,7 @@ class GoogleSheetApp(APIApplication):
|
|
|
21
21
|
|
|
22
22
|
def create_spreadsheet(self, title: str) -> dict[str, Any]:
|
|
23
23
|
"""
|
|
24
|
-
Creates a new, blank Google Spreadsheet file with a specified title. This function generates a completely new document, unlike `add_sheet` which adds a worksheet (tab) to an existing spreadsheet. It returns the API response containing the new spreadsheet's metadata.
|
|
24
|
+
Creates a new, blank Google Spreadsheet file with a specified title. This function generates a completely new document, unlike `add_sheet` which adds a worksheet (tab) to an existing spreadsheet. It returns the API response containing the new spreadsheet's metadata. Note that you need to call other google_sheet functions (e.g. `google_sheet__write_values_to_sheet`) to actually add content after creating the spreadsheet.
|
|
25
25
|
|
|
26
26
|
Args:
|
|
27
27
|
title: String representing the desired title for the new spreadsheet
|
|
@@ -39,7 +39,11 @@ class GoogleSheetApp(APIApplication):
|
|
|
39
39
|
url = self.base_url
|
|
40
40
|
spreadsheet_data = {"properties": {"title": title}}
|
|
41
41
|
response = self._post(url, data=spreadsheet_data)
|
|
42
|
-
|
|
42
|
+
payload = self._handle_response(response)
|
|
43
|
+
payload["Note"] = (
|
|
44
|
+
"You must load and call other google_sheet content functions (like `google_sheet__write_values_to_sheet`)"
|
|
45
|
+
)
|
|
46
|
+
return payload
|
|
43
47
|
|
|
44
48
|
def get_spreadsheet_metadata(self, spreadsheetId: str) -> dict[str, Any]:
|
|
45
49
|
"""
|
|
@@ -9,7 +9,19 @@ This is automatically generated from OpenAPI schema for the LinkedinApp API.
|
|
|
9
9
|
|
|
10
10
|
| Tool | Description |
|
|
11
11
|
|------|-------------|
|
|
12
|
-
| `
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
12
|
+
| `list_all_chats` | Retrieves a paginated list of all chat conversations across linked accounts. Supports filtering by unread status, date range, and account provider, distinguishing it from functions listing messages within a single chat. |
|
|
13
|
+
| `list_chat_messages` | Retrieves messages from a specific chat identified by `chat_id`. Supports pagination and filtering by date or sender. Unlike `list_all_messages`, which fetches from all chats, this function targets the contents of a single conversation. |
|
|
14
|
+
| `send_chat_message` | Sends a text message to a specific chat conversation using its `chat_id`. This function creates a new message via a POST request, distinguishing it from read-only functions like `list_chat_messages`. It returns the API's response, which typically confirms the successful creation of the message. |
|
|
15
|
+
| `retrieve_chat` | Retrieves a single chat's details using its Unipile or provider-specific ID. This function is distinct from `list_all_chats`, which returns a collection, by targeting one specific conversation. |
|
|
16
|
+
| `list_all_messages` | Retrieves a paginated list of messages from all chats associated with the account. Unlike `list_chat_messages` which targets a specific conversation, this function provides a global message view, filterable by sender and date range. |
|
|
17
|
+
| `list_all_accounts` | Retrieves a paginated list of all social media accounts linked to the Unipile service. This is crucial for obtaining the `account_id` required by other methods to specify which user account should perform an action, like sending a message or retrieving user-specific posts. |
|
|
18
|
+
| `list_profile_posts` | Retrieves a paginated list of posts from a specific user or company profile using their provider ID. An authorizing `account_id` is required, and the `is_company` flag must specify the entity type, distinguishing this from `retrieve_post` which fetches a single post by its own ID. |
|
|
19
|
+
| `retrieve_own_profile` | Retrieves the profile details for the user associated with the Unipile account. This function targets the API's 'me' endpoint to fetch the authenticated user's profile, distinct from `retrieve_user_profile` which fetches profiles of other users by their public identifier. |
|
|
20
|
+
| `retrieve_user_profile` | Retrieves a specific LinkedIn user's profile using their public or internal ID. Unlike `retrieve_own_profile`, which fetches the authenticated user's details, this function targets and returns data for any specified third-party user profile on the platform. |
|
|
21
|
+
| `retrieve_post` | Fetches a specific post's details by its unique ID. Unlike `list_profile_posts`, which retrieves a collection of posts from a user or company profile, this function targets one specific post and returns its full object. |
|
|
22
|
+
| `list_post_comments` | Fetches comments for a specific post. Providing an optional `comment_id` retrieves threaded replies instead of top-level comments. This read-only operation contrasts with `create_post_comment`, which publishes new comments, and `list_content_reactions`, which retrieves 'likes'. |
|
|
23
|
+
| `create_post` | Publishes a new top-level post from the account, including text, user mentions, and an external link. This function creates original content, distinguishing it from `create_post_comment` which adds replies to existing posts. |
|
|
24
|
+
| `list_content_reactions` | Retrieves a paginated list of reactions for a given post or, optionally, a specific comment. This read-only operation uses the account for the request, distinguishing it from the `create_reaction` function which adds new reactions. |
|
|
25
|
+
| `create_post_comment` | Publishes a comment on a specified post. By providing an optional `comment_id`, it creates a threaded reply to an existing comment instead of a new top-level one. This function's dual capability distinguishes it from `list_post_comments`, which only retrieves comments and their replies. |
|
|
26
|
+
| `create_reaction` | Adds a specified reaction (e.g., 'like', 'love') to a LinkedIn post or, optionally, to a specific comment. This function performs a POST request to create the reaction, differentiating it from `list_content_reactions` which only retrieves existing ones. |
|
|
27
|
+
| `search` | Performs a comprehensive LinkedIn search for people, companies, posts, or jobs using keywords. |
|