MCP Hub
Back to servers

airtable-mcp

A comprehensive Airtable integration for MCP that provides full CRUD operations, schema management, batch processing, and AI-powered analytics for your bases.

Stars
61
Forks
20
Tools
33
Updated
Jan 7, 2026
Validated
Jan 9, 2026

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, webhooks, batch operations, and AI-powered analytics.

Version 3.2.6 | MCP Protocol 2024-11-05


Overview

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

Key Features

  • Full CRUD Operations — Create, read, update, and delete records with filtering and pagination
  • 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
  • AI Analytics — 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 14 or later
  • An Airtable account with a Personal Access Token
  • Your Airtable Base ID (optional—can be discovered via the list_bases tool)

Installation

Option 1: NPM (Recommended)

npm install -g @rashidazarang/airtable-mcp

Option 2: Clone from GitHub

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

Configuration

Step 1: Get Your Airtable Credentials

  1. Personal Access Token: Go to Airtable Account Settings and create a token with these scopes:

    • data.records:read — Read records
    • data.records:write — Create, update, delete records
    • schema.bases:read — View table schemas
    • schema.bases:write — Create and modify tables and fields
    • webhook:manage — Manage webhooks (optional)
  2. Base ID: Open your Airtable base and copy the ID from the URL: https://airtable.com/[BASE_ID]/...

Step 2: Environment Variables

Create a .env file in your project directory:

AIRTABLE_TOKEN=your_personal_access_token
AIRTABLE_BASE_ID=your_base_id  # Optional in v3.2.5+

Note: The Base ID is optional. You can start without one and use the list_bases tool to discover accessible bases, or specify base IDs per tool call.

Step 3: Configure Your MCP Client

Add to your Claude Desktop configuration:

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

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

To start without a base ID (and discover bases dynamically):

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

Step 4: Restart Your MCP Client

Restart Claude Desktop or your MCP client to load the server.


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"

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

TypeScript Usage

import {
  AirtableMCPServer,
  ListRecordsInput,
  AnalyzeDataPrompt
} from '@rashidazarang/airtable-mcp/types';

const server = new AirtableMCPServer();

const params: ListRecordsInput = {
  table: 'Tasks',
  maxRecords: 10,
  filterByFormula: "Status = 'Active'"
};

const records = await server.handleToolCall('list_records', params);

Available Tools

Data Operations (7 tools)

ToolDescription
list_tablesGet all tables in your base with schema information
list_recordsQuery records with filtering and pagination
get_recordRetrieve a single record by ID
create_recordAdd new records to any table
update_recordModify existing record fields
delete_recordRemove records from a table
search_recordsAdvanced search with Airtable formulas

Schema Discovery (6 tools)

ToolDescription
list_basesList all accessible bases with permissions
get_base_schemaGet complete schema for any base
describe_tableGet detailed table and field specifications
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 Management (3 tools)

ToolDescription
create_fieldAdd fields to existing tables
update_fieldModify field properties and options
delete_fieldRemove fields (requires confirmation)

Batch Operations (4 tools)

ToolDescription
batch_create_recordsCreate up to 10 records at once
batch_update_recordsUpdate up to 10 records simultaneously
batch_delete_recordsDelete up to 10 records in one operation
batch_upsert_recordsUpdate or create records based on key fields

Webhook Management (5 tools)

ToolDescription
list_webhooksView all configured webhooks
create_webhookSet up real-time notifications
delete_webhookRemove webhook configurations
get_webhook_payloadsRetrieve notification history
refresh_webhookExtend webhook expiration

Views and Attachments (3 tools)

ToolDescription
create_viewCreate views (grid, form, calendar, etc.)
get_view_metadataGet view details including filters
upload_attachmentAttach files from URLs

Base Management (3 tools)

ToolDescription
create_baseCreate new bases with initial structure
list_collaboratorsView collaborators and permissions
list_sharesList shared views and configurations

AI Intelligence Suite

Ten AI prompt templates for advanced analytics:

PromptDescription
analyze_dataStatistical analysis with anomaly detection
create_reportIntelligent report generation
data_insightsBusiness intelligence and pattern discovery
optimize_workflowAutomation recommendations
smart_schema_designDatabase optimization suggestions
data_quality_auditQuality assessment and remediation
predictive_analyticsForecasting and trend prediction
natural_language_queryProcess questions with context awareness
smart_data_transformationAI-assisted data processing
automation_recommendationsWorkflow optimization with cost-benefit analysis

Advanced Configuration

Smithery Cloud

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

Direct Node.js Execution

{
  "mcpServers": {
    "airtable": {
      "command": "node",
      "args": [
        "/path/to/airtable-mcp/airtable_simple.js",
        "--token", "YOUR_TOKEN",
        "--base", "YOUR_BASE_ID"
      ]
    }
  }
}

Testing

TypeScript

npm install
npm run test:types    # Type checking
npm run test:ts       # Full test suite
npm run build && npm run start:ts

JavaScript

export AIRTABLE_TOKEN=your_token
export AIRTABLE_BASE_ID=your_base_id
node airtable_simple.js &
./test_v1.6.0_comprehensive.sh

Troubleshooting

Connection Refused

  • Verify the MCP server is running
  • Check that port 8010 is available
  • Restart your MCP client

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

Port Conflicts

lsof -ti:8010 | xargs kill -9

Project Structure

airtable-mcp/
├── src/
│   ├── typescript/       # TypeScript implementation (primary)
│   └── javascript/       # JavaScript implementation
├── dist/                 # Compiled output
├── docs/                 # Documentation
├── tests/                # Test files
├── examples/             # Usage examples
├── types/                # TypeScript definitions
└── bin/                  # CLI executables

Documentation


Contributing

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


License

MIT License — see LICENSE for details.


Support

Reviews

No reviews yet

Sign in to write a review