@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,69 +0,0 @@
1
- # Extension Icons
2
-
3
- This directory contains the required icon files for the Chrome extension.
4
-
5
- ## Required Sizes
6
-
7
- - **icon-16.png** (16x16) - Extension management page
8
- - **icon-32.png** (32x32) - Extension management page & Windows
9
- - **icon-48.png** (48x48) - Extensions page
10
- - **icon-128.png** (128x128) - Chrome Web Store & install dialog
11
-
12
- ## Design Guidelines
13
-
14
- ### Visual Style
15
- - **Symbol**: Simple paperclip or clipboard icon
16
- - **Colors**: Airtable brand colors (blue #667eea to purple #764ba2 gradient)
17
- - **Style**: Modern, clean, professional
18
- - **Background**: Transparent PNG
19
-
20
- ### Technical Requirements
21
- - **Format**: PNG with transparent background
22
- - **Quality**: High resolution, crisp at all sizes
23
- - **Colors**: Web-safe colors that work on light and dark themes
24
- - **Consistency**: Same design scaled to different sizes
25
-
26
- ### Design Inspiration
27
- The icon should represent:
28
- - 📎 **Clipping/Saving**: Paperclip, clipboard, or save symbol
29
- - 🔗 **Connection**: Link between web and Airtable
30
- - ⚡ **Speed**: Quick, efficient data capture
31
- - 🎯 **Precision**: Accurate data extraction
32
-
33
- ## Creating Icons
34
-
35
- ### Tools
36
- - **Figma**: For vector-based design
37
- - **Sketch**: Professional icon design
38
- - **Adobe Illustrator**: Vector graphics
39
- - **GIMP/Photoshop**: Raster editing
40
-
41
- ### Process
42
- 1. Design at highest resolution (128x128)
43
- 2. Use vector graphics for scalability
44
- 3. Export as PNG with transparent background
45
- 4. Test visibility on Chrome toolbar
46
- 5. Ensure clarity at 16x16 size
47
-
48
- ## Placeholder Status
49
-
50
- ⚠️ **Current files are placeholders**
51
-
52
- The current icon files are text placeholders. For production deployment, replace with actual PNG icons following the design guidelines above.
53
-
54
- ## Quick Icon Generation
55
-
56
- For rapid prototyping, you can generate simple icons using:
57
-
58
- ```bash
59
- # Create simple colored squares as placeholders
60
- convert -size 16x16 xc:'#667eea' extension/icons/icon-16.png
61
- convert -size 32x32 xc:'#667eea' extension/icons/icon-32.png
62
- convert -size 48x48 xc:'#667eea' extension/icons/icon-48.png
63
- convert -size 128x128 xc:'#667eea' extension/icons/icon-128.png
64
- ```
65
-
66
- Or use online icon generators:
67
- - [Favicon.io](https://favicon.io/)
68
- - [RealFaviconGenerator](https://realfavicongenerator.net/)
69
- - [Canva Icon Maker](https://canva.com)
@@ -1,2 +0,0 @@
1
- # Placeholder icon - 128x128 pixels
2
- # For production, replace with actual PNG file
@@ -1,3 +0,0 @@
1
- # Placeholder icon - 16x16 pixels
2
- # In a real deployment, this would be an actual PNG file
3
- # For now, creating a text placeholder
@@ -1,2 +0,0 @@
1
- # Placeholder icon - 32x32 pixels
2
- # For production, replace with actual PNG file
@@ -1,2 +0,0 @@
1
- # Placeholder icon - 48x48 pixels
2
- # For production, replace with actual PNG file
@@ -1,62 +0,0 @@
1
- {
2
- "manifest_version": 3,
3
- "name": "Airtable Clipper",
4
- "version": "1.0.0",
5
- "description": "Save anything from the web to Airtable with one click. Perfect for CRM, research, and data collection.",
6
- "author": "Rashid Azarang",
7
-
8
- "permissions": [
9
- "activeTab",
10
- "storage",
11
- "contextMenus",
12
- "notifications",
13
- "scripting"
14
- ],
15
-
16
- "host_permissions": [
17
- "https://api.airtable.com/*"
18
- ],
19
-
20
- "background": {
21
- "service_worker": "background.js",
22
- "type": "module"
23
- },
24
-
25
- "action": {
26
- "default_popup": "popup.html",
27
- "default_icon": {
28
- "16": "icons/icon-16.png",
29
- "32": "icons/icon-32.png",
30
- "48": "icons/icon-48.png",
31
- "128": "icons/icon-128.png"
32
- }
33
- },
34
-
35
- "side_panel": {
36
- "default_path": "sidepanel.html"
37
- },
38
-
39
- "web_accessible_resources": [
40
- {
41
- "resources": [
42
- "lib/*.js",
43
- "styles/*.css",
44
- "icons/*.png",
45
- "base-setup.html",
46
- "base-setup.js"
47
- ],
48
- "matches": ["https://api.airtable.com/*"]
49
- }
50
- ],
51
-
52
- "icons": {
53
- "16": "icons/icon-16.png",
54
- "32": "icons/icon-32.png",
55
- "48": "icons/icon-48.png",
56
- "128": "icons/icon-128.png"
57
- },
58
-
59
- "content_security_policy": {
60
- "extension_pages": "script-src 'self'; object-src 'self';"
61
- }
62
- }
@@ -1,157 +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</title>
7
- <link rel="stylesheet" href="styles/popup.css">
8
- </head>
9
- <body>
10
- <!-- Connection State: Not Connected -->
11
- <div class="popup-container" id="setupView">
12
- <div class="header-simple">
13
- <h2>Airtable Clipper</h2>
14
- <p class="subtitle">Save web content to your Airtable</p>
15
- </div>
16
-
17
- <div class="setup-form">
18
- <div class="setup-steps">
19
- <h3>Get Started in 2 Steps</h3>
20
- <div class="step">
21
- <div class="step-number">1</div>
22
- <div class="step-content">
23
- <p><strong>Get your Personal Access Token</strong></p>
24
- <a href="https://airtable.com/create/tokens" target="_blank" class="help-link">
25
- Create token at airtable.com/create/tokens →
26
- </a>
27
- </div>
28
- </div>
29
- <div class="step">
30
- <div class="step-number">2</div>
31
- <div class="step-content">
32
- <p><strong>Get your Base ID</strong></p>
33
- <p class="help-text">Found in your Airtable URL: airtable.com/<span class="highlight">appXXXXXX</span>/...</p>
34
- </div>
35
- </div>
36
- </div>
37
-
38
- <div class="connect-form">
39
- <div class="input-group">
40
- <input type="password" id="airtableToken" placeholder="Personal Access Token (pat...)" class="token-input">
41
- </div>
42
-
43
- <div class="input-group">
44
- <input type="text" id="baseId" placeholder="Base ID (app...)" class="base-input">
45
- </div>
46
-
47
- <button class="connect-btn" id="connectBtn">
48
- <span class="btn-text">Connect to Airtable</span>
49
- <span class="btn-spinner" id="connectSpinner"></span>
50
- </button>
51
- </div>
52
-
53
- <div class="quick-setup">
54
- <p>Don't have a base yet?</p>
55
- <button class="setup-btn" id="setupBtn">Create optimized database</button>
56
- </div>
57
- </div>
58
- </div>
59
-
60
- <!-- Connection State: Connected -->
61
- <div class="popup-container connected" id="connectedView" style="display: none;">
62
- <div class="header-connected">
63
- <div class="site-info">
64
- <div class="site-icon" id="siteIcon">🌐</div>
65
- <div class="site-details">
66
- <div class="site-name" id="siteName">Current Page</div>
67
- <div class="site-url" id="siteUrl">example.com</div>
68
- </div>
69
- </div>
70
- <div class="connection-indicator">
71
- <div class="status-dot connected"></div>
72
- </div>
73
- </div>
74
-
75
- <div class="actions">
76
- <!-- Primary Save Action -->
77
- <button class="save-btn primary" id="quickSaveBtn">
78
- <span class="save-icon">📎</span>
79
- <div class="save-content">
80
- <span class="save-text">Save Page</span>
81
- <span class="save-subtitle" id="saveSubtitle">to Web Clips</span>
82
- </div>
83
- </button>
84
-
85
- <!-- Secondary Actions -->
86
- <div class="secondary-actions" id="secondaryActions">
87
- <button class="action-btn" id="linkedinBtn" style="display: none;">
88
- <span class="action-icon">👤</span>
89
- <span class="action-text">Save Profile</span>
90
- </button>
91
-
92
- <button class="action-btn" id="bulkBtn">
93
- <span class="action-icon">📋</span>
94
- <span class="action-text">Select Multiple</span>
95
- </button>
96
-
97
- <button class="action-btn" id="settingsBtn">
98
- <span class="action-icon">⚙️</span>
99
- <span class="action-text">Settings</span>
100
- </button>
101
- </div>
102
- </div>
103
-
104
- <!-- Settings Panel -->
105
- <div class="settings-panel" id="settingsPanel" style="display: none;">
106
- <div class="settings-header">
107
- <h3>Settings</h3>
108
- <button class="close-btn" id="closeSettings">×</button>
109
- </div>
110
-
111
- <div class="setting-item">
112
- <label>Default Table</label>
113
- <select id="defaultTable">
114
- <option value="Web Clips">Web Clips</option>
115
- </select>
116
- </div>
117
-
118
- <div class="setting-item">
119
- <label>LinkedIn Table</label>
120
- <select id="linkedinTable">
121
- <option value="Contacts">Contacts</option>
122
- </select>
123
- </div>
124
-
125
- <div class="setting-item">
126
- <label class="toggle-label">
127
- <input type="checkbox" id="autoSave">
128
- <span class="toggle-switch"></span>
129
- Auto-save LinkedIn profiles
130
- </label>
131
- </div>
132
-
133
- <div class="setting-item">
134
- <label class="toggle-label">
135
- <input type="checkbox" id="notifications" checked>
136
- <span class="toggle-switch"></span>
137
- Show notifications
138
- </label>
139
- </div>
140
-
141
- <div class="setting-item">
142
- <button class="disconnect-btn" id="disconnectBtn">Disconnect</button>
143
- </div>
144
- </div>
145
- </div>
146
-
147
- <!-- Status Messages -->
148
- <div class="toast" id="toast">
149
- <div class="toast-content">
150
- <span class="toast-icon" id="toastIcon">✅</span>
151
- <span class="toast-message" id="toastMessage">Success!</span>
152
- </div>
153
- </div>
154
-
155
- <script src="popup.js" type="module"></script>
156
- </body>
157
- </html>