Airtable MCP Server
The Airtable MCP Server allows programmatic management of Airtable bases, tables, fields, and records through Claude Desktop or other MCP clients.
Capabilities include:
Base Management: List accessible bases, list tables in a base, create or update tables
Field Management: Create or update fields (including name, options, and descriptions)
Record Operations: List, create, update, delete, or search records; retrieve a single record by ID
Support for Various Field Types: singleLineText, multilineText, email, phoneNumber, number, currency, date, singleSelect, multiSelect, etc.
Customization: Define field options and descriptions, and use specific colors for select fields
Enables programmatic management of Airtable bases, tables, fields, and records, with capabilities for creating and modifying tables, adding and updating fields with various data types, and performing CRUD operations on records.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Airtable MCP Serverlist all tables in my project management base"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 or other MCP clients.
This MCP server features a specialized implementation that allows it to build tables in stages, leveraging Claude's agentic capabilities and minimizing the failure rate typically seen in other MCP servers for Airtable when building complex tables. It also includes system prompt and project knowledge markdown files to provide additional guidance for the LLM when leveraging projects in Claude Desktop.
Requirements: Node.js
Install Node.js (version 18 or higher) and npm from nodejs.org
Verify installation:
node --version npm --version
⚠️ Important: Before running, make sure to setup your Airtable API key
Related MCP server: Airtable MCP Server
Obtaining an 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
Installation
Method 1: Using npx (Recommended)
Navigate to the Claude configuration directory:
Windows:
C:\Users\NAME\AppData\Roaming\ClaudemacOS:
~/Library/Application Support/Claude/
You can also find these directories inside the Claude Desktop app: Claude Desktop > Settings > Developer > Edit Config
Create or edit
claude_desktop_config.json:
{
"mcpServers": {
"airtable": {
"command": "npx",
"args": ["@felores/airtable-mcp-server"],
"env": {
"AIRTABLE_API_KEY": "your_api_key_here"
}
}
}
}Note: For Windows paths, use double backslashes (\) or forward slashes (/).
Method 2: Using mcp-installer:
mcp-installer is a MCP server to install other MCP servers.
Install mcp-installer
Install the Airtable MCP server by prompting Claude Desktop:
Install @felores/airtable-mcp-server set the environment variable AIRTABLE_API_KEY to 'your_api_key'Claude will install the server, modify the configuration file and set the environment variable AIRTABLE_API_KEY to your Airtable API key.
Method 3: Local Development Installation
If you want to contribute or modify the code run this in your terminal:
# 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
# Run locally
node build/index.jsThen modify the Claude Desktop configuration file to use the local installation:
{
"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 basesFeatures
Available Operations
Base Management
list_bases: List all accessible Airtable baseslist_tables: List all tables in a basecreate_table: Create a new table with fieldsupdate_table: Update a table's name or description
Field Management
create_field: Add a new field to a tableupdate_field: Modify an existing field
Record Operations
list_records: Retrieve records from a tablecreate_record: Add a new recordupdate_record: Modify an existing recorddelete_record: Remove a recordsearch_records: Find records matching criteriaget_record: Get a single record by its ID
Field Types
singleLineText: Single line text fieldmultilineText: Multi-line text areaemail: Email address fieldphoneNumber: Phone number fieldnumber: Numeric field with optional precisioncurrency: Money field with currency symboldate: Date field with format optionssingleSelect: Single choice from optionsmultiSelect: Multiple choices from options
Field Colors
Available colors for select fields:
blueBright,redBright,greenBrightyellowBright,purpleBright,pinkBrightgrayBright,cyanBright,orangeBrightblueDark1,greenDark1
Contributing
We welcome contributions to improve the Airtable MCP server! Here's how you can contribute:
Fork the Repository
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-nameMake 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-nameCreate 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
Made with ❤️ by the Airtable MCP community
Available Tools
12 toolscreate_fieldC
Create a new field in a table
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_id | Yes | ID of the table | |
| field | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a creation operation but doesn't mention whether it requires specific permissions, what happens on success/failure, whether it's idempotent, or any rate limits. For a mutation tool with zero annotation coverage, this leaves significant behavioral gaps for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that efficiently communicates the core purpose. There's no wasted language or unnecessary elaboration. It's appropriately sized for a tool with a straightforward purpose, though the brevity comes at the cost of completeness in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and incomplete parameter documentation, the description is inadequate. It doesn't explain what happens after creation, what the response looks like, error conditions, or how this tool fits into the broader context of the Airtable-like system. The agent lacks crucial information to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, with the 'field' object having detailed properties documented in the schema. The description doesn't add any parameter information beyond what's in the schema - it doesn't explain what 'base_id' or 'table_id' refer to, what field types are available, or provide examples. With moderate schema coverage, the baseline 3 is appropriate as the description doesn't compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new field in a table'), making the purpose immediately understandable. It distinguishes this tool from siblings like 'create_record' or 'create_table' by specifying it creates a field rather than a record or table. However, it doesn't specify what kind of field or provide additional context about the field types available.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing a base and table first), when not to use it, or how it relates to sibling tools like 'update_field' or 'create_table'. The agent must infer usage from the tool name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_recordC
Create a new record in a table
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_name | Yes | Name of the table | |
| fields | Yes | Record fields as key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Create' implies a write/mutation operation, the description doesn't address permissions required, whether the operation is idempotent, what happens on conflicts, or what the response contains. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any fluff. It's front-loaded and wastes no words, making it easy to parse quickly. Every word earns its place in conveying the essential action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a mutation tool with 3 required parameters, no annotations, and no output schema), the description is incomplete. It doesn't address behavioral aspects like side effects, error conditions, or return values, nor does it provide usage context relative to siblings. For a tool that creates database records, more guidance is needed to ensure correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (base_id, table_name, fields) with clear descriptions. The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain format expectations, constraints, or examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('new record in a table'), making the purpose immediately understandable. It distinguishes from siblings like 'create_field' or 'create_table' by specifying 'record' rather than other database objects. However, it doesn't explicitly differentiate from 'update_record' in terms of creating vs. modifying existing records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing base and table), when to choose 'create_record' over 'update_record', or any constraints on usage. With multiple sibling tools available, this lack of contextual guidance is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_tableC
Create a new table in a base
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_name | Yes | Name of the new table | |
| description | No | Description of the table | |
| fields | No | Initial fields for the table |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the action ('Create') without disclosing behavioral traits. It doesn't mention permissions required, whether the operation is idempotent, what happens on conflicts (e.g., duplicate table names), or the response format. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core action and resource, making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of creating a table with multiple parameters and no annotations or output schema, the description is inadequate. It doesn't cover behavioral aspects, usage context, or return values, leaving significant gaps for an AI agent to understand how to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 4 parameters thoroughly. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain relationships between parameters like how 'fields' relate to 'table_name'). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and resource ('new table in a base'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'create_field' or 'create_record', which also create resources in bases, so it doesn't fully distinguish its specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing base), exclusions, or comparisons to siblings like 'create_field' (for adding fields to existing tables) or 'update_table' (for modifying tables).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recordC
Delete a record from a table
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_name | Yes | Name of the table | |
| record_id | Yes | ID of the record to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action is 'Delete,' implying a destructive mutation, but does not address critical aspects like whether deletion is permanent, requires specific permissions, has side effects, or provides confirmation. This is a significant gap for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with zero wasted words. It is appropriately sized and front-loaded, efficiently conveying the core action without unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature and lack of annotations or output schema, the description is incomplete. It fails to address behavioral risks, return values, or error conditions, leaving the agent with insufficient information for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting all three parameters (base_id, table_name, record_id). The description does not add any meaning beyond the schema, such as explaining relationships between parameters or providing examples. Baseline 3 is appropriate as the schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete') and resource ('a record from a table'), making the purpose immediately understandable. However, it does not differentiate from sibling tools like 'update_record' or 'create_record' beyond the verb, which would require more specificity about what distinguishes deletion from other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing an existing record, or compare it to siblings like 'update_record' for modifications. This lack of context leaves the agent without clear usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recordC
Get a single record by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_name | Yes | Name of the table | |
| record_id | Yes | ID of the record to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a read operation ('Get'), but doesn't mention permission requirements, error handling (e.g., what happens if ID doesn't exist), rate limits, or response format. This leaves significant gaps for a tool that interacts with data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's appropriately sized for a simple retrieval tool and front-loads the essential information about what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a data retrieval tool with no annotations and no output schema, the description is insufficient. It doesn't explain what a 'record' contains, what format the response takes, or any behavioral aspects like error conditions. Given the complexity of interacting with a database-like system and the lack of structured metadata, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions retrieving by 'ID' which maps to the 'record_id' parameter, but doesn't explain the purpose of 'base_id' and 'table_name' parameters or their relationship. With 100% schema description coverage, the schema documents all parameters adequately, so the description adds minimal value beyond what's already in the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('a single record'), and specifies the key identifier ('by its ID'). However, it doesn't explicitly differentiate from sibling tools like 'list_records' or 'search_records' which also retrieve records but with different approaches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_records' (for multiple records) or 'search_records' (for query-based retrieval). It mentions the ID requirement but doesn't explain when direct ID lookup is preferred over other methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_basesB
List all accessible Airtable bases
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it lists 'accessible' bases, implying some permission-based filtering, but doesn't specify what 'accessible' means, whether it requires authentication, or details about the return format (e.g., pagination, fields included). This leaves significant gaps for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's front-loaded and appropriately sized for a simple tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (0 parameters) but lack of annotations and output schema, the description is incomplete. It doesn't explain what 'accessible' entails, the format of returned data, or any behavioral aspects like error handling, making it inadequate for full agent understanding despite the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, so no parameters need documentation. The description appropriately doesn't discuss parameters, as there are none to explain, which aligns well with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all accessible Airtable bases'), making the purpose immediately understandable. It doesn't distinguish from siblings like 'list_tables' or 'list_records', which would require mentioning it returns bases rather than tables or records, so it lacks full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_tables' or 'list_records'. It doesn't mention prerequisites, such as needing authentication or specific permissions to access bases, or any context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recordsC
List records in a table
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_name | Yes | Name of the table | |
| max_records | No | Maximum number of records to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It states the action but does not disclose pagination behavior, rate limits, permissions needed, or output format. This is inadequate for a read operation with potential complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It is front-loaded and appropriately sized for a simple tool, making it easy to parse without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a read operation with potential behavioral nuances (e.g., pagination, ordering), the description is incomplete. It fails to address key contextual aspects like return format or limitations, leaving significant gaps for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents all parameters (base_id, table_name, max_records). The description adds no additional meaning beyond implying a table context, matching the baseline for high schema coverage without extra param details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List records in a table' clearly states the action (list) and target resource (records in a table), distinguishing it from siblings like get_record (singular fetch) or search_records (filtered search). However, it lacks specificity about scope or format, keeping it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like search_records or get_record. The description implies a basic listing operation but does not specify use cases, prerequisites, or exclusions, leaving the agent to infer usage from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesB
List all tables in a base
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but doesn't describe key behaviors: whether this is a read-only operation (implied but not explicit), if it requires specific permissions, what the output format looks like (e.g., list of table names or full metadata), or if there are pagination/rate limits. For a tool with zero annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action ('List all tables'), making it immediately scannable. Every word earns its place by conveying essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks context about behavioral traits, output format, or usage guidelines. For a simple list operation, this might suffice, but it doesn't provide enough information for confident tool selection in all scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'base_id' clearly documented. The description doesn't add any meaning beyond what the schema provides (e.g., it doesn't explain what a 'base' is or where to find the ID). Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('all tables in a base'), making the purpose immediately understandable. It distinguishes itself from siblings like list_bases (which lists bases) and list_records (which lists records within tables). However, it doesn't specify whether this includes hidden or system tables, which would make it a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (like needing a valid base_id), compare it to similar tools like list_bases, or indicate scenarios where other tools (like search_records for filtering) might be more appropriate. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_recordsC
Search for records in a table
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_name | Yes | Name of the table | |
| field_name | Yes | Name of the field to search in | |
| value | Yes | Value to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action ('search') but doesn't describe key behaviors: whether it returns all matches or is paginated, if the search is case-sensitive or supports wildcards, what happens on no matches (empty list or error), or any rate limits. This leaves significant gaps for a tool with 4 required parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It front-loads the core action ('search for records') and specifies the context ('in a table'), making it immediately clear. Every word earns its place, and there's no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 required parameters, no output schema, and no annotations), the description is incomplete. It doesn't explain the return format (e.g., list of records, error handling), search behavior, or how to interpret results. Sibling tools suggest a rich context (e.g., CRUD operations on bases/tables/records), but this description lacks necessary details for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 4 parameters (base_id, table_name, field_name, value). The description adds no additional semantic context beyond implying a search operation, such as how the value parameter is used (e.g., exact match, substring). This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('search') and resource ('records in a table'), making the purpose immediately understandable. It distinguishes itself from siblings like 'get_record' (singular retrieval) and 'list_records' (unfiltered listing). However, it doesn't specify the scope or type of search (e.g., exact match, partial, case-sensitive), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_records' (for unfiltered listing) or 'get_record' (for retrieving a specific record by ID). It also doesn't mention prerequisites, such as needing to know the base and table structure first, which could be inferred from sibling tools like 'list_bases' and 'list_tables'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_fieldC
Update a field in a table
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_id | Yes | ID of the table | |
| field_id | Yes | ID of the field to update | |
| updates | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is an update operation, implying mutation, but doesn't mention permissions required, whether changes are reversible, rate limits, or what happens to existing field data. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, directly stating the tool's purpose without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 4 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'updates' contains, how options are structured, or what the tool returns. Given the complexity and lack of structured data, more context is needed to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter-specific information beyond what's in the input schema, which has 75% coverage. It doesn't explain the structure of 'updates' or clarify the purpose of IDs like 'base_id' and 'table_id'. Since schema coverage is moderate, the baseline score of 3 is appropriate, but the description doesn't compensate for the 25% gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('a field in a table'), making the purpose understandable. However, it doesn't distinguish this tool from its sibling 'update_table' or 'update_record', which also perform updates on related resources in the same system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'update_table' or 'update_record'. The description lacks context about prerequisites (e.g., needing existing base/table/field IDs) or exclusions, leaving the agent to infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_recordC
Update an existing record in a table
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_name | Yes | Name of the table | |
| record_id | Yes | ID of the record to update | |
| fields | Yes | Record fields to update as key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a mutation operation but doesn't cover critical aspects like required permissions, whether updates are reversible, error handling for invalid inputs, or rate limits. This leaves significant gaps for a tool that modifies data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words, clearly front-loading the core purpose. It's appropriately sized for a straightforward tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool with no annotations and no output schema, the description is insufficient. It lacks details on behavioral traits, error conditions, or what the tool returns, leaving the agent with incomplete context for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all four parameters (base_id, table_name, record_id, fields). The description adds no additional meaning beyond what's in the schema, such as explaining the structure of 'fields' or providing examples, which aligns with the baseline score when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and target ('an existing record in a table'), which is specific and distinguishes it from siblings like create_record or delete_record. However, it doesn't specify what kind of updates are possible (e.g., field modifications) beyond the basic verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like update_field or update_table, nor does it mention prerequisites such as needing an existing record ID. The description only states what it does, not when or why to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tableC
Update a table's schema
| Name | Required | Description | Default |
|---|---|---|---|
| base_id | Yes | ID of the base | |
| table_id | Yes | ID of the table to update | |
| name | No | New name for the table | |
| description | No | New description for the table |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Update a table's schema,' implying a mutation operation, but fails to describe critical behaviors: whether it requires specific permissions, if changes are reversible, what happens to existing data, or error conditions. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It is front-loaded with the core action and resource, making it easy to parse. Every word earns its place, achieving optimal conciseness without sacrificing clarity for the given content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a mutation tool (updating a table schema) with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., side effects, permissions), usage context, and expected outcomes. While the schema covers parameters well, the overall context for safe and effective tool invocation is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear parameter documentation (e.g., 'ID of the base,' 'New name for the table'). The description adds no additional meaning beyond the schema, such as explaining parameter interactions or constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, but no extra credit is earned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('a table's schema'), making the purpose understandable. It distinguishes from siblings like 'update_record' or 'update_field' by specifying the table schema as the target. However, it doesn't explicitly mention what aspects of the schema can be updated (e.g., name, description), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing base and table IDs), exclusions (e.g., not for updating table data), or comparisons to siblings like 'update_field' (for field-level changes) or 'create_table' (for new tables). This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Every tool has a clearly distinct purpose targeting specific resources (bases, tables, fields, records) and actions (create, list, get, update, delete, search), with no ambiguity or overlap. For example, list_records and search_records are differentiated by listing all versus searching with criteria.
All tools follow a consistent verb_noun pattern using snake_case, such as create_record, list_tables, and update_field. This predictable naming scheme makes it easy for agents to understand and select the correct tool based on the intended action and resource.
With 12 tools, the server is well-scoped for managing Airtable resources, covering bases, tables, fields, and records. Each tool earns its place by providing essential CRUD and listing operations without being overly sparse or bloated.
The tool set offers complete CRUD/lifecycle coverage for the Airtable domain, including create, list, get, update, and delete operations for bases, tables, fields, and records, plus search functionality. There are no obvious gaps that would cause agent failures in typical workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Official Airtable MCP server — database and operations layer for agents.
Airtable MCP Pack — wraps the Airtable REST API v0
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceA 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.3,739456TypeScriptMIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides read and write access to Airtable databases, enabling LLMs to inspect database schemas, then read and write records.3,739MIT
- AlicenseAqualityDmaintenanceA production-ready Model Context Protocol server that enables AI assistants and applications to interact with Airtable bases through a standardized interface with secure OAuth 2.0 authentication.103MIT
- AlicenseNot gradedqualityBmaintenanceA production-ready MCP server for Airtable that enables programmatic management of bases, tables, fields, and records through Claude Desktop or other MCP clients using Effect for type-safe and robust API interactions.171MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/felores/airtable-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server