MCP Directory

How to add Airtable MCP Server to Windsurf

Read and write access to Airtable bases — inspect schemas, query, and modify records, tables, fields, and comments. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 449 · stdio · apikey

Windsurf config for Airtable MCP Server

npx -y airtable-mcp-server
{
  "mcpServers": {
    "airtable-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ],
      "env": {
        "AIRTABLE_API_KEY": "pat123.abc123"
      }
    }
  }
}

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Airtable MCP Server config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Airtable MCP Server's tools become available to Cascade.

Before you start

  • An Airtable personal access token with appropriate scopes (schema.bases:read, data.records:read, and optionally the :write and data.recordComments scopes)
  • Node.js (for npx / JSON configuration installation)

What Airtable MCP Server can do in Windsurf

list_records

Lists records from a specified Airtable table, with optional maxRecords limit and Airtable filterByFormula filtering.

search_records

Searches for records containing specific text, optionally restricted to given field IDs, with an optional maxRecords limit.

list_bases

Lists all accessible Airtable bases, returning base ID, name, and permission level. No input parameters required.

list_tables

Lists all tables in a base, returning ID, name, description, fields, and views at the requested detailLevel (tableIdentifiersOnly, identifiersOnly, or full).

describe_table

Gets detailed information about a single table at the requested detailLevel, returning the same format as list_tables for one table.

get_record

Gets a specific record by its record ID from a table.

create_record

Creates a new record in a table from a provided fields object.

update_records

Updates one or more records in a table, given an array of record IDs and the fields to update.

Security

Authentication uses an Airtable personal access token supplied via the AIRTABLE_API_KEY environment variable; scope the token to only the bases and permissions you need. The optional HTTP transport (MCP_TRANSPORT=http) has no built-in authentication and should only be run behind a reverse proxy or in a secured environment.

Airtable MCP Server + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Airtable MCP Server config there under the "mcpServers" key and restart the client.

Is Airtable MCP Server safe to use with Windsurf?

Authentication uses an Airtable personal access token supplied via the AIRTABLE_API_KEY environment variable; scope the token to only the bases and permissions you need. The optional HTTP transport (MCP_TRANSPORT=http) has no built-in authentication and should only be run behind a reverse proxy or in a secured environment.

How do I authenticate?

Create an Airtable personal access token at airtable.com/create/tokens/new, grant it the scopes you need (schema.bases:read and data.records:read at minimum, plus :write scopes for editing), and provide it via the AIRTABLE_API_KEY environment variable.

Can it run as a remote/HTTP server?

Yes. Running with MCP_TRANSPORT=http PORT=3000 npx airtable-mcp-server starts a stateless HTTP server at http://localhost:3000/mcp. This transport has no built-in authentication, so only run it behind a reverse proxy or in a secured environment.

Which clients are supported?

The README documents installation for Claude Desktop (extensions browser, .mcpb, or JSON config), Cursor (one-click or JSON config), and Cline (marketplace or JSON config).

View repo Full Airtable MCP Server page