# add_dashboard_item

Додати віджет на дашборд порталу. Типи (module_type): 9=таблиця/звіт, 10=сума поля, 11=середнє поля, 12=кількість записів, 13=нові сьогодні, 14=оновлені сьогодні, 15=URL, 17=growth_by_table (динамічний ріст по таблиці), 18=growth_by_widgets (порівняння двох віджетів), 5=графік, 6=карта, 7=календар, 16=HTML сторінка. Для growth по таблиці (17): вкажи module_id, date_property_id, change_period. Для growth по двох віджетах (18): first_widget_id та second_widget_id.

Agent View of the PolicyLayer registry record for `add_dashboard_item`. HTML page: https://policylayer.com/tools/com-quintadb-mcp/add-dashboard-item

## Facts

- Tool: `add_dashboard_item`
- Server: QuintaDB (`https://quintadb.com/mcp`) — https://policylayer.com/tools/com-quintadb-mcp.md
- Homepage: https://github.com/https://quintadb.com/mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 12 (4 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `icon` | string | no | FontAwesome клас іконки (опційно, автовибір якщо не вказано) |
| `name` | string | yes | Назва віджету |
| `app_id` | string | yes | Project ID (from list_projects) |
| `currency` | string | no | Символ валюти: $, €, ₴ тощо |
| `position` | integer | no | Позиція в сітці (автоінкремент якщо не вказано) |
| `module_id` | string | no | ID форми або звіту (для типів 9,10,11,12,13,14,17) / ID графіка(5) / карти(6) / календаря(7) |
| `portal_id` | string | yes | Portal ID (from list_portals or describe_project) |
| `block_width` | integer | no | Ширина картки в сітці (1-12, bootstrap grid) |
| `module_type` | integer | yes | 9=таблиця/звіт, 10=сума, 11=середнє, 12=кількість, 13=нові сьогодні, 14=оновлені сьогодні, 15=URL, 17=growth_by_table, 18=growth_by_widgets, 5=графік, 6=карта, |
| `property_id` | string | no | ID або назва числового поля — для суми(10), середнього(11). Для growth(17): поле що рахується. |
| `block_height` | integer | no | Висота картки в px |
| `change_period` | integer | no | Для growth: 0=вчора vs позавчора, 1=ця тиждень vs минулий, 2=цей місяць vs минулий, 3=квартал, 4=рік |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "add_dashboard_item",
    "arguments": {
      "name": "<name>",
      "app_id": "<app_id>",
      "portal_id": "<portal_id>",
      "module_type": 0
    }
  }
}
```

## Why add_dashboard_item is rated Medium

This tool creates new dashboard widgets/items, which modifies the portal's UI configuration reversibly. It does not delete data (Destructive), execute arbitrary code (Execute), move money (Financial), or retrieve without side effects (Read). It is a Write operation because it creates or modifies dashboard elements.

From the tool's own definition: "Tool name and description indicate adding/creating a dashboard item: 'add_dashboard_item' and 'Додати віджет на дашборд' (add widget to dashboard)."

Risk signals: High parameter count (19 properties)

## Use case

AI agents use add_dashboard_item to create or update resources in QuintaDB, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your QuintaDB environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches QuintaDB:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "add_dashboard_item": {
      "limits": [
        {
          "counter": "add_dashboard_item_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on QuintaDB (115)

- `delete_few_records` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-few-records.md
- `delete_field` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-field.md
- `delete_form` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-form.md
- `delete_portal_group` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-portal-group.md
- `delete_portal_menu_item` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-portal-menu-item.md
- `delete_portal_user` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-portal-user.md
- `delete_project` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-project.md
- `delete_record` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-record.md
- `delete_records_by_filter` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-records-by-filter.md
- `delete_reminder` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-reminder.md
- `delete_saved_view` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-saved-view.md
- `delete_schedule` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-schedule.md
- `delete_team_group` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-team-group.md
- `delete_template` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-template.md
- `delete_webhook` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/delete-webhook.md
- `remove_user_from_portal_group` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/remove-user-from-portal-group.md
- `remove_user_from_team_group` — Destructive — https://policylayer.com/tools/com-quintadb-mcp/remove-user-from-team-group.md
- `run_action` — Execute — https://policylayer.com/tools/com-quintadb-mcp/run-action.md
- `check_ai_site_status` — Read — https://policylayer.com/tools/com-quintadb-mcp/check-ai-site-status.md
- `describe_project` — Read — https://policylayer.com/tools/com-quintadb-mcp/describe-project.md
- `export_records` — Read — https://policylayer.com/tools/com-quintadb-mcp/export-records.md
- `fetch_url` — Read — https://policylayer.com/tools/com-quintadb-mcp/fetch-url.md
- `get_column_total` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-column-total.md
- `get_field_types` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-field-types.md
- `get_form_fields` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-form-fields.md
- `get_form_settings` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-form-settings.md
- `get_metric` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-metric.md
- `get_portal_page` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-portal-page.md
- `get_project` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-project.md
- `get_quickstart_guide` — Read — https://policylayer.com/tools/com-quintadb-mcp/get-quickstart-guide.md
- …and 85 more: https://policylayer.com/tools/com-quintadb-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=com-quintadb-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/com-quintadb-mcp
