Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Airtable MCP server

Vendor MCP
Open markdown

The Airtable MCP connector routes your AI agent's tool calls to Airtable's own MCP server through Scalekit. Each user signs in to Airtable once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 43 tools.

Tools
43
What they doRead · write · destructive
22 · 12 · 922 read12 write9 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Airtable MCP connection

    In AgentKit > Connections, create an Airtable MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Airtable, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'airtablemcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Airtable MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'airtablemcp_get_create_automation_instructions',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • airtablemcp_describe_page_elementReturns the JSON schema for a page element of the specified type.Read-only

    Get the required configuration for a page element type

    Returns the JSON schema for a page element of the specified type. Use this before create_page to discover the element config shape required within pageConfiguration.

    Inputs

    elementTypestringrequired
    The page element type to get the config schema for.one of kanbanlistcalendargallerygridtimelinenumberbarChartlineChartscatterChartpieChartdonutChartpivotTable
  • airtablemcp_describe_page_typeReturns the JSON schema for a page type's configuration.Read-only

    Get the required configuration for a page type

    Returns the JSON schema for a page type's configuration. Use this before create_page to discover the required pageConfiguration shape for the chosen page type.

    Inputs

    pageTypestringrequired
    The page type to get the config schema for.one of visualizationdashboardcustomElement
  • airtablemcp_fetch_automation_input_dataFetches dynamic input options for an automation action or trigger's input field (e.g.Read-only

    Fetch input options for an automation action or trigger

    Fetches dynamic input options for an automation action or trigger's input field (e.g. Slack channels, Jira projects, calendars). Requires an `externalAccountId` from list_external_accounts. Use get_create_automation_instructions to discover which `inputKey` values each action or trigger type expects.

    Inputs

    externalAccountIdstringrequired
    Must start with "eac" and is 17 characters long. Example: "eacZfrNIUEip5MazD". To get externalAccountId, use the list_external_accounts tool.
    inputKeystringrequired
    The input field to fetch options for (e.g., "slackConversationId", "msTeamsTeamId").
    workflowNodeTypeIdstringrequired
    The action or trigger type ID. Use the camelCase type value (e.g., "sendToSlack", "atlassianJiraCreateIssue", "googleCalendarEventCreated").
    dependentInputobject
    Values of prerequisite inputs this field depends on. For example, to fetch MS Teams channels, pass {"msTeamsTeamId": "<team-id>"}.
    pagingCountnumber
    Number of results to return. Default 10.
    pagingStartIndexnumber
    Start index for pagination. Default 0.
    searchQuerystring
    Filter results by name.
  • airtablemcp_get_automationGets the full configuration of a single automation in an Airtable base, including trigger configuration, action nodes with their input expressions, and deployment status.Read-only

    Get automation configuration

    Gets the full configuration of a single automation in an Airtable base, including trigger configuration, action nodes with their input expressions, and deployment status. The returned configuration is the draft (the working copy the user edits). Set includeDeployedVersion to true to also see the most recently published configuration when it differs from the draft — useful for debugging deployed behavior. Edits always apply to the draft. Requires an automationId, which can be obtained from list_automations. {"baseId": "appZfrNIUEip5MazD", "automationId": "wflGlRtkBNWfYnPOV"}

    Inputs

    automationIdstringrequired
    The ID of the automation to retrieve. Must start with "wfl" and is 17 characters long. Example: "wflGlRtkBNWfYnPOV". To get an automationId, use the create_automation tool.
    baseIdstringrequired
    The ID of the base containing the automation. Must start with "app" and is 17 characters long. Example: "appZfrNIUEip5MazD". Do not substitute user-facing names for baseId. To get baseId, use the search_bases or list_bases tool.
    includeDeployedVersionboolean
    When true, each returned automation includes a `deployedVersion` field showing the most recently published configuration when it differs from the draft.
  • airtablemcp_get_create_automation_instructionsReturns the full spec for create_automation — expression language, wrappers, function catalog, trigger and action input catalogs, pitfalls, and a complete example.Read-only

    Get create automation instructions

    Returns the full spec for create_automation — expression language, wrappers, function catalog, trigger and action input catalogs, pitfalls, and a complete example. Call once per session before building an automation payload.

    Inputs

    baseIdstring
    The ID of the base you plan to create automations in. Providing this includes features that may be available for this base but not globally. If omitted, only globally available features are returned.
  • airtablemcp_get_form_schemaReturns the schema of a form page — its structure, not the submitted-record data.Read-only

    Get the schema of a form page

    Returns the schema of a form page — its structure, not the submitted-record data. Returns the form's source table, submission action (create or update), and a hierarchical breakdown of sections, rows, and field elements. Sections are the visual groups inside the form (each with an optional title), rows are the columns-of-fields layout within a section, and elements describe each individual field — its label, helper text, field type, required/read-only status, any prefilled value, and any conditional visibility filter. Single-select and multi-select field elements also list their valid choices. Use this when the user asks how a form is organized, what fields it collects, or which fields are required. visibilityFilters specifies the conditions under which a field or section is shown, not a resolved shown/hidden state. Required fields are required only when visible. Fields inside hidden sections are not visible. Do not call this on non-form pages. Supports entry-level form pages (in an interface or standalone) and record-creation row forms, forms embedded in other interface page types. Do not assume baseId. Obtain it from search_bases or list_bases. Use list_pages_for_base to find the pageId if needed. Record-creation row forms appear in that tool's embeddedForms array; pass any one of the form's interfaceIds as the interfaceId here. {"baseId": "appZfrNIUEip5MazD", "pageId": "pagXxYyZzAaBbCcDd"}

    Inputs

    baseIdstringrequired
    The ID of the base containing the form page. Must start with "app" and is 17 characters long. Example: "appZfrNIUEip5MazD". Do not substitute user-facing names for baseId. To get baseId, use the search_bases or list_bases tool.
    pageIdstringrequired
    The ID of the form page whose schema you want to read. Must start with "pag" and is 17 characters long. Example: "pagXxYyZzAaBbCcDd".
    interfaceIdstring
    The ID of the interface containing the form page, if the form is in an interface. Must start with "pbd" and is 17 characters long.
  • airtablemcp_get_record_for_pageGets a single record's details from an interface page element using a navigation path.Read-only

    Get a record from an interface page

    Gets a single record's details from an interface page element using a navigation path. Supports traversing linked record relationships by appending edges to the path.

    Inputs

    baseIdstringrequired
    The ID of the base containing the page. Must start with "app" and is 17 characters long.
    interfaceIdstringrequired
    The ID of the interface that contains the page. Must start with "pbd" and is 17 characters long.
    pathobjectrequired
    The navigation path from the page where the record was listed.
    fieldIdsarray
    Only data for fields whose IDs are in this list will be included in the result.
  • airtablemcp_get_table_schemaGets detailed schema information for specified tables and fields in an Airtable base, returning the field ID, type, and configuration for each specified field.Read-only

    Gets table schema for the given tables, which consist of table IDs and field IDs

    Gets detailed schema information for specified tables and fields in an Airtable base, returning the field ID, type, and configuration for each specified field. Use this before filtering on singleSelect or multipleSelects fields to retrieve choice IDs.

    Inputs

    baseIdstringrequired
    The ID of the base containing the tables.
    tablesarrayrequired
    An array of table IDs and corresponding field IDs to get schema information for.