@rashidazarang/airtable-mcp 3.1.0 โ 3.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +209 -334
- package/bin/airtable-mcp.js +12 -32
- package/dist/typescript/airtable-mcp-server.js +77 -0
- package/dist/typescript/airtable-mcp-server.js.map +1 -0
- package/dist/typescript/app/airtable-client.js +327 -0
- package/dist/typescript/app/airtable-client.js.map +1 -0
- package/dist/typescript/app/config.js +151 -0
- package/dist/typescript/app/config.js.map +1 -0
- package/dist/typescript/app/context.js +3 -0
- package/dist/typescript/app/context.js.map +1 -0
- package/dist/typescript/app/exceptions.js +85 -0
- package/dist/typescript/app/exceptions.js.map +1 -0
- package/dist/typescript/app/governance.js +58 -0
- package/dist/typescript/app/governance.js.map +1 -0
- package/dist/typescript/app/logger.js +47 -0
- package/dist/typescript/app/logger.js.map +1 -0
- package/dist/typescript/app/rateLimiter.js +37 -0
- package/dist/typescript/app/rateLimiter.js.map +1 -0
- package/dist/typescript/app/sanitize.js +95 -0
- package/dist/typescript/app/sanitize.js.map +1 -0
- package/dist/typescript/app/tools/create.js +55 -0
- package/dist/typescript/app/tools/create.js.map +1 -0
- package/dist/typescript/app/tools/describe.js +190 -0
- package/dist/typescript/app/tools/describe.js.map +1 -0
- package/dist/typescript/app/tools/handleError.js +205 -0
- package/dist/typescript/app/tools/handleError.js.map +1 -0
- package/dist/typescript/app/tools/index.js +24 -0
- package/dist/typescript/app/tools/index.js.map +1 -0
- package/dist/typescript/app/tools/listBases.js +47 -0
- package/dist/typescript/app/tools/listBases.js.map +1 -0
- package/dist/typescript/app/tools/listExceptions.js +16 -0
- package/dist/typescript/app/tools/listExceptions.js.map +1 -0
- package/dist/typescript/app/tools/listGovernance.js +15 -0
- package/dist/typescript/app/tools/listGovernance.js.map +1 -0
- package/dist/typescript/app/tools/query.js +133 -0
- package/dist/typescript/app/tools/query.js.map +1 -0
- package/dist/typescript/app/tools/response.js +21 -0
- package/dist/typescript/app/tools/response.js.map +1 -0
- package/dist/typescript/app/tools/update.js +57 -0
- package/dist/typescript/app/tools/update.js.map +1 -0
- package/dist/typescript/app/tools/upsert.js +66 -0
- package/dist/typescript/app/tools/upsert.js.map +1 -0
- package/dist/typescript/app/tools/webhooks.js +45 -0
- package/dist/typescript/app/tools/webhooks.js.map +1 -0
- package/dist/typescript/app/types.js +291 -0
- package/dist/typescript/app/types.js.map +1 -0
- package/dist/typescript/app/validateApiKey.js +75 -0
- package/dist/typescript/app/validateApiKey.js.map +1 -0
- package/dist/typescript/errors.js +75 -0
- package/dist/typescript/errors.js.map +1 -0
- package/dist/typescript/index.js +27 -0
- package/dist/typescript/index.js.map +1 -0
- package/package.json +49 -31
- package/tsconfig.json +10 -4
- package/types/typescript/airtable-mcp-server.d.ts +2 -0
- package/types/typescript/app/airtable-client.d.ts +50 -0
- package/types/typescript/app/config.d.ts +17 -0
- package/types/typescript/app/context.d.ts +12 -0
- package/types/typescript/app/exceptions.d.ts +12 -0
- package/types/typescript/app/governance.d.ts +18 -0
- package/types/typescript/app/logger.d.ts +13 -0
- package/types/typescript/app/rateLimiter.d.ts +13 -0
- package/types/typescript/app/sanitize.d.ts +50 -0
- package/types/typescript/app/tools/create.d.ts +3 -0
- package/types/typescript/app/tools/describe.d.ts +3 -0
- package/types/typescript/app/tools/handleError.d.ts +8 -0
- package/types/typescript/app/tools/index.d.ts +3 -0
- package/types/typescript/app/tools/listBases.d.ts +13 -0
- package/types/typescript/app/tools/listExceptions.d.ts +3 -0
- package/types/typescript/app/tools/listGovernance.d.ts +3 -0
- package/types/typescript/app/tools/query.d.ts +3 -0
- package/types/typescript/app/tools/response.d.ts +20 -0
- package/types/typescript/app/tools/update.d.ts +3 -0
- package/types/typescript/app/tools/upsert.d.ts +3 -0
- package/types/typescript/app/tools/webhooks.d.ts +3 -0
- package/types/typescript/app/types.d.ts +318 -0
- package/types/typescript/app/validateApiKey.d.ts +25 -0
- package/types/typescript/errors.d.ts +57 -0
- package/types/typescript/index.d.ts +10 -0
- package/types/typescript/prompt-templates.d.ts +5 -0
- package/types/typescript/tools-schemas.d.ts +5 -0
- package/airtable_simple.js +0 -1561
- package/airtable_simple_production.js +0 -1564
- package/dist/airtable-mcp-server.js +0 -660
- package/dist/airtable-mcp-server.js.map +0 -1
- package/dist/test-suite.js +0 -421
- package/dist/test-suite.js.map +0 -1
- package/examples/airtable-crud-example.js +0 -203
- package/examples/building-mcp.md +0 -6666
- package/examples/claude_config.json +0 -4
- package/examples/claude_simple_config.json +0 -7
- package/examples/env-demo.js +0 -172
- package/examples/example-tasks-update.json +0 -23
- package/examples/example-tasks.json +0 -26
- package/examples/example_usage.md +0 -124
- package/examples/python_debug_patch.txt +0 -27
- package/examples/sample-transform.js +0 -76
- package/examples/typescript/advanced-ai-prompts.ts +0 -447
- package/examples/typescript/basic-usage.ts +0 -174
- package/examples/typescript/claude-desktop-config.json +0 -29
- package/examples/windsurf_mcp_config.json +0 -17
- package/types/ai-prompts.d.ts +0 -321
- package/types/airtable-mcp-server.d.ts +0 -52
- package/types/index.d.ts +0 -357
- package/types/tools.d.ts +0 -514
- /package/types/{test-suite.d.ts โ typescript/test-suite.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -3,99 +3,51 @@
|
|
|
3
3
|
[](https://archestra.ai/mcp-catalog/rashidazarang__airtable-mcp)
|
|
4
4
|
[](https://smithery.ai/server/@rashidazarang/airtable-mcp)
|
|
5
5
|

|
|
6
|
-
[](https://github.com/rashidazarang/airtable-mcp)
|
|
7
7
|
[](https://www.typescriptlang.org/)
|
|
8
8
|
[](https://github.com/rashidazarang/airtable-mcp)
|
|
9
9
|
[](https://github.com/rashidazarang/airtable-mcp)
|
|
10
10
|
[](https://modelcontextprotocol.io/)
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## ๐ Latest: TypeScript Support v3.1.0
|
|
15
|
-
|
|
16
|
-
**Enterprise-Grade Type Safety** with full backward compatibility:
|
|
17
|
-
- ๐ท **TypeScript Implementation** - Complete type-safe server with strict validation
|
|
18
|
-
- ๐ **Comprehensive Type Definitions** - All 33 tools and 10 AI prompts fully typed
|
|
19
|
-
- ๐ก๏ธ **Compile-Time Safety** - Catch errors before runtime with advanced type checking
|
|
20
|
-
- ๐ฏ **Developer Experience** - IntelliSense, auto-completion, and refactoring support
|
|
21
|
-
- ๐ **Dual Distribution** - Use with JavaScript or TypeScript, your choice
|
|
22
|
-
- ๐ **Type Documentation** - Self-documenting APIs through comprehensive type definitions
|
|
23
|
-
|
|
24
|
-
## ๐ค AI Intelligence Suite
|
|
25
|
-
|
|
26
|
-
**Complete AI-Powered Intelligence** with enterprise capabilities:
|
|
27
|
-
- ๐ค **10 AI Prompt Templates** - Advanced analytics, predictions, and automation
|
|
28
|
-
- ๐ฎ **Predictive Analytics** - Forecasting and trend analysis with confidence intervals
|
|
29
|
-
- ๐ฃ๏ธ **Natural Language Processing** - Query your data using human language
|
|
30
|
-
- ๐ **Business Intelligence** - Automated insights and recommendations
|
|
31
|
-
- ๐๏ธ **Smart Schema Design** - AI-optimized database architecture
|
|
32
|
-
- โก **Workflow Automation** - Intelligent process optimization
|
|
33
|
-
- ๐ **Data Quality Auditing** - Comprehensive quality assessment and fixes
|
|
34
|
-
- ๐ **Statistical Analysis** - Advanced analytics with significance testing
|
|
35
|
-
|
|
36
|
-
## โจ Features
|
|
37
|
-
|
|
38
|
-
- ๐ **Natural Language Queries** - Ask questions about your data in plain English
|
|
39
|
-
- ๐ **Full CRUD Operations** - Create, read, update, and delete records
|
|
40
|
-
- ๐ช **Webhook Management** - Create and manage webhooks for real-time notifications
|
|
41
|
-
- ๐๏ธ **Advanced Schema Management** - Create tables, fields, and manage base structure
|
|
42
|
-
- ๐ **Base Discovery** - Explore all accessible bases and their schemas
|
|
43
|
-
- ๐ง **Field Management** - Add, modify, and remove fields programmatically
|
|
44
|
-
- ๐ **Secure Authentication** - Uses environment variables for credentials
|
|
45
|
-
- ๐ **Easy Setup** - Multiple installation options available
|
|
46
|
-
- โก **Fast & Reliable** - Built with Node.js for optimal performance
|
|
47
|
-
- ๐ฏ **33 Powerful Tools** - Complete Airtable API coverage with batch operations
|
|
48
|
-
- ๐ **Attachment Management** - Upload files via URLs to attachment fields
|
|
49
|
-
- โก **Batch Operations** - Create, update, delete up to 10 records at once
|
|
50
|
-
- ๐ฅ **Collaboration Tools** - Manage base collaborators and shared views
|
|
51
|
-
- ๐ค **AI Integration** - Prompts and sampling for intelligent data operations
|
|
52
|
-
- ๐ **Enterprise Security** - OAuth2, rate limiting, comprehensive validation
|
|
53
|
-
|
|
54
|
-
## ๐ Prerequisites
|
|
55
|
-
|
|
56
|
-
- Node.js 14+ installed on your system
|
|
57
|
-
- An Airtable account with a Personal Access Token
|
|
58
|
-
- Your Airtable Base ID
|
|
12
|
+
A Model Context Protocol (MCP) server for Airtable with full CRUD operations, schema management, webhooks, batch operations, and AI-powered analytics.
|
|
59
13
|
|
|
60
|
-
|
|
14
|
+
**Version 3.2.6** | MCP Protocol 2024-11-05
|
|
61
15
|
|
|
62
|
-
|
|
16
|
+
---
|
|
63
17
|
|
|
64
|
-
|
|
65
|
-
- `data.records:read` - Read records from tables
|
|
66
|
-
- `data.records:write` - Create, update, delete records
|
|
67
|
-
- `schema.bases:read` - View table schemas
|
|
68
|
-
- `schema.bases:write` - **New in v1.5.0** - Create/modify tables and fields
|
|
69
|
-
- `webhook:manage` - (Optional) For webhook features
|
|
18
|
+
## Overview
|
|
70
19
|
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
https://airtable.com/[BASE_ID]/...
|
|
74
|
-
```
|
|
20
|
+
This server provides comprehensive Airtable integration through the Model Context Protocol, enabling natural language interactions with your Airtable data. It includes 33 tools for data operations and 10 AI prompt templates for intelligent analytics.
|
|
75
21
|
|
|
76
|
-
###
|
|
22
|
+
### Key Features
|
|
77
23
|
|
|
78
|
-
|
|
24
|
+
- **Full CRUD Operations** โ Create, read, update, and delete records with filtering and pagination
|
|
25
|
+
- **Schema Management** โ Create and modify tables, fields, and views programmatically
|
|
26
|
+
- **Batch Operations** โ Process up to 10 records per operation for improved performance
|
|
27
|
+
- **Webhook Management** โ Set up real-time notifications for data changes
|
|
28
|
+
- **AI Analytics** โ Predictive analytics, natural language queries, and automated insights
|
|
29
|
+
- **Multi-Base Support** โ Discover and work with multiple bases dynamically
|
|
30
|
+
- **Type Safety** โ Full TypeScript support with comprehensive type definitions
|
|
79
31
|
|
|
80
|
-
|
|
32
|
+
---
|
|
81
33
|
|
|
82
|
-
|
|
83
|
-
# Install with TypeScript support
|
|
84
|
-
npm install -g @rashidazarang/airtable-mcp
|
|
34
|
+
## Prerequisites
|
|
85
35
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
36
|
+
- Node.js 14 or later
|
|
37
|
+
- An Airtable account with a Personal Access Token
|
|
38
|
+
- Your Airtable Base ID (optionalโcan be discovered via the `list_bases` tool)
|
|
39
|
+
|
|
40
|
+
---
|
|
89
41
|
|
|
90
|
-
|
|
42
|
+
## Installation
|
|
91
43
|
|
|
92
|
-
|
|
44
|
+
### Option 1: NPM (Recommended)
|
|
93
45
|
|
|
94
46
|
```bash
|
|
95
47
|
npm install -g @rashidazarang/airtable-mcp
|
|
96
48
|
```
|
|
97
49
|
|
|
98
|
-
|
|
50
|
+
### Option 2: Clone from GitHub
|
|
99
51
|
|
|
100
52
|
```bash
|
|
101
53
|
git clone https://github.com/rashidazarang/airtable-mcp.git
|
|
@@ -103,52 +55,37 @@ cd airtable-mcp
|
|
|
103
55
|
npm install
|
|
104
56
|
```
|
|
105
57
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
Create a `.env` file in your project directory:
|
|
58
|
+
---
|
|
109
59
|
|
|
110
|
-
|
|
111
|
-
AIRTABLE_TOKEN=your_personal_access_token_here
|
|
112
|
-
AIRTABLE_BASE_ID=your_base_id_here
|
|
113
|
-
```
|
|
60
|
+
## Configuration
|
|
114
61
|
|
|
115
|
-
|
|
62
|
+
### Step 1: Get Your Airtable Credentials
|
|
116
63
|
|
|
117
|
-
|
|
64
|
+
1. **Personal Access Token**: Go to [Airtable Account Settings](https://airtable.com/account) and create a token with these scopes:
|
|
65
|
+
- `data.records:read` โ Read records
|
|
66
|
+
- `data.records:write` โ Create, update, delete records
|
|
67
|
+
- `schema.bases:read` โ View table schemas
|
|
68
|
+
- `schema.bases:write` โ Create and modify tables and fields
|
|
69
|
+
- `webhook:manage` โ Manage webhooks (optional)
|
|
118
70
|
|
|
119
|
-
|
|
71
|
+
2. **Base ID**: Open your Airtable base and copy the ID from the URL: `https://airtable.com/[BASE_ID]/...`
|
|
120
72
|
|
|
121
|
-
|
|
73
|
+
### Step 2: Environment Variables
|
|
122
74
|
|
|
123
|
-
|
|
124
|
-
**Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`
|
|
75
|
+
Create a `.env` file in your project directory:
|
|
125
76
|
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"airtable-typescript": {
|
|
130
|
-
"command": "npx",
|
|
131
|
-
"args": [
|
|
132
|
-
"@rashidazarang/airtable-mcp",
|
|
133
|
-
"--token",
|
|
134
|
-
"YOUR_AIRTABLE_TOKEN",
|
|
135
|
-
"--base",
|
|
136
|
-
"YOUR_BASE_ID"
|
|
137
|
-
],
|
|
138
|
-
"env": {
|
|
139
|
-
"NODE_ENV": "production",
|
|
140
|
-
"LOG_LEVEL": "INFO"
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
77
|
+
```bash
|
|
78
|
+
AIRTABLE_TOKEN=your_personal_access_token
|
|
79
|
+
AIRTABLE_BASE_ID=your_base_id # Optional in v3.2.5+
|
|
145
80
|
```
|
|
146
81
|
|
|
147
|
-
|
|
82
|
+
> **Note**: The Base ID is optional. You can start without one and use the `list_bases` tool to discover accessible bases, or specify base IDs per tool call.
|
|
148
83
|
|
|
149
|
-
|
|
84
|
+
### Step 3: Configure Your MCP Client
|
|
150
85
|
|
|
151
|
-
|
|
86
|
+
Add to your Claude Desktop configuration:
|
|
87
|
+
|
|
88
|
+
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
152
89
|
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
153
90
|
|
|
154
91
|
```json
|
|
@@ -156,19 +93,17 @@ Add to your Claude Desktop configuration file:
|
|
|
156
93
|
"mcpServers": {
|
|
157
94
|
"airtable": {
|
|
158
95
|
"command": "npx",
|
|
159
|
-
"args": [
|
|
160
|
-
|
|
161
|
-
"
|
|
162
|
-
"
|
|
163
|
-
|
|
164
|
-
"YOUR_BASE_ID"
|
|
165
|
-
]
|
|
96
|
+
"args": ["@rashidazarang/airtable-mcp"],
|
|
97
|
+
"env": {
|
|
98
|
+
"AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN",
|
|
99
|
+
"AIRTABLE_BASE_ID": "YOUR_BASE_ID"
|
|
100
|
+
}
|
|
166
101
|
}
|
|
167
102
|
}
|
|
168
103
|
}
|
|
169
104
|
```
|
|
170
105
|
|
|
171
|
-
|
|
106
|
+
To start without a base ID (and discover bases dynamically):
|
|
172
107
|
|
|
173
108
|
```json
|
|
174
109
|
{
|
|
@@ -177,34 +112,59 @@ Add to your Claude Desktop configuration file:
|
|
|
177
112
|
"command": "npx",
|
|
178
113
|
"args": ["@rashidazarang/airtable-mcp"],
|
|
179
114
|
"env": {
|
|
180
|
-
"AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN"
|
|
181
|
-
"AIRTABLE_BASE_ID": "YOUR_BASE_ID"
|
|
115
|
+
"AIRTABLE_TOKEN": "YOUR_AIRTABLE_TOKEN"
|
|
182
116
|
}
|
|
183
117
|
}
|
|
184
118
|
}
|
|
185
119
|
}
|
|
186
120
|
```
|
|
187
121
|
|
|
188
|
-
### Step
|
|
122
|
+
### Step 4: Restart Your MCP Client
|
|
189
123
|
|
|
190
|
-
|
|
124
|
+
Restart Claude Desktop or your MCP client to load the server.
|
|
191
125
|
|
|
192
|
-
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Usage
|
|
129
|
+
|
|
130
|
+
Once configured, interact with your Airtable data using natural language:
|
|
131
|
+
|
|
132
|
+
### Basic Operations
|
|
133
|
+
|
|
134
|
+
- "List all my accessible Airtable bases"
|
|
135
|
+
- "Show me all records in the Projects table"
|
|
136
|
+
- "Create a new task with priority 'High' and due date tomorrow"
|
|
137
|
+
- "Update the status of task ID rec123 to 'Completed'"
|
|
138
|
+
- "Search for records where Status equals 'Active'"
|
|
139
|
+
|
|
140
|
+
### Schema Management
|
|
193
141
|
|
|
194
|
-
|
|
142
|
+
- "Show me the complete schema for this base"
|
|
143
|
+
- "Create a new table called 'Tasks' with Name, Priority, and Due Date fields"
|
|
144
|
+
- "Add a Status field to the Projects table"
|
|
195
145
|
|
|
196
|
-
###
|
|
146
|
+
### Batch Operations
|
|
147
|
+
|
|
148
|
+
- "Create 5 new records at once in the Tasks table"
|
|
149
|
+
- "Update multiple records with new status values"
|
|
150
|
+
- "Delete these 3 records in one operation"
|
|
151
|
+
|
|
152
|
+
### Webhooks
|
|
153
|
+
|
|
154
|
+
- "Create a webhook for my table that notifies https://my-app.com/webhook"
|
|
155
|
+
- "List all active webhooks in my base"
|
|
156
|
+
|
|
157
|
+
### TypeScript Usage
|
|
197
158
|
|
|
198
159
|
```typescript
|
|
199
|
-
import {
|
|
200
|
-
AirtableMCPServer,
|
|
201
|
-
ListRecordsInput,
|
|
202
|
-
AnalyzeDataPrompt
|
|
160
|
+
import {
|
|
161
|
+
AirtableMCPServer,
|
|
162
|
+
ListRecordsInput,
|
|
163
|
+
AnalyzeDataPrompt
|
|
203
164
|
} from '@rashidazarang/airtable-mcp/types';
|
|
204
165
|
|
|
205
166
|
const server = new AirtableMCPServer();
|
|
206
167
|
|
|
207
|
-
// Type-safe data operations
|
|
208
168
|
const params: ListRecordsInput = {
|
|
209
169
|
table: 'Tasks',
|
|
210
170
|
maxRecords: 10,
|
|
@@ -212,147 +172,109 @@ const params: ListRecordsInput = {
|
|
|
212
172
|
};
|
|
213
173
|
|
|
214
174
|
const records = await server.handleToolCall('list_records', params);
|
|
215
|
-
|
|
216
|
-
// Type-safe AI analytics
|
|
217
|
-
const analysis: AnalyzeDataPrompt = {
|
|
218
|
-
table: 'Sales',
|
|
219
|
-
analysis_type: 'predictive',
|
|
220
|
-
confidence_level: 0.95
|
|
221
|
-
};
|
|
222
|
-
|
|
223
|
-
const insights = await server.handlePromptGet('analyze_data', analysis);
|
|
224
175
|
```
|
|
225
176
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
**Basic Operations**
|
|
229
|
-
```
|
|
230
|
-
"Show me all records in the Projects table"
|
|
231
|
-
"Create a new task with priority 'High' and due date tomorrow"
|
|
232
|
-
"Update the status of task ID rec123 to 'Completed'"
|
|
233
|
-
"Delete all records where status is 'Archived'"
|
|
234
|
-
"What tables are in my base?"
|
|
235
|
-
"Search for records where Status equals 'Active'"
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
**Webhook Operations (v1.4.0+)**
|
|
239
|
-
```
|
|
240
|
-
"Create a webhook for my table that notifies https://my-app.com/webhook"
|
|
241
|
-
"List all active webhooks in my base"
|
|
242
|
-
"Show me the recent webhook payloads"
|
|
243
|
-
"Delete webhook ach123xyz"
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
**Schema Management (v1.5.0+)**
|
|
247
|
-
```
|
|
248
|
-
"List all my accessible Airtable bases"
|
|
249
|
-
"Show me the complete schema for this base"
|
|
250
|
-
"Describe the Projects table with all field details"
|
|
251
|
-
"Create a new table called 'Tasks' with Name, Priority, and Due Date fields"
|
|
252
|
-
"Add a Status field to the existing Projects table"
|
|
253
|
-
"What field types are available in Airtable?"
|
|
254
|
-
```
|
|
177
|
+
---
|
|
255
178
|
|
|
256
|
-
|
|
257
|
-
```
|
|
258
|
-
"Create 5 new records at once in the Tasks table"
|
|
259
|
-
"Update multiple records with new status values"
|
|
260
|
-
"Delete these 3 records in one operation"
|
|
261
|
-
"Attach this image URL to the record's photo field"
|
|
262
|
-
"Who are the collaborators on this base?"
|
|
263
|
-
"Show me all shared views in this base"
|
|
264
|
-
```
|
|
179
|
+
## Available Tools
|
|
265
180
|
|
|
266
|
-
|
|
181
|
+
### Data Operations (7 tools)
|
|
267
182
|
|
|
268
|
-
### ๐ Data Operations (7 tools)
|
|
269
183
|
| Tool | Description |
|
|
270
184
|
|------|-------------|
|
|
271
185
|
| `list_tables` | Get all tables in your base with schema information |
|
|
272
|
-
| `list_records` | Query records with
|
|
186
|
+
| `list_records` | Query records with filtering and pagination |
|
|
273
187
|
| `get_record` | Retrieve a single record by ID |
|
|
274
188
|
| `create_record` | Add new records to any table |
|
|
275
189
|
| `update_record` | Modify existing record fields |
|
|
276
190
|
| `delete_record` | Remove records from a table |
|
|
277
|
-
| `search_records` | Advanced search with Airtable formulas
|
|
191
|
+
| `search_records` | Advanced search with Airtable formulas |
|
|
278
192
|
|
|
279
|
-
###
|
|
280
|
-
| Tool | Description |
|
|
281
|
-
|------|-------------|
|
|
282
|
-
| `list_webhooks` | View all webhooks configured for your base |
|
|
283
|
-
| `create_webhook` | Set up real-time notifications for data changes |
|
|
284
|
-
| `delete_webhook` | Remove webhook configurations |
|
|
285
|
-
| `get_webhook_payloads` | Retrieve webhook notification history |
|
|
286
|
-
| `refresh_webhook` | Extend webhook expiration time |
|
|
193
|
+
### Schema Discovery (6 tools)
|
|
287
194
|
|
|
288
|
-
### ๐ Schema Discovery (6 tools) - **New in v1.5.0**
|
|
289
195
|
| Tool | Description |
|
|
290
196
|
|------|-------------|
|
|
291
|
-
| `list_bases` | List all accessible
|
|
292
|
-
| `get_base_schema` | Get complete schema
|
|
293
|
-
| `describe_table` | Get detailed table
|
|
294
|
-
| `list_field_types` | Reference guide for
|
|
295
|
-
| `get_table_views` | List all views for a
|
|
197
|
+
| `list_bases` | List all accessible bases with permissions |
|
|
198
|
+
| `get_base_schema` | Get complete schema for any base |
|
|
199
|
+
| `describe_table` | Get detailed table and field specifications |
|
|
200
|
+
| `list_field_types` | Reference guide for available field types |
|
|
201
|
+
| `get_table_views` | List all views for a table |
|
|
202
|
+
|
|
203
|
+
### Table Management (3 tools)
|
|
296
204
|
|
|
297
|
-
### ๐๏ธ Table Management (3 tools) - **New in v1.5.0**
|
|
298
205
|
| Tool | Description |
|
|
299
206
|
|------|-------------|
|
|
300
|
-
| `create_table` | Create
|
|
207
|
+
| `create_table` | Create tables with custom field definitions |
|
|
301
208
|
| `update_table` | Modify table names and descriptions |
|
|
302
|
-
| `delete_table` | Remove tables (
|
|
209
|
+
| `delete_table` | Remove tables (requires confirmation) |
|
|
210
|
+
|
|
211
|
+
### Field Management (3 tools)
|
|
303
212
|
|
|
304
|
-
### ๐ง Field Management (3 tools) - **New in v1.5.0**
|
|
305
213
|
| Tool | Description |
|
|
306
214
|
|------|-------------|
|
|
307
|
-
| `create_field` | Add
|
|
308
|
-
| `update_field` | Modify field properties
|
|
309
|
-
| `delete_field` | Remove fields (
|
|
215
|
+
| `create_field` | Add fields to existing tables |
|
|
216
|
+
| `update_field` | Modify field properties and options |
|
|
217
|
+
| `delete_field` | Remove fields (requires confirmation) |
|
|
218
|
+
|
|
219
|
+
### Batch Operations (4 tools)
|
|
310
220
|
|
|
311
|
-
### โก Batch Operations (4 tools) - **New in v1.6.0**
|
|
312
221
|
| Tool | Description |
|
|
313
222
|
|------|-------------|
|
|
314
|
-
| `batch_create_records` | Create up to 10 records at once
|
|
223
|
+
| `batch_create_records` | Create up to 10 records at once |
|
|
315
224
|
| `batch_update_records` | Update up to 10 records simultaneously |
|
|
316
|
-
| `batch_delete_records` | Delete up to 10 records in
|
|
317
|
-
| `batch_upsert_records` | Update
|
|
225
|
+
| `batch_delete_records` | Delete up to 10 records in one operation |
|
|
226
|
+
| `batch_upsert_records` | Update or create records based on key fields |
|
|
227
|
+
|
|
228
|
+
### Webhook Management (5 tools)
|
|
318
229
|
|
|
319
|
-
### ๐ Attachment Management (1 tool) - **New in v1.6.0**
|
|
320
230
|
| Tool | Description |
|
|
321
231
|
|------|-------------|
|
|
322
|
-
| `
|
|
232
|
+
| `list_webhooks` | View all configured webhooks |
|
|
233
|
+
| `create_webhook` | Set up real-time notifications |
|
|
234
|
+
| `delete_webhook` | Remove webhook configurations |
|
|
235
|
+
| `get_webhook_payloads` | Retrieve notification history |
|
|
236
|
+
| `refresh_webhook` | Extend webhook expiration |
|
|
237
|
+
|
|
238
|
+
### Views and Attachments (3 tools)
|
|
323
239
|
|
|
324
|
-
### ๐๏ธ Advanced Views (2 tools) - **New in v1.6.0**
|
|
325
240
|
| Tool | Description |
|
|
326
241
|
|------|-------------|
|
|
327
|
-
| `create_view` | Create
|
|
328
|
-
| `get_view_metadata` | Get
|
|
242
|
+
| `create_view` | Create views (grid, form, calendar, etc.) |
|
|
243
|
+
| `get_view_metadata` | Get view details including filters |
|
|
244
|
+
| `upload_attachment` | Attach files from URLs |
|
|
245
|
+
|
|
246
|
+
### Base Management (3 tools)
|
|
329
247
|
|
|
330
|
-
### ๐ข Base Management (3 tools) - **New in v1.6.0**
|
|
331
248
|
| Tool | Description |
|
|
332
249
|
|------|-------------|
|
|
333
|
-
| `create_base` | Create new
|
|
334
|
-
| `list_collaborators` | View
|
|
335
|
-
| `list_shares` | List shared views and
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
|
344
|
-
|
|
345
|
-
| `
|
|
346
|
-
| `
|
|
347
|
-
| `
|
|
348
|
-
| `
|
|
349
|
-
| `
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
250
|
+
| `create_base` | Create new bases with initial structure |
|
|
251
|
+
| `list_collaborators` | View collaborators and permissions |
|
|
252
|
+
| `list_shares` | List shared views and configurations |
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## AI Intelligence Suite
|
|
257
|
+
|
|
258
|
+
Ten AI prompt templates for advanced analytics:
|
|
259
|
+
|
|
260
|
+
| Prompt | Description |
|
|
261
|
+
|--------|-------------|
|
|
262
|
+
| `analyze_data` | Statistical analysis with anomaly detection |
|
|
263
|
+
| `create_report` | Intelligent report generation |
|
|
264
|
+
| `data_insights` | Business intelligence and pattern discovery |
|
|
265
|
+
| `optimize_workflow` | Automation recommendations |
|
|
266
|
+
| `smart_schema_design` | Database optimization suggestions |
|
|
267
|
+
| `data_quality_audit` | Quality assessment and remediation |
|
|
268
|
+
| `predictive_analytics` | Forecasting and trend prediction |
|
|
269
|
+
| `natural_language_query` | Process questions with context awareness |
|
|
270
|
+
| `smart_data_transformation` | AI-assisted data processing |
|
|
271
|
+
| `automation_recommendations` | Workflow optimization with cost-benefit analysis |
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## Advanced Configuration
|
|
276
|
+
|
|
277
|
+
### Smithery Cloud
|
|
356
278
|
|
|
357
279
|
```json
|
|
358
280
|
{
|
|
@@ -363,10 +285,8 @@ For cloud-hosted MCP servers:
|
|
|
363
285
|
"@smithery/cli",
|
|
364
286
|
"run",
|
|
365
287
|
"@rashidazarang/airtable-mcp",
|
|
366
|
-
"--token",
|
|
367
|
-
"
|
|
368
|
-
"--base",
|
|
369
|
-
"YOUR_BASE_ID"
|
|
288
|
+
"--token", "YOUR_TOKEN",
|
|
289
|
+
"--base", "YOUR_BASE_ID"
|
|
370
290
|
]
|
|
371
291
|
}
|
|
372
292
|
}
|
|
@@ -375,8 +295,6 @@ For cloud-hosted MCP servers:
|
|
|
375
295
|
|
|
376
296
|
### Direct Node.js Execution
|
|
377
297
|
|
|
378
|
-
If you cloned the repository:
|
|
379
|
-
|
|
380
298
|
```json
|
|
381
299
|
{
|
|
382
300
|
"mcpServers": {
|
|
@@ -384,144 +302,101 @@ If you cloned the repository:
|
|
|
384
302
|
"command": "node",
|
|
385
303
|
"args": [
|
|
386
304
|
"/path/to/airtable-mcp/airtable_simple.js",
|
|
387
|
-
"--token",
|
|
388
|
-
"
|
|
389
|
-
"--base",
|
|
390
|
-
"YOUR_BASE_ID"
|
|
305
|
+
"--token", "YOUR_TOKEN",
|
|
306
|
+
"--base", "YOUR_BASE_ID"
|
|
391
307
|
]
|
|
392
308
|
}
|
|
393
309
|
}
|
|
394
310
|
}
|
|
395
311
|
```
|
|
396
312
|
|
|
397
|
-
|
|
313
|
+
---
|
|
398
314
|
|
|
399
|
-
|
|
315
|
+
## Testing
|
|
400
316
|
|
|
401
|
-
|
|
317
|
+
### TypeScript
|
|
402
318
|
|
|
403
319
|
```bash
|
|
404
|
-
# Install dependencies first
|
|
405
320
|
npm install
|
|
406
|
-
|
|
407
|
-
#
|
|
408
|
-
npm run
|
|
409
|
-
|
|
410
|
-
# Run full TypeScript test suite
|
|
411
|
-
npm run test:ts
|
|
412
|
-
|
|
413
|
-
# Build and test TypeScript server
|
|
414
|
-
npm run build
|
|
415
|
-
npm run start:ts
|
|
321
|
+
npm run test:types # Type checking
|
|
322
|
+
npm run test:ts # Full test suite
|
|
323
|
+
npm run build && npm run start:ts
|
|
416
324
|
```
|
|
417
325
|
|
|
418
|
-
###
|
|
419
|
-
|
|
420
|
-
Run the comprehensive test suite to verify all 33 tools:
|
|
326
|
+
### JavaScript
|
|
421
327
|
|
|
422
328
|
```bash
|
|
423
|
-
# Set environment variables first
|
|
424
329
|
export AIRTABLE_TOKEN=your_token
|
|
425
330
|
export AIRTABLE_BASE_ID=your_base_id
|
|
426
|
-
|
|
427
|
-
# Start the server
|
|
428
331
|
node airtable_simple.js &
|
|
429
|
-
|
|
430
|
-
# Run comprehensive tests (v1.6.0+)
|
|
431
332
|
./test_v1.6.0_comprehensive.sh
|
|
432
333
|
```
|
|
433
334
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
-
|
|
440
|
-
-
|
|
441
|
-
|
|
442
|
-
The JavaScript test suite validates:
|
|
443
|
-
- All 33 tools with real API calls
|
|
444
|
-
- Complete CRUD operations
|
|
445
|
-
- Advanced schema management
|
|
446
|
-
- Batch operations (create/update/delete multiple records)
|
|
447
|
-
- Attachment management via URLs
|
|
448
|
-
- Advanced view creation and metadata
|
|
449
|
-
- Base management and collaboration tools
|
|
450
|
-
- Webhook management
|
|
451
|
-
- Error handling and edge cases
|
|
452
|
-
- Security verification
|
|
453
|
-
- 100% test coverage
|
|
454
|
-
|
|
455
|
-
## ๐ Troubleshooting
|
|
456
|
-
|
|
457
|
-
### "Connection Refused" Error
|
|
458
|
-
- Ensure the MCP server is running
|
|
459
|
-
- Check that port 8010 is not blocked
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Troubleshooting
|
|
338
|
+
|
|
339
|
+
**Connection Refused**
|
|
340
|
+
- Verify the MCP server is running
|
|
341
|
+
- Check that port 8010 is available
|
|
460
342
|
- Restart your MCP client
|
|
461
343
|
|
|
462
|
-
|
|
344
|
+
**Invalid Token**
|
|
463
345
|
- Verify your Personal Access Token is correct
|
|
464
|
-
-
|
|
465
|
-
-
|
|
346
|
+
- Confirm the token has the required scopes
|
|
347
|
+
- Check for extra whitespace in credentials
|
|
466
348
|
|
|
467
|
-
|
|
349
|
+
**Base Not Found**
|
|
468
350
|
- Confirm your Base ID is correct
|
|
469
|
-
-
|
|
351
|
+
- Verify your token has access to the base
|
|
470
352
|
|
|
471
|
-
|
|
472
|
-
If port 8010 is in use:
|
|
353
|
+
**Port Conflicts**
|
|
473
354
|
```bash
|
|
474
355
|
lsof -ti:8010 | xargs kill -9
|
|
475
356
|
```
|
|
476
357
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
### ๐ท TypeScript Documentation
|
|
480
|
-
- ๐ [TypeScript Examples](./examples/typescript/) - Complete type-safe usage examples
|
|
481
|
-
- ๐๏ธ [Type Definitions](./types/) - Comprehensive type definitions for all features
|
|
482
|
-
- ๐งช [TypeScript Testing](./src/test-suite.ts) - Enterprise-grade testing framework
|
|
358
|
+
---
|
|
483
359
|
|
|
484
|
-
|
|
485
|
-
- ๐ [Release Notes v3.1.0](./RELEASE_NOTES_v3.1.0.md) - **Latest TypeScript release**
|
|
486
|
-
- [Release Notes v1.6.0](./RELEASE_NOTES_v1.6.0.md) - Major feature release
|
|
487
|
-
- [Release Notes v1.5.0](./RELEASE_NOTES_v1.5.0.md)
|
|
488
|
-
- [Release Notes v1.4.0](./RELEASE_NOTES_v1.4.0.md)
|
|
489
|
-
- [Detailed Setup Guide](./CLAUDE_INTEGRATION.md)
|
|
490
|
-
- [Development Guide](./DEVELOPMENT.md)
|
|
491
|
-
- [Security Notice](./SECURITY_NOTICE.md)
|
|
360
|
+
## Project Structure
|
|
492
361
|
|
|
493
|
-
|
|
362
|
+
```
|
|
363
|
+
airtable-mcp/
|
|
364
|
+
โโโ src/
|
|
365
|
+
โ โโโ typescript/ # TypeScript implementation (primary)
|
|
366
|
+
โ โโโ javascript/ # JavaScript implementation
|
|
367
|
+
โโโ dist/ # Compiled output
|
|
368
|
+
โโโ docs/ # Documentation
|
|
369
|
+
โโโ tests/ # Test files
|
|
370
|
+
โโโ examples/ # Usage examples
|
|
371
|
+
โโโ types/ # TypeScript definitions
|
|
372
|
+
โโโ bin/ # CLI executables
|
|
373
|
+
```
|
|
494
374
|
|
|
495
|
-
|
|
496
|
-
- **v3.0.0** (2025-08-16) - ๐ค **Revolutionary AI Agent**: 10 intelligent prompts, predictive analytics, natural language processing
|
|
497
|
-
- **v2.2.3** (2025-08-16) - ๐ **Security release**: Final XSS vulnerability fixes and enhanced validation
|
|
498
|
-
- **v2.2.0** (2025-08-16) - ๐ **Major release**: Complete MCP 2024-11-05 protocol implementation
|
|
499
|
-
- **v1.6.0** (2025-08-15) - ๐ **Major release**: Added batch operations & attachment management (33 total tools)
|
|
500
|
-
- **v1.5.0** (2025-08-15) - Added comprehensive schema management (23 total tools)
|
|
501
|
-
- **v1.4.0** (2025-08-14) - Added webhook support and enhanced CRUD operations (12 tools)
|
|
502
|
-
- **v1.2.4** (2025-08-12) - Security fixes and stability improvements
|
|
503
|
-
- **v1.2.3** (2025-08-11) - Bug fixes and error handling
|
|
504
|
-
- **v1.2.2** (2025-08-10) - Initial stable release
|
|
375
|
+
---
|
|
505
376
|
|
|
506
|
-
##
|
|
377
|
+
## Documentation
|
|
507
378
|
|
|
508
|
-
|
|
379
|
+
- [Installation Guide](docs/guides/INSTALLATION.md)
|
|
380
|
+
- [Quick Start](docs/guides/QUICK_START.md)
|
|
381
|
+
- [Type Definitions](types/)
|
|
382
|
+
- [Release Notes](docs/releases/)
|
|
383
|
+
- [Changelog](docs/CHANGELOG.md)
|
|
509
384
|
|
|
510
|
-
|
|
385
|
+
---
|
|
511
386
|
|
|
512
|
-
|
|
387
|
+
## Contributing
|
|
513
388
|
|
|
514
|
-
|
|
389
|
+
Contributions are welcome. Please open an issue first to discuss major changes.
|
|
515
390
|
|
|
516
|
-
|
|
517
|
-
- Powered by [Airtable API](https://airtable.com/developers/web/api/introduction)
|
|
518
|
-
- Compatible with [Claude Desktop](https://claude.ai/) and other MCP clients
|
|
391
|
+
---
|
|
519
392
|
|
|
520
|
-
##
|
|
393
|
+
## License
|
|
521
394
|
|
|
522
|
-
|
|
523
|
-
- **Discussions**: [GitHub Discussions](https://github.com/rashidazarang/airtable-mcp/discussions)
|
|
395
|
+
MIT License โ see [LICENSE](LICENSE) for details.
|
|
524
396
|
|
|
525
397
|
---
|
|
526
398
|
|
|
527
|
-
|
|
399
|
+
## Support
|
|
400
|
+
|
|
401
|
+
- [GitHub Issues](https://github.com/rashidazarang/airtable-mcp/issues)
|
|
402
|
+
- [GitHub Discussions](https://github.com/rashidazarang/airtable-mcp/discussions)
|