📇 🏠 - Airtable database integration with schema inspection, read and write capabilities
airtable-mcp-server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A Model Context Protocol server that provides read and write access to Airtable databases. This server enables LLMs to inspect database schemas, then read and write records.
https://github.com/user-attachments/assets/c8285e76-d0ed-4018-94c7-20535db6c944
Installation
Follow the instructions on install-mcp, which generates the right config for your MCP client (Claude Code, Claude Desktop, Cursor, Cline, VS Code, and more).
You'll need an Airtable personal access token — create one here with scopes schema.bases:read and data.records:read (and optionally schema.bases:write, data.records:write, data.recordComments:read, data.recordComments:write), and access to the bases you want to use. It looks something like pat123.abc123 (but longer). Set it as AIRTABLE_API_KEY (replacing the placeholder in the generated config).
Components
Tools
- **list_records**
- Lists records from a specified Airtable table
- Input parameters:
- baseId (string, required): The ID of the Airtable base
- tableId (string, required): The ID of the table to query
- maxRecords (number, optional): Maximum number of records to return. Defaults to 100.
- filterByFormula (string, optional): Airtable formula to filter records
- **search_records**
- Search for records containing specific text
- Input parameters:
- baseId (string, required): The ID of the Airtable base
- tableId (string, required): The ID of the table to query
- searchTerm (string, required): Text to search for in records
- fieldIds (array, optional): Specific field IDs to search in. If not provided, searches all text-based fields.
- maxRecords (number, optional): Maximum number of records to return. Defaults to 100.
- **list_bases**
- Lists all accessible Airtable bases
- No input parameters required
- Returns base ID, name, and permission level
- **list_tables**
- Lists all tables in a specific base
- Input parameters:
- baseId (string, required): The ID of the Airtable base
- detailLevel (string, optional): The amount of detail to get about the tables (tableIdentifiersOnly, identifiersOnly, or full)
- Returns table ID, name, description, fields, and views (to the given detailLevel)
- **describe_table**
- Gets detailed information about a specific table
- Input parameters:
- baseId (string, required): The ID of the Airtable base
- tableId (string, required): The ID of the table to describe
- detailLevel (string, optional): The amount of detail to get about the table (tableIdentifiersOnly, identifiersOnly, or full)
- Returns the same format as list_tables but for a single table
- Useful for getting details about a specific table without fetching information about all tables in the base
- **get_record**
- Gets a specific record by ID
- Input parameters:
- baseId (string, required): The ID of the Airtable base
- tableId (string, required): The ID of the table
- recordId (string, required): The ID of the record to retrieve
- **create_record**
- Creates a new record in a table
- Input parameters:
- baseId (string, required): The ID of the Airtable base
- tableId (string, required): The ID of the table
- fields (object, required): The fields and values for the new record
- **update_records**
- Updates one or more records in a table
- Input parameters:
- baseId (string, required): The ID of the Airtable base
- tableId (string, required): The ID of the table
- records (array, required): Array of objects containing record ID and fields to update
- **delete_records**
- Deletes one or more records from a table