airtable-data-accessor-service
Facilitates robust interaction with Airtable data stores, enabling record manipulation, schema introspection, and streamlined data operations for language models.
Author

wanattichia-skeelo
Quick Info
Actions
Tags
airtable-data-accessor-service
A Model Context Protocol (MCP) intermediary providing both read/write capabilities for Airtable repositories. This service empowers Large Language Models to first ascertain structural layouts (schemas) and subsequently execute data retrieval or modification operations.
https://github.com/user-attachments/assets/c8285e76-d0ed-4018-94c7-20535db6c944
Deployment Instructions
To integrate this server with the Claude Desktop environment, incorporate the subsequent configuration block into the mcpServers object within your claude_desktop_config.json file:
{ "mcpServers": { "airtable": { "command": "npx", "args": [ "-y", "airtable-mcp-server" ], "env": { "AIRTABLE_API_KEY": "pat123.abc123" } } } }
Substitute pat123.abc123 with your Airtable personal access credential. Ensure this token possesses at minimum permissions for schema.bases:read and data.records:read, with write access privileges being optional.
Functional Toolkit
Operations
- list_records
- Retrieves a sequence of entries from a designated Airtable dataset location.
-
Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the specific table.maxRecords(number, optional): Limit on the count of entries returned. Default is 100.filterByFormula(string, optional): Airtable-compatible expression for record filtering.
-
search_records
- Executes a text-based search across records for specified content.
-
Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the specific table.searchTerm(string, mandatory): The textual content to locate.fieldIds(array, optional): Array specifying which fields to inspect. If omitted, all text fields are searched.maxRecords(number, optional): Maximum resulting entries. Default is 100.
-
list_bases
- Enumerates all Airtable bases accessible by the provided credentials.
- Input requirements: None.
-
Output: Base identification code, nomenclature, and authorization level.
-
list_tables
- Retrieves a catalog of all tabular structures within a specified base.
- Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.detailLevel(string, optional): Granularity of returned information (tableIdentifiersOnly,identifiersOnly, orfull).
-
Output: Table metadata including ID, name, synopsis, field definitions, and view metadata (contingent on
detailLevel). -
describe_table
- Fetches comprehensive metadata for an individual table.
- Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the specific table to detail.detailLevel(string, optional): Granularity of detail (tableIdentifiersOnly,identifiersOnly, orfull).
-
Output: Structure identical to
list_tablesbut scoped to one table. Useful for targeted metadata retrieval. -
get_record
- Fetches a singular data entry using its unique identifier.
-
Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the relevant table.recordId(string, mandatory): The unique identifier of the desired record.
-
create_record
- Instantiates a novel data entry within a specified table structure.
-
Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the table receiving the entry.fields(object, mandatory): A map of field keys to their corresponding values for the new entry.
-
update_records
- Modifies the contents of one or more existing data entries.
-
Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the table containing the records.records(array, mandatory): A collection of objects, each containing arecordIdand thefieldsto be overwritten.
-
delete_records
- Permanently removes specified entries from a table.
-
Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the table housing the entries.recordIds(array, mandatory): A list of unique record identifiers slated for removal.
-
create_table
- Establishes a novel two-dimensional structure within a base.
-
Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.name(string, mandatory): The chosen nomenclature for the new structure.description(string, optional): Descriptive text for the structure.fields(array, mandatory): An array detailing the schema definitions (name, data type, description, configuration options).
-
update_table
- Modifies the designation or descriptive metadata of an existing table.
-
Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the structure requiring modification.name(string, optional): The revised name for the structure.description(string, optional): The updated synopsis for the structure.
-
create_field
- Introduces a new attribute column to an existing table.
-
Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the table receiving the new column.name(string, mandatory): The label for the new attribute.type(string, mandatory): The data typology of the attribute.description(string, optional): Explanatory note for the attribute.options(object, optional): Attribute-specific configuration settings.
-
update_field
- Adjusts the label or documentation of an existing table column.
- Parameters:
baseId(string, mandatory): Identifier for the target Airtable base.tableId(string, mandatory): Identifier for the table containing the column.fieldId(string, mandatory): The unique ID of the attribute column.name(string, optional): The proposed new label.description(string, optional): The revised documentation.
Data Sources (Schemas)
The service surfaces structural metadata for Airtable bases and tables via URI access:
- Table Schemas (
airtable://<baseId>/<tableId>/schema) - Provides JSON Schema representation for each table's data structure.
- Included Metadata:
- Base and table identifiers.
- Table nomenclature and summary.
- Designation for the primary identification field.
- Field definitions (ID, label, type, summary, configuration).
- View definitions (ID, name, categorization).
- This metadata is dynamically populated by querying Airtable's intrinsic metadata API.
Development Guidelines
We actively encourage contributions via pull requests on our repository! To begin development:
- Ensure Git and Node.js are installed on your environment.
- Clone the source repository.
- Resolve dependencies using
npm install. - Execute
npm run testto validate functionality. - Compile the project with
npm run build. - For iterative development, use
npm run build:watch. This option automatically recompiles upon file modification, allowing you to save changes, refresh Claude Desktop (via Ctrl/Cmd+R), and immediately observe the updates in the integrated environment.
Release Lifecycle
Versioning adheres strictly to the semantic versioning specification.
To initiate a formal release:
- Employ
npm version <major | minor | patch>to increment the version tag. - Push the repository, including the new tag, using
git push --follow-tags. - Await confirmation of publication to the NPM registry via GitHub Actions.
WIKIPEDIA: In the realm of computation, a database represents an orderly aggregation of structured data or a form of persistent data repository managed by a Database Management System (DBMS). The DBMS constitutes the software layer mediating interactions between end-users, applications, and the data itself for capture and analysis purposes. The DBMS bundle also incorporates essential functionalities for database administration. Collectively, the database, the DBMS, and affiliated applications are often termed a database system. Informally, the term "database" is frequently used as a shorthand for the DBMS, the entire system, or any application linked to the data structure. Prior to the widespread adoption of digital data storage and retrieval mechanisms, physical index cards served as a common medium for data organization across numerous contexts: household use for inventories like recipes or contacts; professional settings for tracking presentation notes or research; pedagogical aids such as flashcards; and scholarly pursuits for cataloging citations or research snippets in a card index. Professional indexers utilized these cards until indexing software superseded this methodology in the 1980s and 1990s. Smaller data collections might reside on a local file system, whereas large-scale data repositories are typically deployed across computational clusters or cloud infrastructure. Database architecture involves theoretical foundations and pragmatic constraints, encompassing data schema definition, efficient data encoding and persistence, query languages, security protocols for sensitive information, and distributed computing challenges like concurrency control and failure tolerance. Computer science professionals categorize DBMS implementations based on the data models they support. The Relational Database paradigm dominated throughout the 1980s, structuring data into tabular rows and columns, predominantly utilizing SQL for operations. The 2000s saw the ascendance of non-relational databases, collectively termed NoSQL, owing to their adoption of alternative query paradigms.
== Core Concepts and Overview == Formally, a "database" is defined as a structured collection of interconnected data elements accessed via a "Database Management System" (DBMS). The DBMS is an integrated software suite granting users controlled access to the data within one or more databases, subject to any defined access restrictions. The DBMS furnishes a suite of utilities for the systematic input, persistent storage, and rapid extraction of substantial volumes of information, along with mechanisms to govern its structural arrangement. Due to their inherent interdependence, the term "database" is often colloquially employed to encompass both the data repository and the associated DBMS utilized for its manipulation. Outside specialized IT domains, "database" is frequently used more broadly to denote any cohesive assembly of related data (e.g., a spreadsheet or a physical card file), irrespective of its scale.
