Airtable MCP

by rashidazarang

86 732 downloads Not rated yet MIT

About

Airtable integration for AI-powered applications via Anthropic's Model Context Protocol (MCP)

Details

License
MIT

Explore

- 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

---

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Airtable MCP
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

- Node.js 18 or later
- An Airtable account with a Personal Access Token
- Your Airtable Base ID (optional — can be discovered via the list_bases tool)

---

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).

---

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

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.

---

| Variable | Required | Description |
|----------|----------|-------------|
| AIRTABLE_TOKEN | Yes | Personal Access Token |
| AIRTABLE_BASE_ID | No | Default base ID (discoverable via list_bases) |
| LOG_LEVEL | No | Logging level (default: info) |
| MCP_HTTP_PORT | No | Enable HTTP transport for hosted deployments |

---

list_bases

List all accessible bases with permissions

describe

Describe base or table schema (supports detail levels)

query

Query records with filtering, sorting, and pagination

search_records

Advanced search with Airtable formulas

list_records

List records with field selection and pagination

get_record

Retrieve a single record by ID

create

Create new records (requires dryRun diff review)

update

Update existing records (requires dryRun diff review)

delete_record

Remove a record from a table

upsert

Update or create records based on merge fields

batch_upsert_records

Batch upsert with merge-on fields

list_tables

Get all tables in a base with schema info

get_base_schema

Get complete schema for any base

list_field_types

Reference guide for available field types

get_table_views

List all views for a table

create_table

Create tables with custom field definitions

update_table

Modify table names and descriptions

delete_table

Remove tables (requires confirmation)

create_field

Add fields to existing tables

update_field

Modify field properties and options

delete_field

Remove fields (requires confirmation)

batch_create_records

Create up to 10 records at once

batch_update_records

Update up to 10 records simultaneously

batch_delete_records

Delete up to 10 records in one operation

list_webhooks

View all configured webhooks

create_webhook

Set up real-time notifications

delete_webhook

Remove webhook configurations

get_webhook_payloads

Retrieve notification history

refresh_webhook

Extend webhook expiration

create_view

Create views (grid, form, calendar, etc.)

get_view_metadata

Get view details including filters

upload_attachment

Attach files from URLs

create_base

Create new bases with initial structure

list_collaborators

View collaborators and permissions

list_shares

List shared views and configurations

list_comments

List comments on a record

create_comment

Add a comment to a record

update_comment

Edit an existing comment

delete_comment

Remove a comment

whoami

Get current user identity and scopes

list_governance

Return governance allow-lists and PII masking policies

list_exceptions

List recent exceptions and remediation proposals

| Tool | Description |
|------|-------------|
| list_bases | List all accessible bases with permissions |
| describe | Describe base or table schema (supports detail levels) |
| query | Query records with filtering, sorting, and pagination |
| search_records | Advanced search with Airtable formulas |

| Tool | Description |
|------|-------------|
| list_records | List records with field selection and pagination |
| get_record | Retrieve a single record by ID |
| create | Create new records (requires dryRun diff review) |
| update | Update existing records (requires dryRun diff review) |
| delete_record | Remove a record from a table |

| Tool | Description |
|------|-------------|
| upsert | Update or create records based on merge fields |
| batch_upsert_records | Batch upsert with merge-on fields |

| Tool | Description |
|------|-------------|
| list_tables | Get all tables in a base with schema info |
| get_base_schema | Get complete schema for any base |
| list_field_types | Reference guide for available field types |
| get_table_views | List all views for a table |

| Tool | Description |
|------|-------------|
| create_table | Create tables with custom field definitions |
| update_table | Modify table names and descriptions |
| delete_table | Remove tables (requires confirmation) |

| Tool | Description |
|------|-------------|
| create_field | Add fields to existing tables |
| update_field | Modify field properties and options |
| delete_field | Remove fields (requires confirmation) |

| Tool | Description |
|------|-------------|
| batch_create_records | Create up to 10 records at once |
| batch_update_records | Update up to 10 records simultaneously |
| batch_delete_records | Delete up to 10 records in one operation |

| Tool | Description |
|------|-------------|
| list_webhooks | View all configured webhooks |
| create_webhook | Set up real-time notifications |
| delete_webhook | Remove webhook configurations |
| get_webhook_payloads | Retrieve notification history |
| refresh_webhook | Extend webhook expiration |

| Tool | Description |
|------|-------------|
| create_view | Create views (grid, form, calendar, etc.) |
| get_view_metadata | Get view details including filters |
| upload_attachment | Attach files from URLs |

| Tool | Description |
|------|-------------|
| create_base | Create new bases with initial structure |
| list_collaborators | View collaborators and permissions |
| list_shares | List shared views and configurations |

| Tool | Description |
|------|-------------|
| list_comments | List comments on a record |
| create_comment | Add a comment to a record |
| update_comment | Edit an existing comment |
| delete_comment | Remove a comment |

| Tool | Description |
|------|-------------|
| whoami | Get current user identity and scopes |

| Tool | Description |
|------|-------------|
| list_governance | Return governance allow-lists and PII masking policies |
| list_exceptions | List recent exceptions and remediation proposals |

---

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

McpServers

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

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 4.0.0 | MCP Protocol 2024-11-05 | 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.

---

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

---

Prerequisites

- Node.js 18 or later
- 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:

| Scope | Purpose |
|-------|---------|
| data.records:read | Read records |
| data.records:write | Create, update, delete records |
| data.recordComments:read | Read record comments |
| data.recordComments:write | Create, update, delete comments |
| schema.bases:read | View table schemas |
| schema.bases:write | Create and modify tables and fields |
| user.email:read | Read user identity (whoami) |
| webhook:manage | Manage 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)

