A Monday pipeline digest
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.
Verified MCP server: Airtable
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]
Verification
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
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.
| Tool | What 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
Copy the block for the app you use. Each one is the configuration this server was verified with.
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]
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]
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]
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
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.
01
Download the app from getroutines.ai/download, drag it to Applications, and sign in.
02
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.
03
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.
04
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.
05
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.
06
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
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.
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.
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.
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
Real errors captured during the verification run, printed exactly as the server returned them.
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.
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.
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.
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
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]
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.
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]
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]
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]
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]
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
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]
Latest version 1.14.0, published 2026-07-27; license MIT; maintainer domdomegg.
[2]
8,168 downloads for the week 2026-07-26 to 2026-08-01.
[3]
455 stars, pushed 2026-07-27, license MIT, owner domdomegg is an individual account, default branch master.
[4]
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]
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]
The official Claude Desktop quickstart: config file location and mcpServers shape.
[7]
The claude mcp add syntax for local stdio servers, including --env.
[8]
[9]
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