Verified MCP server: Airtable

The Airtable MCP server, verified live on a real Mac.

  • Tools enumerated2026-08-03macOS 15.7.7
  • Packageairtable-mcp-server 1.14.0
  • Self-reportedairtable-mcp-server 1.14.0
  • MCP protocol2024-11-05
  • Runtimev24.18.0

The tool list below is a live capture from the running server; an authenticated tool call is still pending credentials.

The short answer

Last verified 2026-08-03

The Airtable MCP server gives an AI assistant read and write access to your Airtable bases: list bases and tables, search and filter records, create and update rows, add fields, and leave comments. It is a community project by an individual developer, domdomegg, not a product of Airtable the company, and npm records roughly 8,000 downloads of it a week. It runs on your own Mac over stdio and needs exactly one credential: an Airtable personal access token in an environment variable named AIRTABLE_API_KEY. We ran it and spoke the protocol to it with a placeholder token, so all 16 tools below were enumerated live while no real base was touched. The single tool call we made came back with the exact authentication error Airtable returns without a valid token, and that error is printed further down, word for word. An authenticated call is still open: it waits on a real token. [1][3][2][4]

  • Tools

    16, enumerated live

  • Credentials

    AIRTABLE_API_KEY needed [4][5]

  • Transport

    stdio, runs on your Mac [4]

  • Maintainer

    domdomegg, community [3][1]

  • Downloads

    8,168 last week [2]

  • License

    MIT [3][1]

Verification

How this MCP server was verified.

Method

We spawned the server with npx over stdio, completed the MCP initialize handshake, called tools/list, and ran one real tool call, list_bases. The value we passed in AIRTABLE_API_KEY was a placeholder, not a working token, so the 16 tools below were enumerated for real while the tool call came back with Airtable's authentication error, printed verbatim in the sample call and in the troubleshooting section. This server writes nothing to standard error at startup, so the banner below is the initialize response it sent on the wire instead. An authenticated call is not part of this run: it needs a real Airtable personal access token.

Startup banner

