PrismPoster Creator Tools 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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_social_media_placementA | Look up one social media placement by id and return its frame size, aspect ratio, first-party safe-area insets in px, usable box, and the official page the figures came from. Pass sourceWidth and sourceHeight together to also get the centre-crop and letterbox plan that fits your footage to this placement. Use this when you know the target placement; use list_social_media_placements to browse or compare placements, check_safe_area to test whether an element is clear of the platform UI, and calculate_aspect_ratio for a ratio that is not a platform placement. For TikTok the insets are null with a reason, because TikTok publishes no fixed safe area. Errors on an unknown id (the message lists valid ids) or on only one source dimension. |
| list_social_media_placementsA | List every supported social media placement (or one platform's) with frame size, aspect ratio, safe-area insets in px, usable box and first-party source URL, in one response. Use this to browse, compare platforms, or find a placement id; use get_social_media_placement when you already know the id and also need a crop/letterbox plan for your footage. The list is a fixed built-in dataset returned whole, with no paging. |
| check_safe_areaA | Check whether a rectangle (a caption, logo or button, in px on the placement's own frame, origin top-left) stays inside the placement's published safe area, and by how many px it intrudes past each edge if not. Use this to validate a layout before export; use get_social_media_placement for the raw insets. Returns verdict "inside", "intrudes" or "unknown"; "unknown" means the platform publishes no fixed safe area (TikTok) and comes with the reason instead of a guess. Errors on an unknown placement id or a box with non-positive size. |
| calculate_aspect_ratioA | Reduce any pixel size to its simplest aspect ratio (1920x1080 is 16:9), round it up to an even or codec-block multiple, and, given a target ratio, return the centre-crop and letterbox/pillarbox plans with the px removed or added per edge. Use this for arbitrary sizes and ratios (cinema 2.39:1, a client's 4:5); when the target is a named platform placement, use get_social_media_placement with sourceWidth/sourceHeight instead, which picks the right ratio for you. Errors on a non-integer or out-of-range size, or on only one of targetRatioW/targetRatioH. |
| estimate_video_bitrateA | Video size and bitrate arithmetic for a clip of durationSec. Pass totalKbps to get the encoded file size (bytes, binary MiB and decimal MB); pass targetBytes to get the highest total bitrate that fits that size; add widthPx, heightPx and fps (with totalKbps) to get bits per pixel, a codec-independent check of whether the bitrate suits the resolution. Kbps is decimal (1 kbps = 1000 bit/s) and covers video plus audio. Use it to plan an export or hit an upload cap; it does not inspect or encode files. Errors when neither totalKbps nor targetBytes is given, or when only some of the bits-per-pixel inputs are. |
| convert_subtitlesA | Convert subtitle text between SRT, WebVTT and ASS/SSA, optionally shifting every cue by shiftMs, and return the converted text with the cue count and any warnings. Pass the file contents, not a path. The input format is detected from the content unless fromFormat is given. Malformed blocks are skipped with a warning instead of failing the whole file; converting to ASS rounds timings to 10 ms. Errors when the format cannot be detected or no cue could be parsed. |
| estimate_tempoA | Tempo arithmetic for editing to music: pass tap timestamps (ms) to estimate BPM, with a spread figure that shows how steady the taps were, or pass a known bpm to get the beat and 4/4 bar length in ms for cutting on the beat. It works on numbers you supply and does not analyse audio. Taps more than 2.5 s apart restart the count, and outlier intervals (a missed or doubled tap) are discarded. Errors when neither input is given, fewer than two usable taps remain, or bpm is outside 20-400. |
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 7 tools
Each tool has a narrow, clearly separated purpose, and the descriptions explicitly cross-reference the nearest alternatives (get vs. list placements, calculate_aspect_ratio vs. placement-specific crop plans, check_safe_area vs. raw insets). There is no meaningful ambiguity about which tool to select for a given task.
All tool names follow a consistent snake_case verb_noun pattern: get_, list_, check_, calculate_, estimate_, and convert_. No mixed conventions or vague names appear in the set.
Seven tools is well-scoped for a creator utility server, with each tool covering a distinct preparation task. None appears redundant or trivially included just to inflate the surface.
The set covers placement discovery and lookup, safe-area validation, aspect-ratio and crop math, bitrate sizing, subtitle conversion, and tempo arithmetic. Minor gaps remain around actual media-file probing/encoding and richer subtitle styling or validation, but these appear intentionally out of scope for an arithmetic/planning toolkit.