CCM
/MCP
SkillsMCPMarketplacesDigestLearnAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Learn
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Airtable

domdomegg/airtable-mcp-server
44718 toolsauthSTDIOregistry active
Summary

The Airtable MCP Server provides read and write access to Airtable databases through the Model Context Protocol, enabling LLMs to inspect database schemas and perform CRUD operations on records. It exposes tools for querying and modifying Airtable bases after authenticating with a personal access token, solving the problem of integrating Airtable data directly into AI workflows without manual data transfer. The server supports multiple client implementations including Claude Desktop, Cursor, and Cline, with flexible installation options ranging from browser extensions to manual configuration.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →

Tools

Public tool metadata for what this MCP can expose to an agent.

18 tools
airtable_list_recordsList records from an Airtable table. Supports filtering with formulas, sorting, field selection, views, and pagination (max 100 per page). Use the offset token from the response to get the next page.9 params

List records from an Airtable table. Supports filtering with formulas, sorting, field selection, views, and pagination (max 100 per page). Use the offset token from the response to get the next page.

Parameters* required
sortarray
Array of sort objects: [{"field": "Name", "direction": "asc"}]
viewstring
View name or ID to use for pre-filtering
fieldsarray
Array of field names to include in the response
offsetstring
Pagination token from previous response
base_idstring
Airtable base ID (e.g., "appXXXXXXXXXXXXXX")
page_sizenumber
Number of records per page (1-100, default: 100)
max_recordsnumber
Maximum total records to return
table_id_or_namestring
Table ID (e.g., "tblXXX") or table name (e.g., "Tasks")
filter_by_formulastring
Airtable formula to filter records (e.g., "{Status}='Active'")
airtable_get_recordGet a single record by its ID. Returns the record with all fields.3 params

Get a single record by its ID. Returns the record with all fields.

Parameters* required
base_idstring
Airtable base ID
record_idstring
Record ID (e.g., "recXXXXXXXXXXXXXX")
table_id_or_namestring
Table ID or name
airtable_create_recordsCreate one or more records in a table (max 10 per request). Each record needs a "fields" object with field name-value pairs. Enable typecast to auto-convert values to the correct field type.4 params

Create one or more records in a table (max 10 per request). Each record needs a "fields" object with field name-value pairs. Enable typecast to auto-convert values to the correct field type.

Parameters* required
base_idstring
Airtable base ID
recordsarray
Array of record objects (max 10). Each: {"fields": {"Name": "value", "Status": "Open"}}
typecastboolean
Auto-convert field values to correct type (default: false)
table_id_or_namestring
Table ID or name
airtable_update_recordsUpdate specific fields in one or more records (PATCH — partial update, max 10 per request). Only specified fields are changed; other fields remain untouched.4 params

Update specific fields in one or more records (PATCH — partial update, max 10 per request). Only specified fields are changed; other fields remain untouched.

Parameters* required
base_idstring
Airtable base ID
recordsarray
Array of record objects (max 10). Each: {"id": "recXXX", "fields": {"Status": "Done"}}
typecastboolean
Auto-convert field values to correct type (default: false)
table_id_or_namestring
Table ID or name
airtable_delete_recordsDelete one or more records by their IDs (max 10 per request). This action is irreversible.3 params

Delete one or more records by their IDs (max 10 per request). This action is irreversible.

Parameters* required
base_idstring
Airtable base ID
record_idsarray
Array of record IDs to delete (max 10)
table_id_or_namestring
Table ID or name
airtable_upsert_recordsUpdate existing records or create new ones based on matching fields. Specify fields_to_merge_on to match existing records — matched records are updated, unmatched are created.5 params

Update existing records or create new ones based on matching fields. Specify fields_to_merge_on to match existing records — matched records are updated, unmatched are created.

Parameters* required
base_idstring
Airtable base ID
recordsarray
Array of record objects. Each: {"fields": {"Email": "user@example.com", "Name": "John"}}
typecastboolean
Auto-convert field values to correct type (default: false)
table_id_or_namestring
Table ID or name
fields_to_merge_onarray
Field names to match existing records on (e.g., ["Email"])
airtable_list_basesList all bases accessible to the authenticated user. Returns base ID, name, and permission level.1 params

List all bases accessible to the authenticated user. Returns base ID, name, and permission level.

Parameters* required
offsetstring
Pagination token from previous response
airtable_get_base_schemaGet the complete schema of a base — all tables with their fields (name, type, options) and views. Essential for understanding the data structure before querying.1 params

