home / mcp / airtable oauth mcp server

Airtable OAuth MCP Server

Airtable MCP Server With HTTP Streaming & Oauth2.1 Support

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "onimsha-airtable-mcp-server-oauth": {
      "url": "http://localhost:8000/mcp",
      "headers": {
        "HOST": "0.0.0.0",
        "PORT": "8000",
        "LOG_LEVEL": "INFO",
        "AIRTABLE_CLIENT_ID": "your_airtable_client_id_here",
        "AIRTABLE_REDIRECT_URI": "http://localhost:8000/oauth/callback",
        "AIRTABLE_CLIENT_SECRET": "your_airtable_client_secret_here"
      }
    }
  }
}

This MCP server provides secure OAuth 2.0 authentication to access Airtable bases through a standardized Model Context Protocol interface. It offers complete Airtable API coverage via a production‑ready, fast MCP framework, and supports both STDIO and HTTP transport modes for flexible deployment and integration.

How to use

You connect your MCP client to the Airtable OAuth MCP Server to perform Airtable operations. Start by running the local STDIO server or the HTTP server, authenticate through OAuth with Airtable, and then call the MCP tools to interact with your bases, tables, and records. All tool calls use typed parameters for clarity and IDE support.

Key usage flow after authentication: you list bases, inspect tables, and perform record operations such as creating, updating, querying, and deleting records. You can apply filters and sorting to queries, and you can request specific fields to minimize payloads. If you need to discover table schemas, use the schema discovery tools to fetch table descriptions and base details.

Note: When testing, you can use the MCP Inspector to validate the HTTP transport and OAuth flow. Start the HTTP server, then connect to the MCP URL and proceed with the OAuth sign‑in flow to authorize Airtable access.

How to install

Prerequisites you need before installation: Python 3.11 or newer, the uv package manager, and an Airtable Developer Account to create an OAuth application.

1) Clone the project and install dependencies. Then install the MCP server locally using the provided tooling.

git clone https://github.com/onimsha/airtable-mcp-server-oauth.git
cd airtable-mcp-server-oauth
uv sync

Configuration and runtime

Configure OAuth and server parameters in a local environment file. The following environment variables are used to enable Airtable OAuth and to run the server, including host, port, and logging settings.

# Airtable OAuth Configuration
AIRTABLE_CLIENT_ID="your_airtable_client_id_here"
AIRTABLE_CLIENT_SECRET="your_airtable_client_secret_here"
AIRTABLE_REDIRECT_URI="http://localhost:8000/oauth/callback"

# Server Configuration
HOST="0.0.0.0"
PORT=8000
LOG_LEVEL="INFO"

Starting the server

Choose either STDIO or HTTP transport to start the server. You can run one of the following commands to start each transport.

# STDIO Transport (default)
uv run python -m airtable_mcp

# Option to run the optimized variant if provided
uv run airtable-oauth-mcp

# HTTP Transport
uv run python -m airtable_mcp http
# or with a custom host/port
uv run python -m airtable_mcp http localhost 8001

Tools and interactions

The server exposes a set of MCP tools to manage Airtable resources. Each tool uses clearly typed parameters to improve clarity and client integration.

Troubleshooting and tips

If you encounter OAuth sign‑in issues, verify that your Airtable OAuth application is configured with the correct Client ID, Client Secret, and Redirect URI. Ensure the redirect URI matches the one configured in Airtable. Check that the server host and port are reachable from your client, and review the log level for detailed messages.

Available tools

list_bases

List all accessible Airtable bases you can query and manage

list_tables

List tables within a specified base, with optional detail level

describe_table

Get detailed schema information for a specific table

list_records

List records with optional view, filter, sort, and field selection

get_record

Retrieve a specific record by its ID

create_record

Create a single record with provided fields and optional type casting

create_records

Create multiple records in bulk with optional type casting

update_records

Update multiple records with new field values and optional type casting

delete_records

Delete multiple records by their IDs

search_records

Search records using a formula, with optional view and field selections