Airtable MCP Server

by felores

159 downloads
Not rated
GitHub

About

An MCP server for interacting with Airtable - create, list, and search records, bases, and tables.

Details

Author
felores
Downloads
159
Categories
Other

- List accessible bases and view table schemas
- Create, list, and search records with Airtable formulas
- Secure API key management and rate limiting
- Input validation and comprehensive error handling
- TypeScript support with robust test suite
- Configurable request timeout and pagination

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 Server
    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

Install Node.js v16+, clone the repo, install dependencies, configure .env with your Airtable API key, build, then start with npm start. Integrate with Claude Desktop by adding a server configuration in claude_desktop_config.json.

Claude Desktop / Cursor

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

{
    "mcpServers": {
        "airtable mcp server": {
            "airtable": {
                "command": "node",
                "args": [
                    "/path/to/airtable-mcp-server/dist/index.js"
                ],
                "env": {
                    "AIRTABLE_API_KEY": ""
                }
            }
        }
    }
}

McpServers

{
    "airtable": {
        "command": "node",
        "args": [
            "/path/to/airtable-mcp-server/dist/index.js"
        ],
        "env": {
            "AIRTABLE_API_KEY": ""
        }
    }
}

Airtable MCP Server

An MCP (Model Context Protocol) server that enables AI models to interact with Airtable databases. This server provides a bridge between Large Language Models (LLMs) and Airtable, allowing for operations like creating records, listing tables, and searching data.

Features

- πŸ” Base & Table Management
- List accessible bases
- Browse tables within bases
- View table schemas

- πŸ“ Record Operations
- Create new records
- List existing records
- Search records using Airtable formulas
- Filter and paginate results

- πŸ” Security
- Secure API key management
- Rate limiting protection
- Input validation
- Error handling

- πŸ›  Developer Features
- TypeScript support
- Comprehensive testing suite
- Detailed logging
- Easy configuration

Prerequisites

- Node.js (v16 or higher)
- npm or yarn
- Airtable account and API key

Installation

1. Clone the repository

git clone https://github.com/your-username/airtable-mcp-server.git
cd airtable-mcp-server

2. Install dependencies

npm install

3. Configure environment variables

cp .env.example .env

Edit .env with your Airtable API key and other configuration options.

4. Build the server

npm run build

Configuration

Environment Variables

| Variable | Description | Required | Default |
|----------|-------------|----------|---------|
| AIRTABLE_API_KEY | Your Airtable API key | Yes | - |
| DEBUG | Enable debug logging | No | false |
| MAX_RECORDS_PER_REQUEST | Maximum records per request | No | 100 |
| REQUEST_TIMEOUT | API request timeout (ms) | No | 30000 |
| RATE_LIMIT | Requests per minute | No | 5 |

Airtable API Key Setup

1. Log in to your Airtable account
2. Go to your account page
3. Under the API section:
- Generate a new API key or use an existing one
- Copy the API key
4. Add the key to your .env file

Usage

Starting the Server

npm start

Integration with Claude Desktop

1. Open your Claude Desktop configuration:
- Windows: %APPDATA%\Claude\claude_desktop_config.json
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

2. Add the server configuration:

{
"mcpServers": {
"airtable": {
"command": "node",
"args": ["/path/to/airtable-mcp-server/dist/index.js"],
"env": {
"AIRTABLE_API_KEY": "your_api_key_here"
}
}
}
}

3. Restart Claude Desktop

Available Tools

create-record

Creates a new record in an Airtable table.
{
  baseId: string;    // Airtable base ID
  tableId: string;   // Table ID or name
  fields: object;    // Record fields
}

list-records

Lists records from a table.
{
  baseId: string;     // Airtable base ID
  tableId: string;    // Table ID or name
  maxRecords?: number; // Maximum records to return
  view?: string;      // Optional view name
}

search-records

Searches records using Airtable formula.
{
  baseId: string;      // Airtable base ID
  tableId: string;     // Table ID or name
  filterFormula: string; // Search formula
}

Available Resources

- airtable://bases - List accessible bases
- airtable://bases/{baseId}/tables - List tables in a base
- airtable://bases/{baseId}/tables/{tableId}/schema - Get table schema

Development

Project Structure

airtable-mcp-server/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ index.ts           # Entry point
β”‚   β”œβ”€β”€ server.ts          # MCP server implementation
β”‚   β”œβ”€β”€ airtable/
β”‚   β”‚   β”œβ”€β”€ client.ts      # Airtable client wrapper
β”‚   β”‚   └── types.ts       # TypeScript types
β”‚   └── utils/
β”‚       β”œβ”€β”€ error-handler.ts
β”‚       └── validators.ts
β”œβ”€β”€ test/
β”‚   β”œβ”€β”€ integration.test.ts
β”‚   β”œβ”€β”€ server.test.ts
β”‚   └── airtable.test.ts
└── dist/                  # Compiled JavaScript

Running Tests

```bash

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.