Get the complete schema of a base — all tables with their fields (name, type, options) and views. Essential for understanding the data structure before querying.

Parameters* required
base_idstring
Airtable base ID (e.g., "appXXXXXXXXXXXXXX")
airtable_create_baseCreate a new base in a workspace. Requires at least one table with at least one field.3 params

Create a new base in a workspace. Requires at least one table with at least one field.

Parameters* required
namestring
Name for the new base
tablesarray
Array of table definitions. Each: {"name": "Tasks", "fields": [{"name": "Name", "type": "singleLineText"}]}
workspace_idstring
Workspace ID (e.g., "wspXXXXXXXXXXXXXX")
airtable_create_tableCreate a new table in a base. Requires at least one field. Field types: singleLineText, multilineText, number, singleSelect, multipleSelects, date, checkbox, email, url, etc.4 params

Create a new table in a base. Requires at least one field. Field types: singleLineText, multilineText, number, singleSelect, multipleSelects, date, checkbox, email, url, etc.

Parameters* required
namestring
Table name
fieldsarray
Array of field definitions. Each: {"name": "Status", "type": "singleSelect", "options": {"choices": [{"name": "Open"}]}}
base_idstring
Airtable base ID
descriptionstring
Table description
airtable_update_tableUpdate a table name or description.4 params

Update a table name or description.

Parameters* required
namestring
New table name
base_idstring
Airtable base ID
table_idstring
Table ID (e.g., "tblXXXXXXXXXXXXXX")
descriptionstring
New table description
airtable_create_fieldAdd a new field to a table. Common types: singleLineText, multilineText, number, singleSelect, multipleSelects, date, dateTime, checkbox, email, url, multipleAttachments, multipleRecordLinks.6 params

Add a new field to a table. Common types: singleLineText, multilineText, number, singleSelect, multipleSelects, date, dateTime, checkbox, email, url, multipleAttachments, multipleRecordLinks.

Parameters* required
namestring
Field name
typestring
Field type (e.g., "singleLineText", "number", "singleSelect")
base_idstring
Airtable base ID
optionsobject
Field options (e.g., for singleSelect: {"choices": [{"name": "High", "color": "redBright"}]})
table_idstring
Table ID
descriptionstring
Field description
airtable_update_fieldUpdate a field name or description. Cannot change field type.5 params

Update a field name or description. Cannot change field type.

Parameters* required
namestring
New field name
base_idstring
Airtable base ID
field_idstring
Field ID (e.g., "fldXXXXXXXXXXXXXX")
table_idstring
Table ID
descriptionstring
New field description
airtable_create_webhookCreate a webhook to receive notifications when data changes in a base. Webhooks expire after 7 days — use airtable_refresh_webhook to extend. Returns a MAC secret for verifying payloads.3 params

Create a webhook to receive notifications when data changes in a base. Webhooks expire after 7 days — use airtable_refresh_webhook to extend. Returns a MAC secret for verifying payloads.

Parameters* required
base_idstring
Airtable base ID
specificationobject
Webhook specification with filters (e.g., {"options": {"filters": {"dataTypes": ["tableData"], "recordChangeScope": "tblXXX"}}})
notification_urlstring
HTTPS URL to receive webhook notifications
airtable_list_webhooksList all webhooks for a base. Shows webhook IDs, enabled status, notification URLs, and expiration times.1 params

List all webhooks for a base. Shows webhook IDs, enabled status, notification URLs, and expiration times.

Parameters* required
base_idstring
Airtable base ID
airtable_refresh_webhookExtend a webhook expiration time by 7 days from now. Webhooks expire after 7 days — call this periodically to keep them active.2 params

Extend a webhook expiration time by 7 days from now. Webhooks expire after 7 days — call this periodically to keep them active.

Parameters* required
base_idstring
Airtable base ID
webhook_idstring
Webhook ID (e.g., "achXXXXXXXXXXXXXX")
airtable_list_webhook_payloadsGet pending webhook notification payloads. Returns changed records, fields, and tables since the last cursor position.4 params

Get pending webhook notification payloads. Returns changed records, fields, and tables since the last cursor position.

Parameters* required
limitnumber
Number of payloads to return (1-100, default: 100)
cursornumber
Cursor position from previous response for pagination
base_idstring
Airtable base ID
webhook_idstring
Webhook ID
airtable_delete_webhookDelete a webhook. Stops all notifications for this webhook.2 params

