Search, compare, and blend structured visual aesthetics, palettes, and creative directions.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Build an authentic multi-style blend from two to five Omoro styles. The first two styles anchor the visual direction; added styles are treated as influence layers. Returns defining rendering techniques, visible contribution requirements, fidelity checks, palette and three coordinated mockup prompts: one hero and two distinct supporting applications, presented as a large hero left and two stacked applications right.
Two to five style slugs. The first two are the primary pair.
Percentage led by the second primary style.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Build an authentic multi-style blend from two to five Omoro styles. The first two styles anchor the visual direction; added styles are treated as influence layers. Returns defining rendering techniques, visible contribution requirements, fidelity checks, palette and three coordinated mockup prompts: one hero and two distinct supporting applications, presented as a large hero left and two stacked applications right.
| Argument | Type | Description |
|---|---|---|
| mix | number | Percentage led by the second primary style. |
| styles* | array | Two to five style slugs. The first two are the primary pair. |
{
"type": "object",
"required": [
"styles"
],
"properties": {
"mix": {
"type": "number",
"default": 50,
"maximum": 100,
"minimum": 0,
"description": "Percentage led by the second primary style."
},
"styles": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"minItems": 2,
"description": "Two to five style slugs. The first two are the primary pair."
}
}
}Build an original character brief grounded in Omoro styles. Returns an Omoro Characters-compatible JSON file and a detailed image prompt; it does not generate images or save anything to an account. Import the JSON at omoro.io/characters to keep editing there.
| Argument | Type | Description |
|---|---|---|
| kind | string | Choose creature for a non-human or hybrid design. |
| name | string | Character name, if chosen. |
| role | string | Their role or place in the story. |
| gender | string | |
| output | string | A single portrait or four-view reference sheet. |
| render | string | |
| concept* | string | The character idea, personality, story or brief. Include what makes them distinct. |
| palette | array | Optional exact client colors. Otherwise the documented Omoro style palette is used. |
| setting | string | Optional scene or environment. |
| species | string | Species or ancestry, especially for original creatures and hybrids. |
| wardrobe | string | Clothing, silhouette and materials. |
| hairstyle | string | Optional signature hairstyle. Describe the exact silhouette and unusual construction, such as sculptural coils arranged as a crown, braided loops, asymmetry, or an unexpected shape. Make it personal to this character. |
Create a separate Omoro-designed style guide, palette/type sheet, or application brief for one style or a user-selected blend. Its visual system is grounded in each style's documented rendering techniques, palette, typography, and composition. This does not change blend_styles' established hero plus two supporting mockups.
| Argument | Type | Description |
|---|---|---|
| format* | string | |
| use_case | string | Optional application or project context. |
| style_slugs* | array | One to five Omoro style slugs in influence order. The first style leads the composition. |
| brand_palette | array | Optional client-supplied colors, clearly kept separate from documented style palettes. |
{
"type": "object",
"required": [
"format",
"style_slugs"
],
"properties": {
"format": {
"enum": [
"style_guide",
"palette_type_sheet",
"application_brief"
],
"type": "string"
},
"use_case": {
"type": "string",
"maxLength": 240,
"description": "Optional application or project context."
},
"style_slugs": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"maxItems": 5,
"minItems": 1,
"description": "One to five Omoro style slugs in influence order. The first style leads the composition."
},
"brand_palette": {
"type": "array",
"items": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"maxItems": 12,
"description": "Optional client-supplied colors, clearly kept separate from documented style palettes."
}
}
}Build a concrete UI Lab direction brief from a product archetype, visual language, Omoro style and optional palette. Returns layout geometry, palette roles, typography/material guidance, keep/avoid rules and a paste-ready prompt.
| Argument | Type | Description |
|---|---|---|
| style* | string | Omoro style slug. Use search_styles or list_styles first. |
| palette | string | Optional Omoro palette slug. Use search_palettes or list_palettes first. |
| product* | string | UI Lab product key, for example creative, commerce, analytics or developer. |
| language* | string | UI Lab visual language key, for example technical, swiss, industrial or cinematic. |
| promptMode | string | Prompt emphasis: Omoro system, client brief, or a synthesis of both. Defaults to synthesis when clientBrief is supplied. |
| clientBrief | string | Optional client direction or project brief to incorporate into the prompt. |
{
"type": "object",
"required": [
"product",
"language",
"style"
],
"properties": {
"style": {
"type": "string",
"description": "Omoro style slug. Use search_styles or list_styles first."
},
"palette": {
"type": "string",
"description": "Optional Omoro palette slug. Use search_palettes or list_palettes first."
},
"product": {
"type": "string",
"description": "UI Lab product key, for example creative, commerce, analytics or developer."
},
"language": {
"type": "string",
"description": "UI Lab visual language key, for example technical, swiss, industrial or cinematic."
},
"promptMode": {
"enum": [
"omoro",
"client",
"synthesis"
],
"type": "string",
"description": "Prompt emphasis: Omoro system, client brief, or a synthesis of both. Defaults to synthesis when clientBrief is supplied."
},
"clientBrief": {
"type": "string",
"description": "Optional client direction or project brief to incorporate into the prompt."
}
}
}Put two styles side by side: their attribute profiles with the gap on each axis, their palettes, and their documented periods. Use it to explain how two visual languages actually differ.
| Argument | Type | Description |
|---|---|---|
| a* | string | First style slug. |
| b* | string | Second style slug. |
{
"type": "object",
"required": [
"a",
"b"
],
"properties": {
"a": {
"type": "string",
"description": "First style slug."
},
"b": {
"type": "string",
"description": "Second style slug."
}
}
}Rank palettes by their closest swatch to a supplied hex colour. Use when a user has a brand colour or image-derived hex and needs compatible Omoro palettes.
| Argument | Type | Description |
|---|---|---|
| hex* | string | A six-digit hex colour, e.g. "#FF6422". |
| limit | integer |
{
"type": "object",
"required": [
"hex"
],
"properties": {
"hex": {
"type": "string",
"description": "A six-digit hex colour, e.g. \"#FF6422\"."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
}
}
}Rank styles by how closely they sit to a target visual position. Give only the axes you care about; the rest are ignored rather than assumed. Each axis runs -1 to 1. This answers questions prose cannot, such as which styles are simultaneously minimal, cool, geometric and digital.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| warm_cool | number | Target position on the warm_cool axis, -1 to 1. |
| light_dark | number | Target position on the light_dark axis, -1 to 1. |
| analog_digital | number | Target position on the analog_digital axis, -1 to 1. |
| minimal_maximal | number | Target position on the minimal_maximal axis, -1 to 1. |
| organic_geometric | number | Target position on the organic_geometric axis, -1 to 1. |
| structured_chaotic | number | Target position on the structured_chaotic axis, -1 to 1. |
| futuristic_nostalgic | number | Target position on the futuristic_nostalgic axis, -1 to 1. |
| expressive_restrained |
Retrieve one named Omoro palette by slug, including its parent style, mood and five named hex swatches.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Palette slug, e.g. "soft-club" or "raw-concrete". |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Palette slug, e.g. \"soft-club\" or \"raw-concrete\"."
}
}
}Show the Omoro MCP welcome guide, including how to search styles and palettes, build UI directions, and create an original character with the character builder.
No arguments.
{
"type": "object",
"properties": {}
}The full record for one style: palette with named swatches, the eight-axis attribute profile, typography pairing, documented period and origin, visual markers, related styles, a canonical hero image, and the page's labelled visual gallery.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The style's slug, e.g. "bauhaus". Get one from list_styles or search_styles. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The style's slug, e.g. \"bauhaus\". Get one from list_styles or search_styles."
}
}
}List Omoro's named colour palettes. Optionally narrow to a parent style. Each result includes a palette name, mood, parent style and five named hex swatches.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| style | string | Parent style slug, e.g. "brutalism" or "cyberpunk". |
| offset | integer |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"style": {
"type": "string",
"description": "Parent style slug, e.g. \"brutalism\" or \"cyberpunk\"."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0
}
}
}List documented aesthetic styles. Optionally narrow by mood group or category. Returns the short listing: slug, name, url, group, a one-line summary and the five palette hex codes.
| Argument | Type | Description |
|---|---|---|
| group | string | Mood group to filter by. |
| limit | integer | |
| offset | integer | |
| category | string |
{
"type": "object",
"properties": {
"group": {
"enum": [
"retro",
"dark",
"bold",
"art",
"clean",
"organic",
"digital",
"architecture"
],
"type": "string",
"description": "Mood group to filter by."
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0
},
"category": {
"enum": [
"traditional",
"design_language"
],
"type": "string"
}
}
}List the product archetypes and visual languages supported by Omoro UI Lab. Use this before building a direction when you need to choose the right interface structure.
No arguments.
{
"type": "object",
"properties": {}
}Free-text search across palette names, parent styles and mood descriptions. Use this for queries such as "quiet warm studio" or "nightclub neon".
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | Words to look for. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"description": "Words to look for."
}
}
}Free-text search across style names and summaries. Use when you know roughly what you are looking for but not the slug. For finding styles by visual character rather than by name, find_styles_by_attributes is the better tool.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query* | string | Words to look for, e.g. "darkroom film grain". |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"description": "Words to look for, e.g. \"darkroom film grain\"."
}
}
}Return three distinct, Omoro-grounded brand routes for a user. First translate only supported personal taste signals into numeric taste_axes, include the exact known palette and known brand_context, then call this tool. Each route includes an automatically selected style blend, signature visuals, positioning and message framework, and voice guidance. Use Omoro for the page frame only; let each blend's defining features lead its route. Present all three as choices and do not invent missing brand facts or collapse the options into one generic style.
| Argument | Type | Description |
|---|---|---|
| taste_axes* | object | Infer only axes supported by the user's known context. Each is -1 to 1. Poles: minimal_maximal (- minimal, + maximal); analog_digital (- analog, + digital); expressive_restrained (- restrained, + expressive); warm_cool (- cool, + warm); futuristic_nostalgic (- futuristic, + nostalgic); structured_chaotic (- structured, + chaotic); light_dark (- dark, + light); organic_geometric (- organic, + geometric). |
| avoid_styles | array | Style slugs the user or brand has rejected or already overuses. |
| brand_context | object | Known, user-provided brand facts Muse may use for positioning and messaging. Omit unknown fields; the tool will leave them as open inputs. |
| brand_palette | array | Exact brand colors as six-digit hex codes. When supplied, all three directions must stay within these colors. |
{
"type": "object",
"required": [
"taste_axes"
],
"properties": {
"taste_axes": {
"type": "object",
"properties": {
"warm_cool": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the warm_cool axis, -1 to 1."
},
"light_dark": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the light_dark axis, -1 to 1."
},
"analog_digital": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the analog_digital axis, -1 to 1."
},
"minimal_maximal": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the minimal_maximal axis, -1 to 1."
},
"organic_geometric": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the organic_geometric axis, -1 to 1."
},
"structured_chaotic": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the structured_chaotic axis, -1 to 1."
},
"futuristic_nostalgic": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the futuristic_nostalgic axis, -1 to 1."
},
"expressive_restrained": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the expressive_restrained axis, -1 to 1."
}
},
"description": "Infer only axes supported by the user's known context. Each is -1 to 1. Poles: minimal_maximal (- minimal, + maximal); analog_digital (- analog, + digital); expressive_restrained (- restrained, + expressive); warm_cool (- cool, + warm); futuristic_nostalgic (- futuristic, + nostalgic); structured_chaotic (- structured, + chaotic); light_dark (- dark, + light); organic_geometric (- organic, + geometric)."
},
"avoid_styles": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50,
"description": "Style slugs the user or brand has rejected or already overuses."
},
"brand_context": {
"type": "object",
"properties": {
"offer": {
"type": "string",
"maxLength": 240
},
"audience": {
"type": "string",
"maxLength": 240
},
"brand_name": {
"type": "string",
"maxLength": 120
},
"proof_point": {
"type": "string",
"maxLength": 240
},
"audience_need": {
"type": "string",
"maxLength": 240
},
"call_to_action": {
"type": "string",
"maxLength": 240
},
"differentiator": {
"type": "string",
"maxLength": 240
},
"existing_voice": {
"type": "string",
"maxLength": 240
},
"desired_perception": {
"type": "string",
"maxLength": 240
}
},
"description": "Known, user-provided brand facts Muse may use for positioning and messaging. Omit unknown fields; the tool will leave them as open inputs."
},
"brand_palette": {
"type": "array",
"items": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"maxItems": 12,
"description": "Exact brand colors as six-digit hex codes. When supplied, all three directions must stay within these colors."
}
}
}Suggest the simplest Omoro landing-page or WebGL direction for a user's goal. Returns a recommended layout, an optional interactive scene, and a few calibration questions before building.
| Argument | Type | Description |
|---|---|---|
| goal* | string | What the landing page needs to accomplish, in plain language. |
| feeling | string | The desired feeling or visual language. |
| audience | string | Who the page is for. |
| needsInteraction | boolean | Whether the visual should respond to scroll, pointer or drag. |
{
"type": "object",
"required": [
"goal"
],
"properties": {
"goal": {
"type": "string",
"description": "What the landing page needs to accomplish, in plain language."
},
"feeling": {
"type": "string",
"description": "The desired feeling or visual language."
},
"audience": {
"type": "string",
"description": "Who the page is for."
},
"needsInteraction": {
"type": "boolean",
"description": "Whether the visual should respond to scroll, pointer or drag."
}
}
}| style_slugs* | array | One or two Omoro style slugs, with the lead style first. Find styles with search_styles or list_styles. |
| signature_item | string | A memorable accessory or visual identifier. |
| appearance_notes | string | Distinctive physical features and overall presence. |
{
"type": "object",
"required": [
"concept",
"style_slugs"
],
"properties": {
"kind": {
"enum": [
"human",
"creature"
],
"type": "string",
"description": "Choose creature for a non-human or hybrid design."
},
"name": {
"type": "string",
"maxLength": 80,
"description": "Character name, if chosen."
},
"role": {
"type": "string",
"maxLength": 160,
"description": "Their role or place in the story."
},
"gender": {
"enum": [
"unspecified",
"man",
"woman",
"androgynous",
"nonbinary"
],
"type": "string"
},
"output": {
"enum": [
"single",
"sheet"
],
"type": "string",
"description": "A single portrait or four-view reference sheet."
},
"render": {
"enum": [
"photo",
"cartoon",
"illustrated",
"3d",
"anime"
],
"type": "string"
},
"concept": {
"type": "string",
"maxLength": 1200,
"description": "The character idea, personality, story or brief. Include what makes them distinct."
},
"palette": {
"type": "array",
"items": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$"
},
"maxItems": 12,
"description": "Optional exact client colors. Otherwise the documented Omoro style palette is used."
},
"setting": {
"type": "string",
"maxLength": 300,
"description": "Optional scene or environment."
},
"species": {
"type": "string",
"maxLength": 160,
"description": "Species or ancestry, especially for original creatures and hybrids."
},
"wardrobe": {
"type": "string",
"maxLength": 500,
"description": "Clothing, silhouette and materials."
},
"hairstyle": {
"type": "string",
"maxLength": 500,
"description": "Optional signature hairstyle. Describe the exact silhouette and unusual construction, such as sculptural coils arranged as a crown, braided loops, asymmetry, or an unexpected shape. Make it personal to this character."
},
"style_slugs": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"maxItems": 2,
"minItems": 1,
"description": "One or two Omoro style slugs, with the lead style first. Find styles with search_styles or list_styles."
},
"signature_item": {
"type": "string",
"maxLength": 240,
"description": "A memorable accessory or visual identifier."
},
"appearance_notes": {
"type": "string",
"maxLength": 500,
"description": "Distinctive physical features and overall presence."
}
}
}| number |
| Target position on the expressive_restrained axis, -1 to 1. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"warm_cool": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the warm_cool axis, -1 to 1."
},
"light_dark": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the light_dark axis, -1 to 1."
},
"analog_digital": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the analog_digital axis, -1 to 1."
},
"minimal_maximal": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the minimal_maximal axis, -1 to 1."
},
"organic_geometric": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the organic_geometric axis, -1 to 1."
},
"structured_chaotic": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the structured_chaotic axis, -1 to 1."
},
"futuristic_nostalgic": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the futuristic_nostalgic axis, -1 to 1."
},
"expressive_restrained": {
"type": "number",
"maximum": 1,
"minimum": -1,
"description": "Target position on the expressive_restrained axis, -1 to 1."
}
}
}