Skip to main content
Glama

create_field

Add a field to a form. Types: text, textarea, integer, float, date, datetime, email, phone, url, select, checkbox, radio, file, image, location, autoincrement, yes_no, rel, formula, linked_column, linked_records, subform, map, action, divider, page_break, note, signature, country, language, states, time_zone, record_owners, matrix. A type's full parameters — get_field_types. ⚠️ For select/checkbox/radio ALWAYS pass choices in the SAME call — without them the field is not created.

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": {
      "app_id": "<app_id>",
      "entity_id": "<entity_id>",
      "name": "<name>",
      "field_type": "<field_type>"
    },
    "name": "create_field"
  }
}

Input Schema

NameRequiredDescriptionDefault
ampmNotrue — 12-hour format (AM/PM) for time/datetime
descNoA tooltip hint for the person filling in the form
funcNoFunction for formula_type=function: 0=MIN, 1=MAX, 2=ROUND_UP, 3=ROUND_DOWN, 4=Ruby script
iconNoaction field: the icon's FontAwesome class
nameYesField name
richNotrue — a text editor (for field_type=textarea)
stepNoStep of the autoincrement (default 1)
fieldNoArray of field IDs or constants ['Constant', 'text'] for formula_type=formula
app_idYesProject ID
columnNoREQUIRED for linked_column: the id of the field of the LINKED table that this column shows — «show the activity's description in the registration form» is a linked_column on Registrations with column = the id of Activities' Description (get_form_fields of that table lists the ids). The two tables must be linked already. Written here, beside settings — not inside settings
choicesNoREQUIRED for select/checkbox/radio: an array of options. A call WITHOUT choices is refused with an error — do not make it; pass the options at once (take them from the user's words or propose sensible ones). Example: ["New", "In progress", "Done"].
defaultNoDefault value (for select — one of the choices)
visibleNofalse — the field's column is not shown on the table's PUBLIC page (the page, a found record, one record's own page). Signed in, the owner still sees it in their own table and in the form. For a public page prefer update_public_page hide_columns: it takes the field out of the page's search too
rel_typeNoLink type (default 2): belongs_to=2/6/8 (dropdown/radio/multi), has_one=3/5/9 (dropdown/radio/multi), many-to-many=1/4 (autocomplete/checkboxes)
requiredNotrue — the field must be filled in
settingsNoAny other setting of the field, as setting: value pairs in the product's own names — totals and averages under a column, barcode / QR code, an input mask, several files at once, a list's options side by side, pages of a long form, address help, edit in the table, how many fields share a row, a subform's rows (how many, the add link, hidden fields) and what the table shows of a subform or a list of linked records (one column or a small table of chosen columns, their order). Call get_field_types with field_type for the settings that fit one type. Example: {"show_db_total_row": true}. A setting that does not fit the field's type is refused by name.
delimiterNoThousands separator: '' or ',' or '.'
dependentNorel only: true — the list offers only the rows linked to what another field of the same form holds (Country → City, Stage → Check point); give depends_from_field_id with it. get_field_types with field_type rel says the shape
entity_idYesForm ID
operationNoOperators between the fields: +, -, *, / (one fewer than the number of fields)
precisionNoDigits after the decimal point for float (default 2)
separatorNoDecimal separator: '.' or ','
field_typeYesField type. Call get_field_types for the full list with descriptions.
icon_alignNoaction: where the icon stands beside the caption — 1 left (default), 2 right
operand_isNoOperand type for formula_type=formula: numbers, decimal, text, days, hours, year. REQUIRED when formula_type=formula.
start_fromNoStarting value of the autoincrement (default 1)
text_alignNoAlignment in the cell: 1=left, 2=right, 3=center, 4=justify
uniquenessNoCheck that the field's values are unique.
action_fillNoaction field: 0=inline(default), 1=block
action_sizeNoaction field: 0=small,1=medium(default),2=large
action_typeNoaction field: 0=link(default), 1=button
entries_numNoNumber of linked records for linked_records (default 5)
func_fieldsNoIDs of all fields used in func/script_body. REQUIRED for formula_type=function — without it the formula is not recalculated.
is_currencyNoShow as currency
matrix_rowsNoMatrix rows (field_type=matrix)
script_bodyNoRuby code for func=4. Rules: the result goes into the variable 'a', the last line is 'a'; field names in single quotes 'field_name'.to_f; def/while/puts/return/require are forbidden; aggregating subforms through .to_f is FORBIDDEN (use linked_column for that).
validationsNoThe field's checks. required: true is the shorter way to make it required. They check the text typed into the add or edit form, in the browser: none reads a date's weekday, a holiday, opening hours or other records (see the instruction's VALIDATIONS).
action_colorNoaction field: 0=primary,2=success,3=danger,6=light(default)
action_tasksNoTasks of an Action field (field_type=action). task_type: 0=email, 1=sms, 2=update_record, 3=payment, 4=webhook, 5=open_form_or_url, 6=telegram/whatsapp. The full specification — get_field_types.
default_typeNo0 = fixed, 1 = current date/time (date/datetime), 2 = current user (record_owners)
disable_pastNoForbid choosing past dates (for date/datetime/dob)
formula_typeNoFormula type: formula (arithmetic/concatenation), function (built-in functions + Ruby), link (clickable link), total (sum), average (average). REQUIRED for field_type=formula.
currency_unitNoCurrency symbol: '$', '€', '₴' and so on
rel_entity_idNoID of the form the rel field links to (required for rel)
time_settingsNotime field: how the time is picked. clock_system "12h" | "24h"; control_type "dropdown" | "slider"; units: { hour | minute | second | millisec | microsec: { show: true|false, min, max, step, grid } } — e.g. {"units": {"minute": {"step": 15}, "second": {"show": false}}}. Only what is passed changes
disable_futureNoForbid choosing future dates (for date/datetime/dob)
matrix_columnsNoMatrix columns (field_type=matrix)
vertical_alignNoVertical alignment: 1=top, 2=middle, 3=bottom
formula_link_toNoformula_type=link: on_table or table_form
truncates_afterNoCut the text in the table after N characters (default 1000)
allow_new_valuesNoFor select only. true — users can add new options right from the record form, without editing the field. Default false.
display_as_imageNotrue — show the URL as a picture (field_type=url only, for photos)
hide_column_nameNoaction/formula: hide the column's name in the table
linked_entity_idNoThe id of the other table: for linked_records / linked_records_count, and for a subform the table whose rows are filled in inside this form. A linked_column names its table by its column
rel_show_field_idNoID of the field to show in the rel dropdown (optional)
total_table_columnNoNot for a sum over the rows linked to this record — that is a linked_records field and a linked_column over it (937). formula_type total is refused by this tool.
action_done_messageNoaction field: the message after the task is done
formula_link_columnNoformula_type=link: ID of the field with the table/form name
formula_link_targetNoformula_type=link: _blank, _self, _parent, _top
action_display_rulesNoRules for when the Action button is shown. For all records — do not pass this array.
average_table_columnNoNot for an average over the rows linked to this record: their sum (linked_records + linked_column) divided by a linked_records_count. formula_type average is refused by this tool.
action_name_column_idNoaction: the id of the field of this form whose value is the button's caption — with action_name_from_column true
add_percent_to_numberNoAdd a % sign after the number
depends_from_field_idNorel only: the field of the same form (name or id) whose pick narrows this list — itself a link to a table that the linked table links to as well
add_to_actions_controlNoaction: add to the bulk actions menu
total_table_ref_columnNoNot for a sum over the rows linked to this record (see total_table_column).
action_name_from_columnNoaction: the button's caption is taken from a field of the record (action_name_column_id) instead of the field's name
average_table_ref_columnNoformula_type average: the link field in that other table that points at this form, by id or name; may be left out when only one table links here
linked_records_count_form_idNoID of the form to count (required for field_type=linked_records_count)
not_add_space_between_operandsNo1 = no space between the operands (for concatenation without spaces)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed79 schema fields changed
    • changedInput schema / properties / action_display_rules / description
      Previous value: -"Правила показу кнопки Дія за умовами. Для всіх записів — не передавай цей масив."New value: +"Rules for when the Action button is shown. For all records — do not pass this array."
    • changedInput schema / properties / action_display_rules / items / properties / action_task_ids / description
      Previous value: -"ID задач з action_tasks"New value: +"Task IDs from action_tasks"
    • changedInput schema / properties / action_display_rules / items / properties / conditions / description
      Previous value: -"Умови відображення (пусто = для всіх записів). {property_id, condition, search, join: and|or}"New value: +"Display conditions (empty = for all records). {property_id, condition, search, join: and|or}"
    • changedInput schema / properties / action_display_rules / items / properties / criteria_name / description
      Previous value: -"Опис критеріїв (обов'язково)"New value: +"Description of the criteria (required)"
    • changedInput schema / properties / action_display_rules / items / properties / icon / description
      Previous value: -"FontAwesome клас, напр. 'fas fa-check'"New value: +"A FontAwesome class, e.g. 'fas fa-check'"
    • changedInput schema / properties / action_done_message / description
      Previous value: -"action field: повідомлення після виконання задачі"New value: +"action field: the message after the task is done"
    • changedInput schema / properties / action_tasks / description
      Previous value: -"Задачі поля Дія (field_type=action). task_type: 0=email, 1=sms, 2=update_record, 3=payment, 4=webhook, 5=open_form_or_url, 6=telegram/whatsapp. Повна специфікація — get_field_types."New value: +"Tasks of an Action field (field_type=action). task_type: 0=email, 1=sms, 2=update_record, 3=payment, 4=webhook, 5=open_form_or_url, 6=telegram/whatsapp. The full specification — get_field_types."
    • changedInput schema / properties / action_tasks / items / properties / email_recipient_source / description
      Previous value: -"0=список emails, 1=з поля, 2=власники запису"New value: +"0 = a list of emails, 1 = from a field, 2 = the record's owners"
    • changedInput schema / properties / action_tasks / items / properties / id / description
      Previous value: -"Унікальний ID задачі (для посилань з action_display_rules)"New value: +"A unique task ID (for references from action_display_rules)"
    • changedInput schema / properties / action_tasks / items / properties / payment_workflow / description
      Previous value: -"Конфіг оплати: {merchant_type(0=paypal,1=braintree), amount_field_id, business_email, currency, ...}"New value: +"Payment config: {merchant_type(0=paypal,1=braintree), amount_field_id, business_email, currency, ...}"
    • changedInput schema / properties / action_tasks / items / properties / task_type / description
      Previous value: -"Див. task_type у описі action_tasks вище"New value: +"See task_type in the description of action_tasks above"
    • changedInput schema / properties / action_tasks / items / properties / update_fields / description
      Previous value: -"Поля для оновлення (task_type=2). Кожен об'єкт: {field_id, val, set_current_time, set_current_user}"New value: +"Fields to update (task_type=2). Each object: {field_id, val, set_current_time, set_current_user}"
    • changedInput schema / properties / action_tasks / items / properties / webhook / description
      Previous value: -"Конфіг вебхуку: {request_method(0-4), auth_type(0-2), url, webhook_params[], webhook_headers[]}"New value: +"Webhook config: {request_method(0-4), auth_type(0-2), url, webhook_params[], webhook_headers[]}"
    • changedInput schema / properties / add_percent_to_number / description
      Previous value: -"Додавати знак % після числа"New value: +"Add a % sign after the number"
    • changedInput schema / properties / add_to_actions_control / description
      Previous value: -"action: додати до меню масових дій"New value: +"action: add to the bulk actions menu"
    • changedInput schema / properties / allow_new_values / description
      Previous value: -"Лише для select. true — юзери можуть додавати нові варіанти прямо з форми запису, без редагування поля. Default false."New value: +"For select only. true — users can add new options right from the record form, without editing the field. Default false."
    • changedInput schema / properties / ampm / description
      Previous value: -"true — 12-годинний формат (AM/PM) для time/datetime"New value: +"true — 12-hour format (AM/PM) for time/datetime"
    • changedInput schema / properties / app_id / description
      Previous value: -"ID проєкту"New value: +"Project ID"
    • changedInput schema / properties / choices / description
      Previous value: -"ОБОВ'ЯЗКОВО для select/checkbox/radio: масив варіантів. Виклик БЕЗ choices буде відхилено з помилкою — не роби його, одразу передай варіанти (візьми їх зі слів юзера або запропонуй розумні). Приклад: [\"Новий\", \"В роботі\", \"Готово\"]."New value: +"REQUIRED for select/checkbox/radio: an array of options. A call WITHOUT choices is refused with an error — do not make it; pass the options at once (take them from the user's words or propose sensible ones). Example: [\"New\", \"In progress\", \"Done\"]."
    • changedInput schema / properties / currency_unit / description
      Previous value: -"Символ валюти: '$', '€', '₴' тощо"New value: +"Currency symbol: '$', '€', '₴' and so on"
    • changedInput schema / properties / default / description
      Previous value: -"Значення за замовчуванням (для select — один з варіантів choices)"New value: +"Default value (for select — one of the choices)"
    • changedInput schema / properties / default_type / description
      Previous value: -"0=фіксований, 1=поточна дата/час (date/datetime), 2=поточний користувач (record_owners)"New value: +"0 = fixed, 1 = current date/time (date/datetime), 2 = current user (record_owners)"
    • changedInput schema / properties / delimiter / description
      Previous value: -"Роздільник тисяч: '' або ',' або '.'"New value: +"Thousands separator: '' or ',' or '.'"
    • changedInput schema / properties / desc / description
      Previous value: -"Підказка-tooltip для заповнювача форми"New value: +"A tooltip hint for the person filling in the form"
    • changedInput schema / properties / disable_future / description
      Previous value: -"Заборонити вибір майбутніх дат (для date/datetime/dob)"New value: +"Forbid choosing future dates (for date/datetime/dob)"
    • changedInput schema / properties / disable_past / description
      Previous value: -"Заборонити вибір минулих дат (для date/datetime/dob)"New value: +"Forbid choosing past dates (for date/datetime/dob)"
    • changedInput schema / properties / display_as_image / description
      Previous value: -"true — показувати URL як картинку (лише field_type=url, для фото)"New value: +"true — show the URL as a picture (field_type=url only, for photos)"
    • changedInput schema / properties / entity_id / description
      Previous value: -"ID форми"New value: +"Form ID"
    • changedInput schema / properties / entries_num / description
      Previous value: -"Кількість пов'язаних записів для linked_records (default 5)"New value: +"Number of linked records for linked_records (default 5)"
    • changedInput schema / properties / field / description
      Previous value: -"Масив ID полів або константи ['Constant', 'текст'] для formula_type=formula"New value: +"Array of field IDs or constants ['Constant', 'text'] for formula_type=formula"
    • changedInput schema / properties / field_type / description
      Previous value: -"Тип поля. Виклич get_field_types для повного переліку з описами."New value: +"Field type. Call get_field_types for the full list with descriptions."
    • changedInput schema / properties / formula_link_column / description
      Previous value: -"formula_type=link: ID поля з назвою таблиці/форми"New value: +"formula_type=link: ID of the field with the table/form name"
    • changedInput schema / properties / formula_link_to / description
      Previous value: -"formula_type=link: on_table або table_form"New value: +"formula_type=link: on_table or table_form"
    • changedInput schema / properties / formula_type / description
      Previous value: -"Тип формули: formula (арифметика/конкатенація), function (вбудовані функції + Ruby), link (clickable link), total (сума), average (середнє). ОБОВ'ЯЗКОВО для field_type=formula."New value: +"Formula type: formula (arithmetic/concatenation), function (built-in functions + Ruby), link (clickable link), total (sum), average (average). REQUIRED for field_type=formula."
    • changedInput schema / properties / func / description
      Previous value: -"Функція для formula_type=function: 0=MIN, 1=MAX, 2=ROUND_UP, 3=ROUND_DOWN, 4=Ruby script"New value: +"Function for formula_type=function: 0=MIN, 1=MAX, 2=ROUND_UP, 3=ROUND_DOWN, 4=Ruby script"
    • changedInput schema / properties / func_fields / description
      Previous value: -"ID усіх полів що використовуються у func/script_body. ОБОВ'ЯЗКОВО для formula_type=function — без цього формула не перераховується."New value: +"IDs of all fields used in func/script_body. REQUIRED for formula_type=function — without it the formula is not recalculated."
    • changedInput schema / properties / hide_column_name / description
      Previous value: -"action/formula: сховати назву колонки в таблиці"New value: +"action/formula: hide the column's name in the table"
    • changedInput schema / properties / icon / description
      Previous value: -"action field: FontAwesome клас іконки"New value: +"action field: the icon's FontAwesome class"
    • changedInput schema / properties / is_currency / description
      Previous value: -"Показувати як валюту"New value: +"Show as currency"
    • changedInput schema / properties / linked_records_count_form_id / description
      Previous value: -"ID форми для підрахунку (обов'язково для field_type=linked_records_count)"New value: +"ID of the form to count (required for field_type=linked_records_count)"
    • changedInput schema / properties / matrix_columns / description
      Previous value: -"Колонки матриці (field_type=matrix)"New value: +"Matrix columns (field_type=matrix)"
    • changedInput schema / properties / matrix_rows / description
      Previous value: -"Рядки матриці (field_type=matrix)"New value: +"Matrix rows (field_type=matrix)"
    • changedInput schema / properties / name / description
      Previous value: -"Назва поля"New value: +"Field name"
    • changedInput schema / properties / not_add_space_between_operands / description
      Previous value: -"1 = не додавати пробіл між операндами (для конкатенації без пробілів)"New value: +"1 = no space between the operands (for concatenation without spaces)"
    • changedInput schema / properties / operand_is / description
      Previous value: -"Тип операндів для formula_type=formula: numbers, decimal, text, days, hours, year. ОБОВ'ЯЗКОВО якщо formula_type=formula."New value: +"Operand type for formula_type=formula: numbers, decimal, text, days, hours, year. REQUIRED when formula_type=formula."
    • changedInput schema / properties / operation / description
      Previous value: -"Оператори між полями: +, -, *, / (на 1 менше ніж кількість полів)"New value: +"Operators between the fields: +, -, *, / (one fewer than the number of fields)"
    • changedInput schema / properties / precision / description
      Previous value: -"Знаків після коми для float (default 2)"New value: +"Digits after the decimal point for float (default 2)"
    • changedInput schema / properties / rel_entity_id / description
      Previous value: -"ID форми до якої лінкує rel поле (обов'язково для rel)"New value: +"ID of the form the rel field links to (required for rel)"
    • changedInput schema / properties / rel_show_field_id / description
      Previous value: -"ID поля яке відображати в rel dropdown (опційно)"New value: +"ID of the field to show in the rel dropdown (optional)"
    • changedInput schema / properties / rel_type / description
      Previous value: -"Тип зв'язку (default 2): belongs_to=2/6/8 (dropdown/radio/multi), has_one=3/5/9 (dropdown/radio/multi), many-to-many=1/4 (autocomplete/checkboxes)"New value: +"Link type (default 2): belongs_to=2/6/8 (dropdown/radio/multi), has_one=3/5/9 (dropdown/radio/multi), many-to-many=1/4 (autocomplete/checkboxes)"
    • changedInput schema / properties / required / description
      Previous value: -"true — поле обов'язкове для заповнення"New value: +"true — the field must be filled in"
    • changedInput schema / properties / rich / description
      Previous value: -"true — текстовий редактор (для field_type=textarea)"New value: +"true — a text editor (for field_type=textarea)"
    • changedInput schema / properties / script_body / description
      Previous value: -"Ruby-код для func=4. Правила: результат у змінній 'a', остання строчка — 'a'; назви полів в одинарних лапках 'field_name'.to_f; заборонені def/while/puts/return/require; ЗАБОРОНЕНО агрегувати субформи через .to_f (для цього linked_column)."New value: +"Ruby code for func=4. Rules: the result goes into the variable 'a', the last line is 'a'; field names in single quotes 'field_name'.to_f; def/while/puts/return/require are forbidden; aggregating subforms through .to_f is FORBIDDEN (use linked_column for that)."
    • changedInput schema / properties / separator / description
      Previous value: -"Роздільник дробової частини: '.' або ','"New value: +"Decimal separator: '.' or ','"
    • changedInput schema / properties / start_from / description
      Previous value: -"Початкове значення autoincrement (default 1)"New value: +"Starting value of the autoincrement (default 1)"
    • changedInput schema / properties / step / description
      Previous value: -"Крок autoincrement (default 1)"New value: +"Step of the autoincrement (default 1)"
    • changedInput schema / properties / text_align / description
      Previous value: -"Вирівнювання в комірці: 1=ліво, 2=право, 3=центр, 4=ширина"New value: +"Alignment in the cell: 1=left, 2=right, 3=center, 4=justify"
    • changedInput schema / properties / truncates_after / description
      Previous value: -"Обрізати текст у таблиці після N символів (default 1000)"New value: +"Cut the text in the table after N characters (default 1000)"
    • changedInput schema / properties / uniqueness / description
      Previous value: -"Перевірка унікальності значень у полі."New value: +"Check that the field's values are unique."
    • changedInput schema / properties / uniqueness / properties / error_message / description
      Previous value: -"Кастомне повідомлення при порушенні унікальності"New value: +"A custom message when uniqueness is broken"
    • changedInput schema / properties / uniqueness / properties / linked_fields / description
      Previous value: -"Для uniq_type=2: масив назв або ID інших полів"New value: +"For uniq_type=2: an array of names or IDs of the other fields"
    • changedInput schema / properties / uniqueness / properties / uniq_type / description
      Previous value: -"0=немає, 1=строга унікальність, 2=multi (комбінація полів)"New value: +"0 = none, 1 = strictly unique, 2 = multi (a combination of fields)"
    • changedInput schema / properties / validations / properties / Email / description
      Previous value: -"\"1\" — перевірка формату email"New value: +"\"1\" — check the email format"
    • changedInput schema / properties / validations / properties / Exclusion / description
      Previous value: -"Заборонені значення через кому: \"spam, abuse\""New value: +"Forbidden values, comma-separated: \"spam, abuse\""
    • changedInput schema / properties / validations / properties / Inclusion / description
      Previous value: -"Дозволені значення через кому: \"Admin, Manager, User\""New value: +"Allowed values, comma-separated: \"Admin, Manager, User\""
    • changedInput schema / properties / validations / properties / LOCATION / description
      Previous value: -"\"1\" — перевірка геолокації"New value: +"\"1\" — check the geolocation"
    • changedInput schema / properties / validations / properties / URL / description
      Previous value: -"\"on\" — перевірка формату URL"New value: +"\"on\" — check the URL format"
    • changedInput schema / properties / validations / properties / exclusion_allowNull / description
      Previous value: -"\"on\" — дозволити пусте значення у Exclusion"New value: +"\"on\" — allow an empty value in Exclusion"
    • changedInput schema / properties / validations / properties / exclusion_caseSensitive / description
      Previous value: -"\"on\" — враховувати регістр у Exclusion"New value: +"\"on\" — case-sensitive Exclusion"
    • changedInput schema / properties / validations / properties / exclusion_partialMatch / description
      Previous value: -"\"on\" — частковий збіг у Exclusion"New value: +"\"on\" — partial match in Exclusion"
    • changedInput schema / properties / validations / properties / format / description
      Previous value: -"Regexp у форматі /^regex$/ — перевірка за регулярним виразом"New value: +"A regexp in the form /^regex$/ — check against a regular expression"
    • changedInput schema / properties / validations / properties / inclusion_allowNull / description
      Previous value: -"\"on\" — дозволити пусте значення у Inclusion"New value: +"\"on\" — allow an empty value in Inclusion"
    • changedInput schema / properties / validations / properties / inclusion_caseSensitive / description
      Previous value: -"\"on\" — враховувати регістр у Inclusion"New value: +"\"on\" — case-sensitive Inclusion"
    • changedInput schema / properties / validations / properties / inclusion_partialMatch / description
      Previous value: -"\"on\" — частковий збіг у Inclusion"New value: +"\"on\" — partial match in Inclusion"
    • changedInput schema / properties / validations / properties / is / description
      Previous value: -"Точна довжина (для text) або точне значення (для number)"New value: +"Exact length (for text) or exact value (for number)"
    • changedInput schema / properties / validations / properties / maximum / description
      Previous value: -"Максимум: для text — кількість символів; для integer/float — числове значення"New value: +"Maximum: for text — the number of characters; for integer/float — the numeric value"
    • changedInput schema / properties / validations / properties / minimum / description
      Previous value: -"Мінімум: для text — кількість символів; для integer/float — числове значення"New value: +"Minimum: for text — the number of characters; for integer/float — the numeric value"
    • changedInput schema / properties / validations / properties / onlyOnSubmit / description
      Previous value: -"\"1\" — валідувати тільки при сабміті, не на льоту"New value: +"\"1\" — validate only on submit, not while typing"
    • changedInput schema / properties / vertical_align / description
      Previous value: -"Вертикальне вирівнювання: 1=зверху, 2=посередині, 3=знизу"New value: +"Vertical alignment: 1=top, 2=middle, 3=bottom"
  2. Changed3 schema fields changed
    • changedInput schema / properties / average_table_column / description
      Previous value: -"formula_type average: the number field of the OTHER table to average, by id or name"New value: +"Not for an average over the rows linked to this record: their sum (linked_records + linked_column) divided by a linked_records_count. formula_type average is refused by this tool."
    • changedInput schema / properties / total_table_column / description
      Previous value: -"formula_type total: the number field of the OTHER table to add up, by id or name — «how much a client's orders come to» is a total on Clients of Orders' Amount"New value: +"Not for a sum over the rows linked to this record — that is a linked_records field and a linked_column over it (937). formula_type total is refused by this tool."
    • changedInput schema / properties / total_table_ref_column / description
      Previous value: -"formula_type total: the link field in that other table that points at this form, by id or name; may be left out when only one table links here"New value: +"Not for a sum over the rows linked to this record (see total_table_column)."
  3. Changed3 schema fields changed
    • changedInput schema / properties / dependent / description
      Previous value: -"true — залежне rel поле (фільтрується батьківським), разом з depends_from_field_id"New value: +"rel only: true — the list offers only the rows linked to what another field of the same form holds (Country → City, Stage → Check point); give depends_from_field_id with it. get_field_types with field_type rel says the shape"
    • changedInput schema / properties / depends_from_field_id / description
      Previous value: -"ID батьківського rel поля для каскаду (Країна→Місто тощо)"New value: +"rel only: the field of the same form (name or id) whose pick narrows this list — itself a link to a table that the linked table links to as well"
    • changedInput schema / properties / validations / description
      Previous value: -"Правила валідації поля. required: true — простіший спосіб для обов'язкового поля."New value: +"The field's checks. required: true is the shorter way to make it required. They check the text typed into the add or edit form, in the browser: none reads a date's weekday, a holiday, opening hours or other records (see the instruction's VALIDATIONS)."
  4. Changed2 schema fields changed
    • addedInput schema / properties / column
      Added value: +{
      +  "description": "REQUIRED for linked_column: the id of the field of the LINKED table that this column shows — «show the activity's description in the registration form» is a linked_column on Registrations with column = the id of Activities' Description (get_form_fields of that table lists the ids). The two tables must be linked already. Written here, beside settings — not inside settings",
      +  "type": "string"
      +}
    • changedInput schema / properties / linked_entity_id / description
      Previous value: -"The id of the other table: for linked_records / linked_column / linked_records_count, and for a subform the table whose rows are filled in inside this form"New value: +"The id of the other table: for linked_records / linked_records_count, and for a subform the table whose rows are filled in inside this form. A linked_column names its table by its column"
  5. Changed1 schema field changed
    • changedInput schema / properties / visible / description
      Previous value: -"false — поле приховане у таблиці (але залишається у формі)"New value: +"false — the field's column is not shown on the table's PUBLIC page (the page, a found record, one record's own page). Signed in, the owner still sees it in their own table and in the form. For a public page prefer update_public_page hide_columns: it takes the field out of the page's search too"
  6. Changed10 schema fields changed
    • addedInput schema / properties / action_name_column_id
      Added value: +{
      +  "description": "action: the id of the field of this form whose value is the button's caption — with action_name_from_column true",
      +  "type": "string"
      +}
    • addedInput schema / properties / action_name_from_column
      Added value: +{
      +  "description": "action: the button's caption is taken from a field of the record (action_name_column_id) instead of the field's name",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / average_table_column
      Added value: +{
      +  "description": "formula_type average: the number field of the OTHER table to average, by id or name",
      +  "type": "string"
      +}
    • addedInput schema / properties / average_table_ref_column
      Added value: +{
      +  "description": "formula_type average: the link field in that other table that points at this form, by id or name; may be left out when only one table links here",
      +  "type": "string"
      +}
    • addedInput schema / properties / icon_align
      Added value: +{
      +  "description": "action: where the icon stands beside the caption — 1 left (default), 2 right",
      +  "type": "integer"
      +}
    • changedInput schema / properties / linked_entity_id / description
      Previous value: -"ID форми для linked_records / linked_column / linked_records_count"New value: +"The id of the other table: for linked_records / linked_column / linked_records_count, and for a subform the table whose rows are filled in inside this form"
    • addedInput schema / properties / settings
      Added value: +{
      +  "description": "Any other setting of the field, as setting: value pairs in the product's own names — totals and averages under a column, barcode / QR code, an input mask, several files at once, a list's options side by side, pages of a long form, address help, edit in the table, how many fields share a row, a subform's rows (how many, the add link, hidden fields) and what the table shows of a subform or a list of linked records (one column or a small table of chosen columns, their order). Call get_field_types with field_type for the settings that fit one type. Example: {\"show_db_total_row\": true}. A setting that does not fit the field's type is refused by name.",
      +  "type": "object"
      +}
    • addedInput schema / properties / time_settings
      Added value: +{
      +  "description": "time field: how the time is picked. clock_system \"12h\" | \"24h\"; control_type \"dropdown\" | \"slider\"; units: { hour | minute | second | millisec | microsec: { show: true|false, min, max, step, grid } } — e.g. {\"units\": {\"minute\": {\"step\": 15}, \"second\": {\"show\": false}}}. Only what is passed changes",
      +  "type": "object"
      +}
    • addedInput schema / properties / total_table_column
      Added value: +{
      +  "description": "formula_type total: the number field of the OTHER table to add up, by id or name — «how much a client's orders come to» is a total on Clients of Orders' Amount",
      +  "type": "string"
      +}
    • addedInput schema / properties / total_table_ref_column
      Added value: +{
      +  "description": "formula_type total: the link field in that other table that points at this form, by id or name; may be left out when only one table links here",
      +  "type": "string"
      +}
  7. Changed1 schema field changed
    • changedInput schema / properties / choices / description
      Previous value: -"Варіанти вибору (для select/checkbox/radio)"New value: +"ОБОВ'ЯЗКОВО для select/checkbox/radio: масив варіантів. Виклик БЕЗ choices буде відхилено з помилкою — не роби його, одразу передай варіанти (візьми їх зі слів юзера або запропонуй розумні). Приклад: [\"Новий\", \"В роботі\", \"Готово\"]."
  8. Changed9 schema fields changed
    • changedInput schema / properties / action_display_rules / description
      Previous value: -"Правила відображення кнопки Дія залежно від умов. Якщо дія для всіх записів — не передавай цей масив взагалі."New value: +"Правила показу кнопки Дія за умовами. Для всіх записів — не передавай цей масив."
    • changedInput schema / properties / action_tasks / description
      Previous value: -"Задачі поля Дія (field_type=action). task_type: 0=email, 1=sms, 2=update_record, 3=payment, 4=webhook, 5=open_form_or_url, 6=telegram/whatsapp. Виклич get_field_types для повної специфікації."New value: +"Задачі поля Дія (field_type=action). task_type: 0=email, 1=sms, 2=update_record, 3=payment, 4=webhook, 5=open_form_or_url, 6=telegram/whatsapp. Повна специфікація — get_field_types."
    • changedInput schema / properties / action_tasks / items / properties / task_type / description
      Previous value: -"0=email, 1=sms, 2=update_record, 3=payment, 4=webhook, 5=open_form_or_url, 6=message(telegram/wa)"New value: +"Див. task_type у описі action_tasks вище"
    • changedInput schema / properties / allow_new_values / description
      Previous value: -"Лише для field_type=select. true — користувачі можуть додавати нові варіанти прямо з форми запису («+ Add new value...» у списку), без редагування самого поля. За замовчуванням false."New value: +"Лише для select. true — юзери можуть додавати нові варіанти прямо з форми запису, без редагування поля. Default false."
    • changedInput schema / properties / default_type / description
      Previous value: -"Тип значення за замовчуванням: 0=фіксований, 1=поточна дата/час (для date/datetime), 2=поточний користувач (для record_owners)"New value: +"0=фіксований, 1=поточна дата/час (date/datetime), 2=поточний користувач (record_owners)"
    • changedInput schema / properties / dependent / description
      Previous value: -"true — це залежне rel поле (фільтрується батьківським). Обов'язково разом з depends_from_field_id."New value: +"true — залежне rel поле (фільтрується батьківським), разом з depends_from_field_id"
    • changedInput schema / properties / depends_from_field_id / description
      Previous value: -"ID батьківського rel поля в тій самій формі (для каскаду Країна→Місто, Марка→Модель тощо)"New value: +"ID батьківського rel поля для каскаду (Країна→Місто тощо)"
    • changedInput schema / properties / display_as_image / description
      Previous value: -"true — показувати URL як картинку в таблиці (тільки для field_type=url). Використовуй при створенні поля для фото."New value: +"true — показувати URL як картинку (лише field_type=url, для фото)"
    • changedInput schema / properties / rel_type / description
      Previous value: -"Тип зв'язку: 2=belongs_to dropdown (default), 6=belongs_to radio, 8=belongs_to multi, 3=has_one dropdown, 5=has_one radio, 9=has_one multi, 1=many-to-many autocomplete, 4=many-to-many checkboxes"New value: +"Тип зв'язку (default 2): belongs_to=2/6/8 (dropdown/radio/multi), has_one=3/5/9 (dropdown/radio/multi), many-to-many=1/4 (autocomplete/checkboxes)"
  9. Changed1 schema field changed
    • addedInput schema / properties / allow_new_values
      Added value: +{
      +  "description": "Лише для field_type=select. true — користувачі можуть додавати нові варіанти прямо з форми запису («+ Add new value...» у списку), без редагування самого поля. За замовчуванням false.",
      +  "type": "boolean"
      +}
  10. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare non-readOnly, non-idempotent, non-destructive, closed-world. The description adds the failure mode beyond that: a call without choices is refused with an error, and the field is not created. That is genuinely useful pre-call knowledge for a mutation tool, though it says nothing about what the tool returns (field id) or rollback.

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?

Front-loaded with the purpose, then the critical constraint. The 36-item type list is long but earns its place for field_type selection; the '⚠️' warning is well placed at the end where it is most likely to be read before the call.

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

Completeness4/5

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

For a 70-parameter tool with no output schema, the description correctly delegates per-type detail to get_field_types rather than duplicating it. It never states what the call returns (a field id usable in reorder_fields or update_field), which is the one thing an agent needs next.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3; the description earns above that by explaining that a type's full parameters come from get_field_types and by surfacing the choices requirement at the call site. Marginal, since the schema already describes choices as REQUIRED, but the type enumeration helps an agent choose field_type without an extra round trip.

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

Purpose5/5

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

States a specific verb and resource ('Add a field to a form') and immediately enumerates the resource's subtypes, which distinguishes it cleanly from update_field/delete_field/reorder_fields siblings. An agent knows exactly what object is created and where it lands (app_id + entity_id = form).

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

Usage Guidelines4/5

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

Gives a concrete conditional rule ('For select/checkbox/radio ALWAYS pass choices in the SAME call') and routes the agent to get_field_types for per-type parameters. It does not say when to use this versus update_field, or state the precondition that the form must already exist — a small gap, but the conditional guidance that is present is explicit.

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