{"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{"listChanged":true}},"serverInfo":{"name":"airtable-mcp-server","version":"1.14.0"}},"jsonrpc":"2.0","id":1}

One real tool call

tools/call list_bases {}
Airtable API Error: Unauthorized. Response: {"error":{"type":"AUTHENTICATION_REQUIRED","message":"Authentication required"}}Suggestions: Expected one dot (.) in the API key, but found 0. Make sure you've copied the entire API key, not just the token ID. API key seems too short (13 characters). Personal Access Tokens are typically around 82 characters long. Make sure you've copied the API key correctly. Verify that the token hasn't expired or been revoked. You can view and create Personal Access Tokens at https://airtable.com/create/tokens.

Real lines from the captured result: enough to prove the call answered.

Tools

Every tool, enumerated from the running server.

The server answered tools/list with 16 tools on 2026-08-03. The names, descriptions and parameters below are its own words, copied from that response and never edited.

ToolWhat it does
list_recordsbaseId*tableId*viewmaxRecordsfilterByFormulasortfields

List records from a table

search_recordsbaseId*tableId*searchTerm*fieldIdsmaxRecordsview

Search for records containing specific text

list_bases

List all accessible Airtable bases

list_tablesbaseId*detailLevel

List all tables in a specific base

describe_tablebaseId*tableId*detailLevel

Get detailed information about a specific table

get_recordbaseId*tableId*recordId*

Get a specific record by ID

create_recordbaseId*tableId*fields*

Create a new record in a table

update_recordsbaseId*tableId*records*

Update up to 10 records in a table

delete_recordsbaseId*tableId*recordIds*

Delete records from a table

create_tablebaseId*name*fields*description

Create a new table in a base

update_tablebaseId*tableId*namedescription

Update a table's name or description

create_fieldbaseId*tableId*nested*

Create a new field in a table

update_fieldbaseId*tableId*fieldId*namedescription

Update a field's name or description

create_commentbaseId*tableId*recordId*text*parentCommentId

Create a comment on a record

list_commentsbaseId*tableId*recordId*pageSizeoffset

List comments on a record

upload_attachmentbaseId*recordId*attachmentFieldIdOrName*file*filename*contentType*

Upload a file directly to an attachment field on an existing record using Airtable's upload API. Supports files up to 5 MB. For larger files, use create_record or update_records with a public URL. The record must already exist.

Parameters marked with * are required.

Setup

Working configs, one per app.

Copy the block for the app you use. Each one is the configuration this server was verified with.

Claude Desktop

Open the file ~/Library/Application Support/Claude/claude_desktop_config.json (in Claude Desktop: Settings, then Developer, then Edit Config) and add:

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

Replace pat123.abc123 with your own Airtable personal access token, then quit and reopen Claude Desktop. The placeholder is the one the maintainer prints in the docs, and it is not a working token. [6][5]

Claude Code

One command in your terminal:

claude mcp add airtable --env AIRTABLE_API_KEY=pat123.abc123 -- npx -y airtable-mcp-server

Everything after the double dash is the exact command Claude Code will run, and --env passes your token to it. Swap pat123.abc123 for your own. [7][5]

Cursor

Add to ~/.cursor/mcp.json for every project, or to .cursor/mcp.json inside one project:

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

Cursor picks the file up on restart. Prefer the file in your home folder: a token written into a project file is one commit away from being public. [8][5]

Routines

No JSON file and no terminal. In Routines: Settings, then Assistant, then Connections, then Add MCP Server. Switch the form to Command (stdio) and enter:

Name                   Airtable
Command                npx
Arguments              -y airtable-mcp-server
Environment Variables  AIRTABLE_API_KEY=pat123.abc123

The Environment Variables field takes one KEY=value row, so paste your own token in place of pat123.abc123. Click Test Connection first: a working server answers with its tool count. [9][5]

No terminal needed

Set the Airtable MCP server up without the terminal.

If you have never opened Terminal and never want to, this is your path. Routines is a Mac app that runs MCP servers for you: fill in a few fields once, and this server's tools are available to your AI in chat and in scheduled routines.

  1. 01

    Install Routines

    Download the app from getroutines.ai/download, drag it to Applications, and sign in.

  2. 02

    Open the MCP settings

    Click your account at the bottom of the sidebar and choose Settings. Open the Assistant section, then the Connections tab, scroll to MCP Servers, and click Add MCP Server.

  3. 03

    Choose Command (stdio)

    This server is a command, not a web address, so switch the form to Command (stdio). Name: Airtable. Command: npx. Arguments: -y airtable-mcp-server. That is the whole command; there are no folders or extra options to add.

  4. 04

    Create your Airtable token and paste it in

    Go to airtable.com/create/tokens and create a personal access token. Give it the scopes schema.bases:read and data.records:read to look at your data, plus schema.bases:write and data.records:write if you want the AI to change it, and tick only the bases it should reach. Copy the token, then in Routines add one row to Environment Variables: AIRTABLE_API_KEY on the left, the token on the right.

  5. 05

    Test, then add

    Click Test Connection: Routines starts the server and reports how many tools it found, sixteen for this one. If the count comes back, click Add Server.

  6. 06

    Use it

    The tools work in chat right away. To let a scheduled routine use them, open the routine, find the Tools & connections card, and tick the server under Apps.

Routine ideas

Routines worth scheduling.

Once the server is connected, a scheduled routine can use its tools while you are away. Copy a prompt, paste it into Routines, and pick a time.

A Monday pipeline digest

Prompt

Every Monday at 8:30, search my Sales base for deals that are not closed, group them by owner, and give me a short digest of what moved last week and what has not been touched in more than two weeks.

A stale task nudge

Prompt

Every weekday at 17:00, list the records in my Projects base with a due date in the past and no completion date, show me the owner and the due date for each, and add a comment on the three oldest asking for an update.

A Friday content check

Prompt

Every Friday at 15:00, look at the rows in my Content base scheduled for next week, tell me which ones still have an empty Status or no owner, and set the empty ones to Draft so nothing goes out unassigned.

Troubleshooting

The errors we hit, and what fixed them.

Real errors captured during the verification run, printed exactly as the server returned them.

The tools are listed but every call comes back unauthorized

What you see

Airtable API Error: Unauthorized. Response: {"error":{"type":"AUTHENTICATION_REQUIRED","message":"Authentication required"}}Suggestions: Expected one dot (.) in the API key, but found 0. Make sure you've copied the entire API key, not just the token ID. API key seems too short (13 characters). Personal Access Tokens are typically around 82 characters long. Make sure you've copied the API key correctly. Verify that the token hasn't expired or been revoked. You can view and create Personal Access Tokens at https://airtable.com/create/tokens.

The fix

This is the error our own run produced on purpose, because we started the server with a placeholder in AIRTABLE_API_KEY. The server checks the shape of what you gave it before Airtable even answers: a real personal access token is long, roughly 82 characters, and contains one dot. If yours is short or has no dot, you copied the token ID instead of the token, or the copy was cut off. Create a fresh one at airtable.com/create/tokens, copy the whole string in one go, paste it into the AIRTABLE_API_KEY value, and restart the server.

A base you own does not show up

The fix

A personal access token only reaches the bases you tick when you create it, so a base that is missing from list_bases is almost always a token that was never given access to it. Open the token at airtable.com/create/tokens, add the base under its access list, save, and restart the server. Adding a base does not require a new token.

Reading works but nothing can be changed

The fix

Scopes are separate from access. A token with only the read scopes can list and search happily and still refuse every write, which is a sensible way to start. When you want the AI to create or update rows, edit the token and add the write scopes, then restart the server so it picks the token up again.

Your MCP client cannot start the server at all

The fix

The npx command belongs to Node.js. If Node is not installed on your Mac, every client on this page fails at the spawn step before the server can say anything. Install Node from nodejs.org, restart your MCP client, and try again.

FAQ

Questions people ask.

What is the Airtable MCP server?

It is a small program that connects an AI assistant to your Airtable account. Once it is running, the assistant can list your bases and tables, read and search records, and create, update, or delete them, all through Airtable's own API. It runs as a local process on your Mac and talks to your AI app over stdio. [1][4]

What tools does the Airtable MCP server include?

The running server exposes 16 tools: finding things (list_bases, list_tables, describe_table, list_records, search_records, get_record), changing records (create_record, update_records, delete_records, upload_attachment), changing structure (create_table, update_table, create_field, update_field), and comments (create_comment, list_comments). The table above is the live tools/list output, word for word.

Is the Airtable MCP server safe?

Its reach is exactly the reach of the token you give it, and nothing more. That cuts both ways: a token limited to two bases and read-only scopes is a narrow, low-risk connection, while a token with write scopes across your whole workspace hands an AI assistant the ability to update and delete records in all of it. delete_records is a real tool in the list above. Create a token per purpose, tick only the bases that task needs, and add write scopes only when you actually want changes made. [4]

Do I need the terminal to set it up?

No. In Routines you fill in a few fields in Settings, paste your token into the Environment Variables field, and click Test Connection; the walkthrough above shows every click. Claude Desktop needs a small JSON file edited once. Only Claude Code is terminal-first by nature. [9][6]

Does it need an API key or an account?

Yes, and this is the one real setup step. You need an Airtable account and a personal access token created at airtable.com/create/tokens, with at least the scopes schema.bases:read and data.records:read and access to the bases you want to use. The token goes into an environment variable called AIRTABLE_API_KEY. Without it the server still starts and still lists its tools, which is exactly what our run shows, but every call to Airtable comes back unauthorized. [4][5]

Is this an official Airtable server?

No. It is maintained by an individual developer, domdomegg, on a personal GitHub account, and published to npm under the MIT license. We found no affiliation with Airtable the company in the package or repository metadata. That is not a knock on the code, which npm records at roughly 8,000 downloads a week, but it does mean support and updates come from one volunteer, not from a vendor. [3][1][2]

Which apps can use the Airtable MCP server?

Any MCP client that can launch a local stdio server: Claude Desktop, Claude Code, Cursor, and Routines all can, and the exact config for each is above. The server itself is the same in every client; only the place you paste the config and the token differs. [6][7][8][9]

Sources

Every external claim, receipted.

Anything on this page we did not observe in the run is linked here, with the date we read it. The run itself is the receipt for the rest.

  1. [1]

    npm registry: airtable-mcp-serveraccessed 2026-08-03

    Latest version 1.14.0, published 2026-07-27; license MIT; maintainer domdomegg.

  2. [2]

    npm downloads API: last weekaccessed 2026-08-03

    8,168 downloads for the week 2026-07-26 to 2026-08-01.

  3. [3]

    GitHub API: domdomegg/airtable-mcp-serveraccessed 2026-08-03

    455 stars, pushed 2026-07-27, license MIT, owner domdomegg is an individual account, default branch master.

  4. [4]

    airtable-mcp-server README (master branch)accessed 2026-08-03

    Source of the description, the token scopes, the install link and the documented tool list. Read from master: the same path on a main branch returns 404, because the repository default branch is master.

  5. [5]

    Client config encoded in the README install linkaccessed 2026-08-03

    The README links to a generator instead of printing a config. We decoded its base64 config parameter locally: command npx, args -y airtable-mcp-server, env AIRTABLE_API_KEY set to the placeholder pat123.abc123.

  6. [6]

    modelcontextprotocol.io: Connect to local MCP serversaccessed 2026-08-03

    The official Claude Desktop quickstart: config file location and mcpServers shape.

  7. [7]

    Claude Code docs: MCPaccessed 2026-08-03

    The claude mcp add syntax for local stdio servers, including --env.

  8. [8]

    Cursor docs: Model Context Protocolaccessed 2026-08-03

    The mcp.json shape and file locations.

  9. [9]

    Routines: Connectorsaccessed 2026-08-03

    How Routines runs one-click OAuth connectors and any MCP server.

This page describes Airtable as it behaved in one dated run on one Mac. Versions move: if something here no longer matches what you see, the capture date at the top says how old the reading is.

Behind this directory

Routines, the app behind this directory, runs MCP servers like this one without a terminal: see how connectors work. Your notes stay markdown files on your Mac, there is no cloud bill, and it works offline. Download Routines