Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/domdomegg/airtable-mcp-server
๐๏ธ๐ค Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable bases
https://github.com/domdomegg/airtable-mcp-server
airtable mcp-server model-context-protocol
Last synced: 15 days ago
JSON representation
๐๏ธ๐ค Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable bases
- Host: GitHub
- URL: https://github.com/domdomegg/airtable-mcp-server
- Owner: domdomegg
- License: mit
- Created: 2024-12-12T17:16:40.000Z (22 days ago)
- Default Branch: master
- Last Pushed: 2024-12-12T18:50:12.000Z (22 days ago)
- Last Synced: 2024-12-12T19:39:32.602Z (22 days ago)
- Topics: airtable, mcp-server, model-context-protocol
- Language: JavaScript
- Homepage:
- Size: 89.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-mcp-servers - Airtable - Read and write access to Airtable databases. (Community Servers)
- awesome-mcp-servers - Airtable - Read and write access to Airtable databases, with schema inspection. (๐๏ธ <a name="databases"></a>Databases)
- awesome-mcp-servers - domdomegg/airtable-mcp-server - ในใญใผใๆคๆปใ่ชญใฟๅใ/ๆธใ่พผใฟๆฉ่ฝใๅใใ Airtable ใใผใฟใใผใน็ตฑๅ (ใตใผใใผๅฎ่ฃ / ๐๏ธ <a name="databases"></a>ใใผใฟใใผใน)
README
# 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
## Usage
To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"airtable": {
"command": "npx",
"args": [
"-y",
"airtable-mcp-server",
"pat123.abc123"
]
}
}
}
```Replace `pat123.abc123` with your [Airtable personal access token](https://airtable.com/create/tokens). Your token should have at least `schema.bases:read` and `data.records:read`, and optionally the corresponding write permissions.
## 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- **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
- Returns table ID, name, description, fields, and views- **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### Resources
The server provides schema information for Airtable bases and tables:
- **Table Schemas** (`airtable:////schema`)
- JSON schema information for each table
- Includes:
- Base id and table id
- Table name and description
- Primary field ID
- Field definitions (ID, name, type, description, options)
- View definitions (ID, name, type)
- Automatically discovered from Airtable's metadata API## 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`](./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](https://semver.org/).
To release:
1. Use `npm version ` 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.