Back to MCP Overview

Base & Tables Tools

Tools for managing bases, tables, fields, and records.

40 tools

Available Tools

tables_createDatabase

Create a new database (base). Returns the created database with its ID.

Input Schema

namestringrequired

Name for the new database/base

descriptionstring

Optional description of the database

iconstring

Icon name (e.g., "database", "folder")

colorstring

Hex color code (e.g., "#3B82F6")

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_createDatabase",
    "arguments": {
          "name": "example",
          "description": "example",
          "icon": "example"
    }
  }
}
tables_listDatabases

List all databases (bases) for the current user. Returns array with id, name, description, tables[]. Use this first to get database IDs.

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_listDatabases",
    "arguments": {}
  }
}
tables_getDatabaseById

Get a specific database with its tables

Input Schema

idstringrequired

Database ID from listDatabases

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_getDatabaseById",
    "arguments": {
          "id": "example"
    }
  }
}
tables_updateDatabase

Update database properties. Only provided fields are updated.

Input Schema

idstringrequired

Database ID from listDatabases

namestring

New name for the database

descriptionstring

New description

iconstring

New icon name

colorstring

New hex color code

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_updateDatabase",
    "arguments": {
          "id": "example",
          "name": "example",
          "description": "example"
    }
  }
}
tables_deleteDatabase

Permanently delete a database and all its contents

Input Schema

idstringrequired

Database ID to delete. WARNING: This permanently deletes all tables and data.

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_deleteDatabase",
    "arguments": {
          "id": "example"
    }
  }
}
tables_createTable

Create a new table in a database. Returns the created table.

Input Schema

databaseIdstringrequired

Database ID from listDatabases where the table will be created

namestringrequired

Name for the new table

descriptionstring

Optional description of the table

iconstring

Icon name (e.g., "table", "users")

colorstring

Hex color code (e.g., "#10B981")

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_createTable",
    "arguments": {
          "databaseId": "example",
          "name": "example",
          "description": "example"
    }
  }
}
tables_listTables

List all tables across all databases. Returns array with id, name, databaseId. Use getTableById for full details.

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_listTables",
    "arguments": {}
  }
}
tables_getViewsByTableId

Get all views for a table

Input Schema

tableIdstringrequired

Table ID from listTables

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_getViewsByTableId",
    "arguments": {
          "tableId": "example"
    }
  }
}
tables_getFieldsByTableId

Get all fields/columns for a table. Returns field IDs needed for createRow data keys.

Input Schema

tableIdstringrequired

Table ID from listTables

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_getFieldsByTableId",
    "arguments": {
          "tableId": "example"
    }
  }
}
tables_getTableById

Get table with fields and views. Returns field IDs needed for row data.

Input Schema

idstringrequired

Table ID from listTables

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_getTableById",
    "arguments": {
          "id": "example"
    }
  }
}
tables_updateTable

Update table properties. Only provided fields are updated.

Input Schema

idstringrequired

Table ID from listTables

namestring

New name for the table

descriptionstring

New description

iconstring

New icon name

colorstring

New hex color code

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_updateTable",
    "arguments": {
          "id": "example",
          "name": "example",
          "description": "example"
    }
  }
}
tables_deleteTable

Permanently delete a table and all its data

Input Schema

idstringrequired

Table ID to delete. WARNING: This permanently deletes all rows and fields.

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_deleteTable",
    "arguments": {
          "id": "example"
    }
  }
}
tables_createField

Create a new field/column in a table

Input Schema

tableIdstringrequired

Table ID from listTables

namestringrequired

Name for the new field/column

fieldTypestringrequired

Field type: "text", "number", "select", "multiselect", "date", "datetime", "checkbox", "url", "email", "phone", "file", "formula", "rating", "currency", "percent", "duration", "status", "button", "link", "lookup", "rollup"

descriptionstring

Optional description of the field

requiredboolean

