Connect your AI tools directly to Airtable. Query, create, update, and delete records using natural language. Features include base management, table operations, schema manipulation, record filtering, and data migration—all through a standardized MCP interface compatible with Cursor, Claude Desktop, Cline, Zed, and other Claude-powered editors.
This application is a powerful Airtable integration tool that enables AI-powered applications via Anthropic's Model Context Protocol (MCP) to access and manipulate Airtable data directly from your IDE.
- Base Management: List and select Airtable bases
- Table Operations: Browse tables, fields, and records
- Data Access: Read, create, update, and delete records
- Schema Management: Export, compare, and update schemas
- Command-line Configuration: Use API tokens directly through command-line parameters
- NPX Compatible: Easy installation with a single command
- Smithery Integration: One-click installation via Smithery
There are two core components used to access and manipulate Airtable data:
- Airtable MCP Server: A Python server that provides standardized tools for AI clients to interact with Airtable.
- MCP Client: Any client that supports the Model Context Protocol (Cursor, Claude Desktop, Cline, Zed, etc.).
┌─────────────┐ ┌──────────────┐ ┌───────────────┐
│ MCP Client │ ──► │ Airtable │ ──► │ Airtable │
│ (e.g. │ ◄── │ MCP Server │ ◄── │ API │
│ Cursor) │ │ │ │ │
└─────────────┘ └──────────────┘ └───────────────┘
Model Context Protocol (MCP) is a capability supported by Anthropic AI models that allows you to create custom tools for any compatible client. MCP clients like Claude Desktop, Cursor, Cline, or Zed can run an MCP server which "teaches" these clients about new tools they can use.
This MCP has been updated to work with the latest MCP SDK version. The new implementation uses:
- inspector_server.py: A new server implementation compatible with MCP SDK 1.4.1+
- Updated configuration for both Cursor and Smithery integration
- Python 3.10+ compatibility
- Node.js 14+
- Python 3.10+ (automatically detected)
- Airtable API token
- A compatible MCP client (Cursor, Claude Desktop, etc.)
The simplest way to use this MCP is through Smithery via NPX. This handles all dependencies and configuration automatically.
- Configure your MCP client by adding the following to your MCP configuration file (e.g.,
~/.cursor/mcp.json
):
{
"mcpServers": {
"airtable-mcp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@rashidazarang/airtable-mcp",
"--config",
"{\"airtable_token\":\"YOUR_AIRTABLE_TOKEN\\\"\",\"base_id\":\"YOUR_BASE_ID\"}"
]
}
}
}
- Replace
YOUR_AIRTABLE_TOKEN\"
with your Airtable API token (maintaining the backslash and quote), andYOUR_BASE_ID
with your Airtable base ID. - Restart your MCP client to load the new tools.
Another easy installation method:
- Visit Smithery
- Search for "@rashidazarang/airtable-mcp"
- Click "Install" and follow the prompts
If you prefer a more traditional approach:
# Install globally
npm install -g airtable-mcp
# Or run directly with npx
npx airtable-mcp --token "your_airtable_token" --base "your_base_id"
For detailed instructions on integrating with specific MCP clients, see:
- Claude Integration Guide - Setup instructions for Claude Desktop, Cursor, Cline, and other clients
- Smithery Setup - One-click installation via Smithery
For Cursor, update your ~/.cursor/mcp.json
file:
{
"mcpServers": {
"airtable-tools": {
"command": "npx",
"args": [
"airtable-mcp",
"--token", "your_airtable_token",
"--base", "your_base_id"
]
}
}
}
Restart your MCP client to load the new tools.
If you prefer to clone the repository and install manually:
-
Clone this repository:
git clone https://github.com/rashidazarang/airtable-mcp.git cd airtable-mcp
-
Install dependencies:
pip install -r requirements.txt
-
Run the server:
python3.10 inspector_server.py --token "your_airtable_token" --base "your_base_id"
To verify your Airtable connection works correctly, you can use the included test script:
python3.10 test_client.py
This will directly test your Airtable API access and list your bases and table schemas.
Tool Name | Description |
---|---|
list_bases |
List all accessible Airtable bases |
list_tables |
List all tables in the specified or default base |
list_records |
List records from a table with optional filtering |
get_record |
Get a specific record from a table |
create_records |
Create records in a table from JSON string |
update_records |
Update records in a table from JSON string |
set_base_id |
Set the current Airtable base ID |
MIT
Contributions are welcome! Please feel free to submit a Pull Request.
The latest version includes important fixes to address common issues:
- AbortController Compatibility: Added polyfill for Node.js versions < 15.0.0
- JSON Parsing Improvements: Enhanced handling of malformed JSON configurations
- Windsurf Support: Special configuration templates for Windsurf users
If you see errors like Unexpected token 'F', "Found & ig"... is not valid JSON
, try:
-
Use Individual Parameters:
npx -y @smithery/cli@latest run @rashidazarang/airtable-mcp --token YOUR_TOKEN --base YOUR_BASE_ID
-
For Windsurf Users: Use the template in
examples/windsurf_mcp_config.json
This typically happens on older Node.js versions. The current version includes an automatic polyfill, but you can also:
- Update Node.js: Install Node.js v15+ for native AbortController support
- Update This Package: Make sure you're using version 1.2.0 or higher
See CLAUDE_INTEGRATION.md for detailed setup instructions.
We've added enhanced support for Claude's interface by implementing these additional methods:
- resources/list: Lists available Airtable resources (bases, tables, records)
- prompts/list: Provides suggested prompts for common Airtable operations
These methods improve Claude's user experience by:
- Eliminating "Method not found" errors in logs
- Supporting Claude's native UI components
- Enabling better integration with Claude's interface
If you're using Claude Desktop or other Claude integrations, this update should provide a more seamless experience with fewer error messages.