universal-mcp-applications 0.1.29__py3-none-any.whl → 0.1.30rc1__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/linkedin/app.py +626 -152
- universal_mcp/applications/scraper/app.py +2 -2
- universal_mcp/applications/scraper/scraper_testers.py +17 -0
- {universal_mcp_applications-0.1.29.dist-info → universal_mcp_applications-0.1.30rc1.dist-info}/METADATA +1 -1
- {universal_mcp_applications-0.1.29.dist-info → universal_mcp_applications-0.1.30rc1.dist-info}/RECORD +7 -9
- universal_mcp/applications/unipile/README.md +0 -28
- universal_mcp/applications/unipile/__init__.py +0 -1
- universal_mcp/applications/unipile/app.py +0 -768
- {universal_mcp_applications-0.1.29.dist-info → universal_mcp_applications-0.1.30rc1.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.29.dist-info → universal_mcp_applications-0.1.30rc1.dist-info}/licenses/LICENSE +0 -0
|
@@ -8,7 +8,7 @@ from loguru import logger
|
|
|
8
8
|
from universal_mcp.applications.application import APIApplication
|
|
9
9
|
from universal_mcp.integrations import Integration
|
|
10
10
|
|
|
11
|
-
from universal_mcp.applications.
|
|
11
|
+
from universal_mcp.applications.linkedin import LinkedinApp
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class ScraperApp(APIApplication):
|
|
@@ -22,7 +22,7 @@ class ScraperApp(APIApplication):
|
|
|
22
22
|
if self.integration:
|
|
23
23
|
credentials = self.integration.get_credentials()
|
|
24
24
|
self.account_id = credentials.get("account_id")
|
|
25
|
-
self._unipile_app =
|
|
25
|
+
self._unipile_app = LinkedinApp(integration=self.integration)
|
|
26
26
|
else:
|
|
27
27
|
logger.warning("Integration not found")
|
|
28
28
|
self.account_id = None
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from universal_mcp.applications.scraper import ScraperApp
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
from universal_mcp.agentr import AgentrClient, AgentrRegistry, AgentrIntegration
|
|
5
|
+
|
|
6
|
+
client = AgentrClient(api_key="key-1f5983ba-f433-4337-b652-dc40f8712660")
|
|
7
|
+
registry = AgentrRegistry(client=client)
|
|
8
|
+
|
|
9
|
+
integration = AgentrIntegration(name="scraper",client=client)
|
|
10
|
+
|
|
11
|
+
scraper = ScraperApp(integration=integration)
|
|
12
|
+
|
|
13
|
+
if __name__ == "__main__":
|
|
14
|
+
print(scraper.linkedin_search(keywords="ai", limit=2, category="jobs"))
|
|
15
|
+
# print(scraper.linkedin_retrieve_profile(identifier="ACoAAAEkwwAB9KEc2TrQgOLEQ-vzRyZeCDyc6DQ"))
|
|
16
|
+
# print(scraper.linkedin_list_profile_posts(identifier="ACoAAAEkwwAB9KEc2TrQgOLEQ-vzRyZeCDyc6DQ", limit=2))
|
|
17
|
+
# print(scraper.linkedin_list_post_comments(post_id="urn:li:ugcPost:7386500271624896512"))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: universal-mcp-applications
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.30rc1
|
|
4
4
|
Summary: A Universal MCP Application: universal_mcp_applications
|
|
5
5
|
Project-URL: Homepage, https://github.com/universal-mcp/applications
|
|
6
6
|
Project-URL: Repository, https://github.com/universal-mcp/applications
|
|
@@ -146,7 +146,7 @@ universal_mcp/applications/klaviyo/__init__.py,sha256=YS2GhW7my_I1tfyLlxlkeTFmlz
|
|
|
146
146
|
universal_mcp/applications/klaviyo/app.py,sha256=xHQxEZFVIWPCBmL6YoYxuVREibwPRH21izw0psmOzFc,423692
|
|
147
147
|
universal_mcp/applications/linkedin/README.md,sha256=SYVyzNuADMzYz3ElsA_46qy1tGWlI32WGUfLQ-3PITE,1458
|
|
148
148
|
universal_mcp/applications/linkedin/__init__.py,sha256=Yj-713vb4ZYykIlXlwOkKkIXIOB3opCW8wvp_CCqlKk,29
|
|
149
|
-
universal_mcp/applications/linkedin/app.py,sha256=
|
|
149
|
+
universal_mcp/applications/linkedin/app.py,sha256=jiKf5A6BwTKeShU0JcSd4Q1iTi282tUqSREyhSPsIIM,27304
|
|
150
150
|
universal_mcp/applications/mailchimp/README.md,sha256=xOR32HA8h-WMS9ntcBxyllM3UOBYiyvZ6tJBHlAuU7k,33802
|
|
151
151
|
universal_mcp/applications/mailchimp/__init__.py,sha256=wmXVl-NJyTNkFT5db29OZmeiLWAGu9jXwdZC5o2jZBw,30
|
|
152
152
|
universal_mcp/applications/mailchimp/app.py,sha256=_a6iByjDK1SuM3UoT5lTokptdEryUzrS8JsYNLCTwi4,466723
|
|
@@ -197,7 +197,8 @@ universal_mcp/applications/rocketlane/__init__.py,sha256=jl3PjnTvPdjnbFXJgLywSlE
|
|
|
197
197
|
universal_mcp/applications/rocketlane/app.py,sha256=Ae2hQFI5PylCLtNPJkTqWMLGsLx5fDd4wRFDhxTzTXQ,240689
|
|
198
198
|
universal_mcp/applications/scraper/README.md,sha256=JUNLshHABs4T1f24nvQeee62YIElSkxpU-zs2kuS0Gw,1497
|
|
199
199
|
universal_mcp/applications/scraper/__init__.py,sha256=W5Buzq8QbetUQm5m9xXCHeWcvVObU2vZ4xbvYtZImJo,28
|
|
200
|
-
universal_mcp/applications/scraper/app.py,sha256=-
|
|
200
|
+
universal_mcp/applications/scraper/app.py,sha256=-Dgaz_7vykhtdA1BEMHZzyuQMAG-dNsKNiaon-qp2Js,7000
|
|
201
|
+
universal_mcp/applications/scraper/scraper_testers.py,sha256=4OXq1ga7YeM5MmR8J78XdVKWjBX6qiDhBWh04WLXcHY,778
|
|
201
202
|
universal_mcp/applications/semanticscholar/README.md,sha256=JpLY_698pvstgoNfQ5Go8C8ehQ-o68uFDX5kr86upK0,2834
|
|
202
203
|
universal_mcp/applications/semanticscholar/__init__.py,sha256=eR36chrc0pbBsSE1GadvmQH0OmtKnSC91xbE7HcDPf0,36
|
|
203
204
|
universal_mcp/applications/semanticscholar/app.py,sha256=OHTFkR-IwRU5Rvb1bEu7XmRHikht3hEgZxszLQu6kFI,22234
|
|
@@ -256,9 +257,6 @@ universal_mcp/applications/twitter/api_segments/trends_api.py,sha256=Boc6f2kqm53
|
|
|
256
257
|
universal_mcp/applications/twitter/api_segments/tweets_api.py,sha256=YPXpFYMJm1DmbM9OpRS9OKVwdf8YtsE6hNvrnwYCT3k,90859
|
|
257
258
|
universal_mcp/applications/twitter/api_segments/usage_api.py,sha256=Wx-bR8mBsFmjzo59hTl5MVm6_BgCejAPDwax1YWy5W4,1564
|
|
258
259
|
universal_mcp/applications/twitter/api_segments/users_api.py,sha256=cYyUrVmqNRLn5EWjrjcJu0yflTdxwv1m5nta18ajma4,81261
|
|
259
|
-
universal_mcp/applications/unipile/README.md,sha256=gh_YsmeJ0pAU7XNBZD8OO-AgH7ed2kG8QPbxm2wYjlY,5205
|
|
260
|
-
universal_mcp/applications/unipile/__init__.py,sha256=0UZVOiYo_dDXbvTmtHrZ_fgvrbpasjWV17EEm4pZq9E,28
|
|
261
|
-
universal_mcp/applications/unipile/app.py,sha256=FUMDk0JZb8kRmMlPn6_NdIiCz0SeduDJABG7UHAsl04,30206
|
|
262
260
|
universal_mcp/applications/whatsapp/README.md,sha256=ZYbpVN0EqMW21ZCMcLNdheKX8OSPCkt3wcN8p8OZk5E,3849
|
|
263
261
|
universal_mcp/applications/whatsapp/__init__.py,sha256=miHfSBpu5lx226T8dMbvOw_5H6MJCWOKVK_WbqMma-8,29
|
|
264
262
|
universal_mcp/applications/whatsapp/app.py,sha256=jq7lukBtITqpm_K6l8r23G4N4QnU-u6AZQFToWDQY6g,23582
|
|
@@ -279,7 +277,7 @@ universal_mcp/applications/youtube/app.py,sha256=eqgqe0b53W9Mj0FZGW3ZqY3xkGF4NbO
|
|
|
279
277
|
universal_mcp/applications/zenquotes/README.md,sha256=FJyoTGRCaZjF_bsCBqg1CrYcvIfuUG_Qk616G1wjhF8,512
|
|
280
278
|
universal_mcp/applications/zenquotes/__init__.py,sha256=C5nEHZ3Xy6nYUarq0BqQbbJnHs0UtSlqhk0DqmvWiHk,58
|
|
281
279
|
universal_mcp/applications/zenquotes/app.py,sha256=7xIEnSZWAGYu5583Be2ZjSCtLUAfMWRzucSpp7hw_h4,1299
|
|
282
|
-
universal_mcp_applications-0.1.
|
|
283
|
-
universal_mcp_applications-0.1.
|
|
284
|
-
universal_mcp_applications-0.1.
|
|
285
|
-
universal_mcp_applications-0.1.
|
|
280
|
+
universal_mcp_applications-0.1.30rc1.dist-info/METADATA,sha256=vbVhisvEA32Xl7C2a8_HlXSO_y5AhXv8u72hXXqhi7E,2959
|
|
281
|
+
universal_mcp_applications-0.1.30rc1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
282
|
+
universal_mcp_applications-0.1.30rc1.dist-info/licenses/LICENSE,sha256=NweDZVPslBAZFzlgByF158b85GR0f5_tLQgq1NS48To,1063
|
|
283
|
+
universal_mcp_applications-0.1.30rc1.dist-info/RECORD,,
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# UnipileApp MCP Server
|
|
2
|
-
|
|
3
|
-
An MCP Server for the UnipileApp API.
|
|
4
|
-
|
|
5
|
-
## 🛠️ Tool List
|
|
6
|
-
|
|
7
|
-
This is automatically generated from OpenAPI schema for the UnipileApp API.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
| Tool | Description |
|
|
11
|
-
|------|-------------|
|
|
12
|
-
| `list_all_chats` | Retrieves a paginated list of all chat conversations across linked accounts. Supports filtering by unread status, date range, account provider, and specific account IDs, 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. Requires an `account_id` when using a provider ID for context. 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(s). Unlike `list_chat_messages` which targets a specific conversation, this function provides a global message view, filterable by sender, account, 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
|
-
| `retrieve_linked_account` | Retrieves details for a specific account linked to Unipile using its ID. It fetches metadata about the connection itself (e.g., a linked LinkedIn account), differentiating it from `retrieve_user_profile` which fetches a user's profile from the external platform. |
|
|
19
|
-
| `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. |
|
|
20
|
-
| `retrieve_own_profile` | Retrieves the profile details for the user associated with the specified Unipile account ID. 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. |
|
|
21
|
-
| `retrieve_user_profile` | Retrieves a specific LinkedIn user's profile using their public or internal ID, authorized via the provided `account_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. |
|
|
22
|
-
| `retrieve_post` | Fetches a specific post's details by its unique ID, requiring an `account_id` for authorization. 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. |
|
|
23
|
-
| `list_post_comments` | Fetches comments for a specific post using an `account_id` for authorization. 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'. |
|
|
24
|
-
| `create_post` | Publishes a new top-level post from a specified 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. |
|
|
25
|
-
| `list_content_reactions` | Retrieves a paginated list of reactions for a given post or, optionally, a specific comment. This read-only operation uses the provided `account_id` for the request, distinguishing it from the `create_reaction` function which adds new reactions. |
|
|
26
|
-
| `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. |
|
|
27
|
-
| `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. |
|
|
28
|
-
| `search` | Performs a comprehensive LinkedIn search for people, companies, posts, or jobs using granular filters like keywords and location. Alternatively, it can execute a search from a direct LinkedIn URL. Supports pagination and targets either the classic or Sales Navigator API. |
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .app import UnipileApp
|