by domdomegg
Provides read and write access to Airtable bases for AI systems, enabling inspection of schemas and manipulation of records.
Enables AI models to interact directly with Airtable databases, offering both schema discovery and full CRUD operations on records. The server acts as a bridge, exposing Airtable data through the Model Context Protocol so that LLMs can query structures, retrieve, create, update, and delete records programmatically.
schema.bases:read
, data.records:read
and optionally schema.bases:write
, data.records:write
.AIRTABLE_API_KEY=your_token npx -y airtable-mcp-server
(or configure the environment variable in a client‑side MCP JSON as shown in the serverConfig
section).list_bases
, list_tables
, describe_table
provide detailed metadata, including field types and view definitions.list_records
, search_records
, get_record
, create_record
, update_records
, delete_records
cover the full CRUD lifecycle.create_table
, update_table
, create_field
, update_field
allow programmatic schema changes.airtable://<baseId>/<tableId>/schema
.AIRTABLE_API_KEY
is the expected variable; it can be set directly in the shell or via the MCP JSON configuration.npx -y airtable-mcp-server
command downloads and runs the package on‑the‑fly.maxRecords
to control payload size.AIRTABLE_API_KEY
, and the server logs any HTTP errors to the console.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
Step 1: Create an Airtable personal access token by clicking here. Details:
schema.bases:read
, data.records:read
, and optionally schema.bases:write
and data.records:write
.Keep the token handy, you'll need it in the next step. It should look something like pat123.abc123
(but longer).
Step 2: Follow the instructions below for your preferred client:
airtable-mcp-server-dxt
file.zip
file to .dxt
.dxt
file to open with Claude Desktopclaude_desktop_config.json
filepat123.abc123
with your API key:{
"mcpServers": {
"airtable": {
"command": "npx",
"args": [
"-y",
"airtable-mcp-server"
],
"env": {
"AIRTABLE_API_KEY": "pat123.abc123",
}
}
}
}
Create either a global (~/.cursor/mcp.json
) or project-specific (.cursor/mcp.json
) configuration file, replacing pat123.abc123
with your API key:
{
"mcpServers": {
"airtable": {
"command": "npx",
"args": ["-y", "airtable-mcp-server"],
"env": {
"AIRTABLE_API_KEY": "pat123.abc123"
}
}
}
}
pat123.abc123
with your API key:{
"mcpServers": {
"airtable": {
"type": "stdio",
"command": "npx",
"args": ["-y", "airtable-mcp-server"],
"env": {
"AIRTABLE_API_KEY": "pat123.abc123"
}
}
}
}
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 tagsPlease log in to share your review and rating for this MCP.
{ "mcpServers": { "airtable": { "command": "npx", "args": [ "-y", "airtable-mcp-server" ], "env": { "AIRTABLE_API_KEY": "<YOUR_API_KEY>" } } } }
Explore related MCPs that share similar capabilities and solve comparable challenges
by googleapis
An MCP server that streamlines database tool development by handling connection pooling, authentication, observability, and secure access, allowing agents to interact with databases via natural language.
by bytebase
Provides a universal gateway that lets MCP‑compatible clients explore and query MySQL, PostgreSQL, SQL Server, MariaDB, and SQLite databases through a single standardized interface.
by designcomputer
Enables secure interaction with MySQL databases via the Model Context Protocol, allowing AI applications to list tables, read contents, and execute queries safely.
by benborla
Provides read‑only access to MySQL databases for large language models, allowing schema inspection and safe execution of SQL queries.
by ClickHouse
Enables AI assistants to run read‑only ClickHouse queries, list databases and tables, and execute embedded chDB queries through an MCP interface.
by chroma-core
Offers an MCP server exposing Chroma's vector database capabilities for LLM applications, supporting collection and document management, multiple embedding functions, and flexible client types such as in‑memory, persistent, HTTP, and cloud.
by kiliczsh
Enables LLMs to interact with MongoDB databases via a standardized interface, offering schema inspection, query execution, aggregation, and write capabilities, with optional read‑only mode and smart ObjectId handling.
by XGenerationLab
A Model Context Protocol (MCP) server that enables natural language queries to databases
by apache
Provides an MCP backend service built with Python and FastAPI to interact with Apache Doris databases, enabling natural language to SQL conversion, query execution, metadata extraction, and comprehensive enterprise data governance.