$npx -y skills add SamarthaKV29/antigravity-god-mode --skill airtable-automationAutomate Airtable tasks via Rube MCP (Composio): records, bases, tables, fields, views. Always search tools first for current schemas.
| 1 | # Airtable Automation via Rube MCP |
| 2 | |
| 3 | Automate Airtable operations through Composio's Airtable toolkit via Rube MCP. |
| 4 | |
| 5 | ## Prerequisites |
| 6 | |
| 7 | - Rube MCP must be connected (RUBE_SEARCH_TOOLS available) |
| 8 | - Active Airtable connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `airtable` |
| 9 | - Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas |
| 10 | |
| 11 | ## Setup |
| 12 | |
| 13 | **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. |
| 14 | |
| 15 | |
| 16 | 1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds |
| 17 | 2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `airtable` |
| 18 | 3. If connection is not ACTIVE, follow the returned auth link to complete Airtable auth |
| 19 | 4. Confirm connection status shows ACTIVE before running any workflows |
| 20 | |
| 21 | ## Core Workflows |
| 22 | |
| 23 | ### 1. Create and Manage Records |
| 24 | |
| 25 | **When to use**: User wants to create, read, update, or delete records |
| 26 | |
| 27 | **Tool sequence**: |
| 28 | 1. `AIRTABLE_LIST_BASES` - Discover available bases [Prerequisite] |
| 29 | 2. `AIRTABLE_GET_BASE_SCHEMA` - Inspect table structure [Prerequisite] |
| 30 | 3. `AIRTABLE_LIST_RECORDS` - List/filter records [Optional] |
| 31 | 4. `AIRTABLE_CREATE_RECORD` / `AIRTABLE_CREATE_RECORDS` - Create records [Optional] |
| 32 | 5. `AIRTABLE_UPDATE_RECORD` / `AIRTABLE_UPDATE_MULTIPLE_RECORDS` - Update records [Optional] |
| 33 | 6. `AIRTABLE_DELETE_RECORD` / `AIRTABLE_DELETE_MULTIPLE_RECORDS` - Delete records [Optional] |
| 34 | |
| 35 | **Key parameters**: |
| 36 | - `baseId`: Base ID (starts with 'app', e.g., 'appXXXXXXXXXXXXXX') |
| 37 | - `tableIdOrName`: Table ID (starts with 'tbl') or table name |
| 38 | - `fields`: Object mapping field names to values |
| 39 | - `recordId`: Record ID (starts with 'rec') for updates/deletes |
| 40 | - `filterByFormula`: Airtable formula for filtering |
| 41 | - `typecast`: Set true for automatic type conversion |
| 42 | |
| 43 | **Pitfalls**: |
| 44 | - pageSize capped at 100; uses offset pagination; changing filters between pages can skip/duplicate rows |
| 45 | - CREATE_RECORDS hard limit of 10 records per request; chunk larger imports |
| 46 | - Field names are CASE-SENSITIVE and must match schema exactly |
| 47 | - 422 UNKNOWN_FIELD_NAME when field names are wrong; 403 for permission issues |
| 48 | - INVALID_MULTIPLE_CHOICE_OPTIONS may require typecast=true |
| 49 | |
| 50 | ### 2. Search and Filter Records |
| 51 | |
| 52 | **When to use**: User wants to find specific records using formulas |
| 53 | |
| 54 | **Tool sequence**: |
| 55 | 1. `AIRTABLE_GET_BASE_SCHEMA` - Verify field names and types [Prerequisite] |
| 56 | 2. `AIRTABLE_LIST_RECORDS` - Query with filterByFormula [Required] |
| 57 | 3. `AIRTABLE_GET_RECORD` - Get full record details [Optional] |
| 58 | |
| 59 | **Key parameters**: |
| 60 | - `filterByFormula`: Airtable formula (e.g., `{Status}='Done'`) |
| 61 | - `sort`: Array of sort objects |
| 62 | - `fields`: Array of field names to return |
| 63 | - `maxRecords`: Max total records across all pages |
| 64 | - `offset`: Pagination cursor from previous response |
| 65 | |
| 66 | **Pitfalls**: |
| 67 | - Field names in formulas must be wrapped in `{}` and match schema exactly |
| 68 | - String values must be quoted: `{Status}='Active'` not `{Status}=Active` |
| 69 | - 422 INVALID_FILTER_BY_FORMULA for bad syntax or non-existent fields |
| 70 | - Airtable rate limit: ~5 requests/second per base; handle 429 with Retry-After |
| 71 | |
| 72 | ### 3. Manage Fields and Schema |
| 73 | |
| 74 | **When to use**: User wants to create or modify table fields |
| 75 | |
| 76 | **Tool sequence**: |
| 77 | 1. `AIRTABLE_GET_BASE_SCHEMA` - Inspect current schema [Prerequisite] |
| 78 | 2. `AIRTABLE_CREATE_FIELD` - Create a new field [Optional] |
| 79 | 3. `AIRTABLE_UPDATE_FIELD` - Rename/describe a field [Optional] |
| 80 | 4. `AIRTABLE_UPDATE_TABLE` - Update table metadata [Optional] |
| 81 | |
| 82 | **Key parameters**: |
| 83 | - `name`: Field name |
| 84 | - `type`: Field type (singleLineText, number, singleSelect, etc.) |
| 85 | - `options`: Type-specific options (choices for select, precision for number) |
| 86 | - `description`: Field description |
| 87 | |
| 88 | **Pitfalls**: |
| 89 | - UPDATE_FIELD only changes name/description, NOT type/options; create a replacement field and migrate |
| 90 | - Computed fields (formula, rollup, lookup) cannot be created via API |
| 91 | - 422 when type options are missing or malformed |
| 92 | |
| 93 | ### 4. Manage Comments |
| 94 | |
| 95 | **When to use**: User wants to view or add comments on records |
| 96 | |
| 97 | **Tool sequence**: |
| 98 | 1. `AIRTABLE_LIST_COMMENTS` - List comments on a record [Required] |
| 99 | |
| 100 | **Key parameters**: |
| 101 | - `baseId`: Base ID |
| 102 | - `tableIdOrName`: Table identifier |
| 103 | - `recordId`: Record ID (17 chars, starts with 'rec') |
| 104 | - `pageSize`: Comments per page (max 100) |
| 105 | |
| 106 | **Pitfalls**: |
| 107 | - Record IDs must be exactly 17 characters starting with 'rec' |
| 108 | |
| 109 | ## Common Patterns |
| 110 | |
| 111 | ### Airtable Formula Syntax |
| 112 | |
| 113 | **Comparison**: |
| 114 | - `{Status}='Done'` - Equals |
| 115 | - `{Priority}>1` - Greater than |
| 116 | - `{Name}!=''` - Not empty |
| 117 | |
| 118 | **Functions**: |
| 119 | - `AND({A}='x', {B}='y')` - Both conditions |
| 120 | - `OR({A}='x', {A}='y')` - Either condition |
| 121 | - `FIND('test', {Name})>0` - Contains text |
| 122 | - `IS_BEFORE({Due Date}, TODAY())` - Date comparison |
| 123 | |
| 124 | **Escape rules**: |
| 125 | - Single quotes in values: double them (`{Name}='John''s Company'`) |
| 126 | |
| 127 | ### Paginati |