# Airtable MCP connector

The Airtable connector lets Claude, ChatGPT, Cursor, or the Elaichi Agent read and update the bases, tables, records, and comments your team already keeps in Airtable, with each person signed in as themselves and every change logged.

Source: https://elaichi.ai/connectors/airtable/

## Facts

| | |
| --- | --- |
| Application | Airtable |
| Category | Ticketing |
| AI tools | 56 |
| Authentication | Connects over OAuth |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 56 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Airtable is connected

- Summarize records added to the Support Queue table this week.
- Which bases have tables with no records created lately?
- List open tickets in the Intake base by owner.

## Connect Airtable in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Airtable.
2. Optionally set Share with, then press Connect.
3. Approve it in Airtable. Airtable's own window opens. Whoever approves it decides what this connection can reach.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Airtable tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Airtable to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Airtable to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Airtable to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Airtable to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Airtable tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Airtable through Elaichi

### Log a ticket while the customer is still talking

Support. Describe the issue in a sentence and a new record lands in the support base with the right fields filled in. Follow up later by asking what is still open and who it is assigned to.

### Catch a record up after a meeting

Operations. Tell the agent what changed and it updates the status, owner, and due date on the right row in Airtable. Add a comment so the rest of the team sees why.

### Pull this week's content calendar into a summary

Marketing. Ask which pieces in the editorial base are due, blocked, or waiting on review, and get a plain answer instead of scrolling a grid. Create the next batch of records from a brief in one go.

### Turn feedback into a tracked request

Product. Paste in what a customer said and the agent files it in the feature requests table with the source and priority set. Read back the comments on any request before a planning call.

### Keep the onboarding tracker current

People. Ask which new hires still have open tasks in the onboarding base and mark items done as they land. Add a new table or field when the checklist changes, without opening Airtable.

### Review who is doing what across Airtable

IT. Ask for recent audit activity, look up a user or a user group, and check which webhooks are set up on a base. Update or remove a user account when someone changes role.

## Frequently asked questions

### How do I connect Airtable to Claude?

Connect Airtable inside Elaichi first, which opens Airtable's own sign-in page and asks you to allow access to your bases, then brings you straight back. There is no OAuth application to register and no client ID or secret to generate. Then in Claude go to Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Claude asks you to sign in to Elaichi once and Airtable is available in your conversations.

### Does Airtable work with ChatGPT and Cursor as well as Claude?

Yes. Once Airtable is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client, and the Elaichi Agent. You connect Airtable once and every client you use picks it up.

### What can an AI agent actually do with my Airtable data?

An agent connected to Airtable can list your bases and tables, find and read records, create new records, update fields on existing ones, and add or read comments. It can also create tables and fields, look up users and user groups, and pull recent audit activity. Short, concrete asks work best, such as "mark the Acme ticket in the support base as resolved" rather than a long paragraph.

### Does connecting Airtable give the AI access to every base in my workspace?

No. The agent sees only the Airtable bases, tables, and records that the person who signed in can already open, because every request runs as that person. Elaichi can narrow that further, for example to reading only, but it can never grant access to an Airtable base the person does not already have.

### Can my team share one Airtable connection?

Yes. One person connects Airtable in Elaichi and shares the connection with a team, so nobody else ever handles a credential or goes through the Airtable sign-in themselves. Each teammate still signs in to Elaichi as themselves, so the audit log records who created or changed each Airtable record.

### Can I stop an agent from deleting or changing things in Airtable?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Airtable records while blocking deleting records, removing users, or editing tables. A blocked action is never shown to Claude, ChatGPT, or any other client at all, so no prompt, however worded, can reach it.

### What happens to an Airtable connection when someone leaves?

Offboarding a person in Elaichi ends their access to Airtable through every connected client at once. If they had shared an Airtable connection with a team, it keeps working for everyone else on that team. If you want the connection gone entirely, disconnecting Airtable once in Elaichi removes it from Claude, ChatGPT, Cursor, and every other client together.

## All 56 Airtable tools

