manage_design_style
Manage saved Design Styles and the current project's visual identity. For concrete MG instances, use browse_library.
When the user asks to select/use a Design Style for the project, saving that selection is required before applying its linked caption or scene templates: call apply with designStyleId for a saved style, or apply_preset with presetId for a catalog style. Then call get WITHOUT designStyleId and verify the active style ID matches. Reading get with an ID, applying a caption preset, or copying a scene template does not save the project's Design Style. Do not report a style as selected until the active-style readback confirms it. For comparison, preview, or plan-only requests, get remains read-only: do not apply a style unless the user requested selection.
For caption recommendations or edits, call action="get" to read the active style on demand. It returns captionTemplates.preferredTemplateId/preferredPreset and captionTemplateDetails (names, availability, supported languages, fonts), plus application instructions. Read caption readiness with read_captions before applying. A style preference changes neither captions nor their language by itself. Plan-only requests must not edit or transcribe.
Actions: list saved/active styles; get full spec and caption/scene details (or inspect designStyleId); create a custom identity (auto-applies unless applyToProject:false); apply a saved ID; update spec/name/cover; clear the project selection; delete a saved style. Catalog edits fork a user copy. No active style is normal.
list_presets returns picker summaries (collages and catalog UUIDs), not the full designSpec. Filter with applicableLanguages/scenario/query; locale only localizes labels. Follow nextBrowse within scope. apply_preset selects the catalog UUID without copying it.
On confirmation_required, relay impact and ask before retrying: confirmShared:true for shared updates; confirm:true for deletion. Assets survive deletion. See designSpec/patch parameter docs for shapes and merge rules.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "manage_design_style"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | For create (required): name for the new design style. Unique per user; server deduplicates with suffix if needed. | |
| limit | No | ||
| patch | No | For update: JSON string of a partial DesignSpec (same shape as designSpec); may be combined with rename. Colors merge by palette + role when palette is given; without palette a role must identify one color. Fonts with language merge by language + role, otherwise by role/family. fontRecommendations (the reviewed en / zh-Hans pools that get returns) replaces the pool and never replaces default fonts. logos, images, and referenceSources REPLACE their arrays: get first and include entries to keep. styleGuide replaces; an empty string clears it. | |
| query | No | ||
| action | Yes | Supported actions: list, get, create, update, apply, clear, delete, list_presets, apply_preset. | |
| locale | No | For list_presets (optional): user's chat language code ('en', 'zh', 'zh-hant', 'es', or 'ja'). Catalog preset names/descriptions are stored with English canonical + locale overrides; passing the user's language returns localized text. Defaults to English if omitted. | |
| offset | No | ||
| rename | No | For update: new name to rename the design style to. Can be combined with `patch` in the same call. | |
| confirm | No | For delete only: set to true ONLY after the user has confirmed the deletion. Omit on first call to trigger the confirmation_required protocol. | |
| presetId | No | For apply_preset (required): the catalog UUID returned by list_presets. The backend pins the project's designStyleId FK directly at this catalog row — no clone is made until the user actually edits the spec. | |
| scenario | No | For list_presets (optional): scenario tag to narrow the catalog by. Catalogs tag themselves with applicableScenarios for recommendation / selection; omit to list all visible catalog presets. | |
| designSpec | No | For create: JSON string of a DesignSpec. Each array element's role names its use (primary, heading, wordmark…). Shape: {"colors":[{"role":"primary","value":"#6C5CE7"}],"fonts":[{"role":"heading","family":"Inter","language":"en","weight":700,"style":"normal"}],"logos":[{"role":"wordmark","url":"https://..."}],"images":[{"role":"style reference","url":"https://..."}],"referenceSources":[{"id":"mg-reference:style:<UUID>"}],"styleGuide":"Editorial typography; heading weight 700."}. colors: hex value + usage role, optional palette label. fonts: CSS family + role; optional language, numeric weight, style, sourceUrl, and review evidence (match, validation, notes); keep preset defaults. logos/images: url + role; only images listed here guide generation (thumbnailUrl and referenceSources do not). referenceSources: style or instance IDs recording visual-identity sources; one-off form sources belong to individual MG calls. styleGuide: reusable confirmed tone, material, motion, and typography rules not captured by fonts, without repeating the palette or inventing one-off layouts. | |
| thumbnailUrl | No | For create / update: optional UI cover image URL for the Design Style library / picker. This is not part of designSpec and is not used as a generation reference. Pass null on update to clear it. | |
| confirmShared | No | For update only: set to true after the user has confirmed it's OK to edit a design style used by multiple projects. Omit on first call so the confirmation_required response can surface the impact. | |
| designStyleId | No | UUID or the short ID from list / list_presets. For get / update (optional — defaults to the targeted project's applied design style, so required when no project is targeted) or for apply / delete (required). | |
| applyToProject | No | For create / apply_preset: whether to apply the style to the targeted project (default true). With no targeted project, create saves to the library only. | |
| applicableLanguages | No |