Awesome
Airtable MCP Server
A Model Context Protocol server that provides tools for interacting with Airtable's API. This server enables programmatic management of Airtable bases, tables, fields, and records through Claude Desktop.
Installation
Prerequisites
Getting Started
- Clone the repository:
git clone https://github.com/felores/airtable-mcp.git
cd airtable-mcp
- Install dependencies:
npm install
- Build the server:
npm run build
Obtaining Airtable API Key
- Log in to your Airtable account at airtable.com
- Create a personal access token at Airtable's Builder Hub
- In the Personal access token section select these scopes:
- data.records:read
- data.records:write
- schema.bases:read
- schema.bases:write
- Select the workspace or bases you want to give access to the personal access token
- Keep this key secure - you'll need it for configuration
Configuring Claude Desktop
Windows
- Open File Explorer and navigate to:
%APPDATA%\Roaming\Claude
- Create or edit
claude_desktop_config.json
:
{
"mcpServers": {
"airtable": {
"command": "node",
"args": ["C:/path/to/airtable-mcp/build/index.js"],
"env": {
"AIRTABLE_API_KEY": "your_api_key_here"
}
}
}
}
macOS
- Open Terminal and navigate to:
~/Library/Application Support/Claude/
- Create or edit
claude_desktop_config.json
:
{
"mcpServers": {
"airtable": {
"command": "node",
"args": ["/path/to/airtable-mcp/build/index.js"],
"env": {
"AIRTABLE_API_KEY": "your_api_key_here"
}
}
}
}
Verifying Installation
- Start Claude Desktop
- The Airtable MCP server should be listed in the "Connected MCP Servers" section
- Test with a simple command:
List all bases
Features
Base Management
- List Bases
Lists all accessible Airtable bases with their IDs and permission levels.{ "name": "list_bases" }
Table Operations
-
List Tables
{ "name": "list_tables", "arguments": { "base_id": "your_base_id" } }
Returns complete schema including tables, fields, and views.
-
Create Table
{ "name": "create_table", "arguments": { "base_id": "your_base_id", "table_name": "Projects", "description": "Track project progress", "fields": [ { "name": "Project Name", "type": "singleLineText", "description": "Name of the project" }, { "name": "Status", "type": "singleSelect", "description": "Project status", "options": { "choices": [ {"name": "Planning", "color": "blueBright"}, {"name": "In Progress", "color": "yellowBright"}, {"name": "Completed", "color": "greenBright"} ] } } ] } }
-
Update Table
{ "name": "update_table", "arguments": { "base_id": "your_base_id", "table_id": "your_table_id", "name": "Updated Name", "description": "Updated description" } }
Field Management
-
Create Field
{ "name": "create_field", "arguments": { "base_id": "your_base_id", "table_id": "your_table_id", "field": { "name": "Due Date", "type": "date", "description": "Project deadline", "options": { "dateFormat": { "name": "local" } } } } }
-
Update Field
{ "name": "update_field", "arguments": { "base_id": "your_base_id", "table_id": "your_table_id", "field_id": "your_field_id", "updates": { "name": "Updated Field Name", "description": "Updated description" } } }
Record Operations
-
List Records
{ "name": "list_records", "arguments": { "base_id": "your_base_id", "table_name": "Your Table", "max_records": 100 } }
-
Create Record
{ "name": "create_record", "arguments": { "base_id": "your_base_id", "table_name": "Projects", "fields": { "Project Name": "New Website", "Status": "Planning", "Due Date": "2024-03-01" } } }
-
Update Record
{ "name": "update_record", "arguments": { "base_id": "your_base_id", "table_name": "Projects", "record_id": "rec123abc", "fields": { "Status": "In Progress", "Last Updated": "2024-01-15" } } }
-
Delete Record
{ "name": "delete_record", "arguments": { "base_id": "your_base_id", "table_name": "Projects", "record_id": "rec123abc" } }
-
Search Records
{ "name": "search_records", "arguments": { "base_id": "your_base_id", "table_name": "Projects", "field_name": "Status", "value": "In Progress" } }
Supported Field Types
Basic Fields (No Options Required)
singleLineText
: Single line text fieldmultilineText
: Multi-line text areaemail
: Email address fieldphoneNumber
: Phone number field
Number Fields
{
"name": "Quantity",
"type": "number",
"description": "Item quantity",
"options": {
"precision": 0
}
}
Currency Fields
{
"name": "Budget",
"type": "currency",
"description": "Project budget",
"options": {
"precision": 2,
"symbol": "$"
}
}
Date Fields
{
"name": "Due Date",
"type": "date",
"description": "Project deadline",
"options": {
"dateFormat": {
"name": "local"
}
}
}
Select Fields
-
Single Select
{ "name": "Category", "type": "singleSelect", "description": "Project category", "options": { "choices": [ {"name": "Development", "color": "blueBright"}, {"name": "Design", "color": "purpleBright"}, {"name": "Marketing", "color": "greenBright"} ] } }
-
Multi Select
{ "name": "Tags", "type": "multiSelect", "description": "Project tags", "options": { "choices": [ {"name": "Urgent", "color": "redBright"}, {"name": "Bug Fix", "color": "orangeBright"}, {"name": "Feature", "color": "blueBright"} ] } }
Field Colors
Available colors for select fields:
blueBright
redBright
greenBright
yellowBright
purpleBright
pinkBright
grayBright
cyanBright
orangeBright
blueDark1
greenDark1
Contributing
We welcome contributions to improve the Airtable MCP server! Here's how you can contribute:
-
Fork the Repository
- Visit https://github.com/felores/airtable-mcp
- Click the "Fork" button in the top right
- Clone your fork locally:
git clone https://github.com/your-username/airtable-mcp.git
-
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Follow the existing code style
- Add tests if applicable
- Update documentation as needed
-
Commit Your Changes
git add . git commit -m "feat: add your feature description"
-
Push to Your Fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to your fork on GitHub
- Click "New Pull Request"
- Select your feature branch
- Describe your changes in detail
Development Guidelines
- Use TypeScript for new code
- Follow semantic commit messages
- Update documentation for new features
- Add examples for new functionality
- Test your changes thoroughly
Getting Help
- Open an issue for bugs or feature requests
- Join discussions in existing issues
- Ask questions in pull requests
Your contributions help make this tool better for everyone. Whether it's:
- Adding new features
- Fixing bugs
- Improving documentation
- Suggesting enhancements
We appreciate your help in making the Airtable MCP server more powerful and user-friendly!
License
MIT
Made with ❤️ by the Airtable MCP community