Every tool below is callable through https://api.elaichi.ai/mcp once Airtable is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Airtable bases** (List). List bases accessible by the token in Airtable. Returns base id, name, and permissionLevel fields for each base. Supports pagination with optional offset parameter.
- **Create a Airtable base** (Create). Create a new base in Airtable with name, workspaceId, and tables. Returns base id and tables array representing the schema of the created base. Requires at least one table and field with unique names.
- **Create a Airtable table** (Create). Create a new table in Airtable base using base_id. Requires name and fields. Returns the schema of the created table including id, name, description, and fields.
- **Update a Airtable table by ID** (Update). Update a table's name, description, or date dependency settings in Airtable. Requires base_id and id. Returns updated table with id, name, description, primaryFieldId, fields, and views.
- **List all Airtable tables** (List). Get schema of tables for base with id in Airtable. Returns an array of table models including table structure and metadata.
- **List all Airtable records** (List). List records in a table in Airtable using base_id and table_id_or_name. Returns records array with id, createdTime, fields (cell values keyed by field name or ID), and optional commentCount if requested. Pagination supported via offset.
- **Get single Airtable record by ID** (Get). Get a single record by base_id, table_id_or_name, and id in Airtable. Returns record id, createdTime timestamp, and fields with cell values keyed by field name or field id.
- **Create a Airtable record** (Create). Create multiple records in Airtable with base_id and table_id_or_name. Returns an array of records with id, createdTime, and fields containing cell values keyed by field name or field ID.
- **Update a Airtable record by ID** (Update). Update a single record by id in Airtable using base_id and table_id_or_name. Returns updated record id, createdTime timestamp, and fields with cell values keyed by field name or id.
- **Delete a Airtable record by ID** (Delete). Delete a single record by base_id, table_id_or_name, and id in Airtable. Returns the record id and a deleted flag indicating successful deletion.
- **Update a Airtable field by ID** (Update). Update a field's name and/or description in Airtable using base_id, table_id, and id. Returns id, name, type, description, and options of the updated field. At least one of name or description must be specified.
- **Create a Airtable field** (Create). Create a new field in Airtable for base_id and table_id. Returns the created field's id, name, type, description, and options.
- **List all Airtable comments** (List). Get a list of comments for a record in Airtable using base_id, table_id_or_name, and record_id. Returns comment id, createdTime, lastUpdatedTime, text, parentCommentId, author info, mentioned users, and reactions.
- **Get single Airtable comment by ID** (Get). Retrieves detailed information about a specific comment on a record in Airtable using the comment’s ID.
- **Create a Airtable comment** (Create). Create a comment on a record in Airtable with base_id, table_id_or_name, and record_id. Returns id, createdTime, lastUpdatedTime, text, author info, optional parentCommentId, mentioned users, and reactions.
- **Delete a Airtable comment by ID** (Delete). Delete a comment by id from a record identified by base_id, table_id_or_name, and record_id in Airtable. Returns id and deleted status indicating if the comment was deleted.
- **Update a Airtable comment by ID** (Update). Update a comment on a record in Airtable using base_id, table_id_or_name, record_id, and id. Returns the updated comment's id, createdTime, lastUpdatedTime, text, parentCommentId, mentioned users, reactions, and author details.
- **List all Airtable audit logs** (List). Get audit log events for an enterprise in Airtable using enterprise_account_id. Returns events array with id, timestamp, action, actor, modelId, modelType, payload, payloadVersion, context, and origin details. Events are newest to oldest.
- **Get single Airtable user by ID** (Get). Get user information by id in Airtable. Requires enterprise_account_id and id. Returns basic information relevant to both internal and external users including user role and billing plan details.
- **Delete a Airtable user by ID** (Delete). Delete user by id in Airtable for the specified enterprise_account_id and id. Returns an empty response on success. Note: Cannot delete sole owner if other collaborators exist, cannot delete external or non-managed users, and cannot perform action on self.
- **Update a Airtable user by ID** (Update). Update a managed user in Airtable by enterprise_account_id and id. Returns empty response on success. Can change state, email, firstName, and lastName with restrictions on state changes and email domains.
- **Get single Airtable user group by ID** (Get). Get basic information about a specific user group in Airtable by id. Returns fields id, createdTime, enterpriseAccountId, updatedTime, name, members (userId, email, firstName, lastName, role), and optionally collaborations if requested and authorized.
- **Get single Airtable enterprise account by ID** (Get). Get basic information about an enterprise account in Airtable using id. Returns fields including aggregated and descendants if specified in the include query parameter.
- **List all Airtable webhooks** (List). List all webhooks registered for a base in Airtable using base_id. Returns webhook id, enabled status, notification settings, last notification time, notification URL, expiration time, last notification result, and specification.
- **Create a Airtable webhook** (Create). Create a webhook in Airtable for the base specified by base_id. Returns id (webhook identifier), macSecretBase64 (MAC secret for authentication), and expirationTime (ISO format expiration time or null if no expiration).
- **Delete a Airtable webhook by ID** (Delete). Delete a webhook by base_id and id in Airtable. Returns an empty response on success. Requires creator level permissions and webhook:manage scope.
- **Airtable webhooks refresh** (Refresh). Refresh a webhook with base_id and id to extend its expiration time by 7 days in Airtable. Returns the new expirationTime in ISO format.
- **List all Airtable webhook payloads** (List). List webhook payloads for base_id and id in Airtable. Returns payloads array with webhook update messages, cursor indicating next payload transaction number, and mightHaveMore flag for additional payloads. Calling extends webhook life by 7 days.
- **Airtable webhook notifications enable disable** (Enable). Enable or disable webhook notifications in Airtable. Requires base_id and id. The request body must include the boolean field 'enable'. Returns an empty response on success.
- **List all Airtable views** (List). List views for a base in Airtable using base_id. Returns id, type, name, personalForUserId if personal, and visibleFieldIds for grid views when requested.
- **Get single Airtable view by ID** (Get). Get metadata for a specific view in Airtable by base_id and id. Returns id, type, name, personalForUserId if personal, and visibleFieldIds for grid views when requested.
- **Delete a Airtable view by ID** (Delete). Delete a view by base_id and id in Airtable. Returns an empty response on success.
- **List all Airtable shares** (List). List basic information of base shares in Airtable. Requires base_id. Returns fields including shareId (unique identifier), state (enabled or disabled), createdByUserId (user who created the share), createdTime (ISO timestamp), type (base, view, or blockInstallation), isPasswordProtected, and email domain restrictions.
- **Delete a Airtable share by ID** (Delete). Delete a share by base_id and id in Airtable. Hard deleted share is not recoverable. Returns an empty response on success.
- **Update a Airtable share by ID** (Update). Manage share state for a specific share in Airtable by base_id and id. The response is empty on success. When enabling a share, sharing restrictions apply.
- **List all Airtable base collaborators** (List). Get base collaborators for base with id in Airtable. Returns active collaborators and outstanding invites. Response includes collaborator id, email, name, and role fields.
- **Create a Airtable base collaborator** (Create). Add a new base collaborator to a base in Airtable using baseId. Returns an empty response on success. Only one collaborator can be added at a time.
- **Delete a Airtable base collaborator by ID** (Delete). Delete a base collaborator by base_id and id in Airtable. Returns an empty response on success.
- **Get single Airtable workspace collaborator by ID** (Get). Get workspace collaborators for workspace_id in Airtable. Returns individual collaborators explicitly added to the workspace. Response includes id, createdTime, name, workspaceRestrictions, individualCollaborators, and groupCollaborators.
- **Create a Airtable workspace collaborator** (Create). Add a new workspace collaborator in Airtable by workspace_id. Supports adding one collaborator at a time. Returns empty response on success. Key limitations: only one collaborator per request, user must be verified, groups cannot be owners.
- **Delete a Airtable workspace collaborator by ID** (Delete). Delete a workspace collaborator by workspace_id and id in Airtable. Returns an empty response on success. Note: Cannot remove the sole owner of a workspace.
- **Update a Airtable workspace collaborator by ID** (Update). Update workspace collaborator permission level in Airtable. Requires workspace_id and id. Returns empty response on success. Errors include invalid permissions for groups, non-collaborators, and sole owner restrictions.
- **Get single Airtable interface collaborator by ID** (Get). Get general information about a specific interface in Airtable using base_id and id. Returns id, baseId, createdTime, name, permissionLevel, groupCollaborators, individualCollaborators, and inviteLinks.
- **Create a Airtable interface collaborator** (Create). Add a collaborator to an interface in Airtable using base_id and page_bundle_id. Supports adding one collaborator at a time. Returns an empty response on success.
- **Update a Airtable interface collaborator by ID** (Update). Update permissions for an interface collaborator in Airtable using base_id, page_bundle_id, and id. The response is empty on success.
- **Delete a Airtable interface collaborator by ID** (Delete). Delete an interface collaborator by base_id, page_bundle_id, and id in Airtable. Returns an empty response on success.
- **Delete a Airtable base invite by ID** (Delete). Delete a base invite in Airtable using base id and invite_id. The invite must be outstanding. Returns an empty response on success.
- **Delete a Airtable interface invite by ID** (Delete). Delete an outstanding interface invite in Airtable by base_id, page_bundle_id, and id. Returns an empty response on success. The invite must be outstanding.
- **Delete a Airtable workspace invite by ID** (Delete). Delete a workspace invite by workspace_id and id in Airtable. Returns an empty response on success. The invite must be outstanding to be deleted.
- **List all Airtable ediscovery exports** (List). List eDiscovery exports for enterprise_account_id in Airtable. Returns exports sorted newest to oldest with fields id, state, createdTime, user (id, email, name), request (baseId, includeCsvFormat, shouldSendEmailOnCompletion), error message if any, and data with download URLs and expirationTime.
- **Get single Airtable ediscovery export by ID** (Get). Get status and result of an eDiscovery export in Airtable. Requires enterprise_account_id and id. Returns fields: state (pending, processing, error, done), error message if any, createdTime, user info (id, email, name), and export data including expirationTime, jsonDownloadUrl, and optional csvZipDownloadUrl.
- **Create a Airtable ediscovery export** (Create). Create an eDiscovery export for enterprise_account_id with baseId in Airtable. Returns id, state, createdTime, user info, and download URLs for JSON and optional CSV exports.
- **List all Airtable block installations** (List). List block installations for a base in Airtable using base_id. Returns id, state (enabled or disabled), createdByUserId, createdTime, blockId, and optional blockSlug for each installation.
- **Delete a Airtable block installation by ID** (Delete). Delete a block installation by base_id and id in Airtable. The deleted block installation is recoverable.
- **Update a Airtable block installation by ID** (Update). Update the state of a block installation in Airtable by base_id and id. The state can be set to 'enabled' or 'disabled'. Returns an empty response on success.
- **List all Airtable change events** (List). Get change events for enterprise bases in Airtable using enterprise_account_id. Returns fields id, type, actor, eventTimestamp, objectId, objectType, timestamp, context, origin, and payload. Events available for 14 days and require change events enabled.
