Skip to main content
Glama

Новая тема оформления

create_theme

Создает тему внутри workspace и сразу применяет ее к опросу.

Input Schema

NameRequiredDescriptionDefault
nameNoНазвание темы (опционально, max 255 символов). Если не передать — генерируется автоматически.
quiz_idYesID опроса, к которому применяется тема. Должен принадлежать указанному workspace.
bg_colorNoЦвет фона в формате #RRGGBB. Используется когда background_type_id=1. Например: #0f3460.
base_fontNoНазвание базового шрифта строкой (например «Golos Text», «Montserrat»). Опционально, max 255 символов. Если пусто — используется дефолтный шрифт.
dark_modeNoТёмная версия: off — нет, auto — по теме устройства респондента (цвета — dark_colors).
custom_cssNoСвой CSS для страницы опроса, до 20000 символов.
link_colorNoЦвет ссылок в тексте, #RRGGBB. null — цвет активного элемента (widget_active_color).
dark_colorsNoЦвета тёмной версии: объект { поле: "#RRGGBB" }. Ключи: bg_color, header_color, answers_text_color, widget_active_color, buttons_color, buttons_text_color, dropdown_bg_color, link_color, error_color, backdrop_color, bg_gradient_start, bg_gradient_end. Незнакомые ключи отбрасываются; поля без ключа остаются светлыми.
error_colorNoЦвет ошибок проверки и рамки поля с ошибкой, #RRGGBB. null — #e5484d.
input_styleNoСтиль полей ввода: box — поле в рамке, underline — одна линия.
base_font_idNoID базового шрифта. Популярные: 1=Native, 2=Roboto, 3=Open Sans, 4=Montserrat, 5=Source Sans Pro, 6=Merriweather, 9=PT Sans, 11=Ubuntu, 15=Rubik, 18=Comfortaa, 44=Golos Text. Полный список 1–44.
bg_video_urlNoАдрес видео фона (.mp4, .webm): путь от корня или http(s)-адрес. Работает при background_type_id 3.
header_colorNoЦвет заголовка в формате #RRGGBB. Например: #1a1a2e.
heading_fontNoОтдельный шрифт заголовков, название гарнитуры Google Fonts. Пусто — шрифт как у остального текста.
service_textNoСлужебный текст, до 500 символов. Простая разметка допустима, остальное вырезается.
workspace_idYesID воркспейса. Взять из workspace://list.
answer_borderNoТолщина рамки вариантов ответа в px (0–999). Например: 1.
buttons_colorNoЦвет кнопок в формате #RRGGBB. Например: #3b82f6.
answer_lettersNoБуквы A, B, C… перед вариантами у вопросов с выбором; выбор с клавиатуры.
backdrop_colorNoЦвет карточки подложки (question_backdrop: card), #RRGGBB.
buttons_radiusNoСкругление кнопок в px (0–999). Например: 8.
progress_styleNoИндикатор прогресса: percent, line или steps.
answers_size_idNoРазмер вариантов ответа: 0 — маленький, 1 — средний, 2 — большой. null вместе с answers_size_percent — как у вопроса.
bg_gradient_endNoКонечный цвет градиента в формате #RRGGBB. Например: #00ffd8.
bg_logo_file_idNoID загруженного файла логотипа поверх фона (min:1).
bg_logo_size_idNoРазмер логотипа на фоне: 0 — маленький, 1 — средний (по умолчанию), 2 — большой.
buttons_type_idNoТип кнопок: 1=background (заливка цветом), 2=border (только рамка).
container_widthNoШирина содержимого: narrow, normal, wide или full.
custom_font_urlNoАдрес файла своего шрифта (.woff2, .woff, .ttf, .otf): путь от корня или http(s)-адрес. Файл на чужом сервере должен отдаваться с Access-Control-Allow-Origin.
bg_image_file_idNoID загруженного файла фонового изображения (min:1). Используется когда background_type_id=1.
custom_font_nameNoНазвание своего шрифта, до 60 символов: буквы, цифры, пробел, точка, дефис, подчёркивание. Чтобы шрифт применился, укажите это же название в base_font или heading_font.
bg_gradient_startNoНачальный цвет градиента в формате #RRGGBB (ровно 6 hex-символов). Например: #00d4ff.
button_full_widthNoРастянуть кнопку на всю ширину контейнера.
dropdown_bg_colorNoЦвет фона раскрытого меню выпадающего списка в формате #RRGGBB (опционально). Если не передать — наследует bg_color.
question_backdropNoПодложка под вопросами: none — нет, card — карточка цвета backdrop_color, glass — матовое стекло.
questions_size_idNoРазмер текста вопросов: 0 — маленький, 1 — средний, 2 — большой.
service_text_sizeNoРазмер служебного текста: 12, 14 или 16.
answers_text_colorNoЦвет текста ответов в формате #RRGGBB (опционально). Если не передать — наследует header_color.
background_opacityNoПрозрачность фона в процентах (0–100). 100 = непрозрачный.
background_type_idNoТип фона: 1=color_image (цвет/изображение), 2=gradient (градиент), 3=video (видео из bg_video_url).
bg_gradient_vectorNoНаправление градиента в градусах (0–360). Используется когда background_type_id=2. Пример: 90 = слева направо, 180 = сверху вниз.
buttons_text_colorNoЦвет текста кнопок в формате #RRGGBB. Например: #ffffff.
service_text_colorNoЦвет служебного текста в формате #RRGGBB.
service_text_scopeNoГде показывать служебный текст: all — на всех экранах, welcome, questions или finish.
background_contrastNoКонтраст фона (-100 – +100). 0 = без изменений.
background_saturateNoНасыщенность фона (-100 – +100). 0 = без изменений.
bg_logo_position_idNoПоложение логотипа на фоне: 0 — слева (по умолчанию), 1 — по центру, 2 — справа. Нумерация своя, с background_position_id не совпадает.
bg_mobile_image_urlNoАдрес своей картинки фона для телефона: путь от корня или http(s)-адрес. null — на телефоне основная картинка.
question_transitionNoПереход между вопросами: slide, fade, zoom, blur или none.
widget_active_colorNoЦвет активного элемента виджета в формате #RRGGBB. Например: #e94560.
answers_size_percentNoСвой размер вариантов ответа, проценты от среднего: целое 50–200. Важнее answers_size_id.
background_lightnessNoЯркость фона (-100 – +100). 0 = без изменений.
bg_gradient_animatedNoЖивой градиент: цвета градиентного фона медленно перетекают.
service_text_enabledNoПоказывать служебный текст — короткую строку для дисклеймера или согласия.
answer_options_radiusNoСкругление вариантов ответа в px (0–999). Например: 4.
answer_selected_styleNoКак отмечен выбранный вариант: fill — заливкой, frame — рамкой, check — галочкой справа.
questions_position_idNoВыравнивание текста вопросов: 0 — слева, 1 — по центру.
service_text_align_idNoВыравнивание служебного текста: 0 — слева, 1 — по центру, 2 — справа. Справа работает только вместе с верхним размещением: внизу справа стоят стрелки навигации и бейдж WebAsk.
background_position_idNoПозиция фона: 1=center center, 2=left center, 3=right center, 4=center top, 5=left top, 6=right top, 7=center bottom, 8=left bottom, 9=right bottom.
questions_size_percentNoСвой размер текста вопросов, проценты от среднего: целое 50–200. null — размер по questions_size_id.
background_placement_idNoРазмещение фона: 1=stretch (растянуть), 2=drawin (вписать), 3=cover (заполнить).
service_text_placement_idNoГде на экране стоит служебный текст: 0 — снизу, 1 — сверху.
welcome_and_finish_size_idNoРазмер текста на приветствии и завершении: 0 — маленький, 1 — средний, 2 — большой.
welcome_and_finish_position_idNoВыравнивание текста на приветствии и завершении: 0 — слева, 1 — по центру.
welcome_and_finish_size_percentNoСвой размер текста приветствия и завершения, проценты от среднего: целое 50–200. null — размер по welcome_and_finish_size_id.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • addedInput schema / properties / answer_letters
      Added value: +{
      +  "description": "Буквы A, B, C… перед вариантами у вопросов с выбором; выбор с клавиатуры.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / answer_selected_style
      Added value: +{
      +  "description": "Как отмечен выбранный вариант: fill — заливкой, frame — рамкой, check — галочкой справа.",
      +  "enum": [
      +    "fill",
      +    "frame",
      +    "check"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / answers_size_id
      Added value: +{
      +  "description": "Размер вариантов ответа: 0 — маленький, 1 — средний, 2 — большой. null вместе с answers_size_percent — как у вопроса.",
      +  "enum": [
      +    0,
      +    1,
      +    2
      +  ],
      +  "type": "integer"
      +}
    • addedInput schema / properties / answers_size_percent
      Added value: +{
      +  "description": "Свой размер вариантов ответа, проценты от среднего: целое 50–200. Важнее answers_size_id.",
      +  "maximum": 200,
      +  "minimum": 50,
      +  "type": "integer"
      +}
    • addedInput schema / properties / backdrop_color
      Added value: +{
      +  "description": "Цвет карточки подложки (question_backdrop: card), #RRGGBB.",
      +  "type": "string"
      +}
    • changedInput schema / properties / background_type_id / description
      Previous value: -"Тип фона: 1=color_image (цвет/изображение), 2=gradient (градиент)."New value: +"Тип фона: 1=color_image (цвет/изображение), 2=gradient (градиент), 3=video (видео из bg_video_url)."
    • addedInput schema / properties / bg_gradient_animated
      Added value: +{
      +  "description": "Живой градиент: цвета градиентного фона медленно перетекают.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / bg_mobile_image_url
      Added value: +{
      +  "description": "Адрес своей картинки фона для телефона: путь от корня или http(s)-адрес. null — на телефоне основная картинка.",
      +  "type": "string"
      +}
    • addedInput schema / properties / bg_video_url
      Added value: +{
      +  "description": "Адрес видео фона (.mp4, .webm): путь от корня или http(s)-адрес. Работает при background_type_id 3.",
      +  "type": "string"
      +}
    • addedInput schema / properties / custom_font_name
      Added value: +{
      +  "description": "Название своего шрифта, до 60 символов: буквы, цифры, пробел, точка, дефис, подчёркивание. Чтобы шрифт применился, укажите это же название в base_font или heading_font.",
      +  "type": "string"
      +}
    • addedInput schema / properties / custom_font_url
      Added value: +{
      +  "description": "Адрес файла своего шрифта (.woff2, .woff, .ttf, .otf): путь от корня или http(s)-адрес. Файл на чужом сервере должен отдаваться с Access-Control-Allow-Origin.",
      +  "type": "string"
      +}
    • addedInput schema / properties / dark_colors
      Added value: +{
      +  "description": "Цвета тёмной версии: объект { поле: \"#RRGGBB\" }. Ключи: bg_color, header_color, answers_text_color, widget_active_color, buttons_color, buttons_text_color, dropdown_bg_color, link_color, error_color, backdrop_color, bg_gradient_start, bg_gradient_end. Незнакомые ключи отбрасываются; поля без ключа остаются светлыми.",
      +  "properties": {
      +    "answers_text_color": {
      +      "type": "string"
      +    },
      +    "backdrop_color": {
      +      "type": "string"
      +    },
      +    "bg_color": {
      +      "type": "string"
      +    },
      +    "bg_gradient_end": {
      +      "type": "string"
      +    },
      +    "bg_gradient_start": {
      +      "type": "string"
      +    },
      +    "buttons_color": {
      +      "type": "string"
      +    },
      +    "buttons_text_color": {
      +      "type": "string"
      +    },
      +    "dropdown_bg_color": {
      +      "type": "string"
      +    },
      +    "error_color": {
      +      "type": "string"
      +    },
      +    "header_color": {
      +      "type": "string"
      +    },
      +    "link_color": {
      +      "type": "string"
      +    },
      +    "widget_active_color": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / dark_mode
      Added value: +{
      +  "description": "Тёмная версия: off — нет, auto — по теме устройства респондента (цвета — dark_colors).",
      +  "enum": [
      +    "off",
      +    "auto"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / error_color
      Added value: +{
      +  "description": "Цвет ошибок проверки и рамки поля с ошибкой, #RRGGBB. null — #e5484d.",
      +  "type": "string"
      +}
    • addedInput schema / properties / link_color
      Added value: +{
      +  "description": "Цвет ссылок в тексте, #RRGGBB. null — цвет активного элемента (widget_active_color).",
      +  "type": "string"
      +}
    • addedInput schema / properties / question_backdrop
      Added value: +{
      +  "description": "Подложка под вопросами: none — нет, card — карточка цвета backdrop_color, glass — матовое стекло.",
      +  "enum": [
      +    "none",
      +    "card",
      +    "glass"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / questions_size_percent
      Added value: +{
      +  "description": "Свой размер текста вопросов, проценты от среднего: целое 50–200. null — размер по questions_size_id.",
      +  "maximum": 200,
      +  "minimum": 50,
      +  "type": "integer"
      +}
    • addedInput schema / properties / welcome_and_finish_size_percent
      Added value: +{
      +  "description": "Свой размер текста приветствия и завершения, проценты от среднего: целое 50–200. null — размер по welcome_and_finish_size_id.",
      +  "maximum": 200,
      +  "minimum": 50,
      +  "type": "integer"
      +}
  2. First observed

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already tell the agent this is a non-read-only, non-idempotent write with no destructive or open-world flags. The description adds one genuinely useful behavioral fact beyond them: the theme is auto-applied to the quiz, so a single call has a visible side effect on the quiz's appearance. It omits what is returned (theme ID) and whether re-invoking creates duplicates despite idempotentHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no waste, and the create-and-apply behavior is front-loaded. It is arguably too terse for a 65-parameter tool, but nothing is padded or duplicated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 65 parameters, a nested dark_colors object, and no output schema, one sentence leaves real gaps: which theme fields are inherited by defaults, whether an existing theme with the same name conflicts, and what identifier comes back for a follow-up update_theme. The schema covers inputs well, but the description does not compensate for the missing output contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% across all 65 parameters, so the schema carries the full parameter burden. The description adds nothing beyond it, which is the baseline 3 when structured data already does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Создает тему') and adds the material consequence that it is applied to the quiz immediately. This distinguishes it from a plain create, though it never names apply_quiz_theme or update_theme as the alternatives, so the boundary with siblings stays implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance. The sibling set contains apply_quiz_theme and update_theme, and the description gives no clue which to choose (e.g. use this only when the theme does not yet exist).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources