View as Markdown

Airtable Integration

Manage Airtable bases, tables, and records

The Airtable integration provides access to manage Airtable bases, tables, and records through the Integrate MCP server.

Installation

The Airtable integration is included with the SDK:

import { airtableIntegration } from "integrate-sdk/server";

Setup

1. Create an Airtable OAuth App

  1. Go to Airtable Developer Hub
  2. Create a new OAuth application
  3. Configure your redirect URI
  4. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Airtable integration to your server configuration. The integration automatically reads AIRTABLE_CLIENT_ID and AIRTABLE_CLIENT_SECRET from your environment variables:

import { createMCPServer, airtableIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    airtableIntegration({
    }),
  ],
});

You can override the environment variables by passing explicit values:

airtableIntegration({
  clientId: process.env.CUSTOM_AIRTABLE_ID,
  clientSecret: process.env.CUSTOM_AIRTABLE_SECRET,
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("airtable");
const result = await client.airtable.listBases({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, airtableIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [airtableIntegration()],
});

Configuration Options

export interface AirtableIntegrationConfig {
  /** Airtable OAuth client ID (defaults to AIRTABLE_CLIENT_ID env var) */
  clientId?: string;

Tools

airtable_list_bases

List all accessible bases

export interface AirtableListBasesParams {
    /** Offset for pagination */
    offset?: string;

airtable_get_base

Get a specific base

export interface AirtableGetBaseParams {
    /** Base ID */
    baseId: string;

airtable_list_tables

List tables in a base

export interface AirtableListTablesParams {
    /** Base ID */
    baseId: string;

airtable_get_table

Get a specific table schema

export interface AirtableGetTableParams {
    /** Base ID */
    baseId: string;

airtable_list_records

List records in a table

export interface AirtableListRecordsParams {
    /** Base ID */
    baseId: string;

airtable_get_record

Get a specific record

export interface AirtableGetRecordParams {
    /** Base ID */
    baseId: string;

airtable_create_record

Create a new record

export interface AirtableCreateRecordParams {
    /** Base ID */
    baseId: string;

airtable_update_record

Update an existing record

export interface AirtableUpdateRecordParams {
    /** Base ID */
    baseId: string;

airtable_search_records

Search for records using a formula

export interface AirtableSearchRecordsParams {
    /** Base ID */
    baseId: string;

airtable_delete_record

Delete a record

export interface AirtableDeleteRecordParams {
    /** Base ID */
    base_id: string;

airtable_create_base

Create a new base

export interface AirtableCreateBaseParams {
    /** Workspace ID */
    workspace_id: string;

airtable_create_table

Create a new table in a base

export interface AirtableCreateTableParams {
    /** Base ID */
    base_id: string;

airtable_update_table

Update a table's name or description

export interface AirtableUpdateTableParams {
    /** Base ID */
    base_id: string;

airtable_create_field

Create a new field in a table

export interface AirtableCreateFieldParams {
    /** Base ID */
    base_id: string;

airtable_update_field

Update a field's name or description

export interface AirtableUpdateFieldParams {
    /** Base ID */
    base_id: string;

airtable_list_comments

List comments on a record

export interface AirtableListCommentsParams {
    /** Base ID */
    base_id: string;

airtable_create_comment

Create a comment on a record

export interface AirtableCreateCommentParams {
    /** Base ID */
    base_id: string;

airtable_update_comment

Update a comment

export interface AirtableUpdateCommentParams {
    /** Base ID */
    base_id: string;

airtable_delete_comment

Delete a comment

export interface AirtableDeleteCommentParams {
    /** Base ID */
    base_id: string;

airtable_list_webhooks

List webhooks for a base

export interface AirtableListWebhooksParams {
    /** Base ID */
    base_id: string;

airtable_create_webhook

Create a webhook for a base

export interface AirtableCreateWebhookParams {
    /** Base ID */
    base_id: string;

airtable_delete_webhook

Delete a webhook

export interface AirtableDeleteWebhookParams {
    /** Base ID */
    base_id: string;

airtable_list_webhook_payloads

List webhook payloads

export interface AirtableListWebhookPayloadsParams {
    /** Base ID */
    base_id: string;

airtable_refresh_webhook

Refresh a webhook to extend its expiration

export interface AirtableRefreshWebhookParams {
    /** Base ID */
    base_id: string;

Notes

  • Category: Business
  • Authentication mode: OAuth