
Upload-Post
Social media MCP: publish, schedule & analyze posts on TikTok, Instagram, YouTube, LinkedIn & X
Connector by upload-post.comOfficial · Domain verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/upload-post-com-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://mcp.upload-post.com/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: social-media
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 33 read · 17 write · 23 delete · 1 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 74
Read from the source code; the running server may list different tools.
Read 33 · Look things up without changing anything.
download_ffmpeg_resultget_account_infoget_analyticsget_audienceget_autodm_logsget_cached_post_analyticsget_facebook_pagesget_ffmpeg_consumptionget_ffmpeg_jobget_google_business_locationsget_google_business_reviewsget_history
Show 21 more tools
get_job_statusget_linkedin_pagesget_mediaget_media_uploadget_pinterest_boardsget_platform_metricsget_post_commentsget_queue_settingsget_reddit_detailed_postsget_statusget_suggestionsget_total_impressionslist_autodmslist_dm_conversationslist_scheduledlist_usersopen_upload_studiopreview_queuetiktok_location_searchtiktok_music_searchvalidate_jwt
Write 17 · Create, change, send or run things.
approve_commentcomplete_media_uploadcreate_media_uploadcreate_userget_connect_linkget_post_analyticslike_commentpause_autodmresume_autodmretry_poststart_autodmsubmit_ffmpeg_job
Show 5 more tools
tiktok_publishing_settingsupload_documentupload_photosupload_textupload_video
Delete 23 · Delete, drop, revoke or wipe things.
cancel_scheduledcomment_actioncreate_commentdelete_autodmdelete_commentdelete_media_uploaddelete_useredit_commentedit_scheduledgenerate_jwthide_commenthold_comment
Show 11 more tools
ignore_commentmanage_autodmspin_commentpublic_reply_to_commentreply_to_commentreply_to_google_business_reviewsend_dmset_post_commentsstop_autodmunpublish_postupdate_queue_settings
Not yet classified 1 · We could not tell from the name and description.
tiktok_music_trending
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
Authorization
Network hosts it talks to 1
mcp.upload-post.com· found in remote endpoint, install command
Files it touches
- Any path the agent passes to its tools
Tools (74)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
approve_commentApprove a pending Threads replyApprove a reply waiting for approval on one of the profile's Threads posts, so it shows publicly. Threads only; to leave it unpublished use ignore_comment.
cancel_scheduledCancel scheduled postcan change or delete dataCancel a scheduled post by its `job_id`.
comment_actionHide, like or pin a commentcan change or delete dataDescription is built at runtime.
complete_media_uploadComplete media uploadInternal/app staging helper. Validate a media upload only after the browser/client has successfully PUT the actual file bytes to upload_url. Do NOT call this immediately after create_media_upload from the model; without the intervening PUT, completion will fail or produce no publishable media. Returns a temporary media_url that can be passed to upload_video/upload_photos immediately.
create_commentCreate a comment or replycan change or delete dataDescription is built at runtime.
create_media_uploadCreate media uploadInternal/app staging helper for clients that can directly PUT file bytes to the returned upload_url. Do NOT call this for files the user attached in a hosted chat client: the model and server environment cannot read those attachment bytes. For attached videos or images (including carousels), call open_upload_studio first; the Studio browser component calls this tool after the user selects the file(s). Use this directly only in MCP clients that truly hold the file bytes and can perform the HTTP PUT themselves. Staging media is deleted after 24 hours; scheduled posts are safe because upload_vide…
create_userCreate profileCreate a new Upload-Post profile (logical container for connected socials).
delete_autodmDelete an AutoDMcan change or delete dataPermanently delete an AutoDM monitor with its stats and logs. Cannot be undone.
delete_commentDelete a commentcan change or delete dataDescription is built at runtime.
delete_media_uploadDelete media uploadcan change or delete dataInternal/app staging helper. Delete a short-lived MCP staging media upload from R2. This does not delete scheduler durable copies created later by upload_video.
delete_userDelete profilecan change or delete dataPermanently delete a profile and disconnect its socials.
download_ffmpeg_resultGet FFmpeg result download URLread-onlyReturns how to get a finished FFmpeg job's output without streaming it through MCP. For video and image outputs it returns a temporary public `media_url` (signed, no API key, deleted 24 h after the job finished) that you can pass straight to upload_video / upload_photos as the video URL / photo URL. It also returns `download_url`, which needs the user's Upload-Post API key.
edit_commentEdit a Facebook commentcan change or delete dataReplace the text of a comment the Page itself wrote on Facebook. Facebook only. The previous text is not kept.
edit_scheduledEdit scheduled postcan change or delete dataEdit a pending scheduled post in place, keeping its job ID and media: reschedule it (scheduledDate/timezone) and/or fix its text. `title` and `caption` rewrite the text for EVERY platform of the post; to change only some platforms, send `platformContent` instead, e.g. {"instagram":{"caption":"..."},"tiktok":{"caption":"..."}} — platforms not listed keep their text. First comments cannot be edited on a pending post.
generate_jwtGenerate platform-integration JWTcan change or delete dataGenerate a JWT + connection URL so an end-user can connect socials inside an embedded Upload-Post flow (white-label integration). The profile must already exist. Each call resets the profile's connection-page settings to the values passed. To simply help the account owner connect their own socials, prefer get_connect_link.
Show 59 more tools
get_account_infoValidate API key & get accountread-onlyValidate the current API key and return account information. Useful as a first call to confirm credentials before doing real work.
get_analyticsGet profile analyticsread-onlyAggregated analytics for a profile across selected platforms (followers, views, engagement). Instagram also returns two audience breakdowns with the same shape (age / gender / country / city): `follower_demographics` for the account's followers and `engaged_audience_demographics` for the accounts that engaged with its content.
get_audienceGet audience insightsread-onlyDescription is built at runtime.
get_autodm_logsGet AutoDM logsread-onlyRead the activity log of one AutoDM monitor: comments seen and DMs sent or failed.
get_cached_post_analyticsGet cached post analyticsread-onlyReplays per-post metrics Upload-Post already fetched, instead of calling the platforms again. ONLY contains posts previously fetched through `get_post_analytics`; there is no background refresh, so `captured_at` is the last time that post was read live and a post never queried live will be absent. Unlike `get_post_analytics` it never hits the platforms, so it is not subject to the live analytics rate limit (100 requests / 5 minutes) — prefer it when scanning many posts or paging through a profile's history. Paginated: pass `next_cursor` from the response back as `cursor` until `has_more` is fa…
get_connect_linkGet link to connect social accountsGet the link the user opens to connect (or reconnect) social accounts such as TikTok, Instagram or YouTube. Use it when list_users shows no profile, or the platform the user wants is not connected or needs reconnecting. If the account has no profile yet, this creates one named "default" and returns a one-click link to connect accounts to it (valid 48 h); otherwise it returns the dashboard link. Give the user `connect_url`, ask them to tell you when they are done, then call list_users to confirm before publishing.
get_facebook_pagesList Facebook pagesread-onlyFacebook pages connected to a profile.
get_ffmpeg_consumptionGet FFmpeg quota usageread-onlyMonthly FFmpeg processing minutes used vs. plan allowance.
get_ffmpeg_jobPoll FFmpeg job statusread-onlyPoll the status of an FFmpeg job. When status is 'finished', call `download_ffmpeg_result` to obtain a publishable `media_url` (or the authenticated download URL).
get_google_business_locationsList Google Business locationsread-onlyGoogle Business Profile locations the profile can post to.
get_google_business_reviewsList Google Business reviewsread-onlyList reviews for a Google Business Profile location. Pass the profile that owns the connected Google Business account; location_id defaults to the account's selected location.
get_historyGet upload historyread-onlyPaginated history of uploads across all profiles.
get_job_statusGet scheduled job statusread-onlyCheck the status of a scheduled or queued upload by `job_id`. Use this for posts created with `addToQueue` or `scheduledDate`.
get_linkedin_pagesList LinkedIn pagesread-onlyLinkedIn company pages connected to a profile.
get_mediaGet recent media from connected accountsread-onlyRetrieve recent media (videos, photos, text posts) pulled directly from a profile's connected social accounts. Supports instagram, tiktok, youtube, linkedin, facebook, x, threads, pinterest, bluesky, reddit. Useful for browsing what already exists on a platform before posting more. Paginated: the response carries `pagination` = { limit, next_cursor, has_more }; pass `next_cursor` back as `cursor` for the next page (the last page returns next_cursor null and has_more false).
get_media_uploadGet media uploadread-onlyInternal/app staging helper. Get status for a short-lived MCP media upload. Optionally returns a fresh temporary media_url for an already-uploaded staging object.
get_pinterest_boardsList Pinterest boardsread-onlyPinterest boards available to a profile.
get_platform_metricsList platform metricsread-onlyReference: which metrics are available per platform (impressions, likes, …) and their human labels.
get_post_analyticsGet post analyticsPer-platform metrics for a specific post identified by `request_id`. `post_metrics` carries whatever each platform reports, so its shape is not the same everywhere: on TikTok it adds `retention` (the curve, second by second), `impression_sources` (For You, following, search, profile…), `audience_types` (followers vs non-followers), `new_followers` won by the post, `reach` and the watch times (`average_time_watched`, `total_time_watched`, `full_video_watched_rate`) on top of the usual counters. It fetches the metrics live from the platform and changes nothing on the post or the account; Upload-…
get_post_commentsGet post commentsread-onlyDescription is built at runtime.
get_queue_settingsGet queue settingsread-onlyPosting queue configuration (slots per day, time windows, timezone).
get_reddit_detailed_postsGet detailed Reddit postsread-onlyReddit posting is currently unavailable (error_code=reddit_unavailable) until the Reddit app is restored. Do not use reddit as a publish target. Recent Reddit posts published from a profile, with the platform-side metadata (subreddit, flair, score, …).
get_statusGet async upload statusread-onlyCheck the status of an async upload by `request_id`. Poll this until `status` is 'success' or 'failed'.
get_suggestionsGet hashtag or keyword suggestionsread-onlyDescription is built at runtime.
get_total_impressionsGet total impressionsread-onlySum of impressions for a profile from daily snapshots. Use `period` for presets, or `startDate`/`endDate` for custom ranges.
hide_commentHide or unhide a commentcan change or delete dataDescription is built at runtime.
hold_commentHold a YouTube comment for reviewcan change or delete dataMove a comment on one of the channel's YouTube videos to "Held for review", taking it off the public video until it is approved. YouTube only. To publish it again use hide_comment with `hidden: false`.
ignore_commentIgnore a pending Threads replycan change or delete dataIgnore a reply waiting for approval on one of the profile's Threads posts, so it stays unpublished. Threads only; to publish it use approve_comment.
like_commentLike or unlike a commentDescription is built at runtime.
list_autodmsList AutoDMs and comment auto-repliesread-onlyList the account's AutoDM and comment auto-reply monitors with their `platform`, state and counters. Active ones only, unless `include_inactive` is true.
list_dm_conversationsList DM conversationsread-onlyRecent DM conversations for a profile on a given platform.
list_scheduledList scheduled postsread-onlyList all currently scheduled (not-yet-published) posts.
list_usersList profilesread-onlyList all Upload-Post profiles in the account, with their connected social accounts. Call this FIRST, before publishing, to get the exact profile name (`user`) and check that the target platforms are connected; never invent a profile name. When the account has no profile, or the requested platform is not connected or needs reconnecting, the response carries `next_step` and `connect_url`: give the user that link, ask them to tell you when they have connected, and wait — do not try to publish meanwhile. The TikTok account object carries a `capabilities` array (music, location, cover_image, cover_…
manage_autodmsManage automatic DM monitoringcan change or delete dataControl AutoDM monitors, which answer every comment on a post (or only those containing `trigger_keywords`). Instagram answers with a private DM; TikTok, YouTube, Facebook, Threads and Bluesky answer with a public reply under the comment. For action='start', provide profile_username, reply_message and the post (post_url on Instagram; post_id or post_url elsewhere, plus `platform`). For stop/pause/resume/delete/logs, provide monitor_id. For status, optionally set include_inactive=true.
open_upload_studioOpen upload studioread-onlyDescription is built at runtime.
pause_autodmPause an AutoDMPause an AutoDM monitor: no DMs are sent until resume_autodm.
pin_commentPin or unpin a TikTok commentcan change or delete dataDescription is built at runtime.
preview_queuePreview queueread-onlyPreview the upcoming queue slots and what would land in them. Optionally `nextSlot=true` returns just the next available slot timestamp.
public_reply_to_commentPublic reply to commentcan change or delete dataPost a public reply visible under the original Instagram comment.
reply_to_commentPrivate reply (DM) to commentercan change or delete dataSend a private DM to the author of an Instagram comment (within Instagram's 7-day reply window).
reply_to_google_business_reviewReply to a Google Business reviewcan change or delete dataCreate or update the owner reply to a Google Business review. Provide review_name (the full resource path from get_google_business_reviews) or review_id + location_id.
resume_autodmResume an AutoDMResume a paused AutoDM monitor, so it sends DMs to new matching comments again.
retry_postRetry a failed uploadRetry a failed upload. Identify it by either `requestId` (async upload) or `jobId` (scheduled/queued upload).
send_dmSend a direct messagecan change or delete dataSend an Instagram DM to a recipient from a connected Upload-Post profile. Use a recipient_id returned by Instagram comments or DM conversation tools.
set_post_commentsTurn comments on or off for an Instagram postcan change or delete dataTurn commenting off on one of the profile's own Instagram posts, or back on with `enabled: true`. Existing comments are kept either way. Instagram only.
start_autodmStart an AutoDM or comment auto-replyWatch one of the profile's posts and automatically answer everyone who comments on it (optionally only comments containing `trigger_keywords`, e.g. 'comment POST'). On Instagram (default) the answer is a private DM with `reply_message` and up to 3 link buttons. On tiktok, youtube, facebook, threads and bluesky it is a PUBLIC reply under each matching comment; links in TikTok replies are not clickable, so point people to the bio. Comments are checked every `monitoring_interval` minutes (15 minimum), at most 25 replies per check (10 on YouTube), and the monitor stops after 15 days. Returns the m…
stop_autodmStop an AutoDMcan change or delete dataStop an AutoDM monitor: it stops sending DMs and shows as stopped in list_autodms (with `include_inactive`). For a temporary break use pause_autodm; to remove it entirely use delete_autodm.
submit_ffmpeg_jobSubmit FFmpeg processing jobSubmit a private FFmpeg processing job through Upload-Post. Provide `input_url` for one input, or `files` for multiple public URLs. Optionally provide `full_command` beginning with ffmpeg for explicit trim/transcode/watermark/thumbnail commands. Returns a `job_id` you can poll with `get_ffmpeg_job`.
tiktok_location_searchSearch TikTok locationsSearch TikTok places to tag on a post. TikTok needs both parts, so pass the returned `location_id` as `tiktokLocationId` and `location_name` as `tiktokLocationName` in upload_video's platformOptions. Available on TikTok connections that declare the `location` capability (see `capabilities` on the TikTok account in list_users).
tiktok_music_searchSearch TikTok musicFind a TikTok Commercial Music Library track by song title or artist, to soundtrack a TikTok video. Pass the returned track `id` as `tiktokMusicId` in upload_video's platformOptions (not `commercial_music_id`, which TikTok rejects on public posts). IMPORTANT: TikTok has no music search endpoint, so this searches the trending charts Upload-Post caches per genre/country/period, NOT TikTok's whole catalogue — a song that is not trending in the chart you query will not be found; widening the search means trying another genre, country or period. Matching is case- and accent-insensitive and every wo…
tiktok_music_trendingList trending TikTok musicTrending tracks from the TikTok Commercial Music Library, to soundtrack a TikTok video. Pass the returned track `id` as `tiktokMusicId` in upload_video's platformOptions (not `commercial_music_id`, which TikTok rejects on public posts). Available on TikTok connections that declare the `music` capability (see `capabilities` on the TikTok account in list_users).
tiktok_publishing_settingsGet TikTok publishing settingsWhat the connected TikTok account is allowed to publish. Call this before setting `tiktokPrivacyLevel`: TikTok narrows the four privacy values per account (a private account has no PUBLIC_TO_EVERYONE), and sending one the account does not have fails the upload with error_code tiktok_privacy_unavailable. Returns `privacy_level_options` plus the account's max video duration and its comment/duet/stitch switches.
unpublish_postDelete a published postcan change or delete dataDelete a post already published to a platform. Supported: facebook, youtube, x, linkedin, pinterest, bluesky, google_business. Instagram, TikTok, Threads and Reddit posts cannot be deleted through the API; they have to be removed in the platform's own app.
update_queue_settingsUpdate queue settingscan change or delete dataUpdate posting queue configuration for a profile. Fields are flat, not nested: timezone, slots, days_of_week, and max_posts_per_slot.
upload_documentUpload document (LinkedIn)Publish a document (PDF / PPT / PPTX / DOC / DOCX) to LinkedIn. Title is required.
upload_photosUpload photos / carouselPublish one or more photos (single image or carousel; items are published in array order). Each item in `photosPathsOrUrls` must be a public/signed HTTPS URL (a staged `media_url` works), or an absolute local path only when the MCP server runs on the same machine as the file. A hosted MCP server cannot read images the user attached in the chat (`/mnt/data`, sandbox, or other mounted paths); for attached images, ALWAYS call `open_upload_studio` with `mediaType: "photos"` first so the user selects the image(s) in the browser (several for a carousel) and the Studio stages them, then either publis…
upload_textUpload text postPublish a text-only post. `linkUrl` (or platform-specific *LinkUrl) attaches a link preview where supported. Reddit posting is currently unavailable (error_code=reddit_unavailable) until the Reddit app is restored. Do not use reddit as a publish target.
upload_videoUpload videoPublish a video to one or more platforms. Use `videoPathOrUrl` only for public/signed HTTPS URLs, or for absolute local paths when the MCP server runs on the same machine as the file. A hosted MCP server cannot publish attached files passed as `/mnt/data`, sandbox, or other mounted local paths; for those files, ALWAYS call `open_upload_studio` first so the browser stages the video, then publishes it. `videoBase64` is only for clients that can provide raw bytes directly and is capped by UPLOAD_POST_MAX_INLINE_MB (default 100). Returns a `request_id` you can poll with `get_status`. Supports per-…
validate_jwtValidate platform-integration JWTread-onlyVerify a JWT previously issued by `generate_jwt`. The returned `profile` object echoes the connection page settings, including `language` and any `ui_labels`.
Signals
- Stars
- 11
- Forks
- 4
- Open issues
- 0
- Last commit
- Oct 22, 2026 (7 days ago)
- Last release
- Sep 27, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
com.upload-post/mcp- Version
- 0.10.0
- Auth
- Bearer token
- License
- MIT
- Repository
- github.com/Upload-Post/upload-post-mcp
- Website
- www.upload-post.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Upload-Post MCP server. Agent Mart. https://agentmart.dev/connectors/upload-post-com-mcp (last updated 2026-10-24)