Skip to main content

Airtable MCP Server

Create a powerful Model Context Protocol (MCP) server for Airtable in minutes with our AI Gateway. This guide walks you through setting up seamless database integration with spreadsheet-like ease and instant API authentication.

About Airtable API

Airtable is a cloud-based platform that combines the simplicity of a spreadsheet with the power of a database. The API enables programmatic access to your bases, tables, records, and views, allowing for powerful integrations and automations.

Key Capabilities

  • Database Management: Create, read, update, and delete records
  • Schema Operations: Manage tables, fields, and views
  • Collaboration: Share bases and manage permissions
  • Attachments: Upload and manage file attachments
  • Formulas: Leverage Airtable's formula engine
  • Automations: Trigger workflows and integrations
  • Real-time Updates: Subscribe to changes via webhooks
  • Enterprise Features: Advanced security and audit logs

API Features

  • RESTful API: Standard HTTP methods
  • Personal Access Tokens: Secure authentication
  • Rate Limiting: 5 requests per second per base
  • Pagination: Handle large datasets efficiently
  • Field Types: Support for 20+ field types
  • Filtering: Complex queries with filterByFormula
  • Sorting: Multi-field sorting capabilities
  • Batch Operations: Create/update multiple records

What You Can Do with Airtable MCP Server

The MCP server transforms Airtable API into a natural language interface, enabling AI agents to:

Database Operations

  • Record Management

    • "Create new customer record"
    • "Update project status to completed"
    • "Delete old inventory items"
    • "Find all active clients"
  • Table Operations

    • "List all tables in Sales base"
    • "Get table schema"
    • "Count records in Orders table"
    • "Export table to CSV"
  • View Management

    • "Show records from 'This Week' view"
    • "Apply filters from saved view"
    • "Create custom filtered view"
    • "Sort by priority and date"

Search and Filter

  • Basic Queries

    • "Find products under $50"
    • "Search for customers in California"
    • "Get overdue tasks"
    • "Show high-priority items"
  • Complex Filtering

    • "Find orders from last month over $1000"
    • "Get tasks assigned to John due this week"
    • "Show products with low inventory"
    • "Filter by multiple conditions"
  • Formula-based Queries

    • "Calculate total revenue by month"
    • "Find records matching formula"
    • "Apply complex business logic"
    • "Use Airtable functions"

File Management

  • Attachments

    • "Upload invoice PDF"
    • "Add product images"
    • "Download all attachments"
    • "Replace existing files"
  • Media Handling

    • "Process image thumbnails"
    • "Get file metadata"
    • "Validate file types"
    • "Manage storage limits"

Data Synchronization

  • Import/Export

    • "Import CSV data"
    • "Export to Excel format"
    • "Sync with external systems"
    • "Bulk data operations"
  • Integration Support

    • "Sync with CRM"
    • "Update from webhooks"
    • "Push to analytics"
    • "Real-time updates"

Collaboration Features

  • Base Sharing

    • "Share base with team"
    • "Set view permissions"
    • "Manage collaborators"
    • "Control access levels"
  • Comments & Activity

    • "Add comment to record"
    • "View revision history"
    • "Track changes"
    • "Get activity feed"

Analytics and Reporting

  • Aggregations

    • "Sum sales by region"
    • "Count tasks by status"
    • "Average project duration"
    • "Group by categories"
  • Custom Reports

    • "Generate monthly summary"
    • "Create pivot tables"
    • "Build dashboards"
    • "Export visualizations"

Prerequisites

  • Access to Cequence AI Gateway
  • Airtable account (Free tier or higher)
  • Base ID and table names
  • Personal Access Token or API key

Step 1: Configure Airtable API Access

1.1 Get Your API Key

  1. Log in to Airtable
  2. Go to Account Overview
  3. Click on "API" in the left sidebar
  4. Generate a Personal Access Token with required scopes

