create_table
Creates a new table in an Airtable base with default fields and returns the generated table ID.
Instructions
Create a new table in an Airtable base. Returns the generated table ID. The table starts with default fields (Name, Notes, Attachments, Status, etc.) — use list_fields after creation to inspect them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| name | Yes | Name for the new table | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
Implementation Reference
- The tool handler for create_table. Takes appId and name, calls client.createTable(), returns the new table's ID.
async create_table({ appId, name, debug }) { const result = await client.createTable(appId, name); return ok( { created: true, tableId: result.tableId, name }, result, debug, ); }, - The AirtableClient.createTable() method that makes the actual HTTP POST to Airtable's internal API at /v0.3/table/{newTblId}/create, generating a new table ID client-side.
async createTable(appId, name) { assertAirtableId(appId, 'appId'); const tableId = 'tbl' + this._genRandomId(); const url = `https://airtable.com/v0.3/table/${tableId}/create`; const payload = { applicationId: appId, name }; const res = await this.auth.postForm(url, this._mutationParams(payload, appId), appId); if (!res.ok) { const errBody = await res.text().catch(() => ''); throw new Error(`createTable failed (${res.status}): ${errBody}`); } this.cache.invalidate(appId); const data = await res.json().catch(() => ({})); return { tableId, ...data }; } - The tool schema/definition for create_table within the TOOLS array, specifying name, description, annotations, and inputSchema (appId, name, debug).
{ name: 'create_table', description: 'Create a new table in an Airtable base. Returns the generated table ID. The table starts with default fields (Name, Notes, Attachments, Status, etc.) — use list_fields after creation to inspect them.', annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false }, inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'The Airtable base/application ID' }, name: { type: 'string', description: 'Name for the new table' }, debug: debugProp, }, required: ['appId', 'name'], }, }, - packages/mcp-server/src/tool-config.js:29-29 (registration)Registration of create_table in the TOOL_CATEGORIES map, associating it with the 'table-write' category for profile-based enable/disable.
create_table: 'table-write', - packages/extension/src/mcp/tool-profile.ts:43-43 (registration)Mirror registration of create_table in the extension-side TOOL_CATEGORIES (mirrors the mcp-server config for the VS Code extension tool profile manager).
create_table: 'table-write',