Back to MCP Servers

Airtable

Connect AI tools directly to Airtable. Query, create, update, and delete records using natural language. Features include base management, table operations, schema manipulation, record filtering, and data migration through a standardized MCP interface.

databasesai
By rashidazarang
8728Updated 2 weeks agoTypeScriptMIT

Installation

npx -y airtable-mcp

Configuration

{
  "mcpServers": {
    "airtable-mcp": {
      "command": "npx",
      "args": ["-y", "airtable-mcp"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes

Airtable MCP Server

Trust Score smithery badge Airtable MCP TypeScript AI Agent Security Protocol

A Model Context Protocol (MCP) server for Airtable with full CRUD operations, schema management, record comments, webhooks, batch operations, governance controls, and AI-powered analytics.

Version 5.1.0 | MCP Protocol 2026-07-28 (stateless core, legacy 2025-era clients still served) | Works with Claude, Codex, Cursor, Windsurf, VS Code, and any MCP client | npm


Quick Start (Claude Desktop)

No installation required — just add this to your Claude Desktop config and restart:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": ["-y", "@rashidazarang/airtable-mcp"],
      "env": {
        "AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN",
        "AIRTABLE_BASE_ID": "YOUR_BASE_ID"
      }
    }
  }
}

That's it. npx downloads and runs the server automatically. No git clone, no npm install.

Get your token at airtable.com/create/tokens — grant all scopes listed under Token Scopes below. Get your Base ID from the URL when viewing your base: https://airtable.com/[BASE_ID]/... (or omit it and use list_bases to discover bases dynamically).


Quick Start (Claude Code)

One-command install

curl -fsSL https://raw.githubusercontent.com/rashidazarang/airtable-mcp/main/setup.sh | bash

The script checks prerequisites, prompts for your Airtable token, and writes the MCP config to ~/.claude.json. Restart Claude Code (or run /mcp) to connect.

You can also pass your token directly:

curl -fsSL https://raw.githubusercontent.com/rashidazarang/airtable-mcp/main/setup.sh | bash -s -- YOUR_AIRTABLE_TOKEN

Manual config

Add to ~/.claude.json under mcpServers:

{
  "airtable": {
    "type": "stdio",
    "command": "/bin/bash",
    "args": ["-c", "cd /tmp && npx -y @rashidazarang/airtable-mcp"],
    "env": {
      "AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN"
    }
  }
}

Why the bash wrapper? npx can fail to resolve the binary when run from a directory that contains a package.json with the same package name. The cd /tmp && prefix avoids this edge case.


Quick Start (Codex, Cursor, Windsurf, VS Code)

The server works with any MCP client. It serves both the modern 2026-07-28 protocol and 2025-era clients automatically — no configuration needed for either.

OpenAI Codex (CLI, IDE extension, ChatGPT desktop)

One command:

codex mcp add airtable -- npx -y @rashidazarang/airtable-mcp

Or edit ~/.codex/config.toml (or .codex/config.toml for a trusted project) directly:

[mcp_servers.airtable]
command = "npx"
args = ["-y", "@rashidazarang/airtable-mcp"]

[mcp_servers.airtable.env]
AIRTABLE_TOKEN = "YOUR_AIRTABLE_TOKEN"

The Codex CLI, IDE extension, and ChatGPT desktop app share this configuration.

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):

{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": ["-y", "@rashidazarang/airtable-mcp"],
      "env": {
        "AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN",
        "AIRTABLE_TOOLSET": "core"
      }
    }
  }
}

Why AIRTABLE_TOOLSET=core? Cursor caps agents at 40 enabled tools across all servers, and this server exposes 42. The core profile registers the 18 record-centric tools (reads, writes, batches, governance), leaving room for other servers. Omit it (or set full) if Airtable is your only MCP server and you manage the cap by disabling individual tools in Cursor's Tools & MCP settings. Also note: Cursor offers MCP tools in Agent and Plan modes only (not Ask/Edit), and consumes tools and resources but not MCP prompts.

Windsurf

Add the same JSON block to ~/.codeium/windsurf/mcp_config.json (Cascade → MCP settings). Windsurf supports per-tool toggling if you prefer the full toolset.

VS Code (GitHub Copilot agent mode)

Add to .vscode/mcp.json:

{
  "servers": {
    "airtable": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@rashidazarang/airtable-mcp"],
      "env": { "AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN" }
    }
  }
}

