이 MCP로 할 수 있는 일
Plans, renders, and posts on-brand visual marketing campaigns.
도구
입력 스키마
{'type': 'object', 'properties': {'name': {'type': 'string', 'default': '', 'description': "The person's name."}, 'role': {'type': 'string', 'default': '', 'description': 'Their role, e.g. Founder, Head of Design.'}, 'team': {'type': 'string', 'default': '', 'description': 'Their team, if any.'}, 'image_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Public https URL of a portrait (PNG, JPG or WebP), one face.'}, 'image_base64': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The portrait as base64, if you have no URL.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'credits': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Or a custom amount, 50 to 5000, at $0.20 each.'}, 'pack_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'small (50 credits, $9.99), medium (100, $20) or large (300, $50).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['brief'], 'properties': {'brief': {'type': 'string', 'description': 'Plain-language request for the post, e.g. "announce the new export feature, use the dashboard screenshot".'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['brief'], 'properties': {'brand': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'default': None, 'description': "Make it for ANOTHER brand instead of this workspace's own (a client, a brand people recognise, a side project). Object: {name (required), site, logo_url (https PNG/SVG/JPG of the brand's MARK or app icon, e.g. Duolingo's owl, not the wordmark: the film sets the name in type), accent (hex: the brand's signature colour, the one films are painted in), primary (hex: its dark or ink colour), secondary, tagline, font (the brand's typeface name, e.g. Nunito), x_handle, sells (one line: what they make)}. Clean slate: none of this workspace's logo, colours, mascot, font, handle, screenshots or memory is used; only what you send. YOU look the brand up first: their site, their logo file (the image in their site header, or their /brand or /press page, or the app icon) and their colours as hex. A missing, dead or damaged logo is refused (brand_logo_required / brand_logo_unreachable / brand_logo_unreadable) because a film with no mark is a generic video; one colour for both primary and accent is refused too. Never invent a logo URL and never pass a screenshot of their page as the logo. Omit to use this workspace's Brand DNA."}, 'brief': {'type': 'string', 'description': 'Plain-language request for the post, e.g. "announce the new export feature, use the dashboard screenshot".'}, 'media': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': "Films: URLs from upload_media (images and videos) for the film to show. Omit and the film shows the brand's recent work. Images: not used; add pictures to Brand DNA with upload_product_screen instead."}, 'music': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Films: a music bed track_id. Omit and the bed follows the film and the direction.'}, 'caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional caption for the post this run becomes. Your words are kept; omit and Siren writes the caption.'}, 'channel': {'type': 'string', 'default': 'twitter', 'description': 'Target channel for the render: twitter, instagram, linkedin, tiktok, or youtube. Sets the default aspect (X square, Instagram 4:5, TikTok 9:16) and copy length. A shape named in the brief wins: square, vertical, portrait, story, wide, landscape, 4:5, 9:16, 16:9.'}, 'timezone': {'type': 'string', 'default': 'UTC', 'description': 'IANA timezone name for scheduled_at, e.g. Africa/Lagos or America/New_York.'}, 'direction': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Films: one free line on mood, pace, motion and music, e.g. "emotional, slow, soft piano" or "dark, club energy, fast cuts".'}, 'platforms': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Where to post: any of x, instagram, tiktok, linkedin, youtube, or ["everything"] for every connected channel.'}, 'voiceover': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'Films: true = narrated in the brand voice, false = motion + music only. Omit and the brief decides; if the human never said, ask them once.'}, 'asset_type': {'type': 'string', 'default': 'card', 'description': 'What to make: card (still image) or video.'}, 'output_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional film to pin, e.g. "story" or "pitch". Call list_films to browse; describe_film for the contract. Omit and Siren picks the format from the brief.'}, 'scheduled_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'ISO-8601 time to post, e.g. 2026-09-12T09:00:00. Interpreted in the given timezone.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'kind': {'type': 'string', 'default': 'auto', 'description': 'auto (Siren picks from the brand), animal, creature, object, robot, food, or abstract.'}, 'name': {'type': 'string', 'default': '', 'description': "The mascot's name, if the human has one."}, 'note': {'type': 'string', 'default': '', 'description': "Describe the character in the human's words: what it is, colours, personality, what to avoid. Up to 280 characters."}, 'style': {'type': 'string', 'default': 'vinyl', 'description': 'Material: vinyl (default), clay, plush, wool, or glossy.'}, 'image_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "A reference picture of the mascot (https PNG/JPG/WebP). Siren paints it in the brand's style, keeping the character."}, 'image_base64': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The reference picture as base64, if you have no URL.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['video_id'], 'properties': {'video_id': {'type': 'string', 'description': 'Id from list_brand_videos.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'The URL upload_media returned (or one from list_media).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['person_id'], 'properties': {'person_id': {'type': 'string', 'description': 'Id from list_people.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['screen_id'], 'properties': {'screen_id': {'type': 'string', 'description': 'Id of the brand asset from list_product_screens.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['output_type'], 'properties': {'output_type': {'type': 'string', 'description': 'Film id from list_films, e.g. "story", "pitch", "gallery".'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'window': {'type': 'string', 'default': '30d', 'description': '7d, 30d or 90d.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'description': 'The run id returned by create_campaign, render_asset, or list_runs.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'all': {'type': 'boolean', 'default': False, 'description': 'true = every film that passes the filters on one page (about 10k tokens for the whole library). Prefer job + page, or the catalog.md file.'}, 'job': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The shelf: launch, feature (one feature or update), explain (what the product does), brand (story, manifesto, mood), ai (AI or agent product), proof (a number, testimonials), app (mobile app), shop (products, food, property), people (team or mascot). Omit to rank the whole library.'}, 'goal': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The human\'s own words for the outcome, e.g. "launch video for our new AI agent" or "show our 10k users". Ranks the films by fit.'}, 'page': {'type': 'integer', 'default': 1, 'description': 'Page number, from 1. Each page is page_size films; next_page in the answer says what to call next.'}, 'aspect': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only films that render this shape: wide-desktop, square-ig, story-reel, vertical-ig-feed.'}, 'detail': {'type': 'string', 'default': 'short', 'description': '"short" (default) or "full" to add the long description per film.'}, 'search': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Find films by word across ids, names and descriptions, e.g. "phone", "chat", "mascot", "halftone". Every word must match.'}, 'narrated': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'default': None, 'description': 'true = only films with a voice-over part; false = only music-and-motion films.'}, 'page_size': {'type': 'integer', 'default': 8, 'description': 'Films per page, 1 to 25.'}, 'max_seconds': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'default': None, 'description': 'Only films this long or shorter, e.g. 15 for a short feed post.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 50, 'description': 'How many posts, 1 to 200. Newest first.'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Skip this many, to page back.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 10, 'description': 'How many runs to return, 1 to 50. Newest first.'}, 'offset': {'type': 'integer', 'default': 0, 'description': 'Skip this many runs, to page back through every video and image the workspace has made.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'all': {'type': 'boolean', 'default': False, 'description': 'true = every style that passes the filters on one page. Prefer section + page, or the styles.md file.'}, 'goal': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The human\'s own words for the still, e.g. "a hot take about launches" or "our pricing is simple". Ranks the styles by fit.'}, 'page': {'type': 'integer', 'default': 1, 'description': 'Page number, from 1. next_page in the answer says what to call next.'}, 'aspect': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only styles that paint on this shape: square-ig, vertical-ig-feed, story-reel, wide-desktop.'}, 'search': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Find styles by word in their id or when-to-pick line, e.g. "comic", "receipt", "billboard".'}, 'section': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The shelf: social-ad (feed ads), poster, launch, brand, og (link previews), youtube (thumbnails), app-store, event, wallpaper, arts-creative. Omit to rank the whole library.'}, 'page_size': {'type': 'integer', 'default': 8, 'description': 'Styles per page, 1 to 25.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['action'], 'properties': {'note': {'type': 'string', 'default': '', 'description': 'For retry: what to change this time.'}, 'label': {'type': 'string', 'default': '', 'description': 'For pose: the pose in a few words, e.g. waving, holding a phone.'}, 'action': {'type': 'string', 'description': 'keep = build the pose sheet from this hero; retry = paint the hero again; pose = add one more pose to a built mascot.'}, 'prompt': {'type': 'string', 'default': '', 'description': 'For pose: extra detail for the pose.'}, 'with_model': {'type': 'boolean', 'default': False, 'description': 'For pose: also make a 3D model of it (20 credits instead of 10).'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'description': 'The run id returned by create_campaign, render_asset, or list_runs.'}, 'caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Optional caption for this publish; goes out verbatim. Omit and Siren writes it.'}, 'platform': {'type': 'string', 'default': 'x', 'description': 'Connected channel to post to: x, instagram, tiktok, linkedin, or youtube.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['items'], 'properties': {'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Human-readable name for the asset or run.'}, 'items': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'description': 'Pre-formed SirenSeed film bodies to render (films only; images go through create_campaign). Each item: {output_type, channel, seed_body, archetype?, family?, surface?, caption?, voice_id?, music?, direction?, brand_override?}. music = a bed track_id (omit and the bed follows the film and brand). direction = one free line that steers words, pace and music. brand_override with a name = render for ANOTHER brand, clean slate: {name, site, logo_url, primary, accent, secondary, tagline, font, x_handle}.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['run_id', 'scheduled_at'], 'properties': {'run_id': {'type': 'string', 'description': 'The run id returned by create_campaign, render_asset, or list_runs.'}, 'captions': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Optional caption override per platform, e.g. {"x": "...", "linkedin": "..."}.'}, 'timezone': {'type': 'string', 'default': 'UTC', 'description': 'IANA timezone name for scheduled_at, e.g. Africa/Lagos or America/New_York.'}, 'platforms': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Where to post: any of x, instagram, tiktok, linkedin, youtube, or ["everything"] for every connected channel.'}, 'scheduled_at': {'type': 'string', 'description': 'ISO-8601 time to post, e.g. 2026-09-12T09:00:00. Interpreted in the given timezone.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['name', 'output_types'], 'properties': {'name': {'type': 'string', 'description': 'Name for this automation profile.'}, 'caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Default caption for auto-posted cards.'}, 'delivery': {'anyOf': [{'type': 'object', 'additionalProperties': True}, {'type': 'null'}], 'default': None, 'description': 'Optional delivery: {social_account_ids?, telegram?, discord?}.'}, 'output_types': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Studio types this profile may render.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['output_type', 'body'], 'properties': {'body': {'type': 'object', 'description': 'Card fields for that type (amount, productName, â\x80¦).', 'additionalProperties': True}, 'post': {'type': 'boolean', 'default': False, 'description': 'If true, post the finished card to a connected account. Confirm with the user first.'}, 'theme': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'dark or light. Omit to use the workspace default.'}, 'accent': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Hex accent, e.g. #5B82FF.'}, 'aspect': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Canvas aspect, e.g. square-ig or wide-twitter.'}, 'caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Caption when posting.'}, 'platform': {'type': 'string', 'default': 'x', 'description': 'Connected channel if post is true: x, instagram, tiktok, linkedin, or youtube.'}, 'output_type': {'type': 'string', 'description': 'One of the 33 Studio types from studio_templates, e.g. sale-notification.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['output_type', 'body', 'scheduled_at'], 'properties': {'body': {'type': 'object', 'description': 'Card fields for that type.', 'additionalProperties': True}, 'caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Caption for the scheduled post.'}, 'timezone': {'type': 'string', 'default': 'UTC', 'description': 'IANA timezone for scheduled_at.'}, 'platforms': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'x, instagram, tiktok, linkedin, youtube, or everything.'}, 'output_type': {'type': 'string', 'description': 'Studio type to render.'}, 'scheduled_at': {'type': 'string', 'description': 'ISO-8601 time to post.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['fields'], 'properties': {'fields': {'type': 'object', 'description': 'Brand DNA keys to change, e.g. {"tagline": "...", "offer": {"one_liner": "..."}}. Nested bags merge.', 'additionalProperties': True}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'required': ['screen_id'], 'properties': {'kind': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Free-text kind: product photo, dashboard screenshot, packaging, logo, team photo.'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Human-readable name for the asset or run.'}, 'theme': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'UI theme in the screenshot: light, dark, or unknown.'}, 'device': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Device the screenshot was taken on: phone, tablet, desktop, or none.'}, 'use_when': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'When Siren should reach for this asset, e.g. "any post about the analytics page".'}, 'screen_id': {'type': 'string', 'description': 'Id of the brand asset from list_product_screens.'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'What the picture shows and what it is for, in your words. When set, Siren files the asset without reading it.'}, 'screen_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Screen role: feature, hero, onboarding, settings, or marketing.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Public https URL of the clip (MP4, MOV or WebM, up to 200 MB and 5 minutes).'}, 'name': {'type': 'string', 'default': '', 'description': 'Human-readable name, e.g. "checkout demo".'}, 'tags': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Short lowercase search words.'}, 'base64': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The clip bytes as base64, if you have no URL.'}, 'use_when': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'When a film should play it, e.g. "any film about checkout".'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'What the clip shows, in your words. When set, Siren files it without reading it.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'variant': {'type': 'string', 'default': 'light', 'description': 'light = the mark used on light backgrounds (the usual one); dark = the one for dark backgrounds.'}, 'image_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Public https URL of the logo (PNG, JPG or WebP).'}, 'image_base64': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The logo bytes as base64, if you have no URL.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Public https URL of the photo or video to store. Pass this or base64.'}, 'kind': {'type': 'string', 'default': 'auto', 'description': 'auto (default), image, or video. Detected from the bytes when auto.'}, 'name': {'type': 'string', 'default': '', 'description': 'Human-readable name for the file.'}, 'base64': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The media bytes as base64, if you have no URL. Pass this or url.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
입력 스키마
{'type': 'object', 'properties': {'kind': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Free-text kind: product photo, dashboard screenshot, packaging, logo, team photo.'}, 'name': {'type': 'string', 'default': '', 'description': 'Human-readable name for the asset or run.'}, 'tags': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'default': None, 'description': 'Short lowercase tags for search, e.g. ["dashboard", "dark-mode"].'}, 'theme': {'type': 'string', 'default': 'unknown', 'description': 'UI theme in the screenshot: light, dark, or unknown.'}, 'device': {'type': 'string', 'default': 'phone', 'description': 'Device the screenshot was taken on: phone, tablet, desktop, or none.'}, 'use_when': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'When Siren should reach for this asset, e.g. "any post about the analytics page".'}, 'image_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Public https URL of a PNG, JPG, or WebP to store as a brand asset.'}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'What the picture shows and what it is for, in your words. When set, Siren files the asset without reading it.'}, 'screen_type': {'type': 'string', 'default': 'feature', 'description': 'Screen role: feature, hero, onboarding, settings, or marketing.'}, 'image_base64': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'The image bytes as base64, if you have no URL.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
최근 도구 변경
유사한 MCP 서버
ai-content-drop
Generates AI images, videos, UGC clips, avatars, and finished ads, while organizing creative assets and campaign boards.
Picorn
Creates and edits layered social images, videos, slideshows, vector assets, and marketing projects with persistent editable canva…
Create Web Page
Creates, edits, previews, publishes, and manages hosted link-in-bio and landing pages with configurable content blocks, themes, m…
Postclick by PPC.io: Landing Page CRO
Audits landing pages, analyzes buyers and objections, generates copy and design concepts, builds HTML pages, and exports or share…
MagicScreenshots
Searches App Store screenshot references and preview videos, and supports screenshot restyling and localization jobs.
WebZum - The Hosting Layer for AI-Generated Web Content
Creates, edits, clones, and hosts live HTML/CSS/JS websites, including SEO-focused business and lead-generation pages.
Dali by Lulu
Scores and improves creative prompts and advertising images using generation-target analysis, community patterns, performance ben…
uxgen
Audits and assembles ecommerce pages, generates product imagery and packshots, supports Shopify sections, and provides SEO and co…