Delete a webhook. Stops all notifications for this webhook.

Parameters* required
base_idstring
Airtable base ID
webhook_idstring
Webhook ID to delete

airtable-mcp-server

A Model Context Protocol server that provides read and write access to Airtable databases. This server enables LLMs to inspect database schemas, then read and write records.

https://github.com/user-attachments/assets/c8285e76-d0ed-4018-94c7-20535db6c944

Installation

Step 1: Create an Airtable personal access token by clicking here. Details:

  • Name: Anything you want e.g. 'Airtable MCP Server Token'.
  • Scopes: schema.bases:read, data.records:read, and optionally schema.bases:write, data.records:write, data.recordComments:read, and data.recordComments:write.
  • Access: The bases you want to access. If you're not sure, select 'Add all resources'.

Keep the token handy, you'll need it in the next step. It should look something like pat123.abc123 (but longer).

Step 2: Follow the instructions below for your preferred client:

  • Claude Desktop
  • Cursor
  • Cline

Claude Desktop

(Recommended) Via the extensions browser

  1. Open Claude Desktop and go to Settings → Extensions
  2. Click 'Browse Extensions' and find 'Airtable MCP Server'
  3. Click 'Install' and paste in your API key

(Advanced) Alternative: Via manual .mcpb installation

  1. Find the latest mcpb build in the GitHub Actions history (the top one)
  2. In the 'Artifacts' section, download the airtable-mcp-server-mcpb file
  3. Rename the .zip file to .mcpb
  4. Double-click the .mcpb file to open with Claude Desktop
  5. Click "Install" and configure with your API key

(Advanced) Alternative: Via JSON configuration

  1. Install Node.js
  2. Open Claude Desktop and go to Settings → Developer
  3. Click "Edit Config" to open your claude_desktop_config.json file
  4. Add the following configuration to the "mcpServers" section, replacing pat123.abc123 with your API key:
{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": [
        "-y",
        "airtable-mcp-server"
      ],
      "env": {
        "AIRTABLE_API_KEY": "pat123.abc123"
      }
    }
  }
}
  1. Save the file and restart Claude Desktop

Cursor

(Recommended) Via one-click install

  1. Click Install MCP Server
  2. Edit your mcp.json file to insert your API key

(Advanced) Alternative: Via JSON configuration

Create either a global (~/.cursor/mcp.json) or project-specific (.cursor/mcp.json) configuration file, replacing pat123.abc123 with your API key:

{
  "mcpServers": {
    "airtable": {
      "command": "npx",
      "args": ["-y", "airtable-mcp-server"],
      "env": {
        "AIRTABLE_API_KEY": "pat123.abc123"
      }
    }
  }
}

Cline

(Recommended) Via marketplace

  1. Click the "MCP Servers" icon in the Cline extension
  2. Search for "Airtable" and click "Install"
  3. Follow the prompts to install the server

(Advanced) Alternative: Via JSON configuration

  1. Click the "MCP Servers" icon in the Cline extension
  2. Click on the "Installed" tab, then the "Configure MCP Servers" button at the bottom
  3. Add the following configuration to the "mcpServers" section, replacing pat123.abc123 with your API key:
{
  "mcpServers": {
    "airtable": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "airtable-mcp-server"],
      "env": {
        "AIRTABLE_API_KEY": "pat123.abc123"
      }
    }
  }
}

Components

