airtable-mcp-server

Read, search and edit Airtable bases, tables, fields, records and comments over MCP

By adam jones (individual) TypeScript Local · stdio DatabasesProductivity

60 popularity score ★ 456 ↓ 3.7k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs AIRTABLE_API_KEY. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add airtable -e AIRTABLE_API_KEY=<AIRTABLE_API_KEY> -- npx -y airtable-mcp-server
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ],
      "env": {
        "AIRTABLE_API_KEY": "<AIRTABLE_API_KEY>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ],
      "env": {
        "AIRTABLE_API_KEY": "<AIRTABLE_API_KEY>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "airtable": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ],
      "env": {
        "AIRTABLE_API_KEY": "<AIRTABLE_API_KEY>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.airtable]
command = "npx"
args = ["-y", "airtable-mcp-server"]

[mcp_servers.airtable.env]
AIRTABLE_API_KEY = "<AIRTABLE_API_KEY>"
Gemini CLITerminal
gemini mcp add --scope user -e AIRTABLE_API_KEY=<AIRTABLE_API_KEY> airtable npx -- -y airtable-mcp-server

Settings 3

AIRTABLE_API_KEY Required: Airtable personal access token (looks like pat123.abc123); the server will not start without it.
MCP_TRANSPORT Optional: stdio (default) or http to serve a stateless HTTP endpoint at /mcp.
PORT Optional: Port for HTTP mode; 3000 by default.

What it does

airtable-mcp-server connects an MCP client to the Airtable Web API with a personal access token. The assistant can first look at the shape of a base (its tables, fields and views, at three levels of detail) and then work on the data: list records with an Airtable formula filter, search text fields for a term, fetch one record, create a record, and update or delete several at once.

It also changes structure, not just data: it can create tables, create fields, and rename or redescribe tables and fields. Record comments can be listed and posted, including threaded replies.

Version 1.14.0 registers 16 tools, one more than the README lists: upload_attachment, which sends a file (passed in as base64 text, up to 5 MB) straight into an attachment field of an existing record through Airtable's upload API (src/tools/index.ts and src/tools/upload-attachment.ts at v1.14.0).

It is a community project by Adam Jones (domdomegg), not a product of Airtable. It runs locally over stdio by default; setting MCP_TRANSPORT=http starts a stateless HTTP endpoint at /mcp instead.

What it needs

RuntimeNode.js

Node.js to run it with npx. An Airtable account and a personal access token with at least the schema.bases:read and data.records:read scopes and access to the bases you want; add schema.bases:write, data.records:write and the data.recordComments scopes for the write and comment tools. The token goes in AIRTABLE_API_KEY.

Limits

The server exits at start when AIRTABLE_API_KEY is empty (src/airtableService.ts). list_records and search_records return 100 records by default, adjustable with maxRecords; list_comments returns at most 100 per page and pages with offset. upload_attachment takes files up to 5 MB and only for a record that already exists; larger files must be given to create_record or update_records as a public URL. There are no tools to delete tables or fields, or to create bases. Passing the key as a command-line argument still works but is marked deprecated in the code. HTTP mode has no authentication of its own.

Who it suits

Suits someone who keeps data in Airtable and wants an assistant to inspect, query and edit it, including adding tables and fields, from a local client with their own token. Because it writes and deletes, a read-only token (only the two read scopes) is the way to limit it to lookups. Airtable runs its own hosted MCP endpoint, which we also list (airtable-com, https://mcp.airtable.com/mcp); pick that if you want the vendor's server and a hosted sign-in instead of running a local process with a token.

Tools 16

list_records
List records in a table, optionally filtered by an Airtable formula.
search_records
Find records whose text fields contain a given term.
list_bases
List the bases the token can reach, with permission level.
list_tables
List a base's tables with fields and views at a chosen detail level.
describe_table
Show the schema of one table.
get_record
Fetch a single record by its ID.
create_record
Add a new record with given field values.
update_records
Change fields on one or more records.
delete_records
Remove one or more records by ID.
create_table
Add a table to a base with its field definitions.
update_table
Rename a table or change its description.
create_field
Add a field of a given type to a table.
update_field
Rename a field or change its description.
create_comment
Post a comment or threaded reply on a record.
list_comments
Read a record's comments, newest first, with paging.
upload_attachment
Put a base64-encoded file of up to 5 MB into a record's attachment field.

Similar servers