# Airtable — how to use (mcp.ai)

Airtable merges spreadsheet functionality with database power, enabling teams to organize projects, track tasks, and collaborate through customizable views, automation, and integrations for data management

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_airtable?ms=1781542020000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `airtable_create_base`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/airtable`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/airtable/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/airtable/create/base` — Creates a new airtable base with specified tables and fields within a workspace; ensure field options are valid for their type.
  - body: { name: string, tables: object[], workspaceId: string }
- `POST https://api.mcp.ai/api/airtable/create/comment` — Creates a new comment on a specific record within an airtable base and table.
  - body: { text: string, baseId: string, recordId: string, tableIdOrName: string }
- `POST https://api.mcp.ai/api/airtable/create/field` — Creates a new field within a specified table in an airtable base.
  - body: { name: string, type?: string, baseId: string, options?: object, tableId: string, description?: string }
- `POST https://api.mcp.ai/api/airtable/create/multiple/records` — Creates multiple new records in a specified airtable table.
  - body: { baseId: string, records: object[], tableIdOrName: string }
- `POST https://api.mcp.ai/api/airtable/create/record` — Creates a new record in a specified airtable table; field values must conform to the table's column types.
  - body: { baseId: string, fields: object, tableIdOrName: string }
- `POST https://api.mcp.ai/api/airtable/create/table` — Creates a new table within a specified existing airtable base, allowing definition of its name, description, and field structure.
  - body: { name: string, baseId: string, fields: object[], description?: string }
- `POST https://api.mcp.ai/api/airtable/delete/comment` — Deletes an existing comment from a specified record in an airtable table.
  - body: { baseId: string, recordId: string, rowCommentId: string, tableIdOrName: string }
- `POST https://api.mcp.ai/api/airtable/delete/multiple/records` — Deletes up to 10 specified records from a table within an airtable base.
  - body: { baseId: string, recordIds: string[], tableIdOrName: string }
- `POST https://api.mcp.ai/api/airtable/delete/record` — Permanently deletes a specific record from an existing table within an existing airtable base.
  - body: { baseId: string, recordId: string, tableIdOrName: string }
- `POST https://api.mcp.ai/api/airtable/get/base/schema` — Retrieves the detailed schema for a specified airtable base, including its tables, fields, field types, and configurations, using the `baseid`.
  - body: { baseId: string }
- `POST https://api.mcp.ai/api/airtable/get/record` — Retrieves a specific record from a table within an airtable base.
  - body: { baseId: string, recordId: string, cellFormat?: string, tableIdOrName: string, returnFieldsByFieldId?: boolean }
- `POST https://api.mcp.ai/api/airtable/get/user/info` — Retrieves information, such as id and permission scopes, for the currently authenticated airtable user from the `/meta/whoami` endpoint.
- `POST https://api.mcp.ai/api/airtable/list/bases` — Retrieves all airtable bases accessible to the authenticated user, which may include an 'offset' for pagination.
- `POST https://api.mcp.ai/api/airtable/list/comments` — Retrieves all comments for a specific record in an airtable table, requiring existing `baseid`, `tableidorname`, and `recordid`.
  - body: { baseId: string, recordId: string, tableIdOrName: string }
- `POST https://api.mcp.ai/api/airtable/list/records` — Retrieves records from an airtable table, with options for filtering, sorting, pagination, and specifying returned fields.
  - body: { sort?: object[], view?: string, baseId: string, fields?: string[], offset?: string, pageSize?: integer, timeZone?: string, cellFormat?: string, maxRecords?: integer, userLocale?: string, tableIdOrName: string, recordMetadata?: string[], filterByFormula?: string, returnFieldsByFieldId?: boolean }
- `POST https://api.mcp.ai/api/airtable/update/multiple/records` — Updates multiple existing records in a specified airtable table; these updates are not performed atomically.
  - body: { baseId: string, records: object[], tableIdOrName: string }
- `POST https://api.mcp.ai/api/airtable/update/record` — Modifies specified fields of an existing record in an airtable base and table; the base, table, and record must exist.
  - body: { baseId: string, fields: object, recordId: string, tableIdOrName: string, returnFieldsByFieldId?: boolean }

## More
- Page: https://mcp.ai/airtable
- Agent spec (llms.txt): https://mcp.ai/airtable/llms.txt
- Postman collection: https://mcp.ai/airtable/postman.json