Compatibility notes (any client)

  • Both protocol eras served — modern 2026-07-28 clients and legacy 2025-era clients (Codex, Cursor, Windsurf, Cline, Zed, and most others today) negotiate automatically.
  • Tool names are client-safe — bare snake_case, well under length limits, and free of : and * (reserved by Cursor's allowlist grammar server:tool).
  • Logs never touch stdout — all logging goes to stderr, so stdio framing is never corrupted.
  • Remote/HTTP clients — start the server with PORT or MCP_HTTP_PORT set and point the client at http://host:port/mcp (streamable HTTP, stateless; /health for orchestrators).
  • Tool caps — use AIRTABLE_TOOLSET=core or an explicit allowlist (e.g. AIRTABLE_TOOLSET=describe,query,list_records) for clients that limit enabled tools or to slim the agent's context.

Overview

This server provides comprehensive Airtable integration through the Model Context Protocol, enabling natural language interactions with your Airtable data. It includes 42 tools covering every Airtable PAT scope and 10 AI prompt templates for intelligent analytics.

Key Features

  • Full CRUD Operations — Create, read, update, and delete records with filtering and pagination
  • Record Comments — List, create, update, and delete comments on records
  • Schema Management — Create and modify tables, fields, and views programmatically
  • Batch Operations — Process up to 10 records per operation for improved performance
  • Webhook Management — Set up real-time notifications for data changes
  • Governance & Compliance — Allow-list governance, PII masking, and exception tracking
  • User Identity — Verify token identity with the whoami tool
  • AI Analytics — 10 prompt templates for predictive analytics, natural language queries, and automated insights
  • Multi-Base Support — Discover and work with multiple bases dynamically
  • Type Safety — Full TypeScript support with comprehensive type definitions

Protocol Support

Built on the MCP 2026-07-28 specification with the v2 TypeScript SDK (@modelcontextprotocol/server):

  • Stateless core — every request is served by a fresh server instance from a shared factory; no sessions, no sticky routing. In HTTP mode any request can land on any replica, so the server deploys cleanly to serverless and horizontally scaled environments.
  • Both eras served — modern 2026-07-28 clients (per-request envelope) and legacy 2025-era clients (initialize handshake) are handled by the same factory: per-connection era pinning over stdio, per-request stateless fallback over HTTP.
  • Transports — stdio (serveStdio) for local clients like Claude Desktop/Code, and streamable HTTP (createMcpHandler + Node adapter) when PORT/MCP_HTTP_PORT is set, with a /health endpoint for orchestrators.
  • Tasks extension — deliberately not implemented: the 2026-07-28 spec moved Tasks out of core into the io.modelcontextprotocol/tasks extension, and every operation this server exposes is a sub-second Airtable API call (batches are capped at 10 records), so background-task semantics add nothing. This will be revisited if long-running tools are added.

Prerequisites

  • Node.js 20 or later (required by the MCP v2 SDK)
  • An Airtable account with a Personal Access Token
  • Your Airtable Base ID (optional — can be discovered via the list_bases tool)

Token Scopes

Create a Personal Access Token at airtable.com/create/tokens with these scopes:

ScopePurpose
data.records:readRead records
data.records:writeCreate, update, delete records
data.recordComments:readRead record comments
data.recordComments:writeCreate, update, delete comments
schema.bases:readView table schemas
schema.bases:writeCreate and modify tables and fields
user.email:readRead user identity (whoami)
webhook:manageManage webhooks (optional)

Usage

Once configured, interact with your Airtable data using natural language:

Basic Operations

  • "List all my accessible Airtable bases"
  • "Show me all records in the Projects table"
  • "Create a new task with priority 'High' and due date tomorrow"
  • "Update the status of task ID rec123 to 'Completed'"
  • "Search for records where Status equals 'Active'"

Schema Management

  • "Show me the complete schema for this base"
  • "Create a new table called 'Tasks' with Name, Priority, and Due Date fields"
  • "Add a Status field to the Projects table"

Record Comments

  • "Show me all comments on record rec123"
  • "Add a comment to this record: 'Reviewed and approved'"
  • "Update my comment to say 'Needs revision'"

Batch Operations

  • "Create 5 new records at once in the Tasks table"
  • "Update multiple records with new status values"
  • "Delete these 3 records in one operation"

Webhooks

  • "List all active webhooks in my base"
  • "Create a webhook for changes to my Projects table"

Available Tools (42)

Core Operations (4 tools)

ToolDescription
list_basesList all accessible bases with permissions
describeDescribe base or table schema (supports detail levels)
queryQuery records with filtering, sorting, and pagination
search_recordsAdvanced search with Airtable formulas

Record CRUD (5 tools)

ToolDescription
list_recordsList records with field selection and pagination
get_recordRetrieve a single record by ID
createCreate new records (requires dryRun diff review)
updateUpdate existing records (requires dryRun diff review)
delete_recordRemove a record from a table

Upsert (2 tools)

ToolDescription
upsertUpdate or create records based on merge fields
batch_upsert_recordsBatch upsert with merge-on fields

Schema Discovery (4 tools)

ToolDescription
list_tablesGet all tables in a base with schema info
get_base_schemaGet complete schema for any base
list_field_typesReference guide for available field types
get_table_viewsList all views for a table

Table Management (3 tools)

ToolDescription
create_tableCreate tables with custom field definitions
update_tableModify table names and descriptions
delete_tableRemove tables (requires confirmation)

Field Managem

View source on GitHub