# Tools Reference

A reference for every tool exposed by the Airtable MCP server.

## Automations

### Create an automation

`create_automation`

Creates an automation (trigger plus actions, including conditional and repeating groups).
Saves the draft configuration only — it is off until the user reviews and turns it on in
the Airtable UI. Prefer calling `get_create_automation_instructions` first.

Example prompt:
- "Set up an automation to send a Slack message whenever a new record is added to my Tasks table"

### Delete an automation

`delete_automation`

Deletes an automation that is off. Automations that are on must be turned off in the
Airtable UI first.

Example prompt:
- "Delete the unused automation named Weekly digest"

### Fetch input options for an automation action or trigger

`fetch_automation_input_data`

Fetches dynamic input options for an automation trigger or action (for example Slack
channels or Jira projects). Requires an external account ID from `list_external_accounts`.

Example prompt:
- "Which Slack channels can I send to in this automation?"

### Get automation configuration

`get_automation`

Gets the full configuration of a single automation, including trigger and action inputs
and deployment status. Use `list_automations` first to obtain the automation ID.

Example prompt:
- "Show me the full configuration of the Slack notification automation"

### Get create automation instructions

`get_create_automation_instructions`

Returns the full specification for creating or updating automations — supported triggers
and actions, expression language, catalogs, and examples. AI tools typically call this once
per session before building an automation.

### List automations

`list_automations`

Lists automations in a base, including ID, name, deployment status, trigger info, and
node summaries. Optionally filter by trigger type.

Example prompts:
- "What automations are configured in this base?"
- "Show me automations that run when a record is created"

### Test an automation webhook trigger

`test_automation_webhook_trigger`

Re-runs an automation webhook trigger test to capture the latest representative request
body schema.

### Update an automation

`update_automation`

Replaces the full draft configuration of an existing automation (trigger, nodes, name, and
description). If the automation is on, live behavior is unchanged until unpublished changes
are applied with Update in the Airtable UI. Use `list_automations` and `get_automation`
first.

Example prompt:
- "Update the Slack notification automation to also email the assignee"

## Bases

### Creates a new Airtable base

`create_base`

Creates a new Airtable base.

Example prompts:
- "Create a base called 'Project Tracker' in my workspace"
- "Set up a new base for tracking job applications"

### List Airtable bases

`list_bases`

Finds the Airtable bases you have access to.

### Search for an Airtable base

`search_bases`

Finds bases matching a name and recommends the best match.

## Fields

### Creates a new field in an Airtable table

`create_field`

Adds a new field to an existing table.

### Updates the name, description, and/or options of a field in an Airtable table

`update_field`

Updates an existing field, including changing its name, description, or type-specific options.

Example prompt:
- "Normalize the casing in my status field and convert it to a single select"

## Forms

### Get the schema of a form page

`get_form_schema`

Returns the layout of a form: its sections, fields, required fields, and visibility conditions.

### Submit a form

`submit_form`

Submits a form.

Example prompt:
- "Submit the new-hire intake form for John Doe with a start date of next Monday"

## Interfaces

### Create an interface

`create_interface`

Creates a new interface within a base. Interfaces let you present your base's data in custom layouts that teammates can use without needing direct access to the underlying tables.

Example prompts:
- "Create an interface for the Projects base"
- "Set up a new interface for the HR team"

### Create an interface page

`create_page`


        Creates a new page within an interface. Supports visualization and dashboard
        page types. Supports kanban, list, calendar, gallery, grid, timeline, and recordReview
        visualization types for "visualization" pages.
    

### Delete an interface

`delete_interface`

Deletes an interface, including all of its pages, from a base.

### Delete an interface page

`delete_page`

Deletes a page from an interface.

### Fetch records from an interface page

`list_records_for_page`

Lists records from an interface page. Works even when users only have access to the interface, not the underlying base.

### Get a record from an interface page

`get_record_for_page`

Gets a single record from an interface page. Works even when users only have access to the interface, not the underlying base.

### Get the required configuration for a page element type

`describe_page_element`

Returns the configuration options for a page element type (list, grid, kanban, calendar, gallery, timeline, recordReview, number, barChart, lineChart, scatterChart, pieChart, donutChart, pivotTable).

### Get the required configuration for a page type

`describe_page_type`

Returns the configuration options for a page type (visualization and dashboard).

### List interfaces and pages in a base

`list_pages_for_base`

Lists all interfaces and their pages for a base. Pages can be dashboards, record lists, or overview pages.

## Records

### Creates new records in an Airtable table

`create_records_for_table`

Creates records in a table.

Example prompts:
- "Add a new task called 'Review Q3 budget' to my Tasks table"
- "Create a record in the Contacts table for Maria Chen"

### Deletes records from an Airtable table

`delete_records_for_table`

Deletes records from a table by ID. For example: "Delete record with id recsMsWiMlekQ9cqo."

### Display Airtable records in an interactive view

`display_records_for_table`

Renders records as an interactive widget (kanban board or levels view).

### Fetch records for processing or analysis

`list_records_for_table`

List records from a table, with optional filtering and sorting.

### Reverts a previous Airtable mutation

`revert_action`

Reverts a previous eligible mutation by action ID.

### Search candidate records for a linked-record field

`search_candidate_linked_records`

Searches candidate records for a linked-record field. Works even when users only have access to the interface, not the underlying base.

### Search records in an Airtable table

`search_records`

Search for records in a table by keyword.

Example prompts:
- "Search my Contacts table for 'Acme Corp'"
- "Find records mentioning 'Q1' in the Projects table"

### Updates multiple records in an Airtable table

`update_records_for_table`

Updates fields on existing records. Only the fields you specify change — everything else is left alone.

## Tables

### Creates a new table in an Airtable base

`create_table`

Creates a new table in a base.

Example prompts:
- "Add a Projects table to my base with Title, Status, and Priority columns"
- "Create a Contacts table"

### Delete a table from an Airtable base

`delete_table`

Deletes an entire table, including its records, fields, and views, from a base.

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

`get_table_schema`

Returns a JSON representation of a table's fields, including names, IDs, types, and configuration options.

### List views in a table

`list_views_for_table`

Lists views in a table (ID, name, and type). Useful when an automation needs a view ID — for example, triggers that fire when records enter a view.

### Returns the summary of the specified base

`list_tables_for_base`

Lists the table schema for every table in the base.

### Updates an existing table in an Airtable base

`update_table`

Updates a table, including changing its name or description.

## Workspaces

### List Airtable workspaces

`list_workspaces`

Lists the workspaces you have access to.

### List connected external accounts

`list_external_accounts`

Lists third-party accounts connected to your Airtable account (Slack, Google, etc.) that can be used in integrations and automations.