Must be false or omitted. Required fields are not supported - UI creates blank rows first.

uniqueboolean

Whether values must be unique (default: false)

defaultValueany

Default value for new rows

optionsarray

For select/multiselect: [{value: "opt1", label: "Option 1", color: "#3b82f6"}]

statusLabelsarray

For status: [{value: "todo", label: "To Do", color: "#6b7280"}]

formulaConfigobject

For formula: {formula: "field1 + field2", resultType: "number"}

buttonConfigobject

For button: {actionType: "flow", flowId: "xxx"}

numberFormatConfigobject

For number: {decimalPlaces: 2, useThousandSeparator: true}

currencyFormatConfigobject

For currency: {currencySymbol: "$", symbolPosition: "before"}

percentFormatConfigobject

For percent: {decimalPlaces: 1}

lookupConfigobject

For lookup: {relationshipFieldId: "xxx", sourceFieldId: "xxx"}

rollupConfigobject

For rollup: {relationshipFieldId: "xxx", sourceFieldId: "xxx", aggregationType: "SUM"}

linkedTableIdstring

For link field: target table ID

linkTypestring

Link relationship type

displayOrderstring

Fractional order string (e.g., "a0", "b0")

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_createField",
    "arguments": {
          "tableId": "example",
          "name": "example",
          "fieldType": "example"
    }
  }
}
tables_updateField

Update field properties. Only provided fields are updated.

Input Schema

idstringrequired

Field ID from getFieldsByTableId

namestring

New name for the field

fieldTypestring

Field type

descriptionstring

New description

requiredboolean

Must be false or omitted. Required fields are not supported - UI creates blank rows first.

uniqueboolean

Whether values must be unique

defaultValueany

Default value for new rows

optionsarray

For select/multiselect: [{value: "opt1", label: "Option 1", color: "#3b82f6"}]

statusLabelsarray

For status: [{value: "todo", label: "To Do", color: "#6b7280"}]

formulaConfigobject

For formula: {formula: "field1 + field2", resultType: "number"}

linkedTableIdstring

For link field: target table ID

linkTypestring

Link relationship type

linkDisplayModestring

How to display linked records

linkDisplayFieldIdstring

Which field to show from linked records

allowMultipleLinksboolean

Whether multiple links are allowed

buttonConfigobject

For button: {actionType: "flow", flowId: "xxx"}

numberFormatConfigobject

For number: {decimalPlaces: 2, useThousandSeparator: true}

currencyFormatConfigobject

For currency: {currencySymbol: "$", symbolPosition: "before"}

percentFormatConfigobject

For percent: {decimalPlaces: 1}

lookupConfigobject

For lookup: {relationshipFieldId: "xxx", sourceFieldId: "xxx"}

rollupConfigobject

For rollup: {relationshipFieldId: "xxx", sourceFieldId: "xxx", aggregationType: "SUM"}

displayOrdernumber

Display order position

isVisibleboolean

Whether field is visible

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_updateField",
    "arguments": {
          "id": "example",
          "name": "example",
          "fieldType": "example"
    }
  }
}
tables_deleteField

Permanently delete a field/column and all its data

Input Schema

idstringrequired

Field ID to delete. WARNING: This permanently deletes all data in this column.

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_deleteField",
    "arguments": {
          "id": "example"
    }
  }
}
tables_createRow

Create a new row in a table. Data keys must be field IDs, not field names.

Input Schema

tableIdstringrequired

Table ID from listTables

dataobjectrequired

Object where keys are FIELD IDs from getFieldsByTableId, values are cell values. Example: {"fieldId1": "text", "fieldId2": 123}

rowOrderstring

Fractional order string for positioning. Leave empty to append at end.

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_createRow",
    "arguments": {
          "tableId": "example",
          "data": {},
          "rowOrder": "example"
    }
  }
}
tables_getRowCount

Get total row count for a table. Lightweight operation.

Input Schema

tableIdstringrequired

