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 |
tools
Create a new workshop or use an existing directory as one. Handles two paths: (A) use an existing local directory the operator points at, or (B) create a new private GitHub repo in the signed-in account. Never creates a repo inside another repo.
development
Guide for setting up vcpkg in C++ projects, managing dependency versions, and cross-compiling. Covers manifest initialization, CMake and Visual Studio integration, classic-to-manifest migration, version pinning, baselines, overrides, triplets, and cross-compilation. Use when a user is working with vcpkg project setup, installation, version management, or cross-platform builds. For specialized tasks, additional references cover custom registries and overlay ports (references/registries.md), CI/CD and binary caching (references/ci.md), and troubleshooting and dependency lifecycle (references/troubleshooting.md).
testing
Emit structured agent signals — hands-up, blocked, done, checkpoint, partnership. Signals are written as JSON to .signals/ for dashboard consumption and noted in the journal for persistence.
development
Install and configure Markstream streaming Markdown renderers for Vue, React, Svelte, Angular, Nuxt, and Vue 2 applications. Use for package selection, minimal peer dependencies, CSS order, SSR boundaries, streaming mode, and renderer setup.