Skip to main content
Glama

move_overall_columns

Idempotent

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

TableJSON Schema
NameRequiredDescriptionDefault
appIdYesThe Airtable base/application ID
viewIdYesThe view ID
columnIdsYesField IDs to move
targetOverallIndexYesDestination index in the overall (visible + hidden) ordering
debugNoWhen 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'],
      },
  • Category registration: move_overall_columns is mapped to 'view-write' category in TOOL_CATEGORIES.
    move_overall_columns:   'view-write',
  • 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();
    }
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds context about index 0 being leftmost and overall ordering including hidden columns. Annotations already indicate idempotent, non-destructive behavior, so additional disclosure is minimal but satisfactory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Coverage of parameters is complete via schema, but no output schema is provided. Description does not explain return values, which is a minor gap for a mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds meaning to 'targetOverallIndex' by explaining index 0 significance, but otherwise aligns with schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Move one or more columns to a new position in the *overall* index (visible + hidden).' Action and scope are explicit, and it distinguishes from sibling tool 'move_visible_columns'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions sibling tool but does not provide explicit guidance on when to use this vs. alternatives. Usage is implied rather than directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Automations-Project/VSCode-Airtable-Formula'

If you have feedback or need assistance with the MCP directory API, please join our Discord server