@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
package/cleanup.sh DELETED
@@ -1,71 +0,0 @@
1
- #!/bin/bash
2
-
3
- echo "🧹 Airtable MCP Cleanup Script"
4
- echo "=============================="
5
-
6
- # Function to check if port is in use
7
- check_port() {
8
- if lsof -Pi :8010 -sTCP:LISTEN -t >/dev/null ; then
9
- echo "⚠️ Port 8010 is in use"
10
- return 0
11
- else
12
- echo "✅ Port 8010 is free"
13
- return 1
14
- fi
15
- }
16
-
17
- # Function to kill processes on port 8010
18
- kill_port() {
19
- echo "🔄 Killing processes on port 8010..."
20
- lsof -ti:8010 | xargs kill -9 2>/dev/null
21
- echo "✅ Port 8010 cleared"
22
- }
23
-
24
- # Function to clean up temporary files
25
- cleanup_files() {
26
- echo "🧹 Cleaning up temporary files..."
27
-
28
- # Remove test files if they exist
29
- if [ -f "test_mcp_comprehensive.js" ]; then
30
- rm test_mcp_comprehensive.js
31
- echo "✅ Removed test_mcp_comprehensive.js"
32
- fi
33
-
34
- if [ -f "quick_test.sh" ]; then
35
- rm quick_test.sh
36
- echo "✅ Removed quick_test.sh"
37
- fi
38
-
39
- if [ -f "MCP_REVIEW_SUMMARY.md" ]; then
40
- rm MCP_REVIEW_SUMMARY.md
41
- echo "✅ Removed MCP_REVIEW_SUMMARY.md"
42
- fi
43
-
44
- if [ -f "cleanup.sh" ]; then
45
- rm cleanup.sh
46
- echo "✅ Removed cleanup.sh"
47
- fi
48
- }
49
-
50
- # Main cleanup process
51
- echo "1. Checking port status..."
52
- if check_port; then
53
- echo "2. Clearing port 8010..."
54
- kill_port
55
- else
56
- echo "2. Port is already free"
57
- fi
58
-
59
- echo "3. Cleaning up temporary files..."
60
- cleanup_files
61
-
62
- echo ""
63
- echo "🎉 Cleanup completed!"
64
- echo ""
65
- echo "To start the MCP server again:"
66
- echo " node airtable_simple.js --token YOUR_TOKEN --base YOUR_BASE_ID"
67
- echo ""
68
- echo "To test the MCP:"
69
- echo " npm run test"
70
-
71
-
@@ -1,366 +0,0 @@
1
- # Production Docker Compose for Airtable MCP Server
2
- # High Availability, Monitoring, and Security
3
- # Trust Score: 100/100 target
4
-
5
- version: '3.8'
6
-
7
- services:
8
- # ============================================================================
9
- # AIRTABLE MCP SERVER - Primary Service
10
- # ============================================================================
11
- airtable-mcp:
12
- build:
13
- context: .
14
- dockerfile: Dockerfile.production
15
- target: production
16
- image: rashidazarang/airtable-mcp:2.1.0-production
17
- container_name: airtable-mcp-server
18
- restart: unless-stopped
19
-
20
- # Security configuration
21
- security_opt:
22
- - no-new-privileges:true
23
- read_only: true
24
- tmpfs:
25
- - /tmp:rw,size=100M,mode=1777
26
- - /app/logs:rw,size=200M,mode=750
27
-
28
- # Resource limits
29
- deploy:
30
- resources:
31
- limits:
32
- cpus: '1.0'
33
- memory: 512M
34
- reservations:
35
- cpus: '0.5'
36
- memory: 256M
37
-
38
- # Environment variables
39
- environment:
40
- NODE_ENV: production
41
- LOG_LEVEL: ${LOG_LEVEL:-INFO}
42
- LOG_FORMAT: json
43
- PORT: 8010
44
- HOST: 0.0.0.0
45
-
46
- # Airtable configuration
47
- AIRTABLE_TOKEN: ${AIRTABLE_TOKEN}
48
- AIRTABLE_BASE_ID: ${AIRTABLE_BASE_ID}
49
- AIRTABLE_CLIENT_ID: ${AIRTABLE_CLIENT_ID:-}
50
- AIRTABLE_CLIENT_SECRET: ${AIRTABLE_CLIENT_SECRET:-}
51
-
52
- # Security configuration
53
- MAX_REQUESTS_PER_MINUTE: ${MAX_REQUESTS_PER_MINUTE:-60}
54
- ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-*}
55
- SESSION_SECRET: ${SESSION_SECRET}
56
-
57
- # Performance configuration
58
- CACHE_TTL: ${CACHE_TTL:-60}
59
- CONNECTION_TIMEOUT: ${CONNECTION_TIMEOUT:-30000}
60
- REQUEST_TIMEOUT: ${REQUEST_TIMEOUT:-10000}
61
-
62
- # Monitoring
63
- ENABLE_METRICS: 'true'
64
- METRICS_PORT: 9090
65
-
66
- # Port exposure (only internal by default)
67
- expose:
68
- - "8010"
69
- - "9090"
70
-
71
- # Health check
72
- healthcheck:
73
- test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8010/health"]
74
- interval: 30s
75
- timeout: 10s
76
- retries: 3
77
- start_period: 30s
78
-
79
- # Logging configuration
80
- logging:
81
- driver: "json-file"
82
- options:
83
- max-size: "10m"
84
- max-file: "3"
85
- tag: "airtable-mcp"
86
-
87
- # Networks
88
- networks:
89
- - mcp-network
90
- - monitoring
91
-
92
- # Labels for service discovery
93
- labels:
94
- - "traefik.enable=true"
95
- - "traefik.http.routers.airtable-mcp.rule=Host(`mcp.${DOMAIN:-localhost}`)"
96
- - "traefik.http.routers.airtable-mcp.tls=true"
97
- - "traefik.http.routers.airtable-mcp.tls.certresolver=letsencrypt"
98
- - "traefik.http.services.airtable-mcp.loadbalancer.server.port=8010"
99
- - "traefik.http.middlewares.mcp-auth.basicauth.users=${BASIC_AUTH_USERS:-}"
100
- - "prometheus.io/scrape=true"
101
- - "prometheus.io/port=9090"
102
- - "prometheus.io/path=/metrics"
103
-
104
- # ============================================================================
105
- # REVERSE PROXY & LOAD BALANCER
106
- # ============================================================================
107
- traefik:
108
- image: traefik:v3.0
109
- container_name: airtable-mcp-proxy
110
- restart: unless-stopped
111
-
112
- # Security
113
- security_opt:
114
- - no-new-privileges:true
115
- read_only: true
116
-
117
- # Ports
118
- ports:
119
- - "80:80"
120
- - "443:443"
121
- - "8080:8080" # Traefik dashboard
122
-
123
- # Configuration
124
- command:
125
- - --api.dashboard=true
126
- - --api.insecure=false
127
- - --providers.docker=true
128
- - --providers.docker.exposedbydefault=false
129
- - --entrypoints.web.address=:80
130
- - --entrypoints.websecure.address=:443
131
- - --certificatesresolvers.letsencrypt.acme.email=${ACME_EMAIL:-admin@example.com}
132
- - --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json
133
- - --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web
134
- - --metrics.prometheus=true
135
- - --accesslog=true
136
- - --log.level=${TRAEFIK_LOG_LEVEL:-INFO}
137
- - --global.sendanonymoususage=false
138
-
139
- # Volumes
140
- volumes:
141
- - /var/run/docker.sock:/var/run/docker.sock:ro
142
- - traefik-letsencrypt:/letsencrypt
143
-
144
- # Networks
145
- networks:
146
- - mcp-network
147
- - monitoring
148
-
149
- # Labels
150
- labels:
151
- - "traefik.enable=true"
152
- - "traefik.http.routers.dashboard.rule=Host(`traefik.${DOMAIN:-localhost}`)"
153
- - "traefik.http.routers.dashboard.tls=true"
154
- - "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
155
- - "traefik.http.routers.dashboard.service=api@internal"
156
-
157
- # ============================================================================
158
- # MONITORING - PROMETHEUS
159
- # ============================================================================
160
- prometheus:
161
- image: prom/prometheus:latest
162
- container_name: airtable-mcp-prometheus
163
- restart: unless-stopped
164
-
165
- # Security
166
- user: "65534:65534"
167
- read_only: true
168
-
169
- # Configuration
170
- command:
171
- - '--config.file=/etc/prometheus/prometheus.yml'
172
- - '--storage.tsdb.path=/prometheus'
173
- - '--web.console.libraries=/etc/prometheus/console_libraries'
174
- - '--web.console.templates=/etc/prometheus/consoles'
175
- - '--storage.tsdb.retention.time=15d'
176
- - '--web.enable-lifecycle'
177
- - '--web.enable-admin-api'
178
-
179
- # Volumes
180
- volumes:
181
- - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
182
- - prometheus-data:/prometheus
183
-
184
- # Ports (internal only)
185
- expose:
186
- - "9090"
187
-
188
- # Networks
189
- networks:
190
- - monitoring
191
-
192
- # Labels
193
- labels:
194
- - "traefik.enable=true"
195
- - "traefik.http.routers.prometheus.rule=Host(`prometheus.${DOMAIN:-localhost}`)"
196
- - "traefik.http.services.prometheus.loadbalancer.server.port=9090"
197
-
198
- # ============================================================================
199
- # MONITORING - GRAFANA
200
- # ============================================================================
201
- grafana:
202
- image: grafana/grafana:latest
203
- container_name: airtable-mcp-grafana
204
- restart: unless-stopped
205
-
206
- # Security
207
- user: "472:472"
208
-
209
- # Environment
210
- environment:
211
- - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD:-admin123}
212
- - GF_USERS_ALLOW_SIGN_UP=false
213
- - GF_SERVER_DOMAIN=${DOMAIN:-localhost}
214
- - GF_SMTP_ENABLED=${SMTP_ENABLED:-false}
215
- - GF_SMTP_HOST=${SMTP_HOST:-}
216
- - GF_SMTP_USER=${SMTP_USER:-}
217
- - GF_SMTP_PASSWORD=${SMTP_PASSWORD:-}
218
-
219
- # Volumes
220
- volumes:
221
- - grafana-data:/var/lib/grafana
222
- - ./monitoring/grafana/dashboards:/etc/grafana/provisioning/dashboards:ro
223
- - ./monitoring/grafana/datasources:/etc/grafana/provisioning/datasources:ro
224
-
225
- # Ports (internal only)
226
- expose:
227
- - "3000"
228
-
229
- # Networks
230
- networks:
231
- - monitoring
232
-
233
- # Labels
234
- labels:
235
- - "traefik.enable=true"
236
- - "traefik.http.routers.grafana.rule=Host(`grafana.${DOMAIN:-localhost}`)"
237
- - "traefik.http.services.grafana.loadbalancer.server.port=3000"
238
-
239
- # ============================================================================
240
- # LOGGING - LOKI
241
- # ============================================================================
242
- loki:
243
- image: grafana/loki:latest
244
- container_name: airtable-mcp-loki
245
- restart: unless-stopped
246
-
247
- # Security
248
- user: "10001:10001"
249
- read_only: true
250
-
251
- # Configuration
252
- command: -config.file=/etc/loki/local-config.yaml
253
-
254
- # Volumes
255
- volumes:
256
- - ./monitoring/loki.yml:/etc/loki/local-config.yaml:ro
257
- - loki-data:/loki
258
-
259
- # Ports (internal only)
260
- expose:
261
- - "3100"
262
-
263
- # Networks
264
- networks:
265
- - monitoring
266
-
267
- # ============================================================================
268
- # LOG FORWARDING - PROMTAIL
269
- # ============================================================================
270
- promtail:
271
- image: grafana/promtail:latest
272
- container_name: airtable-mcp-promtail
273
- restart: unless-stopped
274
-
275
- # Security
276
- user: "0:0" # Needs root to read Docker logs
277
-
278
- # Configuration
279
- command: -config.file=/etc/promtail/config.yml
280
-
281
- # Volumes
282
- volumes:
283
- - ./monitoring/promtail.yml:/etc/promtail/config.yml:ro
284
- - /var/log:/var/log:ro
285
- - /var/lib/docker/containers:/var/lib/docker/containers:ro
286
- - /var/run/docker.sock:/var/run/docker.sock:ro
287
-
288
- # Networks
289
- networks:
290
- - monitoring
291
-
292
- # ============================================================================
293
- # REDIS - CACHING & SESSION STORE
294
- # ============================================================================
295
- redis:
296
- image: redis:7-alpine
297
- container_name: airtable-mcp-redis
298
- restart: unless-stopped
299
-
300
- # Security
301
- security_opt:
302
- - no-new-privileges:true
303
- read_only: true
304
-
305
- # Configuration
306
- command: redis-server --requirepass ${REDIS_PASSWORD:-defaultpass} --maxmemory 256mb --maxmemory-policy allkeys-lru
307
-
308
- # Volumes
309
- volumes:
310
- - redis-data:/data
311
-
312
- # Ports (internal only)
313
- expose:
314
- - "6379"
315
-
316
- # Networks
317
- networks:
318
- - mcp-network
319
-
320
- # Health check
321
- healthcheck:
322
- test: ["CMD", "redis-cli", "ping"]
323
- interval: 30s
324
- timeout: 10s
325
- retries: 3
326
-
327
- # ============================================================================
328
- # NETWORKS
329
- # ============================================================================
330
- networks:
331
- mcp-network:
332
- driver: bridge
333
- ipam:
334
- config:
335
- - subnet: 172.20.0.0/16
336
- monitoring:
337
- driver: bridge
338
- ipam:
339
- config:
340
- - subnet: 172.21.0.0/16
341
-
342
- # ============================================================================
343
- # VOLUMES
344
- # ============================================================================
345
- volumes:
346
- traefik-letsencrypt:
347
- driver: local
348
- prometheus-data:
349
- driver: local
350
- grafana-data:
351
- driver: local
352
- loki-data:
353
- driver: local
354
- redis-data:
355
- driver: local
356
-
357
- # ============================================================================
358
- # SECRETS (Alternative to environment variables)
359
- # ============================================================================
360
- secrets:
361
- airtable_token:
362
- file: ./secrets/airtable_token.txt
363
- session_secret:
364
- file: ./secrets/session_secret.txt
365
- grafana_password:
366
- file: ./secrets/grafana_password.txt
@@ -1,122 +0,0 @@
1
- # Helm Chart for Airtable MCP Server
2
- # Enterprise-ready Kubernetes deployment
3
- # Trust Score: 100/100
4
-
5
- apiVersion: v2
6
- name: airtable-mcp
7
- description: |
8
- Enhanced Airtable MCP Server v2.1 - Production-ready deployment with OAuth2,
9
- enterprise security, monitoring, and high availability features.
10
-
11
- Designed to achieve 100/100 Trust Score with comprehensive:
12
- - Security features (OAuth2, rate limiting, validation)
13
- - Monitoring and observability (Prometheus, Grafana, alerting)
14
- - High availability (load balancing, auto-scaling, health checks)
15
- - Production readiness (Docker, Kubernetes, CI/CD)
16
-
17
- # Chart metadata
18
- type: application
19
- version: 2.1.0
20
- appVersion: "2.1.0"
21
- home: https://github.com/rashidazarang/airtable-mcp
22
- sources:
23
- - https://github.com/rashidazarang/airtable-mcp
24
- icon: https://raw.githubusercontent.com/rashidazarang/airtable-mcp/main/docs/images/logo.png
25
-
26
- # Maintainers
27
- maintainers:
28
- - name: Rashid Azarang
29
- email: rashid@example.com
30
- url: https://github.com/rashidazarang
31
-
32
- # Keywords for discoverability
33
- keywords:
34
- - airtable
35
- - mcp
36
- - model-context-protocol
37
- - claude
38
- - ai
39
- - oauth2
40
- - security
41
- - enterprise
42
- - trust-score
43
- - production-ready
44
-
45
- # Chart requirements and dependencies
46
- dependencies:
47
- - name: redis
48
- version: "17.15.6"
49
- repository: "https://charts.bitnami.com/bitnami"
50
- condition: redis.enabled
51
- tags:
52
- - cache
53
- - name: prometheus
54
- version: "25.6.0"
55
- repository: "https://prometheus-community.github.io/helm-charts"
56
- condition: monitoring.prometheus.enabled
57
- tags:
58
- - monitoring
59
- - name: grafana
60
- version: "7.0.9"
61
- repository: "https://grafana.github.io/helm-charts"
62
- condition: monitoring.grafana.enabled
63
- tags:
64
- - monitoring
65
- - name: ingress-nginx
66
- version: "4.8.3"
67
- repository: "https://kubernetes.github.io/ingress-nginx"
68
- condition: ingress.enabled
69
- tags:
70
- - networking
71
-
72
- # Annotations for additional metadata
73
- annotations:
74
- # Artifacthub.io annotations
75
- artifacthub.io/category: "AI"
76
- artifacthub.io/license: "MIT"
77
- artifacthub.io/prerelease: "false"
78
- artifacthub.io/operator: "false"
79
- artifacthub.io/containsSecurityUpdates: "true"
80
- artifacthub.io/changes: |
81
- - kind: added
82
- description: OAuth2 authentication with PKCE
83
- - kind: added
84
- description: Enterprise security features
85
- - kind: added
86
- description: Comprehensive monitoring and alerting
87
- - kind: added
88
- description: High availability deployment
89
- - kind: added
90
- description: Production-ready configuration
91
- - kind: security
92
- description: Security headers and input validation
93
- - kind: security
94
- description: Rate limiting and DoS protection
95
- artifacthub.io/images: |
96
- - name: airtable-mcp
97
- image: rashidazarang/airtable-mcp:2.1.0-production
98
- whitelisted: true
99
- - name: redis
100
- image: redis:7-alpine
101
- whitelisted: true
102
- artifacthub.io/links: |
103
- - name: Documentation
104
- url: https://github.com/rashidazarang/airtable-mcp/blob/main/API_DOCUMENTATION.md
105
- - name: Security Policy
106
- url: https://github.com/rashidazarang/airtable-mcp/blob/main/SECURITY.md
107
- - name: Code of Conduct
108
- url: https://github.com/rashidazarang/airtable-mcp/blob/main/CODE_OF_CONDUCT.md
109
-
110
- # Helm annotations
111
- helm.sh/hook-weight: "1"
112
- helm.sh/resource-policy: "keep"
113
-
114
- # Trust Score annotations
115
- trust.score/target: "100"
116
- trust.score/features: "oauth2,security,monitoring,ha,production"
117
- trust.score/compliance: "enterprise"
118
-
119
- # Security annotations
120
- security.policy/tier: "restricted"
121
- security.policy/scan: "enabled"
122
- security.policy/secrets: "external"