> ## Documentation Index
> Fetch the complete documentation index at: https://explore.airia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Airtable

The Airtable MCP server gives your agents direct access to your Airtable workspaces, bases, tables, and records. It's Airtable's own official server, so it stays current with Airtable's platform as new capabilities ship.

## What it can do

| Capability               | Description                                                                                                                                              |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Workspaces and bases** | List the workspaces and bases available to the connected account, and create new bases, optionally with tables and fields defined up front.              |
| **Schemas**              | Read table and field schemas, and create or update tables and fields.                                                                                    |
| **Records**              | Create, read, update, and search records, including free-text search across a table.                                                                     |
| **Interfaces**           | Discover and read data from Interface pages, including bases where the connected account only has interface-level access, and build new interface pages. |
| **Record widgets**       | Display an interactive record widget inline in a conversation. Only available on clients that support interactive apps.                                  |

See [Tools](#tools) below for the full list of tools behind these capabilities.

## Connecting Airtable

Airtable supports two authentication options: a personal access token, or an OAuth app registration. Both give an agent the same capabilities, so pick whichever fits how your organization wants to manage access. See [Tenant vs. Personal Level App Credentials](/mcps/admin-controls/tenant-vs-personal-app-credentials) if you're not sure which one you need.

### Option A: Personal access token

A personal access token is the quickest way to connect. It works well for individual use, or as a single shared credential for your whole organization.

<Steps>
  <Step title="Create a token">
    Go to [airtable.com/create/tokens](https://airtable.com/create/tokens) and click **Create token**.
  </Step>

  <Step title="Name it and add scopes">
    Give the token a name, then add every scope listed under [Scopes](#scopes) below.
  </Step>

  <Step title="Grant access to all bases">
    Under **Access**, select **All current and future bases**.

    <Warning>
      Scoping the token to specific bases instead of all bases blocks workspace level operations. Listing workspaces or creating a new base will fail with a permissions error if the token can't see the whole workspace.
    </Warning>
  </Step>

  <Step title="Copy the token">
    Click **Create token** and copy the value immediately. Airtable only shows it once.
  </Step>

  <Step title="Add it to Airia">
    Paste the token in as your API key credential when connecting the Airtable server to a Gateway or Deployment.
  </Step>
</Steps>

### Option B: OAuth app registration

An OAuth app registration lets everyone in your organization sign in with their own Airtable account, while an admin only has to set up the connection once. See [Tenant vs. Personal Level App Credentials](/mcps/admin-controls/tenant-vs-personal-app-credentials) for how that works.

<Steps>
  <Step title="Register an OAuth integration">
    Go to [airtable.com/create/oauth](https://airtable.com/create/oauth) and click **Register new OAuth integration**.
  </Step>

  <Step title="Set the redirect URL">
    Name the integration, then set the **OAuth redirect URL** to:

    ```
    https://auth.airia.ai/OAuth/callback
    ```
  </Step>

  <Step title="Add scopes">
    Under **Scopes**, enable every scope listed under [Scopes](#scopes) below.
  </Step>

  <Step title="Save and copy your credentials">
    Save the integration, then copy the **Client ID** and **Client Secret**.
  </Step>

  <Step title="Add them to Airia">
    Enter the Client ID and Client Secret when registering the Airtable OAuth app in Airia. After that, each person just clicks **Connect** and signs in with their own Airtable account.
  </Step>
</Steps>

## Scopes

Whichever option you use, the token or app needs all of the following scopes. Missing any of them causes the corresponding tools to fail once an agent tries to use them.

| Scope                       | Grants                                   |
| --------------------------- | ---------------------------------------- |
| `workspacesAndBases:read`   | Listing workspaces and bases             |
| `schema.bases:read`         | Reading table and field schemas          |
| `schema.bases:write`        | Creating and modifying tables and fields |
| `data.records:read`         | Reading records                          |
| `data.records:write`        | Creating, updating, and deleting records |
| `data.recordComments:read`  | Reading record comments                  |
| `data.recordComments:write` | Creating record comments                 |

## Tools

<Note>
  Unlike some MCP servers, Airtable doesn't map individual tools to individual scopes. Grant all seven scopes from [Scopes](#scopes) above and every tool below is available, subject to the connected account's own Airtable permission level (see the [Learn more](#learn-more) link for the full breakdown by role). Leave any scope out and the tools that depend on it fail once an agent tries to use them.
</Note>

### Discovery

| Tool                   | What it does                                                                                                                                                         |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ping`                 | Pings the MCP server to check if it's running.                                                                                                                       |
| `list_workspaces`      | Lists all workspaces the connected account has access to, along with its permission level in each. Used to get the workspace ID needed for tools like `create_base`. |
| `list_bases`           | Lists all bases the connected account has access to. Used to get the base ID of the base an agent wants to use.                                                      |
| `search_bases`         | Searches for bases by name, returning results sorted by relevance along with a recommended base ID.                                                                  |
| `list_tables_for_base` | Gets the summary of a base, including the schema of every table in it.                                                                                               |
| `get_table_schema`     | Gets detailed schema information, including field ID, type, and config, for specified tables and fields in a base.                                                   |

### Records

| Tool                        | What it does                                                                                                                     |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `list_records_for_table`    | Lists records from a table. Requires a base and table ID, typically found via `search_bases` and `list_tables_for_base` first.   |
| `search_records`            | Searches for records in a table using free-text search.                                                                          |
| `create_records_for_table`  | Creates new records in a table. Limited to 10 records per request.                                                               |
| `update_records_for_table`  | Updates records in a table. Only the fields an agent specifies are changed; everything else is left as is.                       |
| `display_records_for_table` | Displays an interactive widget showing record data queried from a table. Only enabled for clients that support interactive apps. |

### Bases, tables, and fields

| Tool           | What it does                                                                                                                                     |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `create_base`  | Creates a new base in a specified workspace. Tables and fields can optionally be defined at creation time; otherwise a default table is created. |
| `create_table` | Creates a new table in a base.                                                                                                                   |
| `update_table` | Updates an existing table's name and/or description.                                                                                             |
| `create_field` | Creates a new field in an existing table.                                                                                                        |
| `update_field` | Updates the name and/or description of a field in an existing table.                                                                             |

### Interfaces

| Tool                    | What it does                                                                                                                                                                                                                                             |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list_pages_for_base`   | Lists all interfaces and their pages for a base, including page IDs, names, the tables each page displays, and visible fields. Useful for discovering interface pages, especially for bases where the connected account only has interface-level access. |
| `list_records_for_page` | Lists records from an interface page. Supports simple pages and hierarchy pages, for example projects to tasks.                                                                                                                                          |
| `get_record_for_page`   | Gets a single record's details from an interface page element or visualization.                                                                                                                                                                          |
| `create_page`           | Creates an interface page.                                                                                                                                                                                                                               |
| `create_interface`      | Creates an interface, a group of one or more interface pages.                                                                                                                                                                                            |
| `publish_interface`     | Publishes a given interface.                                                                                                                                                                                                                             |
| `delete_page`           | Deletes a given interface page.                                                                                                                                                                                                                          |
| `describe_page_element` | Used by agents to discover how to configure interface elements for interface pages.                                                                                                                                                                      |
| `describe_page_type`    | Used by agents to discover how to configure an interface page of a given type.                                                                                                                                                                           |

<Note>
  Editing an existing interface page isn't possible through MCP yet; Airtable has said this is planned for a future release. `display_records_for_table` also isn't on by default, it's only enabled for clients that support interactive apps.
</Note>

## Agent Skills

Airtable also publishes a small, growing library of official [agent skills](https://github.com/Airtable/skills/tree/main/plugins/airtable/skills) for use with its MCP server. These are downloadable Markdown files that teach an agent things the tool descriptions above don't cover on their own, like how Airtable's bases, tables, and fields relate to each other, or how to build more accurate record filters.

Skills are optional. If your AI platform supports installing them, download the ones you want from that repository and upload them following your platform's own instructions. Some platforms require uploading each `SKILL.md` file individually rather than a single `.zip` of the whole repository, and you may need an admin to allow skills for your organization before you can upload any.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Listing workspaces or creating a base fails" icon="triangle-exclamation">
    The connected token or app is scoped to specific bases instead of **All current and future bases**. Workspace level operations need workspace level access. Update the token's Access setting, or reconnect through OAuth, to fix this.
  </Accordion>

  <Accordion title="The connection fails right away" icon="lock">
    Confirm every scope in the [Scopes](#scopes) table above is enabled on the token or OAuth app. Airtable rejects the connection if a required scope is missing.
  </Accordion>
</AccordionGroup>

## Learn more

See Airtable's [MCP server documentation](https://support.airtable.com/docs/using-the-airtable-mcp-server) for the latest details straight from Airtable.