1.2 Find Your Base ID

  1. Open your Airtable base
  2. Click "Help" "API documentation"
  3. Copy the Base ID (starts with 'app')
  4. Note your table names

1.3 Set Token Scopes

Configure your token with these scopes:

  • data.records:read - Read records
  • data.records:write - Create/update records
  • data.recordComments:read - Read comments
  • data.recordComments:write - Write comments
  • schema.bases:read - Read base schema
  • schema.bases:write - Modify schema (if needed)

Step 2-4: Standard Setup

Follow standard steps to access AI Gateway, find Airtable API, and create MCP server.

Step 5: Configure API Endpoints

  1. Base URL: https://api.airtable.com/v0/{baseId}
  2. Table Selection: Choose tables to expose
  3. View Configuration: Select default views
  4. Click Next

Step 6: MCP Server Configuration

  1. Name: "Airtable Database"
  2. Description: "Spreadsheet database integration"
  3. Rate Limits: Configure based on your plan
  4. Click Next

Step 7: Configure Authentication

  1. Authentication Type: Bearer Token
  2. Token Format: Personal Access Token
  3. Header: Authorization: Bearer YOUR_TOKEN
  4. Test connection with sample request

Available Airtable API Operations

Record Operations

  • List Records

    • Get all records from table
    • Apply filters and sorting
    • Paginate through results
    • Select specific fields
  • Create Records

    • Single record creation
    • Batch create (up to 10)
    • Set field values
    • Return created data
  • Update Records

    • Update specific fields
    • Replace entire record
    • Batch updates
    • Conditional updates
  • Delete Records

    • Single deletion
    • Batch delete
    • Soft delete options
    • Cascade handling

Schema Operations

  • Get Base Schema

    • List all tables
    • Field configurations
    • View definitions
    • Relationships
  • Table Management

    • Create new tables
    • Modify field types
    • Add/remove fields
    • Set validations

Advanced Features

  • Webhooks

    • Subscribe to changes
    • Real-time notifications
    • Event filtering
    • Payload customization
  • Metadata API

    • Base information
    • Collaborator details
    • Permission levels
    • Usage statistics

Step 8-10: Complete Setup

Configure security settings, choose deployment options, and deploy your server.

Using Your Airtable MCP Server

With Claude Desktop

{
"servers": {
"airtable": {
"url": "your-mcp-server-url",
"auth": {
"type": "bearer",
"token": "your-personal-access-token"
},
"config": {
"baseId": "appXXXXXXXXXXXXXX",
"tables": ["Customers", "Orders", "Products"]
}
}
}
}

Natural Language Commands

  • "Show all customers from the West region"
  • "Create a new order for John Doe"
  • "Update product inventory after sale"
  • "Find overdue invoices from this month"
  • "Calculate total revenue by product category"

API Integration Example

// Initialize MCP client
const mcpClient = new MCPClient({
serverUrl: 'your-mcp-server-url',
auth: {
type: 'bearer',
token: 'your-personal-access-token'
}
});

// List records with filtering
const customers = await mcpClient.airtable.listRecords({
tableName: 'Customers',
filterByFormula: "AND({Status} = 'Active', {Region} = 'West')",
sort: [
{ field: 'Company Name', direction: 'asc' }
],
maxRecords: 100,
fields: ['Company Name', 'Contact', 'Email', 'Status']
});

console.log(`Found ${customers.records.length} active customers in West region`);

// Create a new record
const newOrder = await mcpClient.airtable.createRecord({
tableName: 'Orders',
fields: {
'Order Number': 'ORD-2025-001',
'Customer': ['recXXXXXXXXXXXXXX'], // Link to customer record
'Products': ['recYYYYYYYYYYYYYY', 'recZZZZZZZZZZZZZZ'], // Multiple products
'Order Date': '2025-01-30',
'Status': 'Pending',
'Total Amount': 1500.00,
'Notes': 'Rush delivery requested'
}
});

console.log(`Created order: ${newOrder.id}`);

