com.juzpost/mcp

JuzPost

Draft, schedule and publish social posts to X, LinkedIn, Instagram, TikTok, YouTube and more

Endpointhttps://www.juzpost.com/mcp (streamable-http)
Registry version1.0.0
Now19 tools · grade F (36) · pin ts_514d6d857fb999e00d014de561865e90 · protocol 2025-06-18
First / last listed2026-11-06 01:30 UTC / 2026-11-06 01:30 UTC
Grade over time2026-11-06: F (36), 19 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-11-06 01:30 UTC
19 tools, grade F (36)

Tools: get_context list_workspaces switch_workspace list_accounts list_options get_platform_limits list_groups list_posts get_post create_post update_post delete_post schedule_post upload_file upload_media create_upload_url upload_begin upload_part upload_finish

Current tools (19)

get_contextReports who this connection is, the one workspace it acts on (use switch_workspace to change it), the plan, billing state, entitlements, quotas, limits and a plain-language list of what is blocked right now. Use this to see what the connection can do, and after an error mentions a plan or quota. Returns user, credential, workspace, plan, billing, entitlements, quotas, limits and blocked[]. The pla
params: none
list_workspacesLists every workspace the user belongs to, marks the one this connection acts on, and says what each allows through the connector: none (Free or no plan) or full (Solo, Growth, Pro). Use this when the user names another workspace or a tool reports a plan lock; then switch_workspace moves the connection. Returns workspaces[] (id, name, slug, isOwner, current, plan, access). Does NOT switch, create
params: none
switch_workspaceA connection acts on one workspace at a time. This moves it onto another workspace the user belongs to (id or slug from list_workspaces) for every later call, until switched again, and returns the new context. Use this when the user names a workspace other than the current one; confirm with them before switching. Returns switched and the full get_context shape for the new workspace, which says wha
params: workspace*
list_accountsLists the social accounts connected to the workspace, with health, how many posts are queued on each, and the effective limits for that account. Use this to pick the accounts for create_post and schedule_post, or to check whether an account needs reconnecting. Returns accounts[] (id, ref, platform, username, health, scheduledCount, limits, blockedByPlan, and seo for WordPress accounts), nextCursor
params: limit, cursor, platform, groupId, sort
list_optionsLists the choices one account offers for a setting the schedule needs, read live from the platform. Requests: list_board (pinterest, ids go in pinterest.board_id); list_post_type (wordpress, ids go in wordpress.post_type). Use this when the user posts to Pinterest: list the boards, ask which one, and pass its id as board_id. Use list_post_type when the user wants a WordPress post published as some
params: account_id*, platform*, req_type*
get_platform_limitsReturns the full publishing rules for one platform or all of them: caption and title limits and units, media counts, sizes, formats, whether media is required, hashtags, mentions, native scheduling, plus the global file rules. Use this before drafting to answer "will this fit on X / Instagram / TikTok". Returns platforms[] (one object per platform, with effectiveBodyLimit) and global. imageFormats
params: platform
list_groupsLists channel groups (named sets of accounts) with their member account ids. Use this when the user names a group ("post to my brand accounts") to resolve it to the account ids schedule_post takes. Returns groups[] (id, name, accountIds, accountCount), nextCursor and hasMore. Does NOT create or edit groups.
params: limit, cursor, name, sort
list_postsLists posts in the workspace: drafts, scheduled, published and failed. Use this to find drafts to schedule, to review the queue, or to find a post id for get_post, update_post, schedule_post (publish_now on a scheduled post) or delete_post (any status). Returns posts[] (id, status, type, title, content, mediaUrls, scheduledFor), nextCursor and hasMore. Refer to posts by title or caption when talki
params: limit, cursor, status, accountId, from, to, sort, order
get_postFetches one post with its per-account rows: status, publish time, published time and any error per account. Use this after schedule_post to confirm what happened, or when the user asks why a post failed. Returns the post (content, media, metadata, socialAccountIds) and targets[] with platform and username. Refer to posts by title or caption and to accounts by platform and username when talking to
params: post_id*
create_postCreates a draft post with everything the composer saves: caption, title, description, hashtags, media, the accounts it goes to, per-account text (account_overrides, channel_overrides), per-account media and covers, and each platform's settings. Media can be public URLs (downloaded and stored server-side) or media keys from upload_media. Facebook text post with a link: also set platform_settings.fa
params: content, title, description, hashtags, type*, media_urls, media_keys, cover_key, idempotency_key, account_ids, account_overrides, channel_overrides, media_by_account, cover_by_account, cover_timestamp_ms, tiktok, pinterest, facebook, bluesky, wordpress
update_postEdits a draft or a scheduled post, the same edit the composer makes: caption, title, description, hashtags, type, media keys, cover, accounts, per-account text, media and covers, platform settings, and the time. Only the fields passed change; media_keys: null clears the media. The per-account maps (account_overrides, channel_overrides, media_by_account, cover_by_account, each platform's settings)
params: post_id*, content, title, description, hashtags, type, media_keys, cover_key, account_ids, account_overrides, channel_overrides, media_by_account, cover_by_account, cover_timestamp_ms, tiktok, pinterest, facebook, bluesky, wordpress, publish_at, publish_at_overrides
delete_postPermanently deletes a post in any status (draft, scheduled, failed or published) from JuzPost, with its per-account rows. A scheduled post's timer is cancelled first, so it never publishes; a published post's analytics in JuzPost go with it. Use this only when the user explicitly asks to delete the post. Returns deleted=true, the post id and what the deleted post was (title, caption, type, media c
params: post_id*
schedule_postSchedules a post to one or more accounts at publish_at, or publishes immediately with publish_now=true. This publishes to real accounts. Times are ISO 8601 ending in Z or an offset, like 2026-11-03T09:00:00+05:30: use the user's own local time with its offset. workspace.timezone from get_context is the workspace's display zone, not necessarily where the user is; if you are unsure of their timezone
params: post_id, content, title, description, hashtags, type, media_urls, media_keys, cover_key, idempotency_key, account_ids, account_overrides, channel_overrides, media_by_account, cover_by_account, cover_timestamp_ms, tiktok, pinterest, facebook, bluesky, wordpress, publish_at, publish_now, publish_at_overrides
upload_fileShows an upload card where the user picks images or videos from their device (images up to 20 MB, videos up to 1 GB); the card stores the original files in the workspace. Use this in a chat app that shows cards (Claude.ai, Claude Desktop, Claude mobile) whenever the user attached a file in the chat or wants to add one from their device: you cannot read their attachment, so let them pick it here. W
params: none
upload_mediaStores the original image or video in the workspace from a file the chat app hands over, a public URL (up to 1 GB for a video) or inline base64 (up to 3 MB), checking the real file type and the storage quota. Use this when the user gives you a link to attach to a post, or when the chat app hands you their attachment as `file` (ChatGPT does); then pass the returned media_key to create_post or updat
params: file, url, base64, content_type, filename
create_upload_urlReserves storage for one file and returns a presigned upload_url (valid 1 day) plus the media_key it will be stored under. Images up to 20 MB, videos up to 1 GB. Use this in Claude Code, a terminal or a script, for a local file or any video: PUT the ORIGINAL file bytes, unmodified, to upload_url with the returned content-type header and exactly `bytes` bytes, then pass media_key to create_post or
params: filename*, content_type*, bytes*
upload_beginCalled only by the JuzPost upload card, never by the model. Reserves storage for one file and starts a multipart upload. Returns media_key, upload_id, part_size and parts.
params: filename*, content_type*, bytes*
upload_partCalled only by the JuzPost upload card, never by the model. Stores one part of a file started with upload_begin: the original bytes as base64, exactly part_size bytes except the last part. Returns part_number and bytes.
params: media_key*, upload_id*, part_number*, data*
upload_finishCalled only by the JuzPost upload card, never by the model. Completes an upload once every part is stored. Returns media_key, bytes and content_type.
params: media_key*, upload_id*

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.