@rashidazarang/airtable-mcp 2.1.0 → 2.2.0

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.
Files changed (155) hide show
  1. package/README.md +1 -1
  2. package/airtable_simple_production.js +387 -5
  3. package/examples/claude_simple_config.json +0 -9
  4. package/package.json +10 -1
  5. package/.github/ISSUE_TEMPLATE/bug-report.yml +0 -173
  6. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  7. package/.github/ISSUE_TEMPLATE/custom.md +0 -10
  8. package/.github/ISSUE_TEMPLATE/feature-request.yml +0 -209
  9. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  10. package/.github/ISSUE_TEMPLATE/security-report.yml +0 -216
  11. package/.github/pull_request_template.md +0 -245
  12. package/.github/workflows/ci-cd.yml +0 -408
  13. package/.github/workflows/security-audit.yml +0 -316
  14. package/API_DOCUMENTATION.md +0 -897
  15. package/CAPABILITY_REPORT.md +0 -118
  16. package/CLAUDE_INTEGRATION.md +0 -96
  17. package/CODE_OF_CONDUCT.md +0 -181
  18. package/CONTRIBUTING.md +0 -81
  19. package/DEVELOPMENT.md +0 -190
  20. package/Dockerfile +0 -39
  21. package/Dockerfile.node +0 -20
  22. package/Dockerfile.production +0 -127
  23. package/IMPROVEMENT_PROPOSAL.md +0 -371
  24. package/INSTALLATION.md +0 -183
  25. package/ISSUE_RESPONSES.md +0 -171
  26. package/MCP_REVIEW_SUMMARY.md +0 -142
  27. package/QUICK_START.md +0 -60
  28. package/RELEASE_NOTES_v1.2.0.md +0 -50
  29. package/RELEASE_NOTES_v1.2.1.md +0 -40
  30. package/RELEASE_NOTES_v1.2.2.md +0 -48
  31. package/RELEASE_NOTES_v1.2.3.md +0 -105
  32. package/RELEASE_NOTES_v1.2.4.md +0 -60
  33. package/RELEASE_NOTES_v1.4.0.md +0 -104
  34. package/RELEASE_NOTES_v1.5.0.md +0 -185
  35. package/RELEASE_NOTES_v1.6.0.md +0 -248
  36. package/SECURITY_NOTICE.md +0 -40
  37. package/airtable-clipper/CHANGELOG.md +0 -198
  38. package/airtable-clipper/CHROME_STORE_SUBMISSION.md +0 -343
  39. package/airtable-clipper/LAUNCH_STRATEGY.md +0 -495
  40. package/airtable-clipper/LICENSE +0 -21
  41. package/airtable-clipper/OAUTH_SETUP.md +0 -51
  42. package/airtable-clipper/PRIVACY_POLICY.md +0 -187
  43. package/airtable-clipper/README.md +0 -575
  44. package/airtable-clipper/SUBMIT_TO_CHROME_STORE.md +0 -273
  45. package/airtable-clipper/build.sh +0 -85
  46. package/airtable-clipper/docs/QUICK_START.md +0 -99
  47. package/airtable-clipper/docs/SETUP.md +0 -291
  48. package/airtable-clipper/extension/background.js +0 -337
  49. package/airtable-clipper/extension/base-setup.html +0 -324
  50. package/airtable-clipper/extension/base-setup.js +0 -471
  51. package/airtable-clipper/extension/content.js +0 -771
  52. package/airtable-clipper/extension/icons/README.md +0 -69
  53. package/airtable-clipper/extension/icons/icon-16.png +0 -3
  54. package/airtable-clipper/extension/manifest.json +0 -73
  55. package/airtable-clipper/extension/popup.html +0 -144
  56. package/airtable-clipper/extension/popup.js +0 -475
  57. package/airtable-clipper/extension/styles/content.css +0 -229
  58. package/airtable-clipper/extension/styles/popup.css +0 -477
  59. package/airtable-clipper/privacy-policy.md +0 -63
  60. package/airtable-clipper/releases/v1.0.0/background.js +0 -337
  61. package/airtable-clipper/releases/v1.0.0/base-setup.html +0 -324
  62. package/airtable-clipper/releases/v1.0.0/base-setup.js +0 -471
  63. package/airtable-clipper/releases/v1.0.0/content.js +0 -771
  64. package/airtable-clipper/releases/v1.0.0/icons/README.md +0 -69
  65. package/airtable-clipper/releases/v1.0.0/icons/icon-128.png +0 -2
  66. package/airtable-clipper/releases/v1.0.0/icons/icon-16.png +0 -3
  67. package/airtable-clipper/releases/v1.0.0/icons/icon-32.png +0 -2
  68. package/airtable-clipper/releases/v1.0.0/icons/icon-48.png +0 -2
  69. package/airtable-clipper/releases/v1.0.0/manifest.json +0 -73
  70. package/airtable-clipper/releases/v1.0.0/popup.html +0 -144
  71. package/airtable-clipper/releases/v1.0.0/popup.js +0 -475
  72. package/airtable-clipper/releases/v1.0.0/sidepanel.html +0 -25
  73. package/airtable-clipper/releases/v1.0.0/styles/content.css +0 -229
  74. package/airtable-clipper/releases/v1.0.0/styles/popup.css +0 -477
  75. package/airtable-clipper/releases/v1.0.1/background.js +0 -337
  76. package/airtable-clipper/releases/v1.0.1/base-setup.html +0 -324
  77. package/airtable-clipper/releases/v1.0.1/base-setup.js +0 -471
  78. package/airtable-clipper/releases/v1.0.1/content.js +0 -771
  79. package/airtable-clipper/releases/v1.0.1/icons/README.md +0 -69
  80. package/airtable-clipper/releases/v1.0.1/icons/icon-128.png +0 -2
  81. package/airtable-clipper/releases/v1.0.1/icons/icon-16.png +0 -3
  82. package/airtable-clipper/releases/v1.0.1/icons/icon-32.png +0 -2
  83. package/airtable-clipper/releases/v1.0.1/icons/icon-48.png +0 -2
  84. package/airtable-clipper/releases/v1.0.1/manifest.json +0 -70
  85. package/airtable-clipper/releases/v1.0.1/popup.html +0 -157
  86. package/airtable-clipper/releases/v1.0.1/popup.js +0 -562
  87. package/airtable-clipper/releases/v1.0.1/sidepanel.html +0 -25
  88. package/airtable-clipper/releases/v1.0.1/styles/content.css +0 -229
  89. package/airtable-clipper/releases/v1.0.1/styles/popup.css +0 -647
  90. package/airtable-clipper/releases/v1.0.2/background.js +0 -337
  91. package/airtable-clipper/releases/v1.0.2/base-setup.html +0 -324
  92. package/airtable-clipper/releases/v1.0.2/base-setup.js +0 -471
  93. package/airtable-clipper/releases/v1.0.2/content.js +0 -771
  94. package/airtable-clipper/releases/v1.0.2/icons/README.md +0 -69
  95. package/airtable-clipper/releases/v1.0.2/icons/icon-128.png +0 -2
  96. package/airtable-clipper/releases/v1.0.2/icons/icon-16.png +0 -3
  97. package/airtable-clipper/releases/v1.0.2/icons/icon-32.png +0 -2
  98. package/airtable-clipper/releases/v1.0.2/icons/icon-48.png +0 -2
  99. package/airtable-clipper/releases/v1.0.2/manifest.json +0 -62
  100. package/airtable-clipper/releases/v1.0.2/popup.html +0 -157
  101. package/airtable-clipper/releases/v1.0.2/popup.js +0 -567
  102. package/airtable-clipper/releases/v1.0.2/sidepanel.html +0 -25
  103. package/airtable-clipper/releases/v1.0.2/styles/content.css +0 -229
  104. package/airtable-clipper/releases/v1.0.2/styles/popup.css +0 -647
  105. package/airtable-clipper/terms-of-service.md +0 -124
  106. package/airtable-clipper/test-credentials.md +0 -61
  107. package/airtable-clipper/test-extension/background.js +0 -337
  108. package/airtable-clipper/test-extension/base-setup.html +0 -324
  109. package/airtable-clipper/test-extension/base-setup.js +0 -471
  110. package/airtable-clipper/test-extension/content.js +0 -873
  111. package/airtable-clipper/test-extension/icons/README.md +0 -69
  112. package/airtable-clipper/test-extension/icons/icon-128.png +0 -2
  113. package/airtable-clipper/test-extension/icons/icon-16.png +0 -3
  114. package/airtable-clipper/test-extension/icons/icon-32.png +0 -2
  115. package/airtable-clipper/test-extension/icons/icon-48.png +0 -2
  116. package/airtable-clipper/test-extension/manifest.json +0 -72
  117. package/airtable-clipper/test-extension/popup.html +0 -274
  118. package/airtable-clipper/test-extension/popup.js +0 -729
  119. package/airtable-clipper/test-extension/sidepanel.html +0 -25
  120. package/airtable-clipper/test-extension/styles/content.css +0 -229
  121. package/airtable-clipper/test-extension/styles/popup.css +0 -794
  122. package/airtable_mcp/__init__.py +0 -5
  123. package/airtable_mcp/src/server.py +0 -329
  124. package/airtable_mcp_v2.js +0 -1505
  125. package/airtable_mcp_v2_oauth.js +0 -1048
  126. package/airtable_mcp_v3_advanced.js +0 -1161
  127. package/cleanup.sh +0 -71
  128. package/docker-compose.production.yml +0 -366
  129. package/helm/airtable-mcp/Chart.yaml +0 -122
  130. package/helm/airtable-mcp/values.yaml +0 -538
  131. package/index.js +0 -179
  132. package/inspector.py +0 -148
  133. package/inspector_server.py +0 -337
  134. package/k8s/deployment.yaml +0 -402
  135. package/k8s/namespace.yaml +0 -108
  136. package/k8s/service.yaml +0 -194
  137. package/monitoring/alerts.yml +0 -289
  138. package/monitoring/prometheus.yml +0 -224
  139. package/publish-steps.txt +0 -27
  140. package/quick_test.sh +0 -30
  141. package/requirements.txt +0 -10
  142. package/setup.py +0 -29
  143. package/simple_airtable_server.py +0 -151
  144. package/smithery.yaml +0 -45
  145. package/test_all_features.sh +0 -146
  146. package/test_all_operations.sh +0 -120
  147. package/test_client.py +0 -70
  148. package/test_enhanced_features.js +0 -389
  149. package/test_mcp_comprehensive.js +0 -163
  150. package/test_mock_server.js +0 -180
  151. package/test_v1.4.0_final.sh +0 -131
  152. package/test_v1.5.0_comprehensive.sh +0 -96
  153. package/test_v1.5.0_final.sh +0 -224
  154. package/test_v1.6.0_comprehensive.sh +0 -187
  155. package/test_webhooks.sh +0 -105
