Enabled Tools (v1)
Mallary MCP currently exposes these tool names:mallary_create_upload_urlmallary_create_postmallary_get_jobmallary_attach_tiktok_post_urlmallary_list_postsmallary_get_postmallary_update_scheduled_postmallary_list_commentsmallary_reply_to_commentmallary_delete_postmallary_get_analyticsmallary_get_audiencemallary_list_profilesmallary_create_profilemallary_rename_profilemallary_list_platformsmallary_disconnect_platformmallary_get_settingsmallary_update_settingsmallary_list_webhooksmallary_create_webhookmallary_delete_webhook
Upload a Video with Standard MCP
The standard MCP endpoint athttps://mallary.ai/mcp exposes mallary_create_upload_url for images and videos. It uses the same presigned upload flow as the REST API.
- Call
mallary_create_upload_urlwith{"filename":"launch.mp4","type":"video/mp4"}. - Send the video bytes to the returned
uploadUrlwith HTTP PUT. Use the returnedheaderswithout changing them. - Wait for the upload to finish, then pass
mediaUrltomallary_create_postinmedia[].url.
ChatGPT Tool Set
The current public ChatGPT plugin connects through/mcp/openai. This smaller endpoint does not expose profile management, settings, webhooks, account disconnects, pending-post deletion, or scheduled-post editing. Its currently approved tool set includes:
mallary_upload_imagemallary_create_postmallary_get_jobmallary_list_postsmallary_list_commentsmallary_reply_to_commentmallary_get_analyticsmallary_get_audiencemallary_list_profilesmallary_list_platforms
mallary_upload_image accepts one image that the user chose or made in ChatGPT. Mallary checks the file bytes, accepts JPEG, PNG, WebP, or GIF images up to 25 MB, stores the image at files.mallary.ai, and returns the media_url used by mallary_create_post.
Do not use the ChatGPT image tool for private customer files, health records, ID records, card details, passwords, API keys, or access tokens.
Tool Surface
These tools cover:- uploads
- post creation
- job lookup
- TikTok final URL attachment
- post listing
- scheduled-post detail and editing
- comment listing and supplied comment replies
- post deletion
- post analytics and account audience retrieval
- profile listing
- profile creation and rename
- profile settings retrieval and update
- connected platform listing
- platform disconnects
- webhook listing
- webhook creation
- webhook deletion
Connected Platforms
mallary_list_platforms returns Mallary’s supported public platform set and marks which of those platforms are currently connected for the authenticated account.
The response includes:
platforms: every supported public platform with aconnectedbooleanconnected: the connected subsetdisconnected: the remaining supported platformscounts: connected and supported totalsprofiles,profile_id,default_profile_id, andlimitsfor connection profile context
Connection profiles
MCP tools use the default Mallary profile unless you sendprofile_id.
Use mallary_list_profiles to list each profile’s random public ID, then pass that string as profile_id when targeting a non-default profile.
Use mallary_create_profile to create a new profile and mallary_rename_profile to rename an existing profile.
mallary_get_audience returns the latest follower or subscriber count for every connected account in the selected profile. Mallary updates supported counts once every 24 hours. TikTok returns followers when the connection includes audience stats access. LinkedIn reports permission_required until Mallary adds the permission it needs.
The following tools accept profile_id:
mallary_create_postmallary_list_postsmallary_update_scheduled_post(insidedestinationswhen moving a post group)mallary_list_commentsmallary_get_analyticsmallary_get_audiencemallary_list_platformsmallary_get_settingsmallary_update_settingsmallary_disconnect_platform
Settings
mallary_get_settings reads profile settings, business profile fields, auto-reply status, warnings, and plan capabilities.
mallary_update_settings updates only the fields you send. Supported fields include auto_reply_enabled, brand_profile, business_name, business_description, website_url, services, features, contact_info, pricing, and faq.
Comment Engagement
mallary_list_comments and mallary_reply_to_comment are available on all Mallary plans.
Use mallary_list_comments with a Mallary post_id/job ID to read comments on a published post. Then you or your AI agent can write a reply and pass that exact text to mallary_reply_to_comment.
Supported platforms are Facebook, Instagram, Threads, LinkedIn, X, YouTube, and Bluesky. The MCP tool does not generate the reply. If you want auto-generated replies, use the Mallary AI auto reply feature.
Scheduling
mallary_create_post uses the same scheduling contract as the Mallary API:
- send an absolute
scheduled_atlike2026-04-06T18:30:00Z - or send a local
scheduled_atlike2026-04-06T14:30together withscheduled_timezone: "America/New_York" scheduled_timezonemust be a valid IANA timezone
Edit a Scheduled Post
Usemallary_get_post with the stable numeric Mallary post ID from mallary_list_posts. It returns the saved content, schedule, destination accounts, editable status, and revision. Only a post group whose destinations have not started publishing can be edited.
Use mallary_update_scheduled_post with that ID, expected_revision, and only the fields to change. You can edit the message, media, comments under the post, platform options, auto-reply setting, date, time, time zone, destination platforms, and connection profile. media, comments_under_post, and platform_options replace their saved values when supplied, so send the complete final value or leave the field out. If another edit or publishing starts first, the update returns a conflict. Read the post again before deciding what to do; do not repeat the old update automatically.
One connection profile applies to the whole post group. To change its profile or platforms, send both destinations.profile_id and the complete final destinations.platforms list. Get the target profile ID from mallary_list_profiles, then check its accounts with mallary_list_platforms. Mallary validates every selected destination. A platform omitted from the final list is removed, so list every platform the user wants to keep. Leaving destinations out keeps the existing profile and platforms.
media or comments_under_post array to clear those fields. Use platform_options: null to clear all platform overrides, or scheduled_timezone: null to clear the saved time zone when changing to an absolute scheduled time. Mallary checks account-specific options, such as a Pinterest board, against the final destination accounts.
The ChatGPT tool accepts a strict set of platform option fields. If the saved post has an option that ChatGPT cannot send back, leave platform_options out to keep it. Use the dashboard or API if that option itself must change.
Publish Results
mallary_create_post returns Mallary job IDs immediately. After each platform finishes publishing, mallary_get_job and mallary_list_posts include platform_post_id and platform_post_url when the platform returns or exposes them.
Platform-specific options
mallary_create_post uses the same underlying post payload as the Mallary API, including platform_options for platform-specific behavior.
For the exact supported platform_options fields and examples, use the API reference here:
Platform options reference
Platform-specific media rules
mallary_create_post also uses the same platform media validation rules as the Mallary API.
LinkedIn accepts one MP4 video up to 1 GB (1,073,741,824 bytes), from 3 seconds to 30 minutes long. Use mallary_create_upload_url to upload the video to Mallary, then pass the returned media URL to mallary_create_post with platforms: ["linkedin"]. No video-specific platform option is needed. Do not mix images and video.
Examples:
- Threads supports
platform_options.threads.post_typewithtext,image,video, orcarousel. Its media shapes are text-only, one image, one video, or a 2 to 20 item carousel. - Instagram Reels support
platform_options.instagram.shareToFeed. It defaults totrue; set it tofalseto keep the Reel off the profile feed. - Instagram Trial Reels support
platform_options.instagram.trialParams.graduationStrategy. UseMANUALorSS_PERFORMANCE. Do not sendshareToFeedwithtrialParams. - Instagram feed posts, Reels, and carousels support
platform_options.instagram.isPaidPartnershipand up to twobrandedContentSponsors. This needs an Instagram account connected through Facebook Login. Sponsors can be usernames or numeric Instagram user IDs. - YouTube requires exactly one video.
- TikTok video posts require one video, and TikTok photo posts support up to 35 JPEG/WebP images.
- TikTok uses
DIRECT_POSTby default. UseMEDIA_UPLOADonly when you want to finish the post in TikTok. Inbox uploads stayaction_requireduntil you add the final TikTok post URL. - Pinterest requires exactly one image or GIF, or exactly one video, plus
boardId. - Reddit image posts require one image or GIF. The current public API path does not support Reddit video upload.
- X allows up to 4 images, or 1 video, or 1 GIF.
Video thumbnails
mallary_create_post accepts thumbnail_url on media items, using the same contract as the REST API:
https://files.mallary.ai/.... YouTube regular videos, Facebook feed videos, and Instagram videos/Reels can use custom thumbnails or covers. For a YouTube Short, YouTube may store the image but show a video frame instead. Mallary returns a warning when this happens. TikTok video posts use a frame from the video instead of a separate image. TikTok photo posts can use thumbnail_url only when it matches one of the supplied photo URLs, and that image becomes the photo cover.
All media URLs used with mallary_create_post must point to https://files.mallary.ai/.... For another file, call mallary_create_upload_url, upload the file with the returned PUT URL, and then use the returned Mallary media URL. Mallary rejects outside media URLs because they may be private or expire before a post is published.
For YouTube, set platform_options.youtube.playlist_id to add the new video to an existing playlist owned by the connected channel. Set platform_options.youtube.tags to a list of video tags. Each tag can use up to 100 characters, and the full tag list can use up to 500 characters after YouTube counts separators. Set platform_options.youtube.containsSyntheticMedia to true when the video contains realistic AI-generated or altered content that could look real.
