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
To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your claude_desktop_config.json
:
{
"mcpServers": {
"airtable": {
"command": "npx",
"args": [
"-y",
"airtable-mcp-server"
],
"env": {
"AIRTABLE_API_KEY": "pat123.abc123"
}
}
}
}
Replace pat123.abc123
with your Airtable personal access token. Your token should have at least schema.bases:read
and data.records:read
, and optionally the corresponding write permissions.
list_records
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the table to querymaxRecords
(number, optional): Maximum number of records to return. Defaults to 100.filterByFormula
(string, optional): Airtable formula to filter recordssearch_records
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the table to querysearchTerm
(string, required): Text to search for in recordsfieldIds
(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
list_tables
baseId
(string, required): The ID of the Airtable basedetailLevel
(string, optional): The amount of detail to get about the tables (tableIdentifiersOnly
, identifiersOnly
, or full
)detailLevel
)describe_table
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the table to describedetailLevel
(string, optional): The amount of detail to get about the table (tableIdentifiersOnly
, identifiersOnly
, or full
)get_record
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the tablerecordId
(string, required): The ID of the record to retrievecreate_record
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the tablefields
(object, required): The fields and values for the new recordupdate_records
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the tablerecords
(array, required): Array of objects containing record ID and fields to updatedelete_records
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the tablerecordIds
(array, required): Array of record IDs to deletecreate_table
baseId
(string, required): The ID of the Airtable basename
(string, required): Name of the new tabledescription
(string, optional): Description of the tablefields
(array, required): Array of field definitions (name, type, description, options)update_table
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the tablename
(string, optional): New name for the tabledescription
(string, optional): New description for the tablecreate_field
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the tablename
(string, required): Name of the new fieldtype
(string, required): Type of the fielddescription
(string, optional): Description of the fieldoptions
(object, optional): Field-specific optionsupdate_field
baseId
(string, required): The ID of the Airtable basetableId
(string, required): The ID of the tablefieldId
(string, required): The ID of the fieldname
(string, optional): New name for the fielddescription
(string, optional): New description for the fieldThe server provides schema information for Airtable bases and tables:
airtable://<baseId>/<tableId>/schema
)
Pull requests are welcomed on GitHub! To get started:
npm install
npm run test
to run testsnpm run build
npm run build:watch
to automatically build after editing src/index.ts
. This means you can hit save, reload Claude Desktop (with Ctrl/Cmd+R), and the changes apply.Versions follow the semantic versioning spec.
To release:
npm version <major | minor | patch>
to bump the versiongit push --follow-tags
to push with tagsSeamless access to top MCP servers powering the future of AI integration.