@@ -1,324 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Airtable Clipper - Base Setup</title>
7
- <link rel="stylesheet" href="styles/popup.css">
8
- <style>
9
- .setup-wizard {
10
- width: 420px;
11
- max-height: 600px;
12
- overflow-y: auto;
13
- }
14
-
15
- .wizard-step {
16
- display: none;
17
- padding: 20px;
18
- }
19
-
20
- .wizard-step.active {
21
- display: block;
22
- }
23
-
24
- .step-indicator {
25
- display: flex;
26
- justify-content: center;
27
- margin-bottom: 20px;
28
- gap: 10px;
29
- }
30
-
31
- .step-dot {
32
- width: 12px;
33
- height: 12px;
34
- border-radius: 50%;
35
- background-color: #e5e7eb;
36
- transition: background-color 0.3s ease;
37
- }
38
-
39
- .step-dot.active {
40
- background-color: #667eea;
41
- }
42
-
43
- .step-dot.completed {
44
- background-color: #10b981;
45
- }
46
-
47
- .template-preview {
48
- border: 1px solid #e5e7eb;
49
- border-radius: 8px;
50
- padding: 16px;
51
- margin: 16px 0;
52
- background-color: #f9fafb;
53
- }
54
-
55
- .table-preview {
56
- margin-bottom: 16px;
57
- padding: 12px;
58
- border: 1px solid #d1d5db;
59
- border-radius: 6px;
60
- background-color: white;
61
- }
62
-
63
- .table-preview h4 {
64
- margin: 0 0 8px 0;
65
- color: #374151;
66
- font-size: 14px;
67
- font-weight: 600;
68
- }
69
-
70
- .table-preview p {
71
- margin: 0 0 8px 0;
72
- font-size: 12px;
73
- color: #6b7280;
74
- }
75
-
76
- .field-list {
77
- display: flex;
78
- flex-wrap: wrap;
79
- gap: 4px;
80
- }
81
-
82
- .field-tag {
83
- background-color: #e0e7ff;
84
- color: #3730a3;
85
- padding: 2px 6px;
86
- border-radius: 3px;
87
- font-size: 10px;
88
- font-weight: 500;
89
- }
90
-
91
- .validation-result {
92
- margin: 16px 0;
93
- padding: 12px;
94
- border-radius: 6px;
95
- }
96
-
97
- .validation-result.excellent {
98
- background-color: #d1fae5;
99
- border: 1px solid #a7f3d0;
100
- color: #065f46;
101
- }
102
-
103
- .validation-result.good {
104
- background-color: #dbeafe;
105
- border: 1px solid #93c5fd;
106
- color: #1e40af;
107
- }
108
-
109
- .validation-result.fair {
110
- background-color: #fef3c7;
111
- border: 1px solid #fcd34d;
112
- color: #92400e;
113
- }
114
-
115
- .validation-result.needs-work {
116
- background-color: #fee2e2;
117
- border: 1px solid #fca5a5;
118
- color: #991b1b;
119
- }
120
-
121
- .wizard-actions {
122
- display: flex;
123
- justify-content: space-between;
124
- margin-top: 20px;
125
- padding-top: 16px;
126
- border-top: 1px solid #e5e7eb;
127
- }
128
-
129
- .copy-script-area {
130
- width: 100%;
131
- height: 200px;
132
- font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
133
- font-size: 11px;
134
- resize: vertical;
135
- }
136
-
137
- .template-url {
138
- display: block;
139
- margin: 16px 0;
140
- padding: 12px;
141
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
142
- color: white;
143
- text-decoration: none;
144
- border-radius: 6px;
145
- text-align: center;
146
- font-weight: 500;
147
- transition: transform 0.2s ease;
148
- }
149
-
150
- .template-url:hover {
151
- transform: translateY(-1px);
152
- }
153
- </style>
154
- </head>
155
- <body class="setup-wizard">
156
- <!-- Step Indicator -->
157
- <div class="step-indicator">
158
- <div class="step-dot active" data-step="1"></div>
159
- <div class="step-dot" data-step="2"></div>
160
- <div class="step-dot" data-step="3"></div>
161
- <div class="step-dot" data-step="4"></div>
162
- </div>
163
-
164
- <!-- Step 1: Welcome & Template Choice -->
165
- <div class="wizard-step active" id="step1">
166
- <h2>🚀 Create Your Airtable Clipper Database</h2>
167
- <p>Let's set up the perfect Airtable base for your web clipping needs. This wizard will create optimized tables with all the right fields.</p>
168
-
169
- <div class="form-group">
170
- <label>Choose your setup method:</label>
171
- <div style="margin-top: 12px;">
172
- <label class="checkbox-label">
173
- <input type="radio" name="setupMethod" value="template" checked>
174
- <span class="checkmark"></span>
175
- <strong>One-Click Template</strong> (Recommended)
176
- <br><small style="margin-left: 24px; color: #6b7280;">Instantly copy our proven database structure</small>
177
- </label>
178
-
179
- <label class="checkbox-label" style="margin-top: 12px;">
180
- <input type="radio" name="setupMethod" value="manual">
181
- <span class="checkmark"></span>
182
- <strong>Manual Setup Guide</strong>
183
- <br><small style="margin-left: 24px; color: #6b7280;">Step-by-step instructions to create tables yourself</small>
184
- </label>
185
-
186
- <label class="checkbox-label" style="margin-top: 12px;">
187
- <input type="radio" name="setupMethod" value="existing">
188
- <span class="checkmark"></span>
189
- <strong>Validate Existing Base</strong>
190
- <br><small style="margin-left: 24px; color: #6b7280;">Check if your current base is clipper-ready</small>
191
- </label>
192
- </div>
193
- </div>
194
-
195
- <div class="wizard-actions">
196
- <button class="btn secondary" onclick="window.close()">Cancel</button>
197
- <button class="btn primary" onclick="nextStep()">Next</button>
198
- </div>
199
- </div>
200
-
201
- <!-- Step 2: Template Configuration -->
202
- <div class="wizard-step" id="step2">
203
- <h2>📋 Configure Your Database</h2>
204
- <p>Customize which tables to include based on your use case:</p>
205
-
206
- <div class="form-group">
207
- <label class="checkbox-label">
208
- <input type="checkbox" id="includeContacts" checked>
209
- <span class="checkmark"></span>
210
- <strong>Contacts Table</strong> - LinkedIn profiles & leads
211
- </label>
212
-
213
- <label class="checkbox-label">
214
- <input type="checkbox" id="includeClips" checked>
215
- <span class="checkmark"></span>
216
- <strong>Web Clips Table</strong> - Articles & web content
217
- </label>
218
-
219
- <label class="checkbox-label">
220
- <input type="checkbox" id="includeCompanies" checked>
221
- <span class="checkmark"></span>
222
- <strong>Companies Table</strong> - Organization profiles
223
- </label>
224
-
225
- <label class="checkbox-label">
226
- <input type="checkbox" id="includeTasks">
227
- <span class="checkmark"></span>
228
- <strong>Tasks Table</strong> - Follow-up actions
229
- </label>
230
- </div>
231
-
232
- <div class="form-group">
233
- <label for="baseName">Base Name:</label>
234
- <input type="text" id="baseName" value="Airtable Clipper Database" placeholder="Enter base name">
235
- </div>
236
-
237
- <div class="wizard-actions">
238
- <button class="btn secondary" onclick="prevStep()">Back</button>
239
- <button class="btn primary" onclick="nextStep()">Preview</button>
240
- </div>
241
- </div>
242
-
243
- <!-- Step 3: Template Preview -->
244
- <div class="wizard-step" id="step3">
245
- <h2>👀 Preview Your Database</h2>
246
- <p>Here's what will be created in your Airtable base:</p>
247
-
248
- <div class="template-preview" id="templatePreview">
249
- <!-- Dynamically populated -->
250
- </div>
251
-
252
- <!-- Template Link -->
253
- <div id="templateLinkSection" style="display: none;">
254
- <h3>🎉 One-Click Template Ready!</h3>
255
- <a href="#" class="template-url" id="templateLink" target="_blank">
256
- 📋 Copy Template to Your Airtable →
257
- </a>
258
- <p style="font-size: 12px; color: #6b7280; text-align: center;">
259
- This will open Airtable in a new tab and copy the complete database structure
260
- </p>
261
- </div>
262
-
263
- <!-- Manual Setup -->
264
- <div id="manualSetupSection" style="display: none;">
265
- <h3>📝 Manual Setup Instructions</h3>
266
- <ol style="font-size: 13px; line-height: 1.5; padding-left: 20px;">
267
- <li>Go to <a href="https://airtable.com" target="_blank">airtable.com</a> and create a new base</li>
268
- <li>Name it "<span id="baseNameDisplay"></span>"</li>
269
- <li>Create the tables shown above with their respective fields</li>
270
- <li>Copy your Base ID and return to configure the extension</li>
271
- </ol>
272
-
273
- <details style="margin-top: 16px;">
274
- <summary style="cursor: pointer; font-weight: 500;">📋 Copy Creation Script</summary>
275
- <p style="font-size: 12px; margin: 8px 0;">Copy this script and paste it into Airtable's Scripting app:</p>
276
- <textarea class="copy-script-area" id="creationScript" readonly></textarea>
277
- <button class="btn secondary" onclick="copyScript()" style="margin-top: 8px;">Copy Script</button>
278
- </details>
279
- </div>
280
-
281
- <div class="wizard-actions">
282
- <button class="btn secondary" onclick="prevStep()">Back</button>
283
- <button class="btn primary" onclick="nextStep()" id="step3NextBtn">Create Database</button>
284
- </div>
285
- </div>
286
-
287
- <!-- Step 4: Validation & Completion -->
288
- <div class="wizard-step" id="step4">
289
- <h2>✅ Database Validation</h2>
290
- <p>Let's check if your Airtable base is set up correctly:</p>
291
-
292
- <div class="form-group" id="credentialsSection">
293
- <label for="validationToken">Personal Access Token:</label>
294
- <input type="password" id="validationToken" placeholder="pat...">
295
-
296
- <label for="validationBaseId">Base ID:</label>
297
- <input type="text" id="validationBaseId" placeholder="app...">
298
-
299
- <button class="btn primary full-width" onclick="validateBase()" id="validateBtn">
300
- Validate Base Setup
301
- </button>
302
- </div>
303
-
304
- <div id="validationResults" style="display: none;">
305
- <!-- Validation results will be shown here -->
306
- </div>
307
-
308
- <div class="wizard-actions">
309
- <button class="btn secondary" onclick="prevStep()">Back</button>
310
- <button class="btn primary" onclick="completeSetup()" id="completeBtn" style="display: none;">
311
- Complete Setup
312
- </button>
313
- </div>
314
- </div>
315
-
316
- <!-- Loading Overlay -->
317
- <div class="loading-overlay" id="loadingOverlay" style="display: none;">
318
- <div class="loading-spinner"></div>
319
- <div class="loading-text" id="loadingText">Processing...</div>
320
- </div>
321
-
322
- <script type="module" src="base-setup.js"></script>
323
- </body>
324
- </html>