Table ID from listTables

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_getRowCount",
    "arguments": {
          "tableId": "example"
    }
  }
}
tables_getRows

Get rows from a table with pagination. Returns row data with field IDs as keys.

Input Schema

tableIdstringrequired

Table ID from listTables

limitnumber

Max rows to return (default: 100)

offsetnumber

Number of rows to skip for pagination

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_getRows",
    "arguments": {
          "tableId": "example",
          "limit": 0,
          "offset": 0
    }
  }
}
tables_updateRow

Update an existing row. Merges provided data with existing data.

Input Schema

idstringrequired

Row ID from getRows

dataobjectrequired

Object with field IDs as keys and new values. Only provided fields are updated.

metadataobject

Optional metadata to merge with existing

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_updateRow",
    "arguments": {
          "id": "example",
          "data": {},
          "metadata": {}
    }
  }
}
tables_deleteRow

Permanently delete a single row

Input Schema

idstringrequired

Row ID to delete

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_deleteRow",
    "arguments": {
          "id": "example"
    }
  }
}
tables_bulkDeleteRows

Delete multiple rows. Params: tableId, rowIds (array of row IDs).

Input Schema

tableIdstringrequired
rowIdsarrayrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_bulkDeleteRows",
    "arguments": {
          "tableId": "example",
          "rowIds": {}
    }
  }
}
tables_createView

Create a new view. Params: tableId (required), name (required), viewType (required: "grid", "kanban", "calendar", "gallery", "form"), description, filterConfig, sortConfig, groupConfig, visibleFields (array of field IDs).

Input Schema

tableIdstringrequired
namestringrequired
viewTypestringrequired
descriptionstring
filterConfigany
sortConfigany
groupConfigany
visibleFieldsarray
columnWidthsany
isDefaultboolean

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_createView",
    "arguments": {
          "tableId": "example",
          "name": "example",
          "viewType": "example"
    }
  }
}
tables_updateView

Update view settings. Params: id (view ID), name, filterConfig, sortConfig, groupConfig, visibleFields, etc.

Input Schema

idstringrequired
namestring
descriptionstring
filterConfigany
sortConfigany
groupConfigany
visibleFieldsarray
columnWidthsany
isDefaultboolean
metadataany

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_updateView",
    "arguments": {
          "id": "example",
          "name": "example",
          "description": "example"
    }
  }
}
tables_getViews

List all views for a table. Param "tableId". Returns array with id, name, viewType, filterConfig, sortConfig.

Input Schema

tableIdstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_getViews",
    "arguments": {
          "tableId": "example"
    }
  }
}
tables_reorderView

Change view position. Params: viewId, newOrderIndex (string).

Input Schema

viewIdstringrequired
newOrderIndexstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_reorderView",
    "arguments": {
          "viewId": "example",
          "newOrderIndex": "example"
    }
  }
}
tables_duplicateView

Copy a view. Params: id (view ID to copy), name (optional, for the copy).

Input Schema

idstringrequired
namestring

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_duplicateView",
    "arguments": {
          "id": "example",
          "name": "example"
    }
  }
}
tables_setDefaultView

Set which view opens by default. Params: id (view ID), tableId.

Input Schema

idstringrequired
tableIdstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_setDefaultView",
    "arguments": {
          "id": "example",
          "tableId": "example"
    }
  }
}
tables_deleteView

Delete a view. Param "id" is the view ID.

Input Schema

idstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_deleteView",
    "arguments": {
          "id": "example"
    }
  }
}
tables_updateFieldOrder

Change field position. Params: fieldId, newOrder (fractional string).

Input Schema

fieldIdstringrequired
newOrderstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_updateFieldOrder",
    "arguments": {
          "fieldId": "example",
          "newOrder": "example"
    }
  }
}
tables_updateTableOrder

Change table position in database. Params: tableId, newOrder (string like "a0", "b0" for fractional ordering).