// Update multiple records
const updates = await mcpClient.airtable.updateRecords({
tableName: 'Products',
records: [
{
id: 'recYYYYYYYYYYYYYY',
fields: {
'Inventory': 45,
'Last Updated': new Date().toISOString()
}
},
{
id: 'recZZZZZZZZZZZZZZ',
fields: {
'Inventory': 120,
'Last Updated': new Date().toISOString()
}
}
]
});

// Complex query with formula
const overdueInvoices = await mcpClient.airtable.listRecords({
tableName: 'Invoices',
filterByFormula: `AND(
{Status} != 'Paid',
IS_BEFORE({Due Date}, TODAY()),
{Amount} > 1000
)`,
sort: [
{ field: 'Due Date', direction: 'asc' },
{ field: 'Amount', direction: 'desc' }
]
});

console.log(`${overdueInvoices.records.length} overdue invoices over $1000`);

// Upload attachment
const attachment = await mcpClient.airtable.uploadAttachment({
tableName: 'Documents',
recordId: 'recAAAAAAAAAAAAAA',
fieldName: 'Files',
file: {
url: 'https://example.com/invoice.pdf',
filename: 'Invoice-2025-001.pdf'
}
});

// Get base schema
const schema = await mcpClient.airtable.getBaseSchema();
console.log(`Base contains ${schema.tables.length} tables`);

schema.tables.forEach(table => {
console.log(`\nTable: ${table.name}`);
console.log(`Fields: ${table.fields.map(f => f.name).join(', ')}`);
console.log(`Views: ${table.views.map(v => v.name).join(', ')}`);
});

// Aggregate data
const salesSummary = await mcpClient.airtable.aggregate({
tableName: 'Sales',
groupBy: ['Product Category', 'Region'],
aggregations: [
{ field: 'Amount', function: 'sum' },
{ field: 'Amount', function: 'avg' },
{ field: 'Order ID', function: 'count' }
],
filterByFormula: "IS_AFTER({Date}, '2025-01-01')"
});

// Watch for changes (webhook)
const webhook = await mcpClient.airtable.createWebhook({
baseId: 'appXXXXXXXXXXXXXX',
tables: ['Orders', 'Customers'],
events: ['record.created', 'record.updated'],
callbackUrl: 'https://your-app.com/webhooks/airtable'
});

// Handle webhook events
app.post('/webhooks/airtable', (req, res) => {
const { baseId, tableId, recordId, event, fields } = req.body;

if (event === 'record.created' && tableId === 'Orders') {
console.log(`New order created: ${recordId}`);
// Process new order...
}

res.status(200).send('OK');
});

Common Use Cases

CRM Integration

  • Customer database management
  • Sales pipeline tracking
  • Contact relationship mapping
  • Activity logging

Project Management

  • Task tracking and assignment
  • Timeline and deadline management
  • Resource allocation
  • Progress reporting

Inventory Management

  • Stock level tracking
  • Order fulfillment
  • Supplier management
  • Reorder automation

Content Calendar

  • Editorial planning
  • Publishing schedule
  • Asset management
  • Team collaboration

Best Practices

  1. Rate Limit Management:

    • Implement request queuing
    • Use batch operations
    • Cache frequently accessed data
    • Monitor API usage
  2. Data Modeling:

    • Design efficient table relationships
    • Use appropriate field types
    • Implement data validation
    • Plan for scalability
  3. Performance Optimization:

    • Select only needed fields
    • Use view filters
    • Implement pagination
    • Optimize formulas

Troubleshooting

Common Issues

  1. Authentication Errors

    • Verify Personal Access Token
    • Check token scopes
    • Ensure base access permissions
    • Validate token expiration
  2. Rate Limiting

    • Implement exponential backoff
    • Use batch operations
    • Queue requests appropriately
    • Monitor usage patterns
  3. Data Sync Issues

    • Verify field mappings
    • Check data types
    • Handle relationship fields
    • Validate formula syntax

Getting Help