postward-creative-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| generate_imageA | Generate an image from a text description using AI (fal FLUX, OpenAI DALL-E 3 or Stability). Requires a provider API key (set_provider_key). The image is saved locally — it is not uploaded anywhere. For Stability, any WxH size is mapped to the nearest supported aspect ratio. |
| generate_voiceoverA | Generate a voiceover from text using AI text-to-speech (fal, OpenAI TTS or ElevenLabs). Requires a provider API key. Returns the path to the generated MP3. |
| generate_musicA | Generate instrumental background music from a description (fal). Requires a fal API key. Returns the path to the generated audio file. |
| generate_videoA | Generate a short video from a text description using AI (fal or Runway). Requires a provider API key. Generation is slow (minutes). Returns the path to the generated MP4. |
| animate_imageA | Animate a static image using AI image-to-video (fal). The source image is a local file path. Requires a fal API key. Returns the path to the generated MP4. |
| edit_imageA | Edit an existing image using a text instruction (e.g. "make the background blue", "add a red hat"). Uses fal or OpenAI. Requires the matching provider key. Returns the path to the edited image. |
| remove_backgroundA | Remove the background from an image, producing a transparent PNG (Replicate or fal). Requires the matching provider key. |
| upscale_imageB | Upscale an image to higher resolution — 2x or 4x (Replicate Real-ESRGAN or fal). Requires the matching provider key. |
| replace_backgroundA | Replace the background of an image following a text description (fal). Requires a fal API key. Returns the path to the new image. |
| trim_videoA | Cut a segment out of a video (start to end). Timestamps accept seconds ("90"), "MM:SS" or "HH:MM:SS". Cut points snap to the nearest keyframe (stream copy, no re-encode). |
| concat_videosA | Join 2 to 4 video clips into one. Clips must share the same codec/resolution (stream copy, no re-encode) — use transcode_video first if they differ. |
| transcode_videoA | Normalize a video to a fixed aspect ratio (9:16, 1:1 or 16:9) with padding, re-encoded. Unknown aspect values are rejected — nothing silently falls back. |
| extract_frameA | Grab a single frame from a video as a PNG image, at a timestamp ("90", "1:30", "00:01:30"). |
| extract_audioC | Pull the audio track out of a video as an AAC .m4a file. |
| create_gifB | Create a looping animated GIF from a segment of a video. |
| add_watermarkC | Overlay a logo image (PNG with transparency works best) on top of a video. |
| burn_subtitlesA | Burn an .srt subtitle file into the video pixels (visible on every platform). Optional ASS force_style string, e.g. "FontSize=24,PrimaryColour=&H00FFFFFF". |
| add_fadeA | Add a fade-in and/or fade-out to a video (seconds). |
| change_speedA | Change playback speed (0.25x to 4x). Video and audio stay in sync. |
| reverse_videoA | Play a video backwards (audio included when present). |
| flip_videoB | Mirror a video horizontally or vertically. |
| crop_videoC | Cut a video to a rectangular region. Width/height must be even numbers. |
| adjust_volumeA | Adjust audio volume, in decibels (+6 = louder, -6 = quieter). |
| replace_audioA | Swap a video's audio track with another audio file. Output ends when the shortest input ends. |
| overlay_textB | Burn a text caption onto the video (e.g. a hook or a call to action). Text is centered by default. |
| resize_imageC | Scale an image to fit within width x height (aspect ratio preserved). |
| convert_formatA | Convert an image between PNG, JPEG and WebP. JPEG gets a white background where the source is transparent. |
| image_thumbnailB | Create a small preview version of an image (aspect ratio preserved). |
| image_infoB | Get an image's dimensions, format, byte size, MIME type and SHA-256. |
| probe_mediaA | Get detailed info about a local media file — duration, resolution, codecs, bitrate. Works on video, audio and images. |
| checksum_fileA | Calculate the SHA-256 hash of any local file. |
| set_provider_keyA | Configure an AI provider API key. Keys are stored locally in ~/.postward-creative/keys.json (file permission 0600) and never leave this machine — they are sent only to the provider they belong to. |
| get_provider_statusA | Check which AI provider API keys are configured (keys are only shown masked). Also lists which providers each generation tool can use. |
| prepare_for_postwardA | Format a local file's metadata for upload to Postward (postward.cc). Returns the file info (path, MIME type, byte size, SHA-256) that you need to call request_source_asset_upload and then register_source_asset in the Postward MCP. This tool does NOT upload or authenticate — it only prepares the metadata. Use it when the user asks to move content into Postward for storage, review, scheduling or publishing. |
| list_toolsA | List every tool this server offers, with a one-line description. Useful to plan multi-step content work. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 35 tools
Each tool targets a distinct media operation or generation task, and the descriptions clarify inputs and outputs. A few pairs could be confused without careful reading—resize_image vs upscale_image, probe_media vs image_info, animate_image vs generate_video—but the boundaries are mostly clear.
The overwhelming pattern is snake_case verb_noun: generate_image, trim_video, crop_video, adjust_volume, set_provider_key. Only image_thumbnail and image_info break the pattern as noun_noun names, and list_tools is a minor meta exception.
35 tools is a heavy surface for a single MCP, well beyond the comfortable 3-15 range and even above the 16-25 heavy band. The broad video/image/AI scope explains some of the size, but the set would be easier to navigate if split into smaller focused servers or curated down.
The server covers a wide range of key creative workflows: AI generation, image transformations, video editing, audio replacement, metadata inspection, and Postward preparation. Minor gaps exist, such as no direct caption generation from audio and no slideshow-from-images tool, but most multi-step workflows can be assembled from the existing tools.