Available Tools
The Widget Builder MCP Server provides the following tools that AI assistants can use to manage your widgets.
Widget Management
list_widgets
List all custom widgets for your account. Returns a summary of each widget including GUID, title, active status, and timestamps.
Parameters: None
Returns: Array of widgets with guid, title, isActive, updateTimestamp, and createTimestamp.
Required scope: widgets:read
get_widget
Get full details of a specific widget by its GUID. Includes the Handlebars template, form field definitions, variables, translations, and API configuration.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
guid | string | Yes | The widget's unique identifier |
Required scope: widgets:read
create_widget
Create a new widget with a title and optional Handlebars HTML template, form fields, variables, and translations.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
title | string | Yes | The widget title |
template | string | No | Handlebars HTML template |
form | array | No | Form field definitions (editor settings) |
variables | array | No | Widget variables for interactive state |
translations | object | No | Translation key-value pairs per language |
isActive | boolean | No | Whether the widget is immediately active (default: false) |
Required scope: widgets:write
update_widget
Update an existing widget. Only provided fields are updated — omitted fields remain unchanged.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
guid | string | Yes | The widget's unique identifier |
title | string | No | New widget title |
template | string | No | Updated Handlebars template |
form | array | No | Updated form fields |
variables | array | No | Updated variables |
translations | object | No | Updated translations |
isActive | boolean | No | Activate or deactivate the widget |
Required scope: widgets:write
delete_widget
Permanently delete a widget by its GUID. This action cannot be undone.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
guid | string | Yes | The widget's unique identifier |
Required scope: widgets:write
Data Tables
list_tables
List all data tables for your account. Returns a summary of each table including GUID, name, description, active row count, and timestamps.
Parameters: None
Required scope: tables:read
get_table
Get the full schema of a data table by its GUID, including column definitions and index slot mappings.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
tableGuid | string | Yes | The data table's unique identifier |
Required scope: tables:read
list_rows
List rows from a data table with pagination, optional sorting, and optional filtering.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
tableGuid | string | Yes | The data table's unique identifier |
page | number | No | Page number (default: 1) |
pageSize | number | No | Rows per page (default: 50, max: 200) |
sortBy | string | No | Column key to sort by |
sortDir | string | No | Sort direction: asc or desc |
filters | array | No | Array of filter objects with column, operator, and value |
Required scope: tables:read
create_table
Create a new data table with a name and optional column definitions.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Table name (max 255 characters) |
description | string | No | Table description (max 1000 characters) |
columns | array | No | Column definitions with key, label, type, required, and optional validation |
Required scope: tables:write
update_table_schema
Update the column definitions of a data table. Existing columns cannot change their type — delete and recreate instead.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
tableGuid | string | Yes | The data table's unique identifier |
columns | array | Yes | New column definitions |
Required scope: tables:write
delete_table
Permanently delete a data table by its GUID. This cascade-deletes all rows and shares.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
tableGuid | string | Yes | The data table's unique identifier |
Required scope: tables:write
create_row
Insert a new row into a data table. The data object is validated against the table's column schema.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
tableGuid | string | Yes | The data table's unique identifier |
data | object | Yes | Row data as { columnKey: value } pairs |
Required scope: tables:rows
update_row
Update an existing row in a data table.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
tableGuid | string | Yes | The data table's unique identifier |
rowGuid | string | Yes | The row's unique identifier |
data | object | Yes | Updated row data as { columnKey: value } pairs |
Required scope: tables:rows
delete_row
Soft-delete a row in a data table.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
tableGuid | string | Yes | The data table's unique identifier |
rowGuid | string | Yes | The row's unique identifier |
Required scope: tables:rows
The tables:write scope implicitly includes tables:rows permissions.
Built-in Widgets
list_builtin_widgets
List all built-in widgets that are activated for your account. Returns GUID, version, title, and icon for each built-in widget.
Parameters: None
Required scope: widgets:read
get_builtin_widget
Get full details of a built-in widget by its GUID, including the HTML template, form fields, variables, translations, and API configuration.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
guid | string | Yes | The built-in widget's unique identifier |
Required scope: widgets:read
Template Rendering
test_render
Test-render a Handlebars template server-side without a browser. Returns the rendered HTML output and any compilation errors. You can render an existing widget by GUID or provide a raw template string.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
guid | string | No | Widget GUID to render (optional if template is provided) |
template | string | No | Raw Handlebars template string (optional if guid is provided) |
data | object | No | Sample data context for template rendering |
settings | object | No | Sample settings values for template rendering |
Required scope: render
Use test_render to validate templates before creating or updating widgets. This helps catch Handlebars syntax errors early.
Documentation
get_widget_guide
Retrieve the complete widget building guide. This includes documentation on Handlebars syntax, all available helpers with examples, form field types, variables, translations, Tailwind CSS usage, and a complete example widget.
Parameters: None
Required scope: None (available to all authenticated tokens)
Permission Scopes
Each API token has one or more permission scopes that control which tools it can access:
| Scope | Tools |
|---|---|
widgets:read | list_widgets, get_widget, list_builtin_widgets, get_builtin_widget |
widgets:write | create_widget, update_widget, delete_widget |
render | test_render |
tables:read | list_tables, get_table, list_rows |
tables:write | create_table, update_table_schema, delete_table (also implies tables:rows) |
tables:rows | create_row, update_row, delete_row |
| (no scope needed) | get_widget_guide |
By default, new tokens are created with all six scopes: widgets:read, widgets:write, render, tables:read, tables:write, and tables:rows.
Built-in Prompts
The MCP Server also provides guided prompts that walk AI assistants through multi-step workflows:
create_widget
A guided workflow for creating a new widget from scratch. The AI assistant will:
- Read the widget building guide
- Gather your requirements (data structure, desired layout)
- Build the HTML template with Handlebars and Tailwind CSS
- Test-render the template to validate it
- Create the widget in your account
improve_widget
A guided workflow for improving an existing widget. Provide a widget GUID and the AI assistant will:
- Retrieve the widget's current template and configuration
- Review it against best practices
- Suggest specific improvements
- Test-render the updated template
- Apply the changes
Next steps
Ready to try it out? Ask your AI assistant to:
- "List my widgets"
- "Create a weather widget that shows the current temperature"
- "Improve my KPI Dashboard widget"