Input Schema

tableIdstringrequired
newOrderstringrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_updateTableOrder",
    "arguments": {
          "tableId": "example",
          "newOrder": "example"
    }
  }
}
tables_updateFieldWidth

Set column width in pixels. Params: fieldId, width (number, e.g., 200).

Input Schema

fieldIdstringrequired
widthnumberrequired

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_updateFieldWidth",
    "arguments": {
          "fieldId": "example",
          "width": 0
    }
  }
}
tables_updateRowOrder

Update row display order for row drag-and-drop

Input Schema

rowIdstringrequired

Row ID to reorder

newOrderstringrequired

New fractional order string

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_updateRowOrder",
    "arguments": {
          "rowId": "example",
          "newOrder": "example"
    }
  }
}
tables_bulkUpdateRows

Update multiple rows at once

Input Schema

tableIdstringrequired

Table ID from listTables

updatesarrayrequired

Array of row updates

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_bulkUpdateRows",
    "arguments": {
          "tableId": "example",
          "updates": {}
    }
  }
}
tables_exportTable

Export all table data for download

Input Schema

tableIdstringrequired

Table ID to export

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_exportTable",
    "arguments": {
          "tableId": "example"
    }
  }
}
tables_importRows

Bulk import rows. Use matchFieldsByName=true (default) to use field names as keys.

Input Schema

tableIdstringrequired

Table ID from listTables

rowsarrayrequired

Array of row data. When matchFieldsByName=true, use field NAMES as keys. When false, use field IDs.

matchFieldsByNameboolean

If true, match columns by field name. If false, use field IDs as keys (default: true)

fieldDefinitionsarray

Optional field definitions to create new fields during import

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_importRows",
    "arguments": {
          "tableId": "example",
          "rows": {},
          "matchFieldsByName": true
    }
  }
}
tables_searchRows

Full-text search across all text fields in a table. Returns matching rows with optional readable format.

Input Schema

tableIdstringrequired

Table ID to search in

querystringrequired

Search query string

limitnumber

Max results (default: 50)

offsetnumber

Skip results for pagination

includeReadableboolean

Include human-readable field names in output

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_searchRows",
    "arguments": {
          "tableId": "example",
          "query": "example",
          "limit": 0
    }
  }
}
tables_upsertRow

Create a row if no match found, or update existing row if match exists. Useful for sync operations.

Input Schema

tableIdstringrequired

Table ID

matchFieldIdstringrequired

Field ID to match on (must be unique or will update first match)

matchValueany

Value to match against

dataobjectrequired

Row data with field IDs as keys

includeReadableboolean

Include human-readable output

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_upsertRow",
    "arguments": {
          "tableId": "example",
          "matchFieldId": "example",
          "matchValue": {}
    }
  }
}
tables_getTableSchema

Get table structure/schema. Useful for understanding table layout before creating/updating rows.

Input Schema

tableIdstringrequired

Table ID

formatstring

Output format: json (full), array (simple), markdown (documentation)

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_getTableSchema",
    "arguments": {
          "tableId": "example",
          "format": "example"
    }
  }
}
tables_duplicateTable

Clone a table with its structure (fields) and optionally data (rows) and views.

Input Schema

tableIdstringrequired

Source table ID to duplicate

newNamestringrequired

Name for the new table

targetDatabaseIdstring

Target database ID (defaults to same database)

includeRowsboolean

Copy all rows from source table

includeViewsboolean

Copy views configuration

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_duplicateTable",
    "arguments": {
          "tableId": "example",
          "newName": "example",
          "targetDatabaseId": "example"
    }
  }
}
tables_getHelp

Get help for Tables API. Call with topic to get focused guidance.

Input Schema

topicstring

Topic: "overview", "fields", "rows", "views", "linked"

Example Call

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "tables_getHelp",
    "arguments": {
          "topic": "example"
    }
  }
}
Base & Tables MCP Tools - Serenities