Community MCP server for Airtable — 36 tools your AI assistant can't get from the official API
Not affiliated with Airtable Inc. This is a community-maintained project.
Experimental — This project is under active development and not intended for production use. APIs, tools, and behavior may change without notice.
The official Airtable REST API doesn't expose formula field creation, view configuration, or extension management. airtable-user-mcp fills that gap by using Airtable's internal API, giving your AI assistant capabilities that are otherwise only available through the Airtable UI.
| Capability | Official API | This Server | |
|---|---|---|---|
| S | Schema inspection (bases, tables, fields, views) | Partial | Full |
| F | Create formula / rollup / lookup / count fields | No | Yes |
| V | Validate formulas before applying | No | Yes |
| C | View config (filters, sorts, groups, visibility) | No | Yes |
| E | Extension / block management | No | Yes |
npx airtable-user-mcpThat's it. Your MCP client connects via stdio and gets access to all 36 tools.
Works with any MCP-compatible client. Tested with:
For a visual management experience, install the Airtable Formula VS Code extension. It bundles this MCP server and adds:
- One-click MCP registration for Cursor, Windsurf, Claude Code, Cline, and Amp
- Dashboard with session status, version info, and setup wizard
- Airtable login with credentials in OS keychain and auto-refresh
- Formula editor with syntax highlighting, IntelliSense, and beautify/minify
Five commands take you from zero → a working Airtable MCP in Claude Desktop or Claude Code. Everything below runs from a normal terminal.
- Node.js 18 or newer —
node -vto check. Install from nodejs.org if missing. - An Airtable account (personal, team, or enterprise — anything you can log into at airtable.com).
npx -y airtable-user-mcp@latest doctordoctor prints your Node version, platform, config dir, and whether the browser engine is installed. If Patchright: not installed appears, continue to step 2. If it says installed, skip to step 3.
npx -y airtable-user-mcp install-browserThis downloads Patchright (a stealth Chromium fork used only for the login flow). You only need to run this once per machine. If you already have Chrome, Edge, or Chromium installed and prefer not to download another browser, see Browser Choice below.
npx -y airtable-user-mcp loginA browser window opens on airtable.com/login. Sign in like you normally would — password, SSO, 2FA, whatever your account uses. The window closes automatically when login is detected. Your session is stored in ~/.airtable-user-mcp/.chrome-profile/ and reused by every tool call.
Verify the session landed:
npx -y airtable-user-mcp statusYou should see Session: found.
Claude Desktop
Open claude_desktop_config.json:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Tip: in Claude Desktop, Settings → Developer → Edit Config opens this file.
Add the airtable entry to mcpServers:
{
"mcpServers": {
"airtable": {
"command": "npx",
"args": ["-y", "airtable-user-mcp"]
}
}
}Save, then fully quit and reopen Claude Desktop (closing the window is not enough). A hammer/plug icon in the chat input confirms the server is connected — click it to see the 36 tools.
Claude Code
Use the built-in claude mcp add command:
# Add for all projects on this machine:
claude mcp add airtable --scope user -- npx -y airtable-user-mcp
# OR — add to the current project only (creates .mcp.json, safe to commit):
claude mcp add airtable --scope project -- npx -y airtable-user-mcpVerify:
claude mcp listYou should see airtable: npx -y airtable-user-mcp - ✓ Connected. Start a Claude Code session in that directory and the 36 tools are available.
Ask your Claude client:
"List all tables in my Airtable base
appXXXXXXXXXXXXXX."
It will call list_tables and return the names and IDs.
| Symptom | Fix |
|---|---|
Session: not found |
Re-run npx -y airtable-user-mcp login |
| Login window never loads | Check network / firewall, then doctor |
| Browser download fails on Windows | Run PowerShell as Admin once, then retry install-browser |
| Tools don't appear after config change | Fully quit and reopen Claude Desktop (not just the window) |
command not found: npx |
Install Node.js from nodejs.org |
Run npx -y airtable-user-mcp doctor at any time for a full diagnostic.
If you already have Chrome, Edge, or a system Chromium and want to skip the 170 MB download:
# point the server at an existing Chromium-family browser
export AIRTABLE_BROWSER_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" # macOS
# or on Windows (PowerShell):
$env:AIRTABLE_BROWSER_PATH = "C:\Program Files\Google\Chrome\Application\chrome.exe"| Variable | Purpose |
|---|---|
AIRTABLE_USER_MCP_HOME |
Override config dir (default: ~/.airtable-user-mcp) |
AIRTABLE_NO_BROWSER |
Skip Patchright entirely — uses cached cookies only (CI/headless) |
AIRTABLE_HEADLESS_ONLY |
Run the browser without a visible window |
AIRTABLE_LOG_LEVEL |
debug | info | warn | error |
Already covered above — the claude mcp add command or the mcpServers JSON entry both use npx -y airtable-user-mcp under the hood.
Install the Airtable Formula extension — it bundles this server and registers it automatically across all your IDEs. Login and status live in a visual dashboard.
npm install -g airtable-user-mcp
airtable-user-mcp loginThen reference the binary directly in any MCP config:
{ "mcpServers": { "airtable": { "command": "airtable-user-mcp" } } }{
"mcpServers": {
"airtable": {
"command": "node",
"args": ["/path/to/airtable-user-mcp/src/index.js"]
}
}
}npx airtable-user-mcp Start MCP server (stdio) ← what your Claude client runs
npx airtable-user-mcp login Log in to Airtable via browser
npx airtable-user-mcp logout Clear saved session
npx airtable-user-mcp status Show session & browser info
npx airtable-user-mcp doctor Run diagnostics
npx airtable-user-mcp install-browser Download Chromium (~170 MB)
npx airtable-user-mcp --version Print version
npx airtable-user-mcp --help Show this help
| Tool | Description |
|---|---|
get_base_schema |
Full schema of all tables, fields, and views in a base |
list_tables |
List all tables in a base with IDs and names |
get_table_schema |
Full schema for a single table |
list_fields |
All fields in a table with types and configuration |
list_views |
All views in a table with IDs, names, and types |
get_view |
Read a single view's full state — filters, sorts, grouping, visibility, description |
validate_formula |
Validate a formula expression before applying |
| Tool | Description |
|---|---|
create_table |
Create a new table with default fields |
rename_table |
Rename a table |
delete_table |
Delete a table (requires expectedName safety guard) |
| Tool | Description |
|---|---|
create_field |
Create a field — auto-maps url / email / phone / dateTime aliases, plus formula, rollup, lookup, count |
create_formula_field |
Create a formula field (shorthand) |
update_formula_field |
Update the formula text of an existing field |
update_field_config |
Update configuration of any computed field |
rename_field |
Rename a field with pre-validation |
delete_field |
Delete with safety guards and a compact dependency summary |
duplicate_field |
Clone a field, optionally copying cell values |
update_field_description |
Set or update a field's description text |
| Tool | Description |
|---|---|
create_view |
Create grid, form, kanban, calendar, gallery, gantt, or list view |
duplicate_view |
Clone a view with all configuration |
rename_view |
Rename a view |
delete_view |
Delete a view (cannot delete last view) |
update_view_description |
Set or clear a view's description |
update_view_filters |
Set or append filter conditions (AND/OR, nested groups, is/isNot auto-normalized) |
reorder_view_fields |
Change column order |
show_or_hide_view_columns |
Toggle column visibility |
apply_view_sorts |
Set or clear sort conditions |
update_view_group_levels |
Set or clear grouping |
update_view_row_height |
Change row height (small / medium / large / xlarge) |
| Tool | Description |
|---|---|
create_extension |
Register a new extension/block in a base |
create_extension_dashboard |
Create a new dashboard page |
install_extension |
Install an extension onto a dashboard page |
update_extension_state |
Enable or disable an installed extension |
rename_extension |
Rename an installed extension |
duplicate_extension |
Clone an installed extension |
remove_extension |
Remove an extension from a dashboard |
Tool: list_tables
Args: { "appId": "appXXXXXXXXXXXXXX" }
Tool: validate_formula
Args: { "appId": "appXXX", "tableId": "tblXXX", "formulaText": "IF({Price}>0,{Price}*{Qty},0)" }
Tool: create_formula_field
Args: { "appId": "appXXX", "tableId": "tblXXX", "name": "Total", "formulaText": "IF({Price}>0,{Price}*{Qty},0)" }
Tool: update_view_filters
Args: {
"appId": "appXXX",
"viewId": "viwXXX",
"filters": {
"filterSet": [
{ "columnId": "fldXXX", "operator": "isNotEmpty" }
],
"conjunction": "and"
}
}
- Destructive operations (
delete_table,delete_field,delete_view,remove_extension) include built-in safety guards delete_tableanddelete_fieldboth require anexpectedNameparameter that must match the current name exactly — prevents accidentally deleting the wrong object after a renamedelete_fieldchecks for downstream dependencies and returns a compact summary (viewGroupings,viewSorts,viewFilters,fields) before committing; setforce: trueto delete anyway- Formula validation is available and recommended before creating/updating formulas
- All tools accept
debug: truefor raw response inspection
| Entity | Prefix | Example |
|---|---|---|
| Base / App | app |
appXXXXXXXXXXXXXX |
| Table | tbl |
tblXXXXXXXXXXXXXX |
| Field | fld |
fldXXXXXXXXXXXXXX |
| View | viw |
viwXXXXXXXXXXXXXX |
| Block | blk |
blkXXXXXXXXXXXXXX |
| Block Installation | bli |
bliXXXXXXXXXXXXXX |
| Dashboard Page | bip |
bipXXXXXXXXXXXXXX |
| Transport | stdio (JSON-RPC 2.0) |
| MCP Version | 2025-11-25 |
| SDK | @modelcontextprotocol/sdk v1.27.1 |
| Registry | Link |
|---|---|
| npm | airtable-user-mcp |
| VS Code Marketplace | Nskha.airtable-formula |
| GitHub | Automations-Project/VSCode-Airtable-Formula |
| MCP Registry | io.github.automations-project/airtable-user-mcp |
| Glama | glama.ai/mcp/servers |
| PulseMCP | pulsemcp.com |
| MCP.so | mcp.so |
- Airtable Formula VS Code Extension — Dashboard, formula editor, MCP installer, and AI skills
- Model Context Protocol — The open standard for AI tool integration
This project is built and maintained with the help of AI coding tools. If you find it useful and want to support continued development (new tools, updates, bug fixes), you can contribute by gifting Claude Code credits — the primary tool used to build this project.
Interested? Open an issue or reach out to discuss feature requests and sponsorship.