@rashidazarang/airtable-mcp 2.1.0 → 2.1.1

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 (152) hide show
  1. package/package.json +10 -1
  2. package/.github/ISSUE_TEMPLATE/bug-report.yml +0 -173
  3. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  4. package/.github/ISSUE_TEMPLATE/custom.md +0 -10
  5. package/.github/ISSUE_TEMPLATE/feature-request.yml +0 -209
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  7. package/.github/ISSUE_TEMPLATE/security-report.yml +0 -216
  8. package/.github/pull_request_template.md +0 -245
  9. package/.github/workflows/ci-cd.yml +0 -408
  10. package/.github/workflows/security-audit.yml +0 -316
  11. package/API_DOCUMENTATION.md +0 -897
  12. package/CAPABILITY_REPORT.md +0 -118
  13. package/CLAUDE_INTEGRATION.md +0 -96
  14. package/CODE_OF_CONDUCT.md +0 -181
  15. package/CONTRIBUTING.md +0 -81
  16. package/DEVELOPMENT.md +0 -190
  17. package/Dockerfile +0 -39
  18. package/Dockerfile.node +0 -20
  19. package/Dockerfile.production +0 -127
  20. package/IMPROVEMENT_PROPOSAL.md +0 -371
  21. package/INSTALLATION.md +0 -183
  22. package/ISSUE_RESPONSES.md +0 -171
  23. package/MCP_REVIEW_SUMMARY.md +0 -142
  24. package/QUICK_START.md +0 -60
  25. package/RELEASE_NOTES_v1.2.0.md +0 -50
  26. package/RELEASE_NOTES_v1.2.1.md +0 -40
  27. package/RELEASE_NOTES_v1.2.2.md +0 -48
  28. package/RELEASE_NOTES_v1.2.3.md +0 -105
  29. package/RELEASE_NOTES_v1.2.4.md +0 -60
  30. package/RELEASE_NOTES_v1.4.0.md +0 -104
  31. package/RELEASE_NOTES_v1.5.0.md +0 -185
  32. package/RELEASE_NOTES_v1.6.0.md +0 -248
  33. package/SECURITY_NOTICE.md +0 -40
  34. package/airtable-clipper/CHANGELOG.md +0 -198
  35. package/airtable-clipper/CHROME_STORE_SUBMISSION.md +0 -343
  36. package/airtable-clipper/LAUNCH_STRATEGY.md +0 -495
  37. package/airtable-clipper/LICENSE +0 -21
  38. package/airtable-clipper/OAUTH_SETUP.md +0 -51
  39. package/airtable-clipper/PRIVACY_POLICY.md +0 -187
  40. package/airtable-clipper/README.md +0 -575
  41. package/airtable-clipper/SUBMIT_TO_CHROME_STORE.md +0 -273
  42. package/airtable-clipper/build.sh +0 -85
  43. package/airtable-clipper/docs/QUICK_START.md +0 -99
  44. package/airtable-clipper/docs/SETUP.md +0 -291
  45. package/airtable-clipper/extension/background.js +0 -337
  46. package/airtable-clipper/extension/base-setup.html +0 -324
  47. package/airtable-clipper/extension/base-setup.js +0 -471
  48. package/airtable-clipper/extension/content.js +0 -771
  49. package/airtable-clipper/extension/icons/README.md +0 -69
  50. package/airtable-clipper/extension/icons/icon-16.png +0 -3
  51. package/airtable-clipper/extension/manifest.json +0 -73
  52. package/airtable-clipper/extension/popup.html +0 -144
  53. package/airtable-clipper/extension/popup.js +0 -475
  54. package/airtable-clipper/extension/styles/content.css +0 -229
  55. package/airtable-clipper/extension/styles/popup.css +0 -477
  56. package/airtable-clipper/privacy-policy.md +0 -63
  57. package/airtable-clipper/releases/v1.0.0/background.js +0 -337
  58. package/airtable-clipper/releases/v1.0.0/base-setup.html +0 -324
  59. package/airtable-clipper/releases/v1.0.0/base-setup.js +0 -471
  60. package/airtable-clipper/releases/v1.0.0/content.js +0 -771
  61. package/airtable-clipper/releases/v1.0.0/icons/README.md +0 -69
  62. package/airtable-clipper/releases/v1.0.0/icons/icon-128.png +0 -2
  63. package/airtable-clipper/releases/v1.0.0/icons/icon-16.png +0 -3
  64. package/airtable-clipper/releases/v1.0.0/icons/icon-32.png +0 -2
  65. package/airtable-clipper/releases/v1.0.0/icons/icon-48.png +0 -2
  66. package/airtable-clipper/releases/v1.0.0/manifest.json +0 -73
  67. package/airtable-clipper/releases/v1.0.0/popup.html +0 -144
  68. package/airtable-clipper/releases/v1.0.0/popup.js +0 -475
  69. package/airtable-clipper/releases/v1.0.0/sidepanel.html +0 -25
  70. package/airtable-clipper/releases/v1.0.0/styles/content.css +0 -229
  71. package/airtable-clipper/releases/v1.0.0/styles/popup.css +0 -477
  72. package/airtable-clipper/releases/v1.0.1/background.js +0 -337
  73. package/airtable-clipper/releases/v1.0.1/base-setup.html +0 -324
  74. package/airtable-clipper/releases/v1.0.1/base-setup.js +0 -471
  75. package/airtable-clipper/releases/v1.0.1/content.js +0 -771
  76. package/airtable-clipper/releases/v1.0.1/icons/README.md +0 -69
  77. package/airtable-clipper/releases/v1.0.1/icons/icon-128.png +0 -2
  78. package/airtable-clipper/releases/v1.0.1/icons/icon-16.png +0 -3
  79. package/airtable-clipper/releases/v1.0.1/icons/icon-32.png +0 -2
  80. package/airtable-clipper/releases/v1.0.1/icons/icon-48.png +0 -2
  81. package/airtable-clipper/releases/v1.0.1/manifest.json +0 -70
  82. package/airtable-clipper/releases/v1.0.1/popup.html +0 -157
  83. package/airtable-clipper/releases/v1.0.1/popup.js +0 -562
  84. package/airtable-clipper/releases/v1.0.1/sidepanel.html +0 -25
  85. package/airtable-clipper/releases/v1.0.1/styles/content.css +0 -229
  86. package/airtable-clipper/releases/v1.0.1/styles/popup.css +0 -647
  87. package/airtable-clipper/releases/v1.0.2/background.js +0 -337
  88. package/airtable-clipper/releases/v1.0.2/base-setup.html +0 -324
  89. package/airtable-clipper/releases/v1.0.2/base-setup.js +0 -471
  90. package/airtable-clipper/releases/v1.0.2/content.js +0 -771
  91. package/airtable-clipper/releases/v1.0.2/icons/README.md +0 -69
  92. package/airtable-clipper/releases/v1.0.2/icons/icon-128.png +0 -2
  93. package/airtable-clipper/releases/v1.0.2/icons/icon-16.png +0 -3
  94. package/airtable-clipper/releases/v1.0.2/icons/icon-32.png +0 -2
  95. package/airtable-clipper/releases/v1.0.2/icons/icon-48.png +0 -2
  96. package/airtable-clipper/releases/v1.0.2/manifest.json +0 -62
  97. package/airtable-clipper/releases/v1.0.2/popup.html +0 -157
  98. package/airtable-clipper/releases/v1.0.2/popup.js +0 -567
  99. package/airtable-clipper/releases/v1.0.2/sidepanel.html +0 -25
  100. package/airtable-clipper/releases/v1.0.2/styles/content.css +0 -229
  101. package/airtable-clipper/releases/v1.0.2/styles/popup.css +0 -647
  102. package/airtable-clipper/terms-of-service.md +0 -124
  103. package/airtable-clipper/test-credentials.md +0 -61
  104. package/airtable-clipper/test-extension/background.js +0 -337
  105. package/airtable-clipper/test-extension/base-setup.html +0 -324
  106. package/airtable-clipper/test-extension/base-setup.js +0 -471
  107. package/airtable-clipper/test-extension/content.js +0 -873
  108. package/airtable-clipper/test-extension/icons/README.md +0 -69
  109. package/airtable-clipper/test-extension/icons/icon-128.png +0 -2
  110. package/airtable-clipper/test-extension/icons/icon-16.png +0 -3
  111. package/airtable-clipper/test-extension/icons/icon-32.png +0 -2
  112. package/airtable-clipper/test-extension/icons/icon-48.png +0 -2
  113. package/airtable-clipper/test-extension/manifest.json +0 -72
  114. package/airtable-clipper/test-extension/popup.html +0 -274
  115. package/airtable-clipper/test-extension/popup.js +0 -729
  116. package/airtable-clipper/test-extension/sidepanel.html +0 -25
  117. package/airtable-clipper/test-extension/styles/content.css +0 -229
  118. package/airtable-clipper/test-extension/styles/popup.css +0 -794
  119. package/airtable_mcp/__init__.py +0 -5
  120. package/airtable_mcp/src/server.py +0 -329
  121. package/airtable_mcp_v2.js +0 -1505
  122. package/airtable_mcp_v2_oauth.js +0 -1048
  123. package/airtable_mcp_v3_advanced.js +0 -1161
  124. package/cleanup.sh +0 -71
  125. package/docker-compose.production.yml +0 -366
  126. package/helm/airtable-mcp/Chart.yaml +0 -122
  127. package/helm/airtable-mcp/values.yaml +0 -538
  128. package/index.js +0 -179
  129. package/inspector.py +0 -148
  130. package/inspector_server.py +0 -337
  131. package/k8s/deployment.yaml +0 -402
  132. package/k8s/namespace.yaml +0 -108
  133. package/k8s/service.yaml +0 -194
  134. package/monitoring/alerts.yml +0 -289
  135. package/monitoring/prometheus.yml +0 -224
  136. package/publish-steps.txt +0 -27
  137. package/quick_test.sh +0 -30
  138. package/requirements.txt +0 -10
  139. package/setup.py +0 -29
  140. package/simple_airtable_server.py +0 -151
  141. package/smithery.yaml +0 -45
  142. package/test_all_features.sh +0 -146
  143. package/test_all_operations.sh +0 -120
  144. package/test_client.py +0 -70
  145. package/test_enhanced_features.js +0 -389
  146. package/test_mcp_comprehensive.js +0 -163
  147. package/test_mock_server.js +0 -180
  148. package/test_v1.4.0_final.sh +0 -131
  149. package/test_v1.5.0_comprehensive.sh +0 -96
  150. package/test_v1.5.0_final.sh +0 -224
  151. package/test_v1.6.0_comprehensive.sh +0 -187
  152. 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"