Airtable Automation via Rube MCP
Automate Airtable operations through Composio's Airtable toolkit via Rube MCP.
Prerequisites
- - Rube MCP must be connected (RUBESEARCHTOOLS available)
- Active Airtable connection via
RUBE_MANAGE_CONNECTIONS with toolkit INLINECODE1 - 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.
- 1. Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds - Call
RUBE_MANAGE_CONNECTIONS with toolkit INLINECODE6 - 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:
- 1.
AIRTABLE_LIST_BASES - Discover available bases [Prerequisite] - INLINECODE8 - Inspect table structure [Prerequisite]
- INLINECODE9 - List/filter records [Optional]
- INLINECODE10 /
AIRTABLE_CREATE_RECORDS - Create records [Optional] - INLINECODE12 /
AIRTABLE_UPDATE_MULTIPLE_RECORDS - Update records [Optional] - INLINECODE14 /
AIRTABLE_DELETE_MULTIPLE_RECORDS - Delete records [Optional]
Key parameters:
- -
baseId: Base ID (starts with 'app', e.g., 'appXXXXXXXXXXXXXX') - INLINECODE17 : Table ID (starts with 'tbl') or table name
- INLINECODE18 : Object mapping field names to values
- INLINECODE19 : Record ID (starts with 'rec') for updates/deletes
- INLINECODE20 : Airtable formula for filtering
- INLINECODE21 : Set true for automatic type conversion
Pitfalls:
- - pageSize capped at 100; uses offset pagination; changing filters between pages can skip/duplicate rows
- CREATERECORDS hard limit of 10 records per request; chunk larger imports
- Field names are CASE-SENSITIVE and must match schema exactly
- 422 UNKNOWNFIELDNAME when field names are wrong; 403 for permission issues
- INVALIDMULTIPLECHOICEOPTIONS may require typecast=true
2. Search and Filter Records
When to use: User wants to find specific records using formulas
Tool sequence:
- 1.
AIRTABLE_GET_BASE_SCHEMA - Verify field names and types [Prerequisite] - INLINECODE23 - Query with filterByFormula [Required]
- INLINECODE24 - Get full record details [Optional]
Key parameters:
- -
filterByFormula: Airtable formula (e.g., {Status}='Done') - INLINECODE27 : Array of sort objects
- INLINECODE28 : Array of field names to return
- INLINECODE29 : Max total records across all pages
- INLINECODE30 : 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 INLINECODE33 - 422 INVALIDFILTERBY_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:
- 1.
AIRTABLE_GET_BASE_SCHEMA - Inspect current schema [Prerequisite] - INLINECODE35 - Create a new field [Optional]
- INLINECODE36 - Rename/describe a field [Optional]
- INLINECODE37 - Update table metadata [Optional]
Key parameters:
- -
name: Field name - INLINECODE39 : Field type (singleLineText, number, singleSelect, etc.)
- INLINECODE40 : Type-specific options (choices for select, precision for number)
- INLINECODE41 : 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:
- 1.
AIRTABLE_LIST_COMMENTS - List comments on a record [Required]
Key parameters:
- -
baseId: Base ID - INLINECODE44 : Table identifier
- INLINECODE45 : Record ID (17 chars, starts with 'rec')
- INLINECODE46 : 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 - INLINECODE48 - Greater than
- INLINECODE49 - Not empty
Functions:
- -
AND({A}='x', {B}='y') - Both conditions - INLINECODE51 - Either condition
- INLINECODE52 - Contains text
- INLINECODE53 - 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:
- - CREATERECORDS: max 10 per request
- UPDATEMULTIPLERECORDS: max 10 per request
- DELETEMULTIPLE_RECORDS: max 10 per request
Quick Reference
| Task | Tool Slug | Key Params |
|---|
| List bases | AIRTABLELISTBASES | (none) |
| Get schema |
AIRTABLE
GETBASE_SCHEMA | baseId |
| List records | AIRTABLE
LISTRECORDS | baseId, tableIdOrName |
| Get record | AIRTABLE
GETRECORD | baseId, tableIdOrName, recordId |
| Create record | AIRTABLE
CREATERECORD | baseId, tableIdOrName, fields |
| Create records | AIRTABLE
CREATERECORDS | baseId, tableIdOrName, records |
| Update record | AIRTABLE
UPDATERECORD | baseId, tableIdOrName, recordId, fields |
| Update records | AIRTABLE
UPDATEMULTIPLE_RECORDS | baseId, tableIdOrName, records |
| Delete record | AIRTABLE
DELETERECORD | baseId, tableIdOrName, recordId |
| Create field | AIRTABLE
CREATEFIELD | baseId, tableIdOrName, name, type |
| Update field | AIRTABLE
UPDATEFIELD | baseId, tableIdOrName, fieldId |
| Update table | AIRTABLE
UPDATETABLE | baseId, tableIdOrName, name |
| List comments | AIRTABLE
LISTCOMMENTS | baseId, tableIdOrName, recordId |
通过 Rube MCP 实现 Airtable 自动化
通过 Rube MCP 使用 Composio 的 Airtable 工具包自动化 Airtable 操作。
前提条件
- - 必须连接 Rube MCP(RUBESEARCHTOOLS 可用)
- 通过 RUBEMANAGECONNECTIONS 使用 airtable 工具包建立活跃的 Airtable 连接
- 始终先调用 RUBESEARCHTOOLS 获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务器。无需 API 密钥——只需添加端点即可使用。
- 1. 通过确认 RUBESEARCHTOOLS 有响应来验证 Rube MCP 可用
- 使用 airtable 工具包调用 RUBEMANAGECONNECTIONS
- 如果连接未处于 ACTIVE 状态,请按照返回的认证链接完成 Airtable 认证
- 在运行任何工作流之前,确认连接状态显示为 ACTIVE
核心工作流
1. 创建和管理记录
使用场景:用户想要创建、读取、更新或删除记录
工具顺序:
- 1. AIRTABLELISTBASES - 发现可用数据库 [前提条件]
- AIRTABLEGETBASESCHEMA - 检查表结构 [前提条件]
- AIRTABLELISTRECORDS - 列出/筛选记录 [可选]
- AIRTABLECREATERECORD / AIRTABLECREATERECORDS - 创建记录 [可选]
- AIRTABLEUPDATERECORD / AIRTABLEUPDATEMULTIPLERECORDS - 更新记录 [可选]
- AIRTABLEDELETERECORD / AIRTABLEDELETEMULTIPLE_RECORDS - 删除记录 [可选]
关键参数:
- - baseId:数据库 ID(以 app 开头,例如 appXXXXXXXXXXXXXX)
- tableIdOrName:表 ID(以 tbl 开头)或表名称
- fields:字段名称到值的映射对象
- recordId:记录 ID(以 rec 开头),用于更新/删除
- filterByFormula:用于筛选的 Airtable 公式
- typecast:设置为 true 以自动转换类型
注意事项:
- - pageSize 上限为 100;使用偏移分页;在页面之间更改筛选条件可能导致跳过/重复行
- CREATERECORDS 每个请求硬限制为 10 条记录;较大导入需分块处理
- 字段名称区分大小写,必须与架构完全匹配
- 字段名称错误时出现 422 UNKNOWNFIELDNAME;权限问题出现 403
- INVALIDMULTIPLECHOICEOPTIONS 可能需要设置 typecast=true
2. 搜索和筛选记录
使用场景:用户想要使用公式查找特定记录
工具顺序:
- 1. AIRTABLEGETBASESCHEMA - 验证字段名称和类型 [前提条件]
- AIRTABLELISTRECORDS - 使用 filterByFormula 查询 [必需]
- AIRTABLEGET_RECORD - 获取完整记录详情 [可选]
关键参数:
- - filterByFormula:Airtable 公式(例如 {Status}=Done)
- sort:排序对象数组
- fields:要返回的字段名称数组
- maxRecords:所有页面中的最大记录总数
- offset:来自上一个响应的分页游标
注意事项:
- - 公式中的字段名称必须用 {} 包裹,并与架构完全匹配
- 字符串值必须加引号:{Status}=Active 而不是 {Status}=Active
- 语法错误或字段不存在时出现 422 INVALIDFILTERBY_FORMULA
- Airtable 速率限制:每个数据库约 5 个请求/秒;使用 Retry-After 处理 429
3. 管理字段和架构
使用场景:用户想要创建或修改表字段
工具顺序:
- 1. AIRTABLEGETBASESCHEMA - 检查当前架构 [前提条件]
- AIRTABLECREATEFIELD - 创建新字段 [可选]
- AIRTABLEUPDATEFIELD - 重命名/描述字段 [可选]
- AIRTABLEUPDATE_TABLE - 更新表元数据 [可选]
关键参数:
- - name:字段名称
- type:字段类型(singleLineText、number、singleSelect 等)
- options:类型特定选项(选择类型的选项、数字类型的精度)
- description:字段描述
注意事项:
- - UPDATE_FIELD 仅更改名称/描述,不更改类型/选项;创建替换字段并迁移
- 计算字段(公式、汇总、查找)无法通过 API 创建
- 类型选项缺失或格式错误时出现 422
4. 管理评论
使用场景:用户想要查看或添加记录上的评论
工具顺序:
- 1. AIRTABLELISTCOMMENTS - 列出记录上的评论 [必需]
关键参数:
- - baseId:数据库 ID
- tableIdOrName:表标识符
- recordId:记录 ID(17 个字符,以 rec 开头)
- pageSize:每页评论数(最多 100)
注意事项:
- - 记录 ID 必须恰好为 17 个字符,以 rec 开头
常见模式
Airtable 公式语法
比较:
- - {Status}=Done - 等于
- {Priority}>1 - 大于
- {Name}!= - 非空
函数:
- - AND({A}=x, {B}=y) - 两个条件都满足
- OR({A}=x, {A}=y) - 任一条件满足
- FIND(test, {Name})>0 - 包含文本
- IS_BEFORE({Due Date}, TODAY()) - 日期比较
转义规则:
- - 值中的单引号:双写({Name}=Johns Company)
分页
- - 设置 pageSize(最多 100)
- 检查响应中的 offset 字符串
- 将 offset 原样传递给下一个请求
- 保持筛选条件/排序/视图在页面之间稳定
已知注意事项
ID 格式:
- - 数据库 ID:appXXXXXXXXXXXXXX(17 个字符)
- 表 ID:tblXXXXXXXXXXXXXX(17 个字符)
- 记录 ID:recXXXXXXXXXXXXXX(17 个字符)
- 字段 ID:fldXXXXXXXXXXXXXX(17 个字符)
批量限制:
- - CREATERECORDS:每个请求最多 10 条
- UPDATEMULTIPLERECORDS:每个请求最多 10 条
- DELETEMULTIPLE_RECORDS:每个请求最多 10 条
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|
| 列出数据库 | AIRTABLELISTBASES | (无) |
| 获取架构 |
AIRTABLE
GETBASE_SCHEMA | baseId |
| 列出记录 | AIRTABLE
LISTRECORDS | baseId, tableIdOrName |
| 获取记录 | AIRTABLE
GETRECORD | baseId, tableIdOrName, recordId |
| 创建记录 | AIRTABLE
CREATERECORD | baseId, tableIdOrName, fields |
| 批量创建记录 | AIRTABLE
CREATERECORDS | baseId, tableIdOrName, records |
| 更新记录 | AIRTABLE
UPDATERECORD | baseId, tableIdOrName, recordId, fields |
| 批量更新记录 | AIRTABLE
UPDATEMULTIPLE_RECORDS | baseId, tableIdOrName, records |
| 删除记录 | AIRTABLE
DELETERECORD | baseId, tableIdOrName, recordId |
| 创建字段 | AIRTABLE
CREATEFIELD | baseId, tableIdOrName, name, type |
| 更新字段 | AIRTABLE
UPDATEFIELD | baseId, tableIdOrName, fieldId |
| 更新表 | AIRTABLE
UPDATETABLE | baseId, tableIdOrName, name |
| 列出评论 | AIRTABLE
LISTCOMMENTS | baseId, tableIdOrName, recordId |