Manage your Airtable bases from the terminal.
This CLI discovers commands from the Airtable MCP server at runtime. airtable-mcp tools shows whatever the server exposes at that moment. If the server adds, removes, or renames a tool, the CLI reflects that without a client release. See DESIGN.md for the design rationale.
curl -fsSL https://raw.githubusercontent.com/Airtable/airtable-mcp-cli/main/install.sh | shAlso available on npm: npm install -g @airtable/mcp-cli
Set up your personal access token. Credentials are stored in a default profile. Use --profile <name> to create additional profiles.
airtable-mcp configureDiscover what you have access to:
airtable-mcp tools
airtable-mcp list-basesThen act on it:
airtable-mcp list-records --baseId appXXX --tableIdOrName TasksThe first time you run a tool, the CLI fetches the tool list from the server and caches it for 60 seconds. After that, subsequent commands are fast. Use --refresh on any tool command to bypass the cache.
This CLI is experimental and tool names, arguments, and output formats may change without notice. The tools you see today may be renamed, removed, or have their arguments changed in a future server update. If you're scripting against specific tools, check for tool existence before calling and handle missing or unexpected fields in output.
airtable-mcp configure Set up personal access token
airtable-mcp whoami Show current auth status
airtable-mcp logout Remove saved credentials
airtable-mcp tools List available tools
airtable-mcp <tool> [--flags] Run a tool
airtable-mcp <tool> --help Show help and flags for a tool
airtable-mcp completions <shell> Generate shell completions (bash, zsh, fish)
airtable-mcp --help Show help
airtable-mcp --version Print version
Most commands accept --profile <name> to switch between accounts.
Tool output defaults to formatted JSON. The tools command defaults to a human-readable list.
| Flag | Applies to | Description |
|---|---|---|
--profile <name> |
all | Use a named profile |
--json |
tools |
Output tool list as JSON |
--refresh |
tools, <tool> |
Bypass the tool cache |
--output raw |
<tool> |
Raw text output instead of JSON |
--input - |
<tool> |
Read arguments as JSON from stdin |
-q, --quiet |
<tool> |
Suppress status messages on stderr |
Manage multiple accounts:
airtable-mcp configure --profile work
airtable-mcp configure --profile personal
airtable-mcp tools --profile workThis CLI is meant to be driven by scripts and agents. Flags, output behavior, and exit codes are the stable part. Tool names and schemas are not; they come from the server at runtime.
Useful pieces:
AIRTABLE_TOKEN: skipconfigure, useful in CItools --json: discover tools programmatically--input -: pass arguments as JSON on stdin-q: keep stdout clean--output raw: return the server response without JSON formatting
Example:
export AIRTABLE_TOKEN=pat_xxx
airtable-mcp tools --json
echo '{"baseId":"appXXX","tableIdOrName":"Tasks"}' | airtable-mcp list-records --input - -q| Variable | Description |
|---|---|
AIRTABLE_TOKEN |
Personal access token. Overrides airtable-mcp configure. |
AIRTABLE_MCP_ENDPOINT |
MCP server URL (default: https://mcp.airtable.com/mcp). |
Endpoints are restricted to HTTPS on *.airtable.com to prevent token exfiltration to arbitrary servers.
Config is stored in ~/.airtable/cli.json with restricted file permissions (0600). The config directory is created with 0700 permissions. Tool definitions are cached in ~/.airtable/cache-{profile}.json with a 60-second TTL. The cache is integrity-checked on read.
npm install
npm run build
npm run typecheck
npm testInstall locally as the airtable-mcp command:
npm run build
npm linkAfter npm link, only re-run npm run build to pick up changes — no need to re-link.
Unlink when done:
npm unlink -g @airtable/mcp-cliMIT