universal-mcp 0.1.9rc1__py3-none-any.whl → 0.1.9rc2__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/application.py +19 -30
- universal_mcp/applications/cal_com_v2/app.py +1676 -1021
- universal_mcp/applications/clickup/app.py +1496 -846
- universal_mcp/applications/falai/README.md +42 -0
- universal_mcp/applications/falai/__init__.py +0 -0
- universal_mcp/applications/falai/app.py +332 -0
- universal_mcp/applications/gong/README.md +88 -0
- universal_mcp/applications/gong/__init__.py +0 -0
- universal_mcp/applications/gong/app.py +2297 -0
- universal_mcp/applications/hashnode/app.py +12 -8
- universal_mcp/applications/hashnode/prompt.md +2 -0
- universal_mcp/applications/heygen/README.md +69 -0
- universal_mcp/applications/heygen/__init__.py +0 -0
- universal_mcp/applications/heygen/app.py +956 -0
- universal_mcp/applications/mailchimp/app.py +3848 -1794
- universal_mcp/applications/replicate/README.md +47 -35
- universal_mcp/applications/replicate/__init__.py +0 -0
- universal_mcp/applications/replicate/app.py +215 -204
- universal_mcp/applications/retell_ai/app.py +84 -67
- universal_mcp/applications/rocketlane/app.py +49 -35
- universal_mcp/applications/spotify/app.py +723 -428
- universal_mcp/applications/supabase/app.py +909 -583
- universal_mcp/servers/server.py +50 -0
- universal_mcp/stores/store.py +2 -3
- universal_mcp/utils/docstring_parser.py +67 -36
- {universal_mcp-0.1.9rc1.dist-info → universal_mcp-0.1.9rc2.dist-info}/METADATA +5 -1
- {universal_mcp-0.1.9rc1.dist-info → universal_mcp-0.1.9rc2.dist-info}/RECORD +29 -19
- {universal_mcp-0.1.9rc1.dist-info → universal_mcp-0.1.9rc2.dist-info}/WHEEL +0 -0
- {universal_mcp-0.1.9rc1.dist-info → universal_mcp-0.1.9rc2.dist-info}/entry_points.txt +0 -0
@@ -17,6 +17,7 @@ class HashnodeApp(GraphQLApplication):
|
|
17
17
|
tags: list[str] = None,
|
18
18
|
slug: str = None,
|
19
19
|
subtitle: str = None,
|
20
|
+
cover_image: str = None,
|
20
21
|
) -> str:
|
21
22
|
"""
|
22
23
|
Publishes a post to Hashnode using the GraphQL API.
|
@@ -28,7 +29,7 @@ class HashnodeApp(GraphQLApplication):
|
|
28
29
|
tags: Optional list of tag names to add to the post. Example: ["blog", "release-notes", "python", "ai"]
|
29
30
|
slug: Optional custom URL slug for the post. Example: "my-post"
|
30
31
|
subtitle: Optional subtitle for the post. Example: "A subtitle for my post"
|
31
|
-
|
32
|
+
cover_image: Optional cover image for the post. Example: "https://example.com/cover-image.jpg"
|
32
33
|
Returns:
|
33
34
|
The URL of the published post
|
34
35
|
|
@@ -52,7 +53,7 @@ class HashnodeApp(GraphQLApplication):
|
|
52
53
|
"input": {
|
53
54
|
"publicationId": publication_id,
|
54
55
|
"title": title,
|
55
|
-
"contentMarkdown": content
|
56
|
+
"contentMarkdown": content,
|
56
57
|
}
|
57
58
|
}
|
58
59
|
|
@@ -60,18 +61,21 @@ class HashnodeApp(GraphQLApplication):
|
|
60
61
|
variables["input"]["tags"] = [
|
61
62
|
{"name": tag, "slug": tag.replace(" ", "-").lower()} for tag in tags
|
62
63
|
]
|
63
|
-
|
64
|
+
|
64
65
|
if slug:
|
65
66
|
variables["input"]["slug"] = slug
|
66
|
-
|
67
|
+
|
67
68
|
if subtitle:
|
68
69
|
variables["input"]["subtitle"] = subtitle
|
69
|
-
|
70
|
+
|
71
|
+
if cover_image:
|
72
|
+
variables["input"]["bannerImageOptions"] = {
|
73
|
+
"url": cover_image,
|
74
|
+
"potrait": False,
|
75
|
+
}
|
70
76
|
|
71
77
|
result = self.mutate(publish_post_mutation, variables)
|
72
78
|
return result["publishPost"]["post"]["url"]
|
73
79
|
|
74
80
|
def list_tools(self):
|
75
|
-
return [
|
76
|
-
self.publish_post
|
77
|
-
]
|
81
|
+
return [self.publish_post]
|
@@ -18,4 +18,6 @@ Tone: Keep it conversational, professional, and approachable. Length: Aim for 80
|
|
18
18
|
|
19
19
|
Markdown Formatting: Use proper Markdown syntax Embed images with Alt text and code with language . Create inline links wherever possible
|
20
20
|
|
21
|
+
Cover Image: Use fal ai tool to generate a cover image for the blog. Use landscape format
|
22
|
+
|
21
23
|
The topic is: "Grok3 vs Gemini2.5 vs GPT4.1 vs Sonnect 3.7"
|
@@ -0,0 +1,69 @@
|
|
1
|
+
|
2
|
+
# Heygen MCP Server
|
3
|
+
|
4
|
+
An MCP Server for the Heygen API.
|
5
|
+
|
6
|
+
## Supported Integrations
|
7
|
+
|
8
|
+
- AgentR
|
9
|
+
- API Key (Coming Soon)
|
10
|
+
- OAuth (Coming Soon)
|
11
|
+
|
12
|
+
## Tools
|
13
|
+
|
14
|
+
This is automatically generated from OpenAPI schema for the Heygen API.
|
15
|
+
|
16
|
+
## Supported Integrations
|
17
|
+
|
18
|
+
This tool can be integrated with any service that supports HTTP requests.
|
19
|
+
|
20
|
+
## Tool List
|
21
|
+
|
22
|
+
| Tool | Description |
|
23
|
+
|------|-------------|
|
24
|
+
| get_v1_voice_list | Retrieves the list of available voices from the v1 voice API endpoint. |
|
25
|
+
| get_v1_avatar_list | Retrieves a list of available avatars from the v1 API endpoint. |
|
26
|
+
| get_v2_voices | Retrieves the list of available v2 voices from the API endpoint. |
|
27
|
+
| get_v2_avatars | Retrieves a list of avatar objects from the /v2/avatars API endpoint. |
|
28
|
+
| get_v1_video_list | Retrieves a list of videos from the v1 API endpoint. |
|
29
|
+
| post_v2_video_generate | Submits a request to generate a video using specified input parameters via the v2 video generate API endpoint. |
|
30
|
+
| delete_v1_video | Deletes a video using the v1 API endpoint with the specified video ID. |
|
31
|
+
| get_v2_templates | Retrieves the list of v2 templates from the API endpoint. |
|
32
|
+
| get_v2_template_by_id | Retrieves a v2 template resource by its unique identifier. |
|
33
|
+
| post_v2_template_generate_by_id | Generates content from a template specified by ID using the provided title and variables, and returns the generation result. |
|
34
|
+
| get_v2_video_translate_target_languages | Retrieves the list of supported target languages for video translation via the v2 API. |
|
35
|
+
| post_v2_video_translate | Submits a video translation request and returns the API response as JSON. |
|
36
|
+
| get_v2_video_translate_status_by_id | Retrieves the status of a video translation job by its unique identifier. |
|
37
|
+
| post_streaming_new | Initiates a new streaming session with optional quality parameter and returns the server's JSON response. |
|
38
|
+
| get_streaming_list | Retrieves the list of available streaming resources from the remote API. |
|
39
|
+
| post_streaming_ice | Sends an ICE candidate for a streaming session to the server and returns the JSON response. |
|
40
|
+
| post_streaming_task | Submits a streaming task for the specified session and text input, returning the response from the remote API. |
|
41
|
+
| post_streaming_stop | Stops an ongoing streaming session by sending a stop request for the specified session ID. |
|
42
|
+
| post_streaming_interrupt | Sends a request to interrupt an active streaming session identified by the given session ID. |
|
43
|
+
| post_streaming_create_token | Creates a new streaming token with an optional expiry time by sending a POST request to the streaming token API endpoint. |
|
44
|
+
| get_streaming_avatar_list | Retrieves a list of available streaming avatars from the API endpoint. |
|
45
|
+
| get_v1_webhook_list | Retrieves a list of all registered webhooks via the v1 API endpoint. |
|
46
|
+
| post_v1_webhook_endpoint_add | Registers a new webhook endpoint with the specified URL and events. |
|
47
|
+
| delete_v1_webhook_endpoint_by_id | Deletes a webhook endpoint identified by its ID via a DELETE request to the v1 API. |
|
48
|
+
| get_v1_webhook_endpoint_list | Retrieves a list of webhook endpoints from the v1 API. |
|
49
|
+
| get_v1_talking_photo_list | Retrieves the list of talking photos from the v1 API endpoint. |
|
50
|
+
| delete_v2_talking_photo_by_id | Deletes a v2 talking photo resource identified by its unique ID. |
|
51
|
+
| post_personalized_video_add_contact | Adds a new contact to a personalized video project by sending the contact variables to the server. |
|
52
|
+
| get_personalized_video_audience_detail | Retrieves detailed information about a personalized video audience by ID. |
|
53
|
+
| get_personalized_video_project_detail | Retrieves the details of a personalized video project by its unique identifier. |
|
54
|
+
| get_v2_user_remaining_quota | Retrieves the current remaining quota information for the user from the v2 API endpoint. |
|
55
|
+
| post_v1_asset_upload | Uploads an asset to the server using a POST request to the '/v1/asset' endpoint. |
|
56
|
+
| get_v1_video_status | Retrieves the status of a video by making a GET request to the v1 video_status endpoint. |
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
## Usage
|
61
|
+
|
62
|
+
- Login to AgentR
|
63
|
+
- Follow the quickstart guide to setup MCP Server for your client
|
64
|
+
- Visit Apps Store and enable the Heygen app
|
65
|
+
- Restart the MCP Server
|
66
|
+
|
67
|
+
### Local Development
|
68
|
+
|
69
|
+
- Follow the README to test with the local MCP Server
|
File without changes
|