TablesWriteDo not retry automatically
Add a table field
add_table_fieldAdd one field to a table: any basic kind (text, number, date, select, status, checkbox, rating, user, attachment, auto number, JSON …), or a COMPUTED field — a formula (`source`) or a Lookup / Rollup / Count (`preset`), which are lowered to the same formula language. Formula fields are referenced by ID — `{fld:<fieldId>}` — never by label. A relation is created with create_table_relation because both sides are written together. Feed-owned fields on a typed table keep following their resource contract.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
tableId | string | required | Table ID — get from list_tables |
label | string | required | Human-readable field name |
config | object | optional | Per-kind configuration: { options: [{ id, label, color }] } for select/status, { maximum, icon } for rating, { multiple } for user, { prefix, digits } for auto number, { accept } for attachment. |
format | object | optional | Display format — { kind: "number", variant: "currency", currency: "AUD", precision: 2 }, { kind: "date", preset: "medium" }. Presentation only; it never rewrites a stored value. |
required | boolean | optional | Reject a row that leaves this field blank |
description | string | optional | Shown in the column tooltip and the API |
icon | string | optional | Icon catalog id, e.g. emoji:store |
kind | "text" | "long_text" | "number" | "checkbox" | "date" | "datetime" | "single_select" | "multi_select" | "status" | "url" | "email" | "phone" | "rating" | "user" | "auto_number" | "attachment" | "json" | "relation" | "formula" | "created_time" | "last_edited_time" | "created_by" | "last_edited_by" | required | What the field holds. Use create_table_relation for a relation — a relation is two fields created together, never one. |
source | string | optional | Formula source for kind "formula". Fields are referenced by ID in braces: `{fld:<fieldId>} * 1.1`, or across a relation `sum({fld:<relationFieldId>}.{fld:<targetFieldId>})`. Get the ids from get_table. |
preset | object | optional | A structured computed field. Lowered to formula source server-side. |
position | integer | optional | Insert here; appended when omitted |
expectedSchemaVersion | integer | optional | Assert the table schema version you last read. Omit to let the call read it — the write still fails if someone changes the schema in between. |
Example call
The tool call an MCP client sends (required arguments shown with placeholder values).
{"tool": "add_table_field","arguments": {"tableId": "tableId_123","label": "value","kind": 0}}
Use this tool in
Claude CodeClaude DesktopClaude CoworkChatGPTCursorWindsurfVS Code CopilotOpenClawGeminiHermes Agent
Related Tables tools
List tables
list_tablesList the tables in the workspace (id, name, kind — typed or custom — resource type, fields, row count, schema/revision versions).Get tableget_tableGet one table by id: its full field set (key, label, kind, display format, select options, whether the field is feed-owned and whether it can be written), the fields that form row identity, the promoted primary/date/amount bindings, row count, and its schema badge.Create tablecreate_tableCreate a table in the workspace.Update tableupdate_tableUpdate a table’s METADATA — name, icon, retention policy.