All tools accept the API key embedded in your MCP URL. They are scoped to a single organization. Costs for AI generation are always returned in credits, never in USD. ($1 USD = 1,000 credits.)
Quick reference
Context & Discovery
POSTZEE_GET_CONTEXT
Single-shot context aggregation. Recommended first call of every session. Returns plan, credits, storage, channels, features, and skill version in one round-trip. Parameters: None Returns:features.* flags reflect what the MCP can drive right now — agents should only suggest features where the corresponding flag is true.
POSTZEE_LIST_PLANS
List the 5 subscription tiers with pricing and limits. Parameters: None Returns:POSTZEE_LIST_CREDIT_PACKAGES
List one-time credit packages (eternal — never expire). Parameters: None Returns:Models & Specs
POSTZEE_LIST_MODELS_DETAILED
Capability matrix for all available image and video models — durations, resolutions, audio capabilities, accepted custom params, and a relative cost tier. Parameters:
Returns (per model):
costTier is one of very-low, low, mid, high, premium — the absolute credit cost is intentionally not exposed; use POSTZEE_ESTIMATE_GENERATION_COST instead.
The synthetic heygen-avatar-video entry has costTier: "external" and a billingNote indicating that HeyGen bills on the user’s HeyGen account, not Postzee credits.
POSTZEE_LIST_PLATFORM_SPECS
Per-platform specs (aspect ratios, max slides for carousels, caption character limits, hashtag recommendations). Parameters:
Covered platforms: instagram, facebook, linkedin, x, tiktok, youtube, pinterest, threads, bluesky, reddit.
POSTZEE_GET_BEST_POSTING_TIMES
Curated heuristic best-posting-time windows per channel, returned in the organization’s timezone. Parameters:
Returns:
disabled or requiresReauth status are filtered out — recommendations are only returned for channels that can actually post.
Cost & Validation
POSTZEE_ESTIMATE_GENERATION_COST
Single source of truth for cost estimates. Always returns credits, never USD. Parameters:
Returns:
POSTZEE_VALIDATE_GENERATION
Pre-flight validation — catches param errors, insufficient credits, storage issues, and plan blocks before burning credits. Parameters:
Returns:
valid: false, the errors[] array contains human-readable problems — e.g. duration not in the model’s allowed set, missing imageUrl for an i2v model, storage 100%, or a model that’s registered but not yet driveable through MCP.
Channels & Credits
POSTZEE_LIST_CHANNELS
List connected social media channels with explicit action flags. Parameters: None Returns:actionRequired is one of "none" (ready to post), "reconnect" (token expired — user reconnects), or "reenable" (admin/billing — user re-enables, not the same as reconnect).
statusMessage is a human-readable explanation when the channel requires action (e.g., "Channel token expired. Reconnect to keep posting."). It is null when actionRequired is "none".
POSTZEE_GET_CREDITS
Lightweight credit balance. Subset ofPOSTZEE_GET_CONTEXT.credits — prefer the latter for new code.
Parameters: None
Returns:
Media Memory
The two tools below let an agent recall and reuse media assets — both AI-generated and user-uploaded — across turns and across sessions, instead of asking the user to paste URLs again.POSTZEE_LIST_MEDIA
Recent media list, scoped to the organization. Returns the newest items first. Parameters:
Returns (per item):
Soft-deleted media is automatically excluded. Media used as a user profile picture is also excluded.
POSTZEE_UPLOAD_MEDIA
Import a public URL into Postzee’s storage. Returns a stablemediaId and CDN URL for reuse across GENERATE_*, CREATE_POST, and LIST_MEDIA calls.
Parameters:
Returns (success):
- URL is parseable and uses
http/https - Hostname is not localhost / private IP / cloud-metadata endpoint (SSRF defense)
- HEAD probe succeeds (or ranged GET fallback)
- Content-Type matches the configured allowlist (default:
image/jpeg,image/png,image/webp,image/gif/video/mp4,video/quicktime,video/webm) - Size within the per-kind cap (default: 25 MB image, 500 MB video)
- Organization storage quota has room
Limits and accepted formats can be tuned at runtime by updating the corresponding
UPLOAD_* keys in SystemConfig. Both this MCP tool and the REST upload endpoints share the same source of truth — change once, applies everywhere within ~5 minutes (cache TTL).
After a successful import, the media appears in
POSTZEE_LIST_MEDIA with source: "uploaded".Prompt Enhancement
POSTZEE_ENHANCE_PROMPT
Optimize a user prompt for better AI generation results. Free — no credit cost. Parameters:
Returns:
Generation
POSTZEE_GENERATE_IMAGE
Generate an AI image from a text prompt. Async operation — returns a job id to poll withPOSTZEE_CHECK_JOB.
Parameters:
Returns (success):
POSTZEE_GENERATE_VIDEO
Generate an AI video from a text prompt or reference image. Async operation. Parameters:
Returns: same shape as
POSTZEE_GENERATE_IMAGE.
Tier-specific model ids returned by
POSTZEE_LIST_MODELS_DETAILED (e.g. ideogram-v3-turbo, gpt-image-2-high, sora-2-t2v-pro-1080p, recraft-v4-vector) can be passed directly to model. The MCP translates them to the right backend payload automatically — no separate tier or quality param required for tier selection.POSTZEE_CHECK_JOB
Poll the status of an async image or video generation job. Parameters:
Returns (processing):
Images & Carousels
The image and carousel pipeline lets the agent compose editorial slides with pixel-perfect typography, consistent fonts, and no hallucinated words. The agent submits the composed slide(s); Postzee renders and returns the final media ready to publish. Four tools cover the lifecycle: a single-image render for standalone posts with editorial typography, a full carousel render for the initial batch, surgical replacement for fixes, and incremental append for iterative authoring.POSTZEE_RENDER_IMAGE
Render ONE HTML document to a single PNGMedia. The single-image counterpart to POSTZEE_RENDER_CAROUSEL, for standalone editorial posts (text-heavy single images, magazine-style covers, hero quote cards) where the value is in the layout + typography rather than in a swipeable sequence.
Parameters:
Same hard limits as
POSTZEE_RENDER_CAROUSEL: 7 MB max payload, 256-2160 px per dimension, 45 s render timeout.
Returns (success):
mediaGroupId is exposed for advanced callers but typical use is to pass mediaUrl directly to POSTZEE_CREATE_POST as a single-element mediaUrls array.
Returns (failure):
mediaId instead of re-rendering.
POSTZEE_RENDER_CAROUSEL
Render N HTML slides to PNG and atomically group them as one carouselMediaGroup. Synchronous — blocks until all slides finish.
Parameters:
Hard limits enforced server-side:
- Max 15 slides per call
- Min 256 / max 2160 px per dimension
- 7 MB max HTML per slide
- 50 MB max total payload per call (sum of all slides)
- 45 s timeout per slide
POSTZEE_CREATE_POST is called with mediaUrls exceeding the destination limit, Postzee rejects the post before calling the platform API, with an error message translated to the user’s language. Call POSTZEE_LIST_PLATFORM_SPECS for the live table.
Partial-tolerant failure model. If a slide errors out or the dispatcher times out before all slides settle, the group is preserved with renderStatus: "partial" in aiMetadata (instead of being rolled back). Retry missing slides via POSTZEE_REPLACE_CAROUSEL_SLIDE or POSTZEE_APPEND_CAROUSEL_SLIDE. Slides that DID render are never destroyed — the user keeps their work even on partial failure.
Order is structural, not temporal. The array index = orderInGroup, assigned BEFORE any worker runs. Slides may render in parallel but order is preserved deterministically.
Security model. Slide compositions are rendered as static content — interactive scripts are inert. Network requests for referenced assets are restricted to public hosts (private/internal addresses are blocked).
Returns:
mediaUrls is already in display order — pass it straight to POSTZEE_CREATE_POST.
Failure response:
POSTZEE_REPLACE_CAROUSEL_SLIDE
Surgically replace ONE slide in an existing carousel without touching the others. Use when the user says “change slide N” — saves time and credits, and preserves slide identity (other slides keep their URLs and IDs). Parameters:
The replaced slide is soft-deleted after the new render uploads successfully; the new slide takes the same
orderInGroup. If orderInGroup === 0, the carousel’s cover thumbnail is updated automatically.
Returns:
POSTZEE_APPEND_CAROUSEL_SLIDE
Append ONE new slide to the end of an existing carousel. Use for iterative authoring — when the user wants to build the carousel slide-by-slide (“show me slide 1… ok now slide 2…”), this keeps every new slide landing in the SAMEMediaGroup instead of producing N orphan single-slide groups in the gallery.
Parameters:
The new slide is appended at the next available
orderInGroup (gap-safe — if intermediate slides were deleted, this picks max(orderInGroup) + 1, never reuses a free slot). Cover thumbnail is unchanged.
Iterative authoring pattern. First slide should still go through POSTZEE_RENDER_CAROUSEL (it’s what creates the MediaGroup). Every subsequent slide goes through APPEND_CAROUSEL_SLIDE with the same mediaGroupId. Calling RENDER_CAROUSEL a second time for the same logical carousel produces a new group and breaks the iterative flow — don’t.
Returns:
HeyGen
HeyGen tools require a HeyGen API key configured in your Postzee account. Connect at Settings → HeyGen integration. HeyGen video generation bills on your HeyGen account, not Postzee credits.
POSTZEE_LIST_HEYGEN_AVATARS
List available HeyGen avatars (filter by gender, age, style, etc. on the client side). Parameters: None Returns: Array of avatars from your HeyGen account.POSTZEE_LIST_HEYGEN_VOICES
List available HeyGen voices. Parameters: None Returns: Array of voices from your HeyGen account, with language and gender info.POSTZEE_GENERATE_HEYGEN_VIDEO
Create an avatar video with HeyGen. Async operation — poll withPOSTZEE_CHECK_JOB.
Parameters:
Returns: same shape as
POSTZEE_GENERATE_IMAGE — jobId + status: "processing". The response also notes that HeyGen credits (not Postzee) will be consumed.
Posting
POSTZEE_CREATE_POST
Create, schedule, or publish a post to a social media channel. Parameters:
Returns (success):
POSTZEE_CREATE_POST returns a postId immediately, but the post is not live yet. Poll POSTZEE_GET_POST with that postId until state is "PUBLISHED" to obtain the platform post id (releaseId) and permalink (releaseURL).
Returns (failure):
error codes:
POSTZEE_GET_POST
Get a single post’s publication status — poll this afterPOSTZEE_CREATE_POST to obtain the platform post id and permalink once the post goes live.
Parameters:
Returns (success):
While the post is still publishing,
state is "QUEUE" and releaseId/releaseURL are null — keep polling until state is "PUBLISHED" (or "ERROR" if publishing failed).
Returns (failure):
Legacy tools (deprecated)
The following tools still work but are superseded:POSTZEE_LIST_IMAGE_MODELS→ usePOSTZEE_LIST_MODELS_DETAILED({ type: "image" })POSTZEE_LIST_VIDEO_MODELS→ usePOSTZEE_LIST_MODELS_DETAILED({ type: "video" })
Async workflow pattern
Image, video, and HeyGen generation are async. The recommended workflow:- Validate first —
POSTZEE_VALIDATE_GENERATIONto catch param errors and insufficient-credit cases without burning credits - Estimate cost —
POSTZEE_ESTIMATE_GENERATION_COSTif you need the precise number to show the user - Enhance the prompt —
POSTZEE_ENHANCE_PROMPT(free) - Generate —
POSTZEE_GENERATE_IMAGE/POSTZEE_GENERATE_VIDEO/POSTZEE_GENERATE_HEYGEN_VIDEO→ returnsjobId - Poll —
POSTZEE_CHECK_JOBevery few seconds. Typical latencies: 10-60s for images, 30-180s for videos, up to 5 min for HeyGen - On success — use
mediaUrlinPOSTZEE_CREATE_POST
Standard error format
All write/generate tools return:error machine code for logic; use message to narrate to the user (translated to their language).
Rate limits
Claude Code
Connect Postzee to Claude Code.
OpenClaw
Connect Postzee to OpenClaw.
Hermes Agent
Connect Postzee to Hermes Agent.
MCP Overview
Back to MCP overview.