move_overall_columns
Move selected columns to a specified position in the full column order, including hidden columns. Index 0 is the leftmost column.
Instructions
Move one or more columns to a new position in the overall index (visible + hidden). Sibling of move_visible_columns. Index 0 is the leftmost column in the underlying full order.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appId | Yes | The Airtable base/application ID | |
| viewId | Yes | The view ID | |
| columnIds | Yes | Field IDs to move | |
| targetOverallIndex | Yes | Destination index in the overall (visible + hidden) ordering | |
| debug | No | When true, include raw Airtable response in output for diagnostics |
Implementation Reference
- The MCP tool handler for 'move_overall_columns'. Delegates to client.moveOverallColumns() and returns a success response.
async move_overall_columns({ appId, viewId, columnIds, targetOverallIndex, debug }) { const result = await client.moveOverallColumns(appId, viewId, columnIds, targetOverallIndex); return ok({ updated: true, viewId, columnIds, targetOverallIndex }, result, debug); }, - The tool definition (schema) for 'move_overall_columns' in the TOOLS array: description, annotations, inputSchema with required params appId, viewId, columnIds, targetOverallIndex.
{ name: 'move_overall_columns', description: 'Move one or more columns to a new position in the *overall* index (visible + hidden). Sibling of `move_visible_columns`. Index 0 is the leftmost column in the underlying full order.', annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false }, inputSchema: { type: 'object', properties: { appId: { type: 'string', description: 'The Airtable base/application ID' }, viewId: { type: 'string', description: 'The view ID' }, columnIds: { type: 'array', items: { type: 'string' }, description: 'Field IDs to move' }, targetOverallIndex: { type: 'number', description: 'Destination index in the overall (visible + hidden) ordering' }, debug: debugProp, }, required: ['appId', 'viewId', 'columnIds', 'targetOverallIndex'], }, - packages/mcp-server/src/tool-config.js:72-72 (registration)Category registration: move_overall_columns is mapped to 'view-write' category in TOOL_CATEGORIES.
move_overall_columns: 'view-write', - packages/extension/src/mcp/tool-profile.ts:79-79 (registration)Mirror registration in the VS Code extension tool profile, mapping move_overall_columns to 'view-write' category.
move_overall_columns: 'view-write', - The AirtableClient helper method that calls the Airtable internal API endpoint /v0.3/view/{viewId}/moveOverallColumns to move columns in the overall (visible + hidden) ordering.
async moveOverallColumns(appId, viewId, columnIds, targetOverallIndex) { assertAirtableId(appId, 'appId'); assertAirtableId(viewId, 'viewId'); if (!Array.isArray(columnIds) || columnIds.length === 0) { throw new Error('moveOverallColumns requires a non-empty columnIds array'); } const url = `https://airtable.com/v0.3/view/${viewId}/moveOverallColumns`; const payload = { columnIds, targetOverallIndex: Number(targetOverallIndex) }; const res = await this.auth.postForm(url, this._mutationParams(payload, appId), appId); if (!res.ok) { const errBody = await res.text().catch(() => ''); throw new Error(`moveOverallColumns failed (${res.status}): ${errBody}`); } return res.json(); }