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