@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,316 +0,0 @@
1
- name: 🔒 Advanced Security Audit
2
-
3
- on:
4
- schedule:
5
- - cron: '0 6 * * *' # Daily at 6 AM UTC
6
- workflow_dispatch:
7
- push:
8
- branches: [ main ]
9
- paths:
10
- - '**/*.js'
11
- - 'package*.json'
12
- - 'Dockerfile*'
13
-
14
- jobs:
15
- # ============================================================================
16
- # DEPENDENCY VULNERABILITY SCANNING
17
- # ============================================================================
18
- dependency-scan:
19
- name: 📦 Dependency Security Scan
20
- runs-on: ubuntu-latest
21
-
22
- steps:
23
- - name: 📥 Checkout code
24
- uses: actions/checkout@v4
25
-
26
- - name: 🟢 Setup Node.js
27
- uses: actions/setup-node@v4
28
- with:
29
- node-version: '18'
30
- cache: 'npm'
31
-
32
- - name: 📦 Install dependencies
33
- run: npm ci
34
-
35
- - name: 🔍 NPM Audit
36
- run: |
37
- echo "## 📦 NPM Audit Results" >> $GITHUB_STEP_SUMMARY
38
- npm audit --audit-level=moderate --format=json > npm-audit.json || true
39
-
40
- # Parse and display results
41
- if [ -f npm-audit.json ]; then
42
- VULNERABILITIES=$(cat npm-audit.json | jq '.metadata.vulnerabilities')
43
- echo "- Total vulnerabilities found: $VULNERABILITIES" >> $GITHUB_STEP_SUMMARY
44
-
45
- HIGH=$(cat npm-audit.json | jq '.metadata.vulnerabilities.high // 0')
46
- CRITICAL=$(cat npm-audit.json | jq '.metadata.vulnerabilities.critical // 0')
47
-
48
- if [ "$HIGH" -gt 0 ] || [ "$CRITICAL" -gt 0 ]; then
49
- echo "❌ High/Critical vulnerabilities found!" >> $GITHUB_STEP_SUMMARY
50
- exit 1
51
- else
52
- echo "✅ No high/critical vulnerabilities found" >> $GITHUB_STEP_SUMMARY
53
- fi
54
- fi
55
-
56
- - name: 🔍 Snyk Security Scan
57
- uses: snyk/actions/node@master
58
- continue-on-error: true
59
- env:
60
- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
61
- with:
62
- args: --severity-threshold=high
63
-
64
- - name: 📊 Upload dependency scan results
65
- uses: actions/upload-artifact@v4
66
- with:
67
- name: dependency-scan-results
68
- path: |
69
- npm-audit.json
70
- snyk-*.json
71
-
72
- # ============================================================================
73
- # CODE SECURITY ANALYSIS
74
- # ============================================================================
75
- code-security:
76
- name: 🔍 Code Security Analysis
77
- runs-on: ubuntu-latest
78
-
79
- steps:
80
- - name: 📥 Checkout code
81
- uses: actions/checkout@v4
82
-
83
- - name: 🔍 CodeQL Analysis
84
- uses: github/codeql-action/init@v3
85
- with:
86
- languages: javascript
87
- queries: security-and-quality
88
-
89
- - name: 🔍 Perform CodeQL Analysis
90
- uses: github/codeql-action/analyze@v3
91
- with:
92
- category: "/language:javascript"
93
-
94
- - name: 🔐 ESLint Security Plugin
95
- run: |
96
- npm install eslint eslint-plugin-security --no-save
97
- npx eslint . --ext .js --config '{"extends": ["plugin:security/recommended"], "parserOptions": {"ecmaVersion": 2021}}' --format json > eslint-security.json || true
98
-
99
- # Check for security issues
100
- SECURITY_ISSUES=$(cat eslint-security.json | jq '[.[] | select(.messages[] | .ruleId | startswith("security/"))] | length')
101
- echo "Security issues found: $SECURITY_ISSUES"
102
-
103
- if [ "$SECURITY_ISSUES" -gt 0 ]; then
104
- echo "❌ Security issues detected by ESLint" >> $GITHUB_STEP_SUMMARY
105
- cat eslint-security.json | jq -r '.[] | .messages[] | select(.ruleId | startswith("security/")) | "- \(.ruleId): \(.message)"' >> $GITHUB_STEP_SUMMARY
106
- else
107
- echo "✅ No security issues found by ESLint" >> $GITHUB_STEP_SUMMARY
108
- fi
109
-
110
- - name: 🔍 Semgrep Security Scan
111
- uses: returntocorp/semgrep-action@v1
112
- with:
113
- config: >-
114
- p/security-audit
115
- p/nodejs
116
- p/express
117
- p/jwt
118
-
119
- # ============================================================================
120
- # SECRET DETECTION
121
- # ============================================================================
122
- secret-scan:
123
- name: 🔐 Secret Detection
124
- runs-on: ubuntu-latest
125
-
126
- steps:
127
- - name: 📥 Checkout code
128
- uses: actions/checkout@v4
129
- with:
130
- fetch-depth: 0
131
-
132
- - name: 🔍 TruffleHog Secret Scan
133
- uses: trufflesecurity/trufflehog@main
134
- with:
135
- path: ./
136
- base: main
137
- head: HEAD
138
- extra_args: --debug --only-verified
139
-
140
- - name: 🔍 GitLeaks Secret Scan
141
- uses: gitleaks/gitleaks-action@v2
142
- env:
143
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
144
- GITLEAKS_LICENSE: ${{ secrets.GITLEAKS_LICENSE}}
145
-
146
- - name: 📊 Secret scan summary
147
- run: |
148
- echo "## 🔐 Secret Detection Results" >> $GITHUB_STEP_SUMMARY
149
- echo "✅ Secret scanning completed" >> $GITHUB_STEP_SUMMARY
150
- echo "- TruffleHog: Verified secrets only" >> $GITHUB_STEP_SUMMARY
151
- echo "- GitLeaks: Full repository scan" >> $GITHUB_STEP_SUMMARY
152
-
153
- # ============================================================================
154
- # DOCKER SECURITY
155
- # ============================================================================
156
- docker-security:
157
- name: 🐳 Docker Security Scan
158
- runs-on: ubuntu-latest
159
-
160
- steps:
161
- - name: 📥 Checkout code
162
- uses: actions/checkout@v4
163
-
164
- - name: 🐳 Set up Docker Buildx
165
- uses: docker/setup-buildx-action@v3
166
-
167
- - name: 🔨 Build Docker images
168
- run: |
169
- # Build main Dockerfile
170
- docker build -t airtable-mcp:latest .
171
-
172
- # Build Node.js specific Dockerfile if exists
173
- if [ -f Dockerfile.node ]; then
174
- docker build -f Dockerfile.node -t airtable-mcp:node .
175
- fi
176
-
177
- - name: 🔍 Trivy Docker Image Scan
178
- uses: aquasecurity/trivy-action@master
179
- with:
180
- image-ref: 'airtable-mcp:latest'
181
- format: 'sarif'
182
- output: 'docker-security.sarif'
183
- severity: 'CRITICAL,HIGH'
184
-
185
- - name: 📊 Upload Docker security results
186
- uses: github/codeql-action/upload-sarif@v3
187
- if: always()
188
- with:
189
- sarif_file: 'docker-security.sarif'
190
-
191
- - name: 🔍 Dockle Security Linter
192
- run: |
193
- # Install Dockle
194
- curl -L -o dockle.deb https://github.com/goodwithtech/dockle/releases/latest/download/dockle_Linux-64bit.deb
195
- sudo dpkg -i dockle.deb
196
-
197
- # Scan Docker image
198
- dockle --format json --output dockle-report.json airtable-mcp:latest || true
199
-
200
- # Display results
201
- if [ -f dockle-report.json ]; then
202
- echo "## 🐳 Docker Security Linting Results" >> $GITHUB_STEP_SUMMARY
203
- cat dockle-report.json | jq -r '.details[] | "- \(.code): \(.title)"' >> $GITHUB_STEP_SUMMARY
204
- fi
205
-
206
- # ============================================================================
207
- # COMPLIANCE & BEST PRACTICES
208
- # ============================================================================
209
- compliance:
210
- name: 📋 Compliance Check
211
- runs-on: ubuntu-latest
212
-
213
- steps:
214
- - name: 📥 Checkout code
215
- uses: actions/checkout@v4
216
-
217
- - name: 📋 License Compliance
218
- run: |
219
- echo "## 📋 License Compliance Check" >> $GITHUB_STEP_SUMMARY
220
-
221
- # Check for LICENSE file
222
- if [ -f LICENSE ]; then
223
- echo "✅ LICENSE file present" >> $GITHUB_STEP_SUMMARY
224
- else
225
- echo "❌ LICENSE file missing" >> $GITHUB_STEP_SUMMARY
226
- fi
227
-
228
- # Check package.json license
229
- LICENSE=$(cat package.json | jq -r '.license // "none"')
230
- echo "- Package license: $LICENSE" >> $GITHUB_STEP_SUMMARY
231
-
232
- - name: 🔍 Security Policy Check
233
- run: |
234
- echo "## 🛡️ Security Policy Check" >> $GITHUB_STEP_SUMMARY
235
-
236
- if [ -f SECURITY.md ]; then
237
- echo "✅ SECURITY.md present" >> $GITHUB_STEP_SUMMARY
238
- else
239
- echo "❌ SECURITY.md missing" >> $GITHUB_STEP_SUMMARY
240
- fi
241
-
242
- if [ -f .github/SECURITY.md ]; then
243
- echo "✅ .github/SECURITY.md present" >> $GITHUB_STEP_SUMMARY
244
- fi
245
-
246
- - name: 📊 README Quality Check
247
- run: |
248
- echo "## 📚 Documentation Quality" >> $GITHUB_STEP_SUMMARY
249
-
250
- if [ -f README.md ]; then
251
- LINES=$(wc -l < README.md)
252
- echo "- README.md: $LINES lines" >> $GITHUB_STEP_SUMMARY
253
-
254
- # Check for key sections
255
- if grep -q "Installation" README.md; then
256
- echo "✅ Installation section found" >> $GITHUB_STEP_SUMMARY
257
- fi
258
-
259
- if grep -q "Usage" README.md; then
260
- echo "✅ Usage section found" >> $GITHUB_STEP_SUMMARY
261
- fi
262
-
263
- if grep -q "Contributing" README.md; then
264
- echo "✅ Contributing section found" >> $GITHUB_STEP_SUMMARY
265
- fi
266
- fi
267
-
268
- # ============================================================================
269
- # SECURITY REPORT GENERATION
270
- # ============================================================================
271
- security-report:
272
- name: 📊 Security Report
273
- runs-on: ubuntu-latest
274
- needs: [dependency-scan, code-security, secret-scan, docker-security, compliance]
275
- if: always()
276
-
277
- steps:
278
- - name: 📥 Checkout code
279
- uses: actions/checkout@v4
280
-
281
- - name: 📊 Generate Security Report
282
- run: |
283
- echo "# 🔒 Security Audit Report - $(date)" > security-report.md
284
- echo "" >> security-report.md
285
- echo "## 📊 Summary" >> security-report.md
286
- echo "" >> security-report.md
287
- echo "| Component | Status | Details |" >> security-report.md
288
- echo "|-----------|--------|---------|" >> security-report.md
289
- echo "| Dependencies | ${{ needs.dependency-scan.result == 'success' && '✅ Pass' || '❌ Fail' }} | NPM Audit + Snyk |" >> security-report.md
290
- echo "| Code Security | ${{ needs.code-security.result == 'success' && '✅ Pass' || '❌ Fail' }} | CodeQL + ESLint + Semgrep |" >> security-report.md
291
- echo "| Secret Detection | ${{ needs.secret-scan.result == 'success' && '✅ Pass' || '❌ Fail' }} | TruffleHog + GitLeaks |" >> security-report.md
292
- echo "| Docker Security | ${{ needs.docker-security.result == 'success' && '✅ Pass' || '❌ Fail' }} | Trivy + Dockle |" >> security-report.md
293
- echo "| Compliance | ${{ needs.compliance.result == 'success' && '✅ Pass' || '❌ Fail' }} | License + Security Policy |" >> security-report.md
294
- echo "" >> security-report.md
295
- echo "## 🎯 Trust Score Impact" >> security-report.md
296
- echo "" >> security-report.md
297
- echo "This comprehensive security audit contributes to achieving a **100/100 Trust Score** by:" >> security-report.md
298
- echo "" >> security-report.md
299
- echo "- ✅ **Automated Security Scanning**: Daily vulnerability detection" >> security-report.md
300
- echo "- ✅ **Code Quality Assurance**: Multi-tool static analysis" >> security-report.md
301
- echo "- ✅ **Secret Protection**: Preventing credential leaks" >> security-report.md
302
- echo "- ✅ **Container Security**: Docker image hardening" >> security-report.md
303
- echo "- ✅ **Compliance Standards**: Industry best practices" >> security-report.md
304
- echo "" >> security-report.md
305
- echo "Generated on: $(date)" >> security-report.md
306
-
307
- - name: 📤 Upload Security Report
308
- uses: actions/upload-artifact@v4
309
- with:
310
- name: security-audit-report
311
- path: security-report.md
312
-
313
- - name: 📊 Update Repository Security
314
- if: github.ref == 'refs/heads/main'
315
- run: |
316
- echo "🔒 Security audit completed for Trust Score 100/100 target"