universal-mcp-applications 0.1.17__py3-none-any.whl → 0.1.33__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/ahrefs/README.md +3 -3
- universal_mcp/applications/airtable/README.md +3 -3
- universal_mcp/applications/airtable/app.py +0 -1
- universal_mcp/applications/apollo/app.py +0 -1
- universal_mcp/applications/asana/README.md +3 -3
- universal_mcp/applications/aws_s3/README.md +29 -0
- universal_mcp/applications/aws_s3/app.py +40 -39
- universal_mcp/applications/bill/README.md +249 -0
- 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 +71 -0
- universal_mcp/applications/calendly/README.md +45 -45
- universal_mcp/applications/calendly/app.py +125 -125
- universal_mcp/applications/canva/README.md +35 -35
- universal_mcp/applications/canva/app.py +95 -99
- universal_mcp/applications/clickup/README.md +4 -4
- universal_mcp/applications/confluence/app.py +0 -1
- universal_mcp/applications/contentful/README.md +1 -2
- universal_mcp/applications/contentful/app.py +4 -5
- universal_mcp/applications/crustdata/README.md +3 -3
- universal_mcp/applications/domain_checker/README.md +2 -2
- universal_mcp/applications/domain_checker/app.py +11 -15
- universal_mcp/applications/e2b/README.md +4 -4
- universal_mcp/applications/e2b/app.py +4 -4
- universal_mcp/applications/elevenlabs/README.md +3 -77
- universal_mcp/applications/elevenlabs/app.py +18 -15
- universal_mcp/applications/exa/README.md +7 -7
- universal_mcp/applications/exa/app.py +17 -17
- universal_mcp/applications/falai/README.md +13 -12
- universal_mcp/applications/falai/app.py +34 -35
- universal_mcp/applications/figma/README.md +3 -3
- universal_mcp/applications/file_system/README.md +13 -0
- universal_mcp/applications/file_system/app.py +9 -9
- universal_mcp/applications/firecrawl/README.md +9 -9
- universal_mcp/applications/firecrawl/app.py +46 -46
- universal_mcp/applications/fireflies/README.md +14 -14
- universal_mcp/applications/fireflies/app.py +164 -57
- universal_mcp/applications/fpl/README.md +12 -12
- universal_mcp/applications/fpl/app.py +54 -55
- universal_mcp/applications/ghost_content/app.py +0 -1
- universal_mcp/applications/github/README.md +10 -10
- universal_mcp/applications/github/app.py +50 -52
- universal_mcp/applications/google_calendar/README.md +10 -10
- universal_mcp/applications/google_calendar/app.py +50 -49
- universal_mcp/applications/google_docs/README.md +14 -14
- universal_mcp/applications/google_docs/app.py +307 -233
- universal_mcp/applications/google_drive/README.md +54 -57
- universal_mcp/applications/google_drive/app.py +270 -261
- universal_mcp/applications/google_gemini/README.md +3 -14
- universal_mcp/applications/google_gemini/app.py +15 -18
- universal_mcp/applications/google_mail/README.md +20 -20
- universal_mcp/applications/google_mail/app.py +110 -109
- universal_mcp/applications/google_searchconsole/README.md +10 -10
- universal_mcp/applications/google_searchconsole/app.py +37 -37
- universal_mcp/applications/google_sheet/README.md +25 -25
- universal_mcp/applications/google_sheet/app.py +270 -266
- universal_mcp/applications/hashnode/README.md +6 -3
- universal_mcp/applications/hashnode/app.py +174 -25
- universal_mcp/applications/http_tools/README.md +5 -5
- universal_mcp/applications/http_tools/app.py +10 -11
- universal_mcp/applications/hubspot/api_segments/__init__.py +0 -0
- universal_mcp/applications/hubspot/api_segments/api_segment_base.py +54 -0
- universal_mcp/applications/hubspot/api_segments/crm_api.py +7337 -0
- universal_mcp/applications/hubspot/api_segments/marketing_api.py +1467 -0
- universal_mcp/applications/hubspot/app.py +2 -15
- universal_mcp/applications/jira/app.py +0 -1
- universal_mcp/applications/klaviyo/README.md +0 -36
- universal_mcp/applications/linkedin/README.md +18 -4
- universal_mcp/applications/linkedin/app.py +763 -162
- universal_mcp/applications/mailchimp/README.md +3 -3
- universal_mcp/applications/markitdown/app.py +10 -5
- universal_mcp/applications/ms_teams/README.md +31 -31
- universal_mcp/applications/ms_teams/app.py +151 -151
- universal_mcp/applications/neon/README.md +3 -3
- 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/openai/README.md +18 -17
- universal_mcp/applications/openai/app.py +40 -39
- universal_mcp/applications/outlook/README.md +9 -9
- universal_mcp/applications/outlook/app.py +307 -225
- universal_mcp/applications/perplexity/README.md +4 -4
- universal_mcp/applications/perplexity/app.py +4 -4
- universal_mcp/applications/posthog/README.md +128 -127
- universal_mcp/applications/reddit/README.md +21 -124
- universal_mcp/applications/reddit/app.py +51 -68
- universal_mcp/applications/resend/README.md +29 -29
- universal_mcp/applications/resend/app.py +116 -117
- universal_mcp/applications/rocketlane/app.py +0 -1
- universal_mcp/applications/scraper/README.md +7 -4
- universal_mcp/applications/scraper/__init__.py +1 -1
- universal_mcp/applications/scraper/app.py +341 -103
- universal_mcp/applications/semrush/README.md +3 -0
- universal_mcp/applications/serpapi/README.md +3 -3
- universal_mcp/applications/serpapi/app.py +14 -14
- universal_mcp/applications/sharepoint/README.md +19 -0
- universal_mcp/applications/sharepoint/app.py +285 -173
- universal_mcp/applications/shopify/app.py +0 -1
- universal_mcp/applications/shortcut/README.md +3 -3
- universal_mcp/applications/slack/README.md +23 -0
- universal_mcp/applications/slack/app.py +79 -48
- universal_mcp/applications/spotify/README.md +3 -3
- universal_mcp/applications/supabase/README.md +3 -3
- universal_mcp/applications/tavily/README.md +4 -4
- universal_mcp/applications/tavily/app.py +4 -4
- universal_mcp/applications/twilio/README.md +15 -0
- universal_mcp/applications/twitter/README.md +92 -89
- 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 +15 -11
- universal_mcp/applications/whatsapp/README.md +12 -12
- universal_mcp/applications/whatsapp/app.py +66 -67
- universal_mcp/applications/whatsapp/audio.py +39 -35
- universal_mcp/applications/whatsapp/whatsapp.py +176 -154
- universal_mcp/applications/whatsapp_business/README.md +23 -23
- universal_mcp/applications/whatsapp_business/app.py +92 -92
- universal_mcp/applications/yahoo_finance/README.md +17 -0
- universal_mcp/applications/yahoo_finance/__init__.py +1 -0
- universal_mcp/applications/yahoo_finance/app.py +300 -0
- universal_mcp/applications/youtube/README.md +46 -46
- universal_mcp/applications/youtube/app.py +208 -195
- universal_mcp/applications/zenquotes/README.md +1 -1
- universal_mcp/applications/zenquotes/__init__.py +2 -0
- universal_mcp/applications/zenquotes/app.py +5 -5
- {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/METADATA +5 -90
- {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/RECORD +137 -128
- universal_mcp/applications/replicate/README.md +0 -18
- universal_mcp/applications/replicate/__init__.py +0 -1
- universal_mcp/applications/replicate/app.py +0 -493
- universal_mcp/applications/unipile/README.md +0 -28
- universal_mcp/applications/unipile/__init__.py +0 -1
- universal_mcp/applications/unipile/app.py +0 -827
- {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/WHEEL +0 -0
- {universal_mcp_applications-0.1.17.dist-info → universal_mcp_applications-0.1.33.dist-info}/licenses/LICENSE +0 -0
|
@@ -9,127 +9,24 @@ This is automatically generated from OpenAPI schema for the RedditApp API.
|
|
|
9
9
|
|
|
10
10
|
| Tool | Description |
|
|
11
11
|
|------|-------------|
|
|
12
|
-
| `get_subreddit_posts` |
|
|
13
|
-
| `search_subreddits` | Searches
|
|
14
|
-
| `get_post_flairs` |
|
|
15
|
-
| `create_post` | Creates a new Reddit post in a specified subreddit
|
|
16
|
-
| `get_comment_by_id` | Retrieves a
|
|
17
|
-
| `post_comment` | Posts a comment to a Reddit post or comment
|
|
18
|
-
| `edit_content` |
|
|
19
|
-
| `delete_content` | Deletes a specified Reddit post or comment using the
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
| `
|
|
25
|
-
| `
|
|
26
|
-
| `
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
33
|
-
| `api_v1_subreddit_emojis_all` | Get all emojis for a subreddit. |
|
|
34
|
-
| `r_subreddit_api_flair` | Get the current user's flair for a subreddit. |
|
|
35
|
-
| `r_subreddit_api_flairlist` | Get the current user's flair list for a subreddit. |
|
|
36
|
-
| `r_subreddit_api_link_flair` | Get the current user's link flair for a subreddit. |
|
|
37
|
-
| `r_subreddit_api_link_flair_v2` | Get the current user's link flair for a subreddit. |
|
|
38
|
-
| `r_subreddit_api_user_flair` | Get the current user's user flair for a subreddit. |
|
|
39
|
-
| `r_subreddit_api_user_flair_v2` | Get the current user's user flair for a subreddit. |
|
|
40
|
-
| `api_info` | Get information about a link or comment. |
|
|
41
|
-
| `r_subreddit_api_info` | Get information about a link or comment in a subreddit. |
|
|
42
|
-
| `api_morechildren` | Get more children for a link or comment. |
|
|
43
|
-
| `api_saved_categories` | Get the current user's saved categories. |
|
|
44
|
-
| `req` | Get the current user's requests. |
|
|
45
|
-
| `best` | Get the best posts. |
|
|
46
|
-
| `by_id_names` | Get posts by ID. |
|
|
47
|
-
| `comments_article` | Get comments for a post. |
|
|
48
|
-
| `get_post_comments_details` | Get post details and comments like title, author, score, etc. |
|
|
49
|
-
|
|
50
|
-
| `controversial` | Get the most controversial posts. |
|
|
51
|
-
| `duplicates_article` | Get duplicate posts. |
|
|
52
|
-
| `hot` | Get the hottest posts. |
|
|
53
|
-
| `new` | Get the newest posts. |
|
|
54
|
-
| `r_subreddit_comments_article` | Get comments for a post in a subreddit. |
|
|
55
|
-
| `r_subreddit_controversial` | Get the most controversial posts in a subreddit. |
|
|
56
|
-
| `r_subreddit_hot` | Get the hottest posts in a subreddit. |
|
|
57
|
-
| `r_subreddit_new` | Get the newest posts in a subreddit. |
|
|
58
|
-
| `r_subreddit_random` | Get a random post in a subreddit. |
|
|
59
|
-
| `r_subreddit_rising` | Get the rising posts in a subreddit. |
|
|
60
|
-
| `r_subreddit_top` | Get the top posts in a subreddit. |
|
|
61
|
-
| `random` | Get a random post. |
|
|
62
|
-
| `rising` | Get the rising posts. |
|
|
63
|
-
| `top` | Get the top posts. |
|
|
64
|
-
| `api_saved_media_text` | Get the text of a saved media. |
|
|
65
|
-
| `api_v1_scopes` | Get the current user's scopes. |
|
|
66
|
-
| `r_subreddit_api_saved_media_text` | Get the text of a saved media in a subreddit. |
|
|
67
|
-
| `r_subreddit_about_log` | Get the log of a subreddit. |
|
|
68
|
-
| `r_subreddit_about_edited` | Get the edited posts in a subreddit. |
|
|
69
|
-
| `r_subreddit_about_modqueue` | Get the modqueue in a subreddit. |
|
|
70
|
-
| `r_subreddit_about_reports` | Get the reports in a subreddit. |
|
|
71
|
-
| `r_subreddit_about_spam` | Get the spam posts in a subreddit. |
|
|
72
|
-
| `r_subreddit_about_unmoderated` | Get the unmoderated posts in a subreddit. |
|
|
73
|
-
| `r_subreddit_stylesheet` | Get the stylesheet of a subreddit. |
|
|
74
|
-
| `stylesheet` | Get the stylesheet of the current user. |
|
|
75
|
-
| `api_mod_notes1` | Get the mod notes of a subreddit. |
|
|
76
|
-
| `api_mod_notes` | Delete a mod note. |
|
|
77
|
-
| `api_mod_notes_recent` | Get the recent mod notes. |
|
|
78
|
-
| `api_multi_mine` | Get the current user's multi. |
|
|
79
|
-
| `api_multi_user_username` | Get a user's multi. |
|
|
80
|
-
| `api_multi_multipath1` | Get a multi. |
|
|
81
|
-
| `api_multi_multipath` | Delete a multi. |
|
|
82
|
-
| `api_multi_multipath_description` | Get a multi's description. |
|
|
83
|
-
| `api_multi_multipath_rsubreddit1` | Get a multi's subreddit. |
|
|
84
|
-
| `api_multi_multipath_rsubreddit` | Delete a multi's subreddit. |
|
|
85
|
-
| `api_mod_conversations` | Get the mod conversations. |
|
|
86
|
-
| `api_mod_conversations_conversation_id` | Get a mod conversation. |
|
|
87
|
-
| `api_mod_conversations_conversation_id_highlight` | Highlight a mod conversation. |
|
|
88
|
-
| `api_mod_conversations_conversation_id_unarchive` | Unarchive a mod conversation. |
|
|
89
|
-
| `api_mod_conversations_conversation_id_unban` | Unban a mod conversation. |
|
|
90
|
-
| `api_mod_conversations_conversation_id_unmute` | Unmute a mod conversation. |
|
|
91
|
-
| `api_mod_conversations_conversation_id_user` | Get a mod conversation's user. |
|
|
92
|
-
| `api_mod_conversations_subreddits` | Get the mod conversations' subreddits. |
|
|
93
|
-
| `api_mod_conversations_unread_count` | Get the unread count of the mod conversations. |
|
|
94
|
-
| `message_inbox` | Get the current user's inbox. |
|
|
95
|
-
| `message_sent` | Get the current user's sent messages. |
|
|
96
|
-
| `message_unread` | Get the current user's unread messages. |
|
|
97
|
-
| `search` | Search for posts, comments, and users. |
|
|
98
|
-
| `r_subreddit_search` | Search for posts, comments, and users in a subreddit. |
|
|
99
|
-
| `api_search_reddit_names` | Search for subreddits. |
|
|
100
|
-
| `api_subreddit_autocomplete` | Search for subreddits. |
|
|
101
|
-
| `api_subreddit_autocomplete_v2` | Search for subreddits. |
|
|
102
|
-
| `api_v1_subreddit_post_requirements` | Get the post requirements for a subreddit. |
|
|
103
|
-
| `r_subreddit_about_banned` | Get the banned users in a subreddit. |
|
|
104
|
-
| `r_subreddit_about` | Get the about information for a subreddit. |
|
|
105
|
-
| `r_subreddit_about_edit` | Get the edit information for a subreddit. |
|
|
106
|
-
| `r_subreddit_about_contributors` | Get the contributors for a subreddit. |
|
|
107
|
-
| `r_subreddit_about_moderators` | Get the moderators for a subreddit. |
|
|
108
|
-
| `r_subreddit_about_muted` | Get the muted users for a subreddit. |
|
|
109
|
-
| `r_subreddit_about_rules` | Get the rules for a subreddit. |
|
|
110
|
-
| `r_subreddit_about_sticky` | Get the sticky posts for a subreddit. |
|
|
111
|
-
| `r_subreddit_about_traffic` | Get the traffic for a subreddit. |
|
|
112
|
-
| `r_subreddit_about_wikibanned` | Get the wikibanned users for a subreddit. |
|
|
113
|
-
| `r_subreddit_about_wikicontributors` | Get the wikicontributors for a subreddit. |
|
|
114
|
-
| `r_subreddit_api_submit_text` | Get the submit text for a subreddit. |
|
|
115
|
-
| `subreddits_mine_where` | Get the subreddits the current user has access to. |
|
|
116
|
-
| `subreddits_search` | Search for subreddits. |
|
|
117
|
-
| `subreddits_where` | Get the subreddits the current user has access to. |
|
|
118
|
-
| `api_user_data_by_account_ids` | Get the user data by account IDs. |
|
|
119
|
-
| `api_username_available` | Check if a username is available. |
|
|
120
|
-
| `api_v1_me_friends_username1` | Get a user's friends. |
|
|
121
|
-
| `api_v1_me_friends_username` | Delete a user's friend. |
|
|
122
|
-
| `api_v1_user_username_trophies` | Get a user's trophies. |
|
|
123
|
-
| `user_username_about` | Get the about information for a user. |
|
|
124
|
-
| `user_username_where` | Get the user's posts or comments. |
|
|
125
|
-
| `users_search` | Search for users. |
|
|
126
|
-
| `users_where` | Get the user's posts or comments. |
|
|
127
|
-
| `r_subreddit_api_widgets` | Get the widgets for a subreddit. |
|
|
128
|
-
| `r_subreddit_api_widget_order_section` | Get the widget order for a subreddit. |
|
|
129
|
-
| `r_subreddit_api_widget_widget_id` | Delete a widget. |
|
|
130
|
-
| `r_subreddit_wiki_discussions_page` | Get the discussions for a wiki page. |
|
|
131
|
-
| `r_subreddit_wiki_page` | Get a wiki page. |
|
|
132
|
-
| `r_subreddit_wiki_pages` | Get the pages for a wiki. |
|
|
133
|
-
| `r_subreddit_wiki_revisions` | Get the revisions for a wiki. |
|
|
134
|
-
| `r_subreddit_wiki_revisions_page` | Get the revisions for a wiki page. |
|
|
135
|
-
| `r_subreddit_wiki_settings_page` | Get the settings for a wiki page. |
|
|
12
|
+
| `get_subreddit_posts` | Fetches a specified number of top-rated posts from a particular subreddit, allowing results to be filtered by a specific timeframe (e.g., 'day', 'week'). This is a simplified version compared to `get_subreddit_top_posts`, which uses more complex pagination parameters instead of a direct time filter. |
|
|
13
|
+
| `search_subreddits` | Searches for subreddits by name and description using a query string, with results sortable by relevance or activity. Unlike the broader `search_reddit` function, this method exclusively discovers subreddits, not posts, comments, or users. |
|
|
14
|
+
| `get_post_flairs` | Fetches a list of available post flairs (tags) for a specified subreddit. This is primarily used to discover the correct `flair_id` needed to categorize a new submission when using the `create_post` function. It returns flair details or a message if none are available. |
|
|
15
|
+
| `create_post` | Creates a new Reddit post in a specified subreddit. It supports text ('self') or link posts, requiring a title and corresponding content (text or URL). An optional flair can be assigned. Returns the API response or a formatted error message on failure. |
|
|
16
|
+
| `get_comment_by_id` | Retrieves a single Reddit comment's data, such as author and score, using its unique 't1_' prefixed ID. Unlike `get_post_comments_details` which fetches all comments for a post, this function targets one specific comment directly, returning an error dictionary if it is not found. |
|
|
17
|
+
| `post_comment` | Posts a new comment as a reply to a specified Reddit post or another comment. Using the parent's full ID and the desired text, it submits the comment via the API and returns the response containing the new comment's details. |
|
|
18
|
+
| `edit_content` | Modifies the text of a specific Reddit post or comment via its unique ID. Unlike creation or deletion functions, this method specifically handles updates to existing user-generated content, submitting the new text to the API and returning a JSON response detailing the edited item. |
|
|
19
|
+
| `delete_content` | Deletes a specified Reddit post or comment using its full identifier (`content_id`). It sends a POST request to the `/api/del` endpoint for permanent removal, unlike `edit_content` which only modifies. On success, it returns a confirmation message. |
|
|
20
|
+
| `get_post_comments_details` | Fetches a specific Reddit post's details and its complete comment tree using the post's unique ID. This function returns the entire discussion, including the original post and all associated comments, providing broader context than `get_comment_by_id` which only retrieves a single comment. |
|
|
21
|
+
| `get_current_user_info` | Retrieves the full profile information for the currently authenticated user by making a GET request to the `/api/v1/me` Reddit API endpoint. This differs from `get_user_profile`, which requires a username, and `get_current_user_karma`, which specifically fetches karma data. |
|
|
22
|
+
| `get_current_user_karma` | Fetches the karma breakdown for the authenticated user from the Reddit API. This function specifically targets the `/api/v1/me/karma` endpoint, returning karma statistics per subreddit, which is more specific than `get_current_user_info` that retrieves general profile information. |
|
|
23
|
+
| `get_hot_posts` | Retrieves trending 'hot' posts from the global Reddit feed. Unlike `get_subreddit_hot_posts`, this operates across all of Reddit, not a specific subreddit. It supports pagination and optional filtering by geographical region to customize the listing of returned posts. |
|
|
24
|
+
| `get_new_posts` | Fetches a list of the newest posts from across all of Reddit, not limited to a specific subreddit. This function supports optional pagination and filtering parameters to customize the API response, differentiating it from `get_subreddit_new_posts` which targets a single subreddit. |
|
|
25
|
+
| `get_top_posts` | Fetches top-rated posts from across all of Reddit, distinct from `get_subreddit_top_posts`, which operates on a specific subreddit. The function supports standard API pagination parameters like `limit`, `after`, and `before` to navigate results, providing a broad, site-wide view of top content. |
|
|
26
|
+
| `get_rising_posts` | Retrieves a list of rising posts from across all of Reddit. Unlike subreddit-specific listing functions (e.g., `get_subreddit_hot_posts`), this operates globally. It supports optional pagination and filtering parameters, such as `limit` and `after`, to customize the API response and navigate through results. |
|
|
27
|
+
| `get_controversial_posts` | Fetches a global list of the most controversial posts from across all of Reddit, distinct from subreddit-specific queries. Optional parameters allow for pagination and customization of the results, returning the direct API response data with the post listings. |
|
|
28
|
+
| `get_subreddit_hot_posts` | Retrieves a list of 'hot' posts from a specified subreddit, supporting pagination and geographical filtering. Unlike `get_hot_posts`, which queries all of Reddit, this function targets a single subreddit to fetch its currently trending content, distinct from top or new posts. |
|
|
29
|
+
| `get_subreddit_new_posts` | Retrieves a list of the newest posts from a specified subreddit, sorted chronologically. Unlike `get_new_posts` which targets all of Reddit, this function is subreddit-specific and supports standard pagination parameters like `limit` and `after` to navigate through the listing of recent submissions. |
|
|
30
|
+
| `get_subreddit_top_posts` | Fetches top-rated posts from a specific subreddit using standard API pagination parameters. Unlike the simpler `get_subreddit_posts` which filters by timeframe, this function offers more direct control over retrieving listings, distinguishing it from the site-wide `get_top_posts` which queries all of Reddit. |
|
|
31
|
+
| `search_reddit` | Executes a broad, keyword-based search across Reddit for various content types like posts, comments, or users. This general-purpose function offers extensive filtering options, distinguishing it from the more specialized `search_subreddits` which only finds communities. |
|
|
32
|
+
| `get_user_profile` | Retrieves public profile information for a specified Reddit user via the `/user/{username}/about` endpoint. Unlike `get_current_user_info`, which targets the authenticated user, this function fetches data like karma and account age for any user identified by their username. |
|
|
@@ -2,7 +2,6 @@ from typing import Any
|
|
|
2
2
|
|
|
3
3
|
import httpx
|
|
4
4
|
from loguru import logger
|
|
5
|
-
|
|
6
5
|
from universal_mcp.applications.application import APIApplication
|
|
7
6
|
from universal_mcp.exceptions import NotAuthorizedError
|
|
8
7
|
from universal_mcp.integrations import Integration
|
|
@@ -45,11 +44,9 @@ class RedditApp(APIApplication):
|
|
|
45
44
|
"User-Agent": "agentr-reddit-app/0.1 by AgentR",
|
|
46
45
|
}
|
|
47
46
|
|
|
48
|
-
def get_subreddit_posts(
|
|
49
|
-
self, subreddit: str, limit: int = 5, timeframe: str = "day"
|
|
50
|
-
) -> dict[str, Any]:
|
|
47
|
+
def get_subreddit_posts(self, subreddit: str, limit: int = 5, timeframe: str = "day") -> dict[str, Any]:
|
|
51
48
|
"""
|
|
52
|
-
Fetches top posts from a
|
|
49
|
+
Fetches a specified number of top-rated posts from a particular subreddit, allowing results to be filtered by a specific timeframe (e.g., 'day', 'week'). This is a simplified version compared to `get_subreddit_top_posts`, which uses more complex pagination parameters instead of a direct time filter.
|
|
53
50
|
|
|
54
51
|
Args:
|
|
55
52
|
subreddit: The name of the subreddit (e.g., 'python', 'worldnews') without the 'r/' prefix
|
|
@@ -57,7 +54,7 @@ class RedditApp(APIApplication):
|
|
|
57
54
|
timeframe: The time period for top posts. Valid options: 'hour', 'day', 'week', 'month', 'year', 'all' (default: 'day')
|
|
58
55
|
|
|
59
56
|
Returns:
|
|
60
|
-
A
|
|
57
|
+
A dictionary containing a list of top posts with their details, or an error message if the request fails.
|
|
61
58
|
|
|
62
59
|
Raises:
|
|
63
60
|
RequestException: When the HTTP request to the Reddit API fails
|
|
@@ -70,34 +67,29 @@ class RedditApp(APIApplication):
|
|
|
70
67
|
if timeframe not in valid_timeframes:
|
|
71
68
|
return f"Error: Invalid timeframe '{timeframe}'. Please use one of: {', '.join(valid_timeframes)}"
|
|
72
69
|
if not 1 <= limit <= 100:
|
|
73
|
-
return
|
|
74
|
-
f"Error: Invalid limit '{limit}'. Please use a value between 1 and 100."
|
|
75
|
-
)
|
|
70
|
+
return f"Error: Invalid limit '{limit}'. Please use a value between 1 and 100."
|
|
76
71
|
url = f"{self.base_api_url}/r/{subreddit}/top"
|
|
77
72
|
params = {"limit": limit, "t": timeframe}
|
|
78
|
-
logger.info(
|
|
79
|
-
f"Requesting top {limit} posts from r/{subreddit} for timeframe '{timeframe}'"
|
|
80
|
-
)
|
|
73
|
+
logger.info(f"Requesting top {limit} posts from r/{subreddit} for timeframe '{timeframe}'")
|
|
81
74
|
response = self._get(url, params=params)
|
|
82
75
|
return self._handle_response(response)
|
|
83
76
|
|
|
84
|
-
def search_subreddits(
|
|
85
|
-
self, query: str, limit: int = 5, sort: str = "relevance"
|
|
86
|
-
) -> str:
|
|
77
|
+
def search_subreddits(self, query: str, limit: int = 5, sort: str = "relevance") -> dict[str, Any]:
|
|
87
78
|
"""
|
|
88
|
-
|
|
79
|
+
Finds subreddits based on a query string, searching their names and descriptions.
|
|
80
|
+
Results can be sorted by relevance or activity. This function is for discovering communities and does not search for posts or users, unlike the more general `search_reddit` function.
|
|
89
81
|
|
|
90
82
|
Args:
|
|
91
|
-
query: The
|
|
92
|
-
limit: The maximum number of subreddits to return
|
|
93
|
-
sort: The order
|
|
83
|
+
query: The search query for subreddit names and descriptions.
|
|
84
|
+
limit: The maximum number of subreddits to return (1-100, default is 5).
|
|
85
|
+
sort: The sorting order for results. Can be 'relevance' or 'activity' (default is 'relevance').
|
|
94
86
|
|
|
95
87
|
Returns:
|
|
96
|
-
A
|
|
88
|
+
A dictionary containing a list of matching subreddits, including their names, subscriber counts, and descriptions. Returns an error message on failure.
|
|
97
89
|
|
|
98
90
|
Raises:
|
|
99
|
-
RequestException:
|
|
100
|
-
JSONDecodeError:
|
|
91
|
+
RequestException: If the API request to Reddit fails.
|
|
92
|
+
JSONDecodeError: If the API response is not valid JSON.
|
|
101
93
|
|
|
102
94
|
Tags:
|
|
103
95
|
search, important, reddit, api, query, format, list, validation
|
|
@@ -106,24 +98,20 @@ class RedditApp(APIApplication):
|
|
|
106
98
|
if sort not in valid_sorts:
|
|
107
99
|
return f"Error: Invalid sort option '{sort}'. Please use one of: {', '.join(valid_sorts)}"
|
|
108
100
|
if not 1 <= limit <= 100:
|
|
109
|
-
return
|
|
110
|
-
f"Error: Invalid limit '{limit}'. Please use a value between 1 and 100."
|
|
111
|
-
)
|
|
101
|
+
return f"Error: Invalid limit '{limit}'. Please use a value between 1 and 100."
|
|
112
102
|
url = f"{self.base_api_url}/subreddits/search"
|
|
113
103
|
params = {
|
|
114
104
|
"q": query,
|
|
115
105
|
"limit": limit,
|
|
116
106
|
"sort": sort,
|
|
117
107
|
}
|
|
118
|
-
logger.info(
|
|
119
|
-
f"Searching for subreddits matching '{query}' (limit: {limit}, sort: {sort})"
|
|
120
|
-
)
|
|
108
|
+
logger.info(f"Searching for subreddits matching '{query}' (limit: {limit}, sort: {sort})")
|
|
121
109
|
response = self._get(url, params=params)
|
|
122
110
|
return self._handle_response(response)
|
|
123
111
|
|
|
124
112
|
def get_post_flairs(self, subreddit: str):
|
|
125
113
|
"""
|
|
126
|
-
|
|
114
|
+
Fetches a list of available post flairs (tags) for a specified subreddit. This is primarily used to discover the correct `flair_id` needed to categorize a new submission when using the `create_post` function. It returns flair details or a message if none are available.
|
|
127
115
|
|
|
128
116
|
Args:
|
|
129
117
|
subreddit: The name of the subreddit (e.g., 'python', 'worldnews') without the 'r/' prefix
|
|
@@ -156,7 +144,7 @@ class RedditApp(APIApplication):
|
|
|
156
144
|
flair_id: str = None,
|
|
157
145
|
):
|
|
158
146
|
"""
|
|
159
|
-
Creates a new Reddit post in a specified subreddit
|
|
147
|
+
Creates a new Reddit post in a specified subreddit. It supports text ('self') or link posts, requiring a title and corresponding content (text or URL). An optional flair can be assigned. Returns the API response or a formatted error message on failure.
|
|
160
148
|
|
|
161
149
|
Args:
|
|
162
150
|
subreddit: The name of the subreddit (e.g., 'python', 'worldnews') without the 'r/'
|
|
@@ -194,22 +182,16 @@ class RedditApp(APIApplication):
|
|
|
194
182
|
logger.info(f"Submitting a new post to r/{subreddit}")
|
|
195
183
|
response = self._post(url_api, data=data)
|
|
196
184
|
response_json = response.json()
|
|
197
|
-
if
|
|
198
|
-
response_json
|
|
199
|
-
and "json" in response_json
|
|
200
|
-
and "errors" in response_json["json"]
|
|
201
|
-
):
|
|
185
|
+
if response_json and "json" in response_json and "errors" in response_json["json"]:
|
|
202
186
|
errors = response_json["json"]["errors"]
|
|
203
187
|
if errors:
|
|
204
|
-
error_message = ", ".join(
|
|
205
|
-
[f"{code}: {message}" for code, message in errors]
|
|
206
|
-
)
|
|
188
|
+
error_message = ", ".join([f"{code}: {message}" for code, message in errors])
|
|
207
189
|
return f"Reddit API error: {error_message}"
|
|
208
190
|
return response_json
|
|
209
191
|
|
|
210
192
|
def get_comment_by_id(self, comment_id: str) -> dict:
|
|
211
193
|
"""
|
|
212
|
-
Retrieves a
|
|
194
|
+
Retrieves a single Reddit comment's data, such as author and score, using its unique 't1_' prefixed ID. Unlike `get_post_comments_details` which fetches all comments for a post, this function targets one specific comment directly, returning an error dictionary if it is not found.
|
|
213
195
|
|
|
214
196
|
Args:
|
|
215
197
|
comment_id: The full unique identifier of the comment (prefixed with 't1_', e.g., 't1_abcdef')
|
|
@@ -235,7 +217,7 @@ class RedditApp(APIApplication):
|
|
|
235
217
|
|
|
236
218
|
def post_comment(self, parent_id: str, text: str) -> dict:
|
|
237
219
|
"""
|
|
238
|
-
Posts a comment to a Reddit post or comment
|
|
220
|
+
Posts a new comment as a reply to a specified Reddit post or another comment. Using the parent's full ID and the desired text, it submits the comment via the API and returns the response containing the new comment's details.
|
|
239
221
|
|
|
240
222
|
Args:
|
|
241
223
|
parent_id: The full ID of the parent comment or post (e.g., 't3_abc123' for a post, 't1_def456' for a comment)
|
|
@@ -262,7 +244,7 @@ class RedditApp(APIApplication):
|
|
|
262
244
|
|
|
263
245
|
def edit_content(self, content_id: str, text: str) -> dict:
|
|
264
246
|
"""
|
|
265
|
-
|
|
247
|
+
Modifies the text of a specific Reddit post or comment via its unique ID. Unlike creation or deletion functions, this method specifically handles updates to existing user-generated content, submitting the new text to the API and returning a JSON response detailing the edited item.
|
|
266
248
|
|
|
267
249
|
Args:
|
|
268
250
|
content_id: The full ID of the content to edit (e.g., 't3_abc123' for a post, 't1_def456' for a comment)
|
|
@@ -289,7 +271,7 @@ class RedditApp(APIApplication):
|
|
|
289
271
|
|
|
290
272
|
def delete_content(self, content_id: str) -> dict:
|
|
291
273
|
"""
|
|
292
|
-
Deletes a specified Reddit post or comment using the
|
|
274
|
+
Deletes a specified Reddit post or comment using its full identifier (`content_id`). It sends a POST request to the `/api/del` endpoint for permanent removal, unlike `edit_content` which only modifies. On success, it returns a confirmation message.
|
|
293
275
|
|
|
294
276
|
Args:
|
|
295
277
|
content_id: The full ID of the content to delete (e.g., 't3_abc123' for a post, 't1_def456' for a comment)
|
|
@@ -315,9 +297,10 @@ class RedditApp(APIApplication):
|
|
|
315
297
|
|
|
316
298
|
def get_current_user_info(self) -> Any:
|
|
317
299
|
"""
|
|
318
|
-
|
|
300
|
+
Retrieves the full profile information for the currently authenticated user by making a GET request to the `/api/v1/me` Reddit API endpoint. This differs from `get_user_profile`, which requires a username, and `get_current_user_karma`, which specifically fetches karma data.
|
|
301
|
+
|
|
319
302
|
Returns:
|
|
320
|
-
|
|
303
|
+
A dictionary containing the authenticated user's profile information.
|
|
321
304
|
|
|
322
305
|
Tags:
|
|
323
306
|
users
|
|
@@ -330,10 +313,10 @@ class RedditApp(APIApplication):
|
|
|
330
313
|
|
|
331
314
|
def get_current_user_karma(self) -> Any:
|
|
332
315
|
"""
|
|
333
|
-
|
|
316
|
+
Fetches the karma breakdown for the authenticated user from the Reddit API. This function specifically targets the `/api/v1/me/karma` endpoint, returning karma statistics per subreddit, which is more specific than `get_current_user_info` that retrieves general profile information.
|
|
334
317
|
|
|
335
318
|
Returns:
|
|
336
|
-
|
|
319
|
+
A dictionary containing the authenticated user's karma breakdown by subreddit.
|
|
337
320
|
|
|
338
321
|
Tags:
|
|
339
322
|
account
|
|
@@ -346,13 +329,13 @@ class RedditApp(APIApplication):
|
|
|
346
329
|
|
|
347
330
|
def get_post_comments_details(self, post_id: str) -> Any:
|
|
348
331
|
"""
|
|
349
|
-
|
|
332
|
+
Fetches a specific Reddit post's details and its complete comment tree using the post's unique ID. This function returns the entire discussion, including the original post and all associated comments, providing broader context than `get_comment_by_id` which only retrieves a single comment.
|
|
350
333
|
|
|
351
334
|
Args:
|
|
352
|
-
post_id (
|
|
335
|
+
post_id (str): The Reddit post ID ( e.g. '1m734tx' for https://www.reddit.com/r/mcp/comments/1m734tx/comment/n4occ77/)
|
|
353
336
|
|
|
354
337
|
Returns:
|
|
355
|
-
|
|
338
|
+
A dictionary containing the post details and its comment tree.
|
|
356
339
|
|
|
357
340
|
Tags:
|
|
358
341
|
listings, comments, posts, important
|
|
@@ -373,7 +356,7 @@ class RedditApp(APIApplication):
|
|
|
373
356
|
sr_detail: str = None,
|
|
374
357
|
) -> Any:
|
|
375
358
|
"""
|
|
376
|
-
|
|
359
|
+
Fetches a global list of the most controversial posts from across all of Reddit, distinct from subreddit-specific queries. Optional parameters allow for pagination and customization of the results, returning the direct API response data with the post listings.
|
|
377
360
|
|
|
378
361
|
Args:
|
|
379
362
|
after: Optional. The fullname of a thing (e.g., 't3_xxxxxx') to return results after.
|
|
@@ -384,7 +367,7 @@ class RedditApp(APIApplication):
|
|
|
384
367
|
sr_detail: Optional. Expand subreddit details.
|
|
385
368
|
|
|
386
369
|
Returns:
|
|
387
|
-
|
|
370
|
+
A dictionary containing a listing of controversial posts.
|
|
388
371
|
|
|
389
372
|
Tags:
|
|
390
373
|
listings, posts, controversial, read-only
|
|
@@ -417,7 +400,7 @@ class RedditApp(APIApplication):
|
|
|
417
400
|
sr_detail: str = None,
|
|
418
401
|
) -> Any:
|
|
419
402
|
"""
|
|
420
|
-
Retrieves
|
|
403
|
+
Retrieves trending 'hot' posts from the global Reddit feed. Unlike `get_subreddit_hot_posts`, this operates across all of Reddit, not a specific subreddit. It supports pagination and optional filtering by geographical region to customize the listing of returned posts.
|
|
421
404
|
|
|
422
405
|
Args:
|
|
423
406
|
g: Optional. A geographical region to filter posts by (e.g., 'GLOBAL', 'US', 'GB').
|
|
@@ -429,7 +412,7 @@ class RedditApp(APIApplication):
|
|
|
429
412
|
sr_detail: Optional. Expand subreddit details.
|
|
430
413
|
|
|
431
414
|
Returns:
|
|
432
|
-
|
|
415
|
+
A dictionary containing a listing of hot posts.
|
|
433
416
|
|
|
434
417
|
Tags:
|
|
435
418
|
listings, posts, hot, read-only
|
|
@@ -462,7 +445,7 @@ class RedditApp(APIApplication):
|
|
|
462
445
|
sr_detail: str = None,
|
|
463
446
|
) -> Any:
|
|
464
447
|
"""
|
|
465
|
-
|
|
448
|
+
Fetches a list of the newest posts from across all of Reddit, not limited to a specific subreddit. This function supports optional pagination and filtering parameters to customize the API response, differentiating it from `get_subreddit_new_posts` which targets a single subreddit.
|
|
466
449
|
|
|
467
450
|
Args:
|
|
468
451
|
after: Optional. The fullname of a thing (e.g., 't3_xxxxxx') to return results after.
|
|
@@ -473,7 +456,7 @@ class RedditApp(APIApplication):
|
|
|
473
456
|
sr_detail: Optional. Expand subreddit details.
|
|
474
457
|
|
|
475
458
|
Returns:
|
|
476
|
-
|
|
459
|
+
A dictionary containing a listing of new posts.
|
|
477
460
|
|
|
478
461
|
Tags:
|
|
479
462
|
listings, posts, new, read-only
|
|
@@ -507,7 +490,7 @@ class RedditApp(APIApplication):
|
|
|
507
490
|
sr_detail: str = None,
|
|
508
491
|
) -> Any:
|
|
509
492
|
"""
|
|
510
|
-
Retrieves a list of
|
|
493
|
+
Retrieves a list of 'hot' posts from a specified subreddit, supporting pagination and geographical filtering. Unlike `get_hot_posts`, which queries all of Reddit, this function targets a single subreddit to fetch its currently trending content, distinct from top or new posts.
|
|
511
494
|
|
|
512
495
|
Args:
|
|
513
496
|
subreddit: The name of the subreddit (e.g., 'python', 'worldnews') without the 'r/' prefix.
|
|
@@ -520,7 +503,7 @@ class RedditApp(APIApplication):
|
|
|
520
503
|
sr_detail: Optional. Expand subreddit details.
|
|
521
504
|
|
|
522
505
|
Returns:
|
|
523
|
-
|
|
506
|
+
A dictionary containing a listing of hot posts from the specified subreddit.
|
|
524
507
|
|
|
525
508
|
Tags:
|
|
526
509
|
listings, posts, subreddit, hot, read-only
|
|
@@ -556,7 +539,7 @@ class RedditApp(APIApplication):
|
|
|
556
539
|
sr_detail: str = None,
|
|
557
540
|
) -> Any:
|
|
558
541
|
"""
|
|
559
|
-
Retrieves a list of the newest posts
|
|
542
|
+
Retrieves a list of the newest posts from a specified subreddit, sorted chronologically. Unlike `get_new_posts` which targets all of Reddit, this function is subreddit-specific and supports standard pagination parameters like `limit` and `after` to navigate through the listing of recent submissions.
|
|
560
543
|
|
|
561
544
|
Args:
|
|
562
545
|
subreddit: The name of the subreddit (e.g., 'python', 'worldnews') without the 'r/' prefix.
|
|
@@ -568,7 +551,7 @@ class RedditApp(APIApplication):
|
|
|
568
551
|
sr_detail: Optional. Expand subreddit details.
|
|
569
552
|
|
|
570
553
|
Returns:
|
|
571
|
-
|
|
554
|
+
A dictionary containing a listing of new posts from the specified subreddit.
|
|
572
555
|
|
|
573
556
|
Tags:
|
|
574
557
|
listings, posts, subreddit, new, read-only
|
|
@@ -603,7 +586,7 @@ class RedditApp(APIApplication):
|
|
|
603
586
|
sr_detail: str = None,
|
|
604
587
|
) -> Any:
|
|
605
588
|
"""
|
|
606
|
-
|
|
589
|
+
Fetches top-rated posts from a specific subreddit using standard API pagination parameters. Unlike the simpler `get_subreddit_posts` which filters by timeframe, this function offers more direct control over retrieving listings, distinguishing it from the site-wide `get_top_posts` which queries all of Reddit.
|
|
607
590
|
|
|
608
591
|
Args:
|
|
609
592
|
subreddit: The name of the subreddit (e.g., 'python', 'worldnews') without the 'r/' prefix.
|
|
@@ -615,7 +598,7 @@ class RedditApp(APIApplication):
|
|
|
615
598
|
sr_detail: Optional. Expand subreddit details.
|
|
616
599
|
|
|
617
600
|
Returns:
|
|
618
|
-
|
|
601
|
+
A dictionary containing a listing of top posts from the specified subreddit.
|
|
619
602
|
|
|
620
603
|
Tags:
|
|
621
604
|
listings, posts, subreddit, top, read-only
|
|
@@ -649,7 +632,7 @@ class RedditApp(APIApplication):
|
|
|
649
632
|
sr_detail: str = None,
|
|
650
633
|
) -> Any:
|
|
651
634
|
"""
|
|
652
|
-
Retrieves a list of
|
|
635
|
+
Retrieves a list of rising posts from across all of Reddit. Unlike subreddit-specific listing functions (e.g., `get_subreddit_hot_posts`), this operates globally. It supports optional pagination and filtering parameters, such as `limit` and `after`, to customize the API response and navigate through results.
|
|
653
636
|
|
|
654
637
|
Args:
|
|
655
638
|
after: Optional. The fullname of a thing (e.g., 't3_xxxxxx') to return results after.
|
|
@@ -660,7 +643,7 @@ class RedditApp(APIApplication):
|
|
|
660
643
|
sr_detail: Optional. Expand subreddit details.
|
|
661
644
|
|
|
662
645
|
Returns:
|
|
663
|
-
|
|
646
|
+
A dictionary containing a listing of rising posts.
|
|
664
647
|
|
|
665
648
|
Tags:
|
|
666
649
|
listings, posts, rising, read-only
|
|
@@ -692,7 +675,7 @@ class RedditApp(APIApplication):
|
|
|
692
675
|
sr_detail: str = None,
|
|
693
676
|
) -> Any:
|
|
694
677
|
"""
|
|
695
|
-
|
|
678
|
+
Fetches top-rated posts from across all of Reddit, distinct from `get_subreddit_top_posts`, which operates on a specific subreddit. The function supports standard API pagination parameters like `limit`, `after`, and `before` to navigate results, providing a broad, site-wide view of top content.
|
|
696
679
|
|
|
697
680
|
Args:
|
|
698
681
|
after: Optional. The fullname of a thing (e.g., 't3_xxxxxx') to return results after.
|
|
@@ -703,7 +686,7 @@ class RedditApp(APIApplication):
|
|
|
703
686
|
sr_detail: Optional. Expand subreddit details.
|
|
704
687
|
|
|
705
688
|
Returns:
|
|
706
|
-
|
|
689
|
+
A dictionary containing a listing of top posts.
|
|
707
690
|
|
|
708
691
|
Tags:
|
|
709
692
|
listings, posts, top, read-only
|
|
@@ -742,7 +725,7 @@ class RedditApp(APIApplication):
|
|
|
742
725
|
type: str = None,
|
|
743
726
|
) -> Any:
|
|
744
727
|
"""
|
|
745
|
-
|
|
728
|
+
Executes a broad, keyword-based search across Reddit for various content types like posts, comments, or users. This general-purpose function offers extensive filtering options, distinguishing it from the more specialized `search_subreddits` which only finds communities.
|
|
746
729
|
|
|
747
730
|
Args:
|
|
748
731
|
after: Optional. The fullname of a thing (e.g., 't3_xxxxxx') to return results after.
|
|
@@ -760,7 +743,7 @@ class RedditApp(APIApplication):
|
|
|
760
743
|
type: Optional. A comma-separated list of result types ('sr', 'link', 'user').
|
|
761
744
|
|
|
762
745
|
Returns:
|
|
763
|
-
|
|
746
|
+
A dictionary containing the search results.
|
|
764
747
|
|
|
765
748
|
Tags:
|
|
766
749
|
search, reddit, posts, comments, users, read-only
|
|
@@ -791,7 +774,7 @@ class RedditApp(APIApplication):
|
|
|
791
774
|
|
|
792
775
|
def get_user_profile(self, username: str) -> Any:
|
|
793
776
|
"""
|
|
794
|
-
Retrieves
|
|
777
|
+
Retrieves public profile information for a specified Reddit user via the `/user/{username}/about` endpoint. Unlike `get_current_user_info`, which targets the authenticated user, this function fetches data like karma and account age for any user identified by their username.
|
|
795
778
|
|
|
796
779
|
Args:
|
|
797
780
|
username: The username of the user to look up.
|
|
@@ -9,32 +9,32 @@ This is automatically generated from OpenAPI schema for the ResendApp API.
|
|
|
9
9
|
|
|
10
10
|
| Tool | Description |
|
|
11
11
|
|------|-------------|
|
|
12
|
-
| `send_email` | Sends
|
|
13
|
-
| `send_batch_emails` | Sends a
|
|
14
|
-
| `
|
|
15
|
-
| `
|
|
16
|
-
| `cancel_scheduled_email` | Cancels a scheduled email using the
|
|
17
|
-
| `create_domain` |
|
|
18
|
-
| `get_domain` | Retrieves a
|
|
19
|
-
| `verify_domain` |
|
|
20
|
-
| `
|
|
21
|
-
| `list_domains` |
|
|
22
|
-
| `remove_domain` |
|
|
23
|
-
| `create_api_key` | Creates a new API key for authenticating with Resend. |
|
|
24
|
-
| `list_api_keys` | Retrieves a list of all API keys
|
|
25
|
-
| `remove_api_key` |
|
|
26
|
-
| `
|
|
27
|
-
| `get_broadcast` | Retrieves a
|
|
28
|
-
| `update_broadcast` | Updates
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `list_broadcasts` | Retrieves a list of all
|
|
32
|
-
| `create_audience` | Creates a new audience
|
|
33
|
-
| `get_audience` | Retrieves a single audience
|
|
34
|
-
| `remove_audience` |
|
|
35
|
-
| `list_audiences` | Retrieves a list of all audiences. |
|
|
36
|
-
| `create_contact` | Creates a contact
|
|
37
|
-
| `get_contact` |
|
|
38
|
-
| `update_contact` | Updates an existing contact, identified by ID or email,
|
|
39
|
-
| `remove_contact` | Removes a contact from
|
|
40
|
-
| `list_contacts` |
|
|
12
|
+
| `send_email` | Sends a single email with a specified subject and text body to a list of recipients via the Resend API. Unlike `send_batch_emails`, which processes multiple distinct emails at once, this function is designed for dispatching one individual email composition per API call. |
|
|
13
|
+
| `send_batch_emails` | Sends multiple emails (1-100) in a single API request. Unlike the `send_email` function which handles a single message, this accepts a list of email objects for efficient, high-volume delivery. It validates that the batch size is within the allowed limits before making the API call. |
|
|
14
|
+
| `retrieve_email_by_id` | Retrieves the details and status of a single email from the Resend API using its unique identifier. This function allows for looking up a specific email that has already been sent or scheduled, distinct from functions that initiate sending. |
|
|
15
|
+
| `reschedule_email` | Modifies the delivery time for a specific, previously scheduled email using its ID. It updates the `scheduled_at` attribute to a new ISO 8601 formatted time, effectively rescheduling its dispatch. This differs from `cancel_scheduled_email`, which permanently stops the send. |
|
|
16
|
+
| `cancel_scheduled_email` | Cancels a previously scheduled email using its unique ID, preventing it from being sent. This function calls the Resend API's cancellation endpoint, returning a confirmation response. It is distinct from `update_scheduled_email`, which reschedules the email instead of stopping its transmission. |
|
|
17
|
+
| `create_domain` | Registers a new sending domain with the Resend service using the provided name. This is a prerequisite for sending emails from your own domain and returns a dictionary containing details of the new domain object, which can then be verified and managed with other domain-related functions. |
|
|
18
|
+
| `get_domain` | Retrieves the details of a specific domain from the Resend API using its unique ID. Unlike `list_domains`, which fetches all domains, this function targets a single record and returns a dictionary containing the domain's properties, like its verification status and tracking settings. |
|
|
19
|
+
| `verify_domain` | Triggers the verification process for a registered domain using its unique ID. This action is crucial for authorizing the domain to send emails via Resend and returns an API response containing the verification status and necessary DNS records to complete the process. |
|
|
20
|
+
| `update_domain_settings` | Updates settings for a specific domain identified by its ID. This function can modify configurations like open and click tracking, and TLS enforcement. It returns the updated domain object from the API, raising a ToolError if the update fails. Only the provided settings are modified. |
|
|
21
|
+
| `list_domains` | Fetches a complete list of all domains registered with the Resend account. Unlike `get_domain`, which retrieves a single domain by ID, this provides a comprehensive overview of all configured domains for management and verification tasks. |
|
|
22
|
+
| `remove_domain` | Permanently removes a specific domain from the Resend account using its unique ID. This function makes an authenticated API call to delete the domain, distinguishing it from retrieval (`get_domain`) or modification (`update_domain`) operations, and raises an error if the process fails. |
|
|
23
|
+
| `create_api_key` | Creates a new API key for authenticating with the Resend service, identified by a specified name. It returns a dictionary containing the new key object, including the generated token required for subsequent API requests. |
|
|
24
|
+
| `list_api_keys` | Retrieves a list of all API keys for the authenticated Resend account. This read-only operation allows for auditing and viewing existing credentials, contrasting with `create_api_key` and `remove_api_key` which are used to add or delete keys. |
|
|
25
|
+
| `remove_api_key` | Deletes a specific Resend API key identified by its unique ID. This function, part of the key management suite alongside `create_api_key` and `list_api_keys`, returns an API confirmation response or raises a `ToolError` if the operation fails. |
|
|
26
|
+
| `register_broadcast` | Registers a new email broadcast campaign for a specific audience using the Resend API. This function creates the broadcast object but does not send it; use the `send_broadcast` function to dispatch the created campaign to the audience. |
|
|
27
|
+
| `get_broadcast` | Retrieves a specific broadcast's complete details, including its status and content, by its unique ID. Unlike `list_broadcasts` which retrieves all broadcasts, this function targets a single entry for inspection. |
|
|
28
|
+
| `update_broadcast` | Updates the HTML content and/or subject of an existing broadcast, identified by its ID. Requires that at least one modifiable field (html or subject) is provided. This function alters a broadcast's content, differing from `send_broadcast` which triggers its delivery. |
|
|
29
|
+
| `send_or_schedule_broadcast` | Initiates the delivery of a pre-existing broadcast, identified by its ID, to its target audience. The broadcast can be sent immediately or scheduled for a future time via the optional `scheduled_at` parameter. It returns the API response upon execution. |
|
|
30
|
+
| `remove_draft_broadcast` | Deletes a broadcast from the Resend service using its unique ID. This action is restricted to broadcasts that have a 'draft' status and have not been sent, returning the API's response upon successful removal or raising an error if the operation fails. |
|
|
31
|
+
| `list_broadcasts` | Retrieves a list of all broadcasts associated with the authenticated account. Unlike `get_broadcast` which fetches a single item by ID, this function returns a list of dictionaries, each containing the attributes of a specific broadcast. Raises a `ToolError` on API failure. |
|
|
32
|
+
| `create_audience` | Creates a new audience, a named list for contacts, within the Resend service. This function requires a name for the audience and returns a dictionary representing the newly created object, enabling subsequent management of contacts within that specific list. |
|
|
33
|
+
| `get_audience` | Retrieves the details of a single audience using its unique ID. This provides a targeted lookup for one audience, distinct from `list_audiences` which fetches all available audiences in the account. |
|
|
34
|
+
| `remove_audience` | Deletes a specific audience from the Resend service using its unique identifier. This function wraps the Resend API's remove operation, returning the API's response. Unlike `remove_contact`, which targets individuals, this function removes the entire contact list defined by the audience ID. |
|
|
35
|
+
| `list_audiences` | Retrieves a complete list of all audiences from the Resend account. It returns a list of dictionaries, with each containing the details of a specific audience. This function is distinct from `get_audience`, which fetches a single audience by its ID. |
|
|
36
|
+
| `create_contact` | Creates a new contact with a given email, optional name, and subscription status, adding it to a specific audience. This function populates audience lists, differing from `update_contact` which modifies existing entries, and requires a valid `audience_id` to function. |
|
|
37
|
+
| `get_contact` | Fetches a single contact's details from a specified audience by its unique ID or email address. The function requires exactly one identifier for the lookup, raising an error if the identifier is missing, ambiguous, or if the API call fails. |
|
|
38
|
+
| `update_contact` | Updates an existing contact's details (e.g., name, subscription status) within a specific audience. The contact is identified by its unique ID or email address. This function validates inputs and returns the Resend API response, raising a ToolError on failure or if arguments are invalid. |
|
|
39
|
+
| `remove_contact` | Removes a contact from a specified audience. The contact must be identified by either its unique ID or email address, but not both. Raises an error if the identifier is missing, ambiguous, or if the API call to the Resend service fails. |
|
|
40
|
+
| `list_contacts` | Retrieves a complete list of contacts belonging to a specific audience, identified by its unique ID. This function returns all contacts within the audience, unlike `get_contact` which retrieves only a single contact by its ID or email. |
|