AI

Airtable MCP Server for Schema-Aware Read and Write

Enable schema-aware read and write access to Airtable databases with an MCP server that lets LLMs inspect schemas and modify records.

Quick Install
npx -y @domdomegg/airtable-mcp-server

Overview

Airtable MCP Server for Schema-Aware Read and Write is a Model Context Protocol (MCP) server that exposes Airtable bases, tables, and records to LLM-powered clients in a schema-aware way. It lets LLMs inspect base and table schemas, enumerate and search records, and perform read/write operations while preserving structural context (field types, view definitions, field IDs). This makes it easier to build assistants that understand your Airtable layout and modify records safely.

The server runs locally (or in a container) and communicates with MCP-capable clients such as Claude Desktop, Cursor, and Cline. It uses an Airtable personal access token (PAT) to authenticate and only surfaces the resources and actions allowed by that token’s scopes. The result is a developer-friendly bridge between LLMs and Airtable data, useful for automation, data augmentation, and contextual prompts that need accurate schema knowledge.

Features

  • Exposes Airtable bases, tables, fields, and views to LLMs via MCP
  • Schema-aware operations: LLMs can inspect field types and IDs before modifying records
  • Read operations: list bases, list tables, describe table schemas, list/search/get records
  • Configurable detail levels (identifiers only vs. full schema)
  • Simple integrations via npx or JSON MCP configuration for popular clients
  • Respectful of Airtable PAT scopes (read/write limited by token)

Installation / Configuration

Prerequisites:

  • Node.js installed (for npx installs)
  • An Airtable personal access token (PAT) with the necessary scopes:
    • Required scopes: schema.bases:read, data.records:read
    • Optional (for write operations): schema.bases:write, data.records:write, data.recordComments:read, data.recordComments:write
  • Create a PAT at: https://airtable.com/create/tokens/new

Minimal local run (for testing):

# Runs the MCP server in-process and sets your PAT
AIRTABLE_API_KEY="pat123.yourtoken" npx -y airtable-mcp-server

Example MCP JSON configuration (for Claude Desktop, Cursor, Cline or other clients that accept an mcp.json):

{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": ["-y", "airtable-mcp-server"],
      "env": {
        "AIRTABLE_API_KEY": "pat123.yourtoken"
      }
    }
  }
}

One-click installs:

  • For Cursor: use the provided install link or add the same config to ~/.cursor/mcp.json or .cursor/mcp.json
  • For Claude Desktop: install via Extensions → Browse → Airtable MCP Server, or add to claude_desktop_config.json under mcpServers
  • For Cline: install via the MCP Marketplace or add the config in the “Installed → Configure MCP Servers” UI

GitHub repository and issues:

  • Code and releases: https://github.com/domdomegg/airtable-mcp-server

Available Tools

The MCP server exposes a set of tools (MCP components) that clients/LLMs can call. Brief summaries:

ToolPurposeKey input params
list_basesList accessible Airtable basesnone
list_tablesList tables in a base (optionally with schema)baseId, detailLevel
describe_tableGet detailed schema for one tablebaseId, tableId, detailLevel
list_recordsList records from a tablebaseId, tableId, maxRecords, filterByFormula
search_recordsSearch records for textbaseId, tableId, searchTerm, fieldIds, maxRecords
get_recordFetch a single record by IDbaseId, tableId, recordId

detailLevel options:

  • tableIdentifiersOnly — minimal info (IDs and names)
  • identifiersOnly — includes field IDs and basic types
  • full — full field metadata, views, and descriptions

Example JSON call to list_records:

{
  "tool": "list_records",
  "input": {
    "baseId": "appAbc123",
    "tableId": "tblXyz456",
    "maxRecords": 50,
    "filterByFormula": "AND({Status} = 'Open')"
  }
}

Use Cases

  • Schema-aware assistant that suggests field updates: an LLM can call describe_table to learn field types before producing a patch to a record.
  • Data enrichment pipelines: automatically search for rows missing data, call external APIs to enrich values, and write back validated values into the proper Airtable fields.
  • Controlled data migrations: export table schemas (via describe_table and list_tables) to drive automated migration scripts that map fields between bases.
  • Interactive database helpers inside chat UIs: users ask an LLM to “find recent invoices over $1,000,” the assistant calls search_records/list_records and presents results or updates record statuses.

Examples

Describe a table to the model (JSON):

{
  "tool": "describe_table",
  "input": {
    "baseId": "appAbc123",
    "tableId": "tblXyz456",
    "detailLevel": "full"
  }
}

Search for text across text fields:

{
  "tool": "search_records",
  "input": {
    "baseId": "appAbc123",
    "tableId": "tblXyz456",
    "searchTerm": "Acme Corp",
    "maxRecords": 20
  }
}

Notes and Best Practices

  • Token scopes determine what the MCP server can do; grant the minimum required scopes to reduce risk.
  • Consider read-only tokens in production for assistants that should not modify data.
  • Airtable API rate limits still apply; batch operations may need throttling or pagination.
  • The server surfaces field IDs and types — prefer using field IDs when writing records to avoid errors if field names change.

Links

  • GitHub: https://github.com/domdomegg/airtable-mcp-server
  • Airtable PAT creation: https://airtable.com/create/tokens/new