Airtable Automation via Rube MCP
Automate Airtable operations through Composio's Airtable toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/airtable
Prerequisites
- •Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- •Active Airtable connection via
RUBE_MANAGE_CONNECTIONSwith toolkitairtable - •Always call
RUBE_SEARCH_TOOLSfirst 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_TOOLSresponds - •Call
RUBE_MANAGE_CONNECTIONSwith toolkitairtable - •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
offsetstring - •Pass
offsetto 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 |
Powered by Composio