| Tool | Description |
|------|-------------|
| list_bases | List all accessible bases with permissions |
| describe | Describe base or table schema (supports detail levels) |
| query | Query records with filtering, sorting, and pagination |
| search_records | Advanced search with Airtable formulas |

Record CRUD (5 tools)

| Tool | Description |
|------|-------------|
| list_records | List records with field selection and pagination |
| get_record | Retrieve a single record by ID |
| create | Create new records (requires dryRun diff review) |
| update | Update existing records (requires dryRun diff review) |
| delete_record | Remove a record from a table |

Upsert (2 tools)

| Tool | Description |
|------|-------------|
| upsert | Update or create records based on merge fields |
| batch_upsert_records | Batch upsert with merge-on fields |

Schema Discovery (4 tools)

| Tool | Description |
|------|-------------|
| list_tables | Get all tables in a base with schema info |
| get_base_schema | Get complete schema for any base |
| list_field_types | Reference guide for available field types |
| get_table_views | List all views for a table |

Table Management (3 tools)

| Tool | Description |
|------|-------------|
| create_table | Create tables with custom field definitions |
| update_table | Modify table names and descriptions |
| delete_table | Remove tables (requires confirmation) |

Field Management (3 tools)

| Tool | Description |
|------|-------------|
| create_field | Add fields to existing tables |
| update_field | Modify field properties and options |
| delete_field | Remove fields (requires confirmation) |

Batch Operations (3 tools)

| Tool | Description |
|------|-------------|
| batch_create_records | Create up to 10 records at once |
| batch_update_records | Update up to 10 records simultaneously |
| batch_delete_records | Delete up to 10 records in one operation |

Webhook Management (5 tools)

| Tool | Description |
|------|-------------|
| list_webhooks | View all configured webhooks |
| create_webhook | Set up real-time notifications |
| delete_webhook | Remove webhook configurations |
| get_webhook_payloads | Retrieve notification history |
| refresh_webhook | Extend webhook expiration |

Views & Attachments (3 tools)

| Tool | Description |
|------|-------------|
| create_view | Create views (grid, form, calendar, etc.) |
| get_view_metadata | Get view details including filters |
| upload_attachment | Attach files from URLs |

Base Management (3 tools)

| Tool | Description |
|------|-------------|
| create_base | Create new bases with initial structure |
| list_collaborators | View collaborators and permissions |
| list_shares | List shared views and configurations |

Record Comments (4 tools)

| Tool | Description |
|------|-------------|
| list_comments | List comments on a record |
| create_comment | Add a comment to a record |
| update_comment | Edit an existing comment |
| delete_comment | Remove a comment |

User Info (1 tool)

| Tool | Description |
|------|-------------|
| whoami | Get current user identity and scopes |

Governance & Administration (2 tools)

| Tool | Description |
|------|-------------|
| list_governance | Return governance allow-lists and PII masking policies |
| list_exceptions | List recent exceptions and remediation proposals |

---

AI Intelligence Suite

Ten AI prompt templates for advanced analytics:

| Prompt | Description |
|--------|-------------|
| analyze_data | Statistical analysis with anomaly detection |
| create_report | Intelligent report generation |
| data_insights | Business intelligence and pattern discovery |
| optimize_workflow | Automation recommendations |
| smart_schema_design | Database optimization suggestions |
| data_quality_audit | Quality assessment and remediation |
| predictive_analytics | Forecasting and trend prediction |
| natural_language_query | Process questions with context awareness |
| smart_data_transformation | AI-assisted data processing |
| automation_recommendations | Workflow optimization with cost-benefit analysis |

---

Advanced Configuration

Smithery Cloud

{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": [
        "@smithery/cli",
        "run",
        "@rashidazarang/airtable-mcp"
      ],
      "env": {
        "AIRTABLE_TOKEN": "YOUR_TOKEN",
        "AIRTABLE_BASE_ID": "YOUR_BASE_ID"
      }
    }
  }
}

Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| AIRTABLE_TOKEN | Yes | Personal Access Token |
| AIRTABLE_BASE_ID | No | Default base ID (discoverable via list_bases) |
| LOG_LEVEL | No | Logging level (default: info) |
| MCP_HTTP_PORT | No | Enable HTTP transport for hosted deployments |

---

Development

> Not required for users. Clone the repo only if you want to contribute or modify the server. End users should use npx as shown in the Quick Start sections above.

git clone https://github.com/rashidazarang/airtable-mcp.git
cd airtable-mcp
npm install
npm run build

Testing

npm run test:types     # Type checking
npm test               # Run test suite

Project Structure

airtable-mcp/
├── src/typescript/          # TypeScript implementation
│   ├── app/
│   │   ├── tools/           # 42 tool implementations
│   │   ├── prompts/         # 10 AI prompt registrations
│   │   ├── airtable-client.ts
│   │   ├── governance.ts
│   │   └── context.ts
│   └── airtable-mcp-server.ts
├── dist/                    # Compiled output
├── docs/                    # Documentation
├── types/                   # TypeScript definitions
└── bin/                     # CLI executables

---

Troubleshooting

Connection Issues
- Verify the MCP server is running
- Restart your MCP client
- Check that your token has the required scopes

Invalid Token
- Verify your Personal Access Token is correct
- Confirm the token has the required scopes
- Check for extra whitespace in credentials

Base Not Found
- Confirm your Base ID is correct
- Verify your token has access to the base
- Use list_bases to discover accessible bases

---

Documentation

- Changelog
- Release Notes

---

Contributing

Contributions are welcome. Please open an issue first to discuss major changes.

---

License

MIT License — see LICENSE for details.

---

Support

- GitHub Issues
- GitHub Discussions

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.

Videos about Airtable MCP

Relevant YouTube tutorials, setups, and demos