skills/airtable-automation/SKILL.md
Automate Airtable tasks via Rube MCP (Composio): records, bases, tables, fields, views. Always search tools first for current schemas.
npx skillsauth add williamlimasilva/.copilot airtable-automationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automate Airtable operations through Composio's Airtable toolkit via Rube MCP.
RUBE_MANAGE_CONNECTIONS with toolkit airtableRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit airtableWhen 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 namefields: Object mapping field names to valuesrecordId: Record ID (starts with 'rec') for updates/deletesfilterByFormula: Airtable formula for filteringtypecast: Set true for automatic type conversionPitfalls:
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 objectsfields: Array of field names to returnmaxRecords: Max total records across all pagesoffset: Pagination cursor from previous responsePitfalls:
{} and match schema exactly{Status}='Active' not {Status}=ActiveWhen 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 nametype: Field type (singleLineText, number, singleSelect, etc.)options: Type-specific options (choices for select, precision for number)description: Field descriptionPitfalls:
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 IDtableIdOrName: Table identifierrecordId: Record ID (17 chars, starts with 'rec')pageSize: Comments per page (max 100)Pitfalls:
Comparison:
{Status}='Done' - Equals{Priority}>1 - Greater than{Name}!='' - Not emptyFunctions:
AND({A}='x', {B}='y') - Both conditionsOR({A}='x', {A}='y') - Either conditionFIND('test', {Name})>0 - Contains textIS_BEFORE({Due Date}, TODAY()) - Date comparisonEscape rules:
{Name}='John''s Company')pageSize (max 100)offset stringoffset to next request unchangedID Formats:
appXXXXXXXXXXXXXX (17 chars)tblXXXXXXXXXXXXXX (17 chars)recXXXXXXXXXXXXXX (17 chars)fldXXXXXXXXXXXXXX (17 chars)Batch Limits:
| 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 |
development
Anxiety-aware, evidence-driven collaboration for stalled or high-stakes work when a user says uncertainty, repeated setbacks, or lack of visible progress is causing significant anxiety or distress. Use immediately when explicitly invoked; when this fit is only inferred from the user's own account, ask permission before applying it. Preserve the user's ideal and turn grounded perspective-taking into persistent, bounded problem solving. Do not use to diagnose, provide therapy, manufacture certainty, or lower goals for reassurance.
development
Build, review, debug, package, and test Roslyn diagnostic analyzers, code fix providers, and incremental source generators. Use for DiagnosticAnalyzer, CodeFixProvider, IIncrementalGenerator, IOperation analysis, Microsoft.CodeAnalysis dependency pinning, Roslyn test harnesses, C#/VB tests, and analyzer NuGet packaging.
testing
Migrates a project that uses checked-in .designer.cs files behind .resx to using a source-generator instead
development
Polish any GitHub repository's surface — labels (emoji rating tiers, P0–P3 priority, impact severity), issue forms, PR template, CI workflows, CODEOWNERS, rulesets, docs. Repo meta & config only — no code logic touched. Use when creating a new repo or polishing an existing one.