Skip to main content
Glama

add_dashboard_item

Add a card to a portal's dashboard. Types (module_type): 2=a chart, 3=a map, 4=a calendar (module_id: its id); 9=a table or report; 10=the sum of a field; 11=the average of a field; 12=the number of records; 13=records added today; 14=records changed today; 15=a link; 16=a page; 17=growth of a table over a period (module_id, date_property_id, change_period); 18=growth between two cards (first_widget_id, second_widget_id); 5=the account's files total; 6=the number of the portal's people. Several charts for a dashboard: create_dashboard_charts.

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>",
      "portal_id": "<portal_id>",
      "name": "<name>",
      "module_type": "<module_type>"
    },
    "name": "add_dashboard_item"
  }
}

Input Schema

NameRequiredDescriptionDefault
iconNoThe icon's FontAwesome class (optional, chosen automatically if not given)
nameYesWidget name
app_idYesProject ID (from list_projects)
currencyNoCurrency symbol: $, €, ₴ and so on
positionNoPosition in the grid (autoincrement if not given)
module_idNoThe table's or report's id (types 9–14, 17) / the chart's (2), map's (3) or calendar's (4) id
portal_idYesPortal ID (from list_portals or describe_project)
block_widthNoWidth of the card in the grid (1-12, bootstrap grid)
module_typeYes2=chart, 3=map, 4=calendar, 9=table or report, 10=sum, 11=average, 12=count, 13=added today, 14=changed today, 15=link, 16=page, 17=growth by table, 18=growth between cards, 5=files total, 6=portal's people
property_idNoID or name of the number field — for sum (10), average (11). For growth (17): the field that is counted.
block_heightNoHeight of the card in px
change_periodNoFor growth: 0 = yesterday vs the day before, 1 = this week vs last week, 2 = this month vs last month, 3 = quarter, 4 = year
show_currencyNoShow the currency symbol next to the number
first_widget_idNoID of the first dashboard widget for growth_by_widgets (18) — take it from a previous add_dashboard_item
date_property_idNoID or name of the date field — for growth_by_table (17), to count the records per period
second_widget_idNoID of the second dashboard widget for growth_by_widgets (18)
currency_positionNo0 = before the number (default), 1 = after the number
show_current_valueNoShow the current value next to the % of growth (default: true)
show_compare_periodNoShow the value for the compared period (default: false)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed15 schema fields changed
    • changedInput schema / properties / block_height / description
      Previous value: -"Висота картки в px"New value: +"Height of the card in px"
    • changedInput schema / properties / block_width / description
      Previous value: -"Ширина картки в сітці (1-12, bootstrap grid)"New value: +"Width of the card in the grid (1-12, bootstrap grid)"
    • changedInput schema / properties / change_period / description
      Previous value: -"Для growth: 0=вчора vs позавчора, 1=ця тиждень vs минулий, 2=цей місяць vs минулий, 3=квартал, 4=рік"New value: +"For growth: 0 = yesterday vs the day before, 1 = this week vs last week, 2 = this month vs last month, 3 = quarter, 4 = year"
    • changedInput schema / properties / currency / description
      Previous value: -"Символ валюти: $, €, ₴ тощо"New value: +"Currency symbol: $, €, ₴ and so on"
    • changedInput schema / properties / currency_position / description
      Previous value: -"0=перед числом (default), 1=після числа"New value: +"0 = before the number (default), 1 = after the number"
    • changedInput schema / properties / date_property_id / description
      Previous value: -"ID або назва поля дати — для growth_by_table(17), щоб рахувати записи за period"New value: +"ID or name of the date field — for growth_by_table (17), to count the records per period"
    • changedInput schema / properties / first_widget_id / description
      Previous value: -"ID першого дашборд-віджету для growth_by_widgets(18) — отримай з попереднього add_dashboard_item"New value: +"ID of the first dashboard widget for growth_by_widgets (18) — take it from a previous add_dashboard_item"
    • changedInput schema / properties / icon / description
      Previous value: -"FontAwesome клас іконки (опційно, автовибір якщо не вказано)"New value: +"The icon's FontAwesome class (optional, chosen automatically if not given)"
    • changedInput schema / properties / name / description
      Previous value: -"Назва віджету"New value: +"Widget name"
    • changedInput schema / properties / position / description
      Previous value: -"Позиція в сітці (автоінкремент якщо не вказано)"New value: +"Position in the grid (autoincrement if not given)"
    • changedInput schema / properties / property_id / description
      Previous value: -"ID або назва числового поля — для суми(10), середнього(11). Для growth(17): поле що рахується."New value: +"ID or name of the number field — for sum (10), average (11). For growth (17): the field that is counted."
    • changedInput schema / properties / second_widget_id / description
      Previous value: -"ID другого дашборд-віджету для growth_by_widgets(18)"New value: +"ID of the second dashboard widget for growth_by_widgets (18)"
    • changedInput schema / properties / show_compare_period / description
      Previous value: -"Показати значення за порівнювальний період (default: false)"New value: +"Show the value for the compared period (default: false)"
    • changedInput schema / properties / show_currency / description
      Previous value: -"Показати символ валюти біля числа"New value: +"Show the currency symbol next to the number"
    • changedInput schema / properties / show_current_value / description
      Previous value: -"Показати поточне значення поряд з % росту (default: true)"New value: +"Show the current value next to the % of growth (default: true)"
  2. Changed2 schema fields changed
    • changedInput schema / properties / module_id / description
      Previous value: -"ID форми або звіту (для типів 9,10,11,12,13,14,17) / ID графіка(5) / карти(6) / календаря(7)"New value: +"The table's or report's id (types 9–14, 17) / the chart's (2), map's (3) or calendar's (4) id"
    • changedInput schema / properties / module_type / description
      Previous value: -"9=таблиця/звіт, 10=сума, 11=середнє, 12=кількість, 13=нові сьогодні, 14=оновлені сьогодні, 15=URL, 17=growth_by_table, 18=growth_by_widgets, 5=графік, 6=карта, 7=календар, 16=HTML"New value: +"2=chart, 3=map, 4=calendar, 9=table or report, 10=sum, 11=average, 12=count, 13=added today, 14=changed today, 15=link, 16=page, 17=growth by table, 18=growth between cards, 5=files total, 6=portal's people"
  3. First observed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already disclose that this is a non-read-only, non-destructive, non-idempotent mutation. The description adds little behavioral context beyond 'Add a card'—it does not mention permissions, side effects, duplicate handling, or what is returned.

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?

The purpose is front-loaded and every part of the type mapping earns its place because module_type is an integer without enum constraints. The type enumeration is dense and semicolon-heavy, but it is not padded with fluff.

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

Completeness3/5

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

Given the high schema coverage and annotations, the description covers enough to select the tool and map module types. It is still incomplete for a complex 19-parameter mutation because it omits prerequisites, authorization needs, and return-value expectations, which matter since there is no output schema.

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%, so the schema already documents all 19 parameters in detail. The description restates the module_type mapping and some conditional parameter groupings, but adds little meaning beyond what is already in the schema descriptions.

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?

The description states a specific verb and resource: 'Add a card to a portal's dashboard.' It also names the relevant sibling alternative, create_dashboard_charts, for creating several charts at once, so an agent can distinguish this tool from that sibling without opening schemas.

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

Usage Guidelines3/5

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

It gives one explicit routing rule: use create_dashboard_charts for several charts. However, it provides no broader when-to-use guidance versus update_dashboard_item, delete_dashboard_item, or list_dashboard_items, and no prerequisites such as requiring an existing portal or dashboard.

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