Airtable Automation via Rube MCP
Automate Airtable operations through Composio's Airtable toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Airtable connection via
RUBE_MANAGE_CONNECTIONS with toolkit airtable
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit airtable
- If connection is not ACTIVE, follow the returned auth link to complete Airtable auth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Manage Records
When to use: User wants to create, read, update, or delete records
Tool sequence:
AIRTABLE_LIST_BASES - Discover available bases [Prerequisite]
AIRTABLE_GET_BASE_SCHEMA - Inspect table structure [Prerequisite]
AIRTABLE_LIST_RECORDS - List/filter records [Optional]
AIRTABLE_CREATE_RECORD / AIRTABLE_CREATE_RECORDS - Create records [Optional]
AIRTABLE_UPDATE_RECORD / AIRTABLE_UPDATE_MULTIPLE_RECORDS - Update records [Optional]
AIRTABLE_DELETE_RECORD / AIRTABLE_DELETE_MULTIPLE_RECORDS - Delete records [Optional]
Key parameters:
baseId: Base ID (starts with 'app', e.g., 'appXXXXXXXXXXXXXX')
tableIdOrName: Table ID (starts with 'tbl') or table name
fields: Object mapping field names to values
recordId: Record ID (starts with 'rec') for updates/deletes
filterByFormula: Airtable formula for filtering
typecast: Set true for automatic type conversion
Pitfalls:
- pageSize capped at 100; uses offset pagination; changing filters between pages can skip/duplicate rows
- CREATE_RECORDS hard limit of 10 records per request; chunk larger imports
- Field names are CASE-SENSITIVE and must match schema exactly
- 422 UNKNOWN_FIELD_NAME when field names are wrong; 403 for permission issues
- INVALID_MULTIPLE_CHOICE_OPTIONS may require typecast=true
2. Search and Filter Records
When to use: User wants to find specific records using formulas
Tool sequence:
AIRTABLE_GET_BASE_SCHEMA - Verify field names and types [Prerequisite]
AIRTABLE_LIST_RECORDS - Query with filterByFormula [Required]
AIRTABLE_GET_RECORD - Get full record details [Optional]
Key parameters:
filterByFormula: Airtable formula (e.g., {Status}='Done')
sort: Array of sort objects
fields: Array of field names to return
maxRecords: Max total records across all pages
offset: Pagination cursor from previous response
Pitfalls:
- Field names in formulas must be wrapped in
{} and match schema exactly
- String values must be quoted:
{Status}='Active' not {Status}=Active
- 422 INVALID_FILTER_BY_FORMULA for bad syntax or non-existent fields
- Airtable rate limit: ~5 requests/second per base; handle 429 with Retry-After
3. Manage Fields and Schema
When to use: User wants to create or modify table fields
Tool sequence:
AIRTABLE_GET_BASE_SCHEMA - Inspect current schema [Prerequisite]
AIRTABLE_CREATE_FIELD - Create a new field [Optional]
AIRTABLE_UPDATE_FIELD - Rename/describe a field [Optional]
AIRTABLE_UPDATE_TABLE - Update table metadata [Optional]
Key parameters:
name: Field name
type: Field type (singleLineText, number, singleSelect, etc.)
options: Type-specific options (choices for select, precision for number)
description: Field description
Pitfalls:
- UPDATE_FIELD only changes name/description, NOT type/options; create a replacement field and migrate
- Computed fields (formula, rollup, lookup) cannot be created via API
- 422 when type options are missing or malformed
4. Manage Comments
When to use: User wants to view or add comments on records
Tool sequence:
AIRTABLE_LIST_COMMENTS - List comments on a record [Required]
Key parameters:
baseId: Base ID
tableIdOrName: Table identifier
recordId: Record ID (17 chars, starts with 'rec')
pageSize: Comments per page (max 100)
Pitfalls:
- Record IDs must be exactly 17 characters starting with 'rec'
Common Patterns
Airtable Formula Syntax
Comparison:
{Status}='Done' - Equals
{Priority}>1 - Greater than
{Name}!='' - Not empty
Functions:
AND({A}='x', {B}='y') - Both conditions
OR({A}='x', {A}='y') - Either condition
FIND('test', {Name})>0 - Contains text
IS_BEFORE({Due Date}, TODAY()) - Date comparison
Escape rules:
- Single quotes in values: double them (
{Name}='John''s Company')
Pagination
- Set
pageSize (max 100)
- Check response for
offset string
- Pass
offset to next request unchanged
- Keep filters/sorts/view stable between pages
Known Pitfalls
ID Formats:
- Base IDs:
appXXXXXXXXXXXXXX (17 chars)
- Table IDs:
tblXXXXXXXXXXXXXX (17 chars)
- Record IDs:
recXXXXXXXXXXXXXX (17 chars)
- Field IDs:
fldXXXXXXXXXXXXXX (17 chars)
Batch Limits:
- CREATE_RECORDS: max 10 per request
- UPDATE_MULTIPLE_RECORDS: max 10 per request
- DELETE_MULTIPLE_RECORDS: max 10 per request
Quick Reference
| Task |
Tool Slug |
Key Params |
| List bases |
AIRTABLE_LIST_BASES |
(none) |
| Get schema |
AIRTABLE_GET_BASE_SCHEMA |
baseId |
| List records |
AIRTABLE_LIST_RECORDS |
baseId, tableIdOrName |
| Get record |
AIRTABLE_GET_RECORD |
baseId, tableIdOrName, recordId |
| Create record |
AIRTABLE_CREATE_RECORD |
baseId, tableIdOrName, fields |
| Create records |
AIRTABLE_CREATE_RECORDS |
baseId, tableIdOrName, records |
| Update record |
AIRTABLE_UPDATE_RECORD |
baseId, tableIdOrName, recordId, fields |
| Update records |
AIRTABLE_UPDATE_MULTIPLE_RECORDS |
baseId, tableIdOrName, records |
| Delete record |
AIRTABLE_DELETE_RECORD |
baseId, tableIdOrName, recordId |
| Create field |
AIRTABLE_CREATE_FIELD |
baseId, tableIdOrName, name, type |
| Update field |
AIRTABLE_UPDATE_FIELD |
baseId, tableIdOrName, fieldId |
| Update table |
AIRTABLE_UPDATE_TABLE |
baseId, tableIdOrName, name |
| List comments |
AIRTABLE_LIST_COMMENTS |
baseId, tableIdOrName, recordId |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Example
User request:
Automate Airtable tasks via Rube MCP (Composio): records, bases, tables, fields, views.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
1---2name: airtable-automation3description: Automate Airtable tasks via Rube MCP (Composio): records, bases, tables, fields, views. Always search tools first for current schemas.4---5
6# Airtable Automation via Rube MCP
7
8Automate Airtable operations through Composio's Airtable toolkit via Rube MCP.
9
10## Prerequisites
11
12- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
13- Active Airtable connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `airtable`
14- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
15
16## Setup
17
18**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
19
201. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
212. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `airtable`
223. If connection is not ACTIVE, follow the returned auth link to complete Airtable auth
234. Confirm connection status shows ACTIVE before running any workflows
24
25## Core Workflows
26
27### 1. Create and Manage Records
28
29**When to use**: User wants to create, read, update, or delete records
30
31**Tool sequence**:
321. `AIRTABLE_LIST_BASES` - Discover available bases [Prerequisite]
332. `AIRTABLE_GET_BASE_SCHEMA` - Inspect table structure [Prerequisite]
343. `AIRTABLE_LIST_RECORDS` - List/filter records [Optional]
354. `AIRTABLE_CREATE_RECORD` / `AIRTABLE_CREATE_RECORDS` - Create records [Optional]
365. `AIRTABLE_UPDATE_RECORD` / `AIRTABLE_UPDATE_MULTIPLE_RECORDS` - Update records [Optional]
376. `AIRTABLE_DELETE_RECORD` / `AIRTABLE_DELETE_MULTIPLE_RECORDS` - Delete records [Optional]
38
39**Key parameters**:
40- `baseId`: Base ID (starts with 'app', e.g., 'appXXXXXXXXXXXXXX')
41- `tableIdOrName`: Table ID (starts with 'tbl') or table name
42- `fields`: Object mapping field names to values
43- `recordId`: Record ID (starts with 'rec') for updates/deletes
44- `filterByFormula`: Airtable formula for filtering
45- `typecast`: Set true for automatic type conversion
46
47**Pitfalls**:
48- pageSize capped at 100; uses offset pagination; changing filters between pages can skip/duplicate rows
49- CREATE_RECORDS hard limit of 10 records per request; chunk larger imports
50- Field names are CASE-SENSITIVE and must match schema exactly
51- 422 UNKNOWN_FIELD_NAME when field names are wrong; 403 for permission issues
52- INVALID_MULTIPLE_CHOICE_OPTIONS may require typecast=true
53
54### 2. Search and Filter Records
55
56**When to use**: User wants to find specific records using formulas
57
58**Tool sequence**:
591. `AIRTABLE_GET_BASE_SCHEMA` - Verify field names and types [Prerequisite]
602. `AIRTABLE_LIST_RECORDS` - Query with filterByFormula [Required]
613. `AIRTABLE_GET_RECORD` - Get full record details [Optional]
62
63**Key parameters**:
64- `filterByFormula`: Airtable formula (e.g., `{Status}='Done'`)
65- `sort`: Array of sort objects
66- `fields`: Array of field names to return
67- `maxRecords`: Max total records across all pages
68- `offset`: Pagination cursor from previous response
69
70**Pitfalls**:
71- Field names in formulas must be wrapped in `{}` and match schema exactly
72- String values must be quoted: `{Status}='Active'` not `{Status}=Active`
73- 422 INVALID_FILTER_BY_FORMULA for bad syntax or non-existent fields
74- Airtable rate limit: ~5 requests/second per base; handle 429 with Retry-After
75
76### 3. Manage Fields and Schema
77
78**When to use**: User wants to create or modify table fields
79
80**Tool sequence**:
811. `AIRTABLE_GET_BASE_SCHEMA` - Inspect current schema [Prerequisite]
822. `AIRTABLE_CREATE_FIELD` - Create a new field [Optional]
833. `AIRTABLE_UPDATE_FIELD` - Rename/describe a field [Optional]
844. `AIRTABLE_UPDATE_TABLE` - Update table metadata [Optional]
85
86**Key parameters**:
87- `name`: Field name
88- `type`: Field type (singleLineText, number, singleSelect, etc.)
89- `options`: Type-specific options (choices for select, precision for number)
90- `description`: Field description
91
92**Pitfalls**:
93- UPDATE_FIELD only changes name/description, NOT type/options; create a replacement field and migrate
94- Computed fields (formula, rollup, lookup) cannot be created via API
95- 422 when type options are missing or malformed
96
97### 4. Manage Comments
98
99**When to use**: User wants to view or add comments on records
100
101**Tool sequence**:
1021. `AIRTABLE_LIST_COMMENTS` - List comments on a record [Required]
103
104**Key parameters**:
105- `baseId`: Base ID
106- `tableIdOrName`: Table identifier
107- `recordId`: Record ID (17 chars, starts with 'rec')
108- `pageSize`: Comments per page (max 100)
109
110**Pitfalls**:
111- Record IDs must be exactly 17 characters starting with 'rec'
112
113## Common Patterns
114
115### Airtable Formula Syntax
116
117**Comparison**:
118- `{Status}='Done'` - Equals
119- `{Priority}>1` - Greater than
120- `{Name}!=''` - Not empty
121
122**Functions**:
123- `AND({A}='x', {B}='y')` - Both conditions
124- `OR({A}='x', {A}='y')` - Either condition
125- `FIND('test', {Name})>0` - Contains text
126- `IS_BEFORE({Due Date}, TODAY())` - Date comparison
127
128**Escape rules**:
129- Single quotes in values: double them (`{Name}='John''s Company'`)
130
131### Pagination
132
133- Set `pageSize` (max 100)
134- Check response for `offset` string
135- Pass `offset` to next request unchanged
136- Keep filters/sorts/view stable between pages
137
138## Known Pitfalls
139
140**ID Formats**:
141- Base IDs: `appXXXXXXXXXXXXXX` (17 chars)
142- Table IDs: `tblXXXXXXXXXXXXXX` (17 chars)
143- Record IDs: `recXXXXXXXXXXXXXX` (17 chars)
144- Field IDs: `fldXXXXXXXXXXXXXX` (17 chars)
145
146**Batch Limits**:
147- CREATE_RECORDS: max 10 per request
148- UPDATE_MULTIPLE_RECORDS: max 10 per request
149- DELETE_MULTIPLE_RECORDS: max 10 per request
150
151## Quick Reference
152
153| Task | Tool Slug | Key Params |
154|------|-----------|------------|
155| List bases | AIRTABLE_LIST_BASES | (none) |
156| Get schema | AIRTABLE_GET_BASE_SCHEMA | baseId |
157| List records | AIRTABLE_LIST_RECORDS | baseId, tableIdOrName |
158| Get record | AIRTABLE_GET_RECORD | baseId, tableIdOrName, recordId |
159| Create record | AIRTABLE_CREATE_RECORD | baseId, tableIdOrName, fields |
160| Create records | AIRTABLE_CREATE_RECORDS | baseId, tableIdOrName, records |
161| Update record | AIRTABLE_UPDATE_RECORD | baseId, tableIdOrName, recordId, fields |
162| Update records | AIRTABLE_UPDATE_MULTIPLE_RECORDS | baseId, tableIdOrName, records |
163| Delete record | AIRTABLE_DELETE_RECORD | baseId, tableIdOrName, recordId |
164| Create field | AIRTABLE_CREATE_FIELD | baseId, tableIdOrName, name, type |
165| Update field | AIRTABLE_UPDATE_FIELD | baseId, tableIdOrName, fieldId |
166| Update table | AIRTABLE_UPDATE_TABLE | baseId, tableIdOrName, name |
167| List comments | AIRTABLE_LIST_COMMENTS | baseId, tableIdOrName, recordId |
168
169## When to Use
170This skill is applicable to execute the workflow or actions described in the overview.
171
172## Example
173
174**User request:**
175
176> Automate Airtable tasks via Rube MCP (Composio): records, bases, tables, fields, views.
177
178## Limitations
179- Use this skill only when the task clearly matches the scope described above.
180- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
181- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.