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
- Go to Airtable Developer Hub
- Create a new OAuth application
- Configure your redirect URI
- 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