Tools

  • list_records

    • Lists records from a specified Airtable table
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table to query
      • maxRecords (number, optional): Maximum number of records to return. Defaults to 100.
      • filterByFormula (string, optional): Airtable formula to filter records
  • search_records

    • Search for records containing specific text
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table to query
      • searchTerm (string, required): Text to search for in records
      • fieldIds (array, optional): Specific field IDs to search in. If not provided, searches all text-based fields.
      • maxRecords (number, optional): Maximum number of records to return. Defaults to 100.
  • list_bases

    • Lists all accessible Airtable bases
    • No input parameters required
    • Returns base ID, name, and permission level
  • list_tables

    • Lists all tables in a specific base
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • detailLevel (string, optional): The amount of detail to get about the tables (tableIdentifiersOnly, identifiersOnly, or full)
    • Returns table ID, name, description, fields, and views (to the given detailLevel)
  • describe_table

    • Gets detailed information about a specific table
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table to describe
      • detailLevel (string, optional): The amount of detail to get about the table (tableIdentifiersOnly, identifiersOnly, or full)
    • Returns the same format as list_tables but for a single table
    • Useful for getting details about a specific table without fetching information about all tables in the base
  • get_record

    • Gets a specific record by ID
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table
      • recordId (string, required): The ID of the record to retrieve
  • create_record

    • Creates a new record in a table
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table
      • fields (object, required): The fields and values for the new record
  • update_records

    • Updates one or more records in a table
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table
      • records (array, required): Array of objects containing record ID and fields to update
  • delete_records

    • Deletes one or more records from a table
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table
      • recordIds (array, required): Array of record IDs to delete
  • create_table

    • Creates a new table in a base
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • name (string, required): Name of the new table
      • description (string, optional): Description of the table
      • fields (array, required): Array of field definitions (name, type, description, options)
  • update_table

    • Updates a table's name or description
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table
      • name (string, optional): New name for the table
      • description (string, optional): New description for the table
  • create_field

    • Creates a new field in a table
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table
      • name (string, required): Name of the new field
      • type (string, required): Type of the field
      • description (string, optional): Description of the field
      • options (object, optional): Field-specific options
  • update_field

    • Updates a field's name or description
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table
      • fieldId (string, required): The ID of the field
      • name (string, optional): New name for the field
      • description (string, optional): New description for the field
  • create_comment

    • Creates a comment on a record
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table
      • recordId (string, required): The ID of the record
      • text (string, required): The comment text
      • parentCommentId (string, optional): Parent comment ID for threaded replies
    • Returns the created comment with ID, author, creation time, and text
  • list_comments

    • Lists comments on a record
    • Input parameters:
      • baseId (string, required): The ID of the Airtable base
      • tableId (string, required): The ID of the table
      • recordId (string, required): The ID of the record
      • pageSize (number, optional): Number of comments to return (max 100, default 100)
      • offset (string, optional): Pagination offset for retrieving additional comments
    • Returns comments array with author, text, timestamps, reactions, and mentions
    • Comments are returned from newest to oldest

HTTP Transport

The server can also run in HTTP mode for use with remote MCP clients:

MCP_TRANSPORT=http PORT=3000 npx airtable-mcp-server

This starts a stateless HTTP server at http://localhost:3000/mcp. Note: HTTP transport has no built-in authentication - only use behind a reverse proxy or in a secured environment.

Contributing

Pull requests are welcomed on GitHub! To get started:

  1. Install Git and Node.js
  2. Clone the repository
  3. Install dependencies with npm install
  4. Run npm run test to run tests
  5. Build with npm run build
  • You can use npm run build:watch to automatically build after editing src/index.ts. This means you can hit save, reload Claude Desktop (with Ctrl/Cmd+R), and the changes apply.

Releases

Versions follow the semantic versioning spec.

To release:

  1. Use npm version <major | minor | patch> to bump the version
  2. Run git push --follow-tags to push with tags
  3. Wait for GitHub Actions to publish to the NPM registry.
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →

Configuration

AIRTABLE_API_KEY*secret

Airtable personal access token (e.g., pat123.abc123). Create at https://airtable.com/create/tokens/new with scopes: schema.bases:read, data.records:read, and optionally schema.bases:write and data.records:write.

Categories
DatabasesDocuments & Knowledge
Registryactive
Packageairtable-mcp-server
TransportSTDIO
AuthRequired
UpdatedMar 7, 2026
View on GitHub

Related Databases MCP Servers

View all →
Postgres

ai.waystation/postgres

Connect to your PostgreSQL database to query data and schemas.
54
Read Only Local Postgres Mcp Server

hovecapital/read-only-local-postgres-mcp-server

MCP server for read-only PostgreSQL database queries in Claude Desktop
2
Database Mcp

cocaxcode/database-mcp

MCP server for database connectivity. Multi-DB (PostgreSQL, MySQL, SQLite), 19 tools.
1
Mcp Mysql

io.github.infoinlet-marketplace/mcp-mysql

Read-only MySQL/MariaDB for AI agents — query, list/describe tables, health. SQL-guarded.
Database Admin

io.github.cybeleri/database-admin

Database admin MCP: schema inspection, query optimization for PostgreSQL and MySQL
Postgres Secured (Aegis Zero-Trust)

io.github.yash-0620/postgres-mcp-secured

Enterprise PostgreSQL MCP secured by Aegis Zero-Trust to block unauthorized SQL injections.