@rashidazarang/airtable-mcp 1.6.0 → 2.1.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.
- package/.github/ISSUE_TEMPLATE/bug-report.yml +173 -0
- package/.github/ISSUE_TEMPLATE/feature-request.yml +209 -0
- package/.github/ISSUE_TEMPLATE/security-report.yml +216 -0
- package/.github/pull_request_template.md +245 -0
- package/.github/workflows/ci-cd.yml +408 -0
- package/.github/workflows/security-audit.yml +316 -0
- package/API_DOCUMENTATION.md +897 -0
- package/CODE_OF_CONDUCT.md +181 -0
- package/Dockerfile.production +127 -0
- package/README.md +1 -0
- package/airtable-clipper/CHANGELOG.md +198 -0
- package/airtable-clipper/CHROME_STORE_SUBMISSION.md +343 -0
- package/airtable-clipper/LAUNCH_STRATEGY.md +495 -0
- package/airtable-clipper/LICENSE +21 -0
- package/airtable-clipper/OAUTH_SETUP.md +51 -0
- package/airtable-clipper/PRIVACY_POLICY.md +187 -0
- package/airtable-clipper/README.md +575 -0
- package/airtable-clipper/SUBMIT_TO_CHROME_STORE.md +273 -0
- package/airtable-clipper/build.sh +85 -0
- package/airtable-clipper/docs/QUICK_START.md +99 -0
- package/airtable-clipper/docs/SETUP.md +291 -0
- package/airtable-clipper/extension/background.js +337 -0
- package/airtable-clipper/extension/base-setup.html +324 -0
- package/airtable-clipper/extension/base-setup.js +471 -0
- package/airtable-clipper/extension/content.js +771 -0
- package/airtable-clipper/extension/icons/README.md +69 -0
- package/airtable-clipper/extension/icons/icon-16.png +3 -0
- package/airtable-clipper/extension/manifest.json +73 -0
- package/airtable-clipper/extension/popup.html +144 -0
- package/airtable-clipper/extension/popup.js +475 -0
- package/airtable-clipper/extension/styles/content.css +229 -0
- package/airtable-clipper/extension/styles/popup.css +477 -0
- package/airtable-clipper/privacy-policy.md +63 -0
- package/airtable-clipper/releases/v1.0.0/background.js +337 -0
- package/airtable-clipper/releases/v1.0.0/base-setup.html +324 -0
- package/airtable-clipper/releases/v1.0.0/base-setup.js +471 -0
- package/airtable-clipper/releases/v1.0.0/content.js +771 -0
- package/airtable-clipper/releases/v1.0.0/icons/README.md +69 -0
- package/airtable-clipper/releases/v1.0.0/icons/icon-128.png +2 -0
- package/airtable-clipper/releases/v1.0.0/icons/icon-16.png +3 -0
- package/airtable-clipper/releases/v1.0.0/icons/icon-32.png +2 -0
- package/airtable-clipper/releases/v1.0.0/icons/icon-48.png +2 -0
- package/airtable-clipper/releases/v1.0.0/manifest.json +73 -0
- package/airtable-clipper/releases/v1.0.0/popup.html +144 -0
- package/airtable-clipper/releases/v1.0.0/popup.js +475 -0
- package/airtable-clipper/releases/v1.0.0/sidepanel.html +25 -0
- package/airtable-clipper/releases/v1.0.0/styles/content.css +229 -0
- package/airtable-clipper/releases/v1.0.0/styles/popup.css +477 -0
- package/airtable-clipper/releases/v1.0.1/background.js +337 -0
- package/airtable-clipper/releases/v1.0.1/base-setup.html +324 -0
- package/airtable-clipper/releases/v1.0.1/base-setup.js +471 -0
- package/airtable-clipper/releases/v1.0.1/content.js +771 -0
- package/airtable-clipper/releases/v1.0.1/icons/README.md +69 -0
- package/airtable-clipper/releases/v1.0.1/icons/icon-128.png +2 -0
- package/airtable-clipper/releases/v1.0.1/icons/icon-16.png +3 -0
- package/airtable-clipper/releases/v1.0.1/icons/icon-32.png +2 -0
- package/airtable-clipper/releases/v1.0.1/icons/icon-48.png +2 -0
- package/airtable-clipper/releases/v1.0.1/manifest.json +70 -0
- package/airtable-clipper/releases/v1.0.1/popup.html +157 -0
- package/airtable-clipper/releases/v1.0.1/popup.js +562 -0
- package/airtable-clipper/releases/v1.0.1/sidepanel.html +25 -0
- package/airtable-clipper/releases/v1.0.1/styles/content.css +229 -0
- package/airtable-clipper/releases/v1.0.1/styles/popup.css +647 -0
- package/airtable-clipper/releases/v1.0.2/background.js +337 -0
- package/airtable-clipper/releases/v1.0.2/base-setup.html +324 -0
- package/airtable-clipper/releases/v1.0.2/base-setup.js +471 -0
- package/airtable-clipper/releases/v1.0.2/content.js +771 -0
- package/airtable-clipper/releases/v1.0.2/icons/README.md +69 -0
- package/airtable-clipper/releases/v1.0.2/icons/icon-128.png +2 -0
- package/airtable-clipper/releases/v1.0.2/icons/icon-16.png +3 -0
- package/airtable-clipper/releases/v1.0.2/icons/icon-32.png +2 -0
- package/airtable-clipper/releases/v1.0.2/icons/icon-48.png +2 -0
- package/airtable-clipper/releases/v1.0.2/manifest.json +62 -0
- package/airtable-clipper/releases/v1.0.2/popup.html +157 -0
- package/airtable-clipper/releases/v1.0.2/popup.js +567 -0
- package/airtable-clipper/releases/v1.0.2/sidepanel.html +25 -0
- package/airtable-clipper/releases/v1.0.2/styles/content.css +229 -0
- package/airtable-clipper/releases/v1.0.2/styles/popup.css +647 -0
- package/airtable-clipper/terms-of-service.md +124 -0
- package/airtable-clipper/test-credentials.md +61 -0
- package/airtable-clipper/test-extension/background.js +337 -0
- package/airtable-clipper/test-extension/base-setup.html +324 -0
- package/airtable-clipper/test-extension/base-setup.js +471 -0
- package/airtable-clipper/test-extension/content.js +873 -0
- package/airtable-clipper/test-extension/icons/README.md +69 -0
- package/airtable-clipper/test-extension/icons/icon-128.png +2 -0
- package/airtable-clipper/test-extension/icons/icon-16.png +3 -0
- package/airtable-clipper/test-extension/icons/icon-32.png +2 -0
- package/airtable-clipper/test-extension/icons/icon-48.png +2 -0
- package/airtable-clipper/test-extension/manifest.json +72 -0
- package/airtable-clipper/test-extension/popup.html +274 -0
- package/airtable-clipper/test-extension/popup.js +729 -0
- package/airtable-clipper/test-extension/sidepanel.html +25 -0
- package/airtable-clipper/test-extension/styles/content.css +229 -0
- package/airtable-clipper/test-extension/styles/popup.css +794 -0
- package/airtable_mcp_v2.js +1505 -0
- package/airtable_mcp_v2_oauth.js +1048 -0
- package/airtable_mcp_v3_advanced.js +1161 -0
- package/airtable_simple_production.js +532 -0
- package/docker-compose.production.yml +366 -0
- package/helm/airtable-mcp/Chart.yaml +122 -0
- package/helm/airtable-mcp/values.yaml +538 -0
- package/k8s/deployment.yaml +402 -0
- package/k8s/namespace.yaml +108 -0
- package/k8s/service.yaml +194 -0
- package/monitoring/alerts.yml +289 -0
- package/monitoring/prometheus.yml +224 -0
- package/package.json +6 -6
- package/.claude/settings.local.json +0 -12
- package/airtable-mcp-1.1.0.tgz +0 -0
- package/airtable_enhanced.js +0 -499
- package/airtable_simple_v1.2.4_backup.js +0 -277
- package/airtable_v1.4.0.js +0 -654
- package/rashidazarang-airtable-mcp-1.1.0.tgz +0 -0
- package/rashidazarang-airtable-mcp-1.2.0.tgz +0 -0
- package/rashidazarang-airtable-mcp-1.2.1.tgz +0 -0
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# Privacy Policy for Airtable Clipper
|
|
2
|
+
|
|
3
|
+
**Last Updated: January 15, 2025**
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Airtable Clipper is a Chrome extension that helps users save web content to their personal Airtable databases. We are committed to protecting your privacy and being transparent about our data practices.
|
|
8
|
+
|
|
9
|
+
## Data Collection and Usage
|
|
10
|
+
|
|
11
|
+
### What We DO NOT Collect
|
|
12
|
+
- ❌ **Personal Information**: We do not collect names, emails, or personal details
|
|
13
|
+
- ❌ **Browsing History**: We do not track which websites you visit
|
|
14
|
+
- ❌ **Usage Analytics**: We do not collect analytics or telemetry data
|
|
15
|
+
- ❌ **Content Data**: We do not store or access the content you extract
|
|
16
|
+
- ❌ **Airtable Credentials**: Your tokens are stored locally and never transmitted to our servers
|
|
17
|
+
|
|
18
|
+
### What We DO Process (Locally Only)
|
|
19
|
+
- ✅ **Page Content**: Only when you explicitly choose to extract it
|
|
20
|
+
- ✅ **Extension Settings**: Stored locally in Chrome's sync storage
|
|
21
|
+
- ✅ **Airtable Credentials**: Stored securely in Chrome's local storage
|
|
22
|
+
|
|
23
|
+
## How the Extension Works
|
|
24
|
+
|
|
25
|
+
1. **Local Processing**: All data extraction happens in your browser
|
|
26
|
+
2. **Direct Integration**: Extracted data goes straight from your browser to YOUR Airtable account
|
|
27
|
+
3. **No Middleman**: We never see or store your data on external servers
|
|
28
|
+
4. **Your Control**: You decide what to save and when
|
|
29
|
+
|
|
30
|
+
## Data Storage
|
|
31
|
+
|
|
32
|
+
### Local Storage (Chrome)
|
|
33
|
+
- **Airtable Personal Access Token**: Encrypted and stored locally
|
|
34
|
+
- **Base ID and Settings**: Stored in Chrome's sync storage
|
|
35
|
+
- **Usage Statistics**: Local counters only (clips saved, success rate)
|
|
36
|
+
|
|
37
|
+
### Airtable Storage
|
|
38
|
+
- **Your Data**: Goes directly to your own Airtable account
|
|
39
|
+
- **We Have No Access**: We cannot see or access your Airtable data
|
|
40
|
+
- **Your Ownership**: You own and control all data in your Airtable
|
|
41
|
+
|
|
42
|
+
## Permissions Explained
|
|
43
|
+
|
|
44
|
+
We request minimal permissions necessary for functionality:
|
|
45
|
+
|
|
46
|
+
### Required Permissions
|
|
47
|
+
|
|
48
|
+
#### `activeTab`
|
|
49
|
+
- **Purpose**: Access the current webpage you're viewing
|
|
50
|
+
- **Usage**: Extract content from LinkedIn profiles, articles, etc.
|
|
51
|
+
- **Limitation**: Only when you explicitly click to save content
|
|
52
|
+
|
|
53
|
+
#### `storage`
|
|
54
|
+
- **Purpose**: Save your extension settings locally
|
|
55
|
+
- **Usage**: Store Airtable credentials and preferences
|
|
56
|
+
- **Limitation**: All data stays on your device
|
|
57
|
+
|
|
58
|
+
#### `contextMenus`
|
|
59
|
+
- **Purpose**: Add "Save to Airtable" to right-click menu
|
|
60
|
+
- **Usage**: Quick access to save selected content
|
|
61
|
+
- **Limitation**: Only adds menu items, doesn't access browsing data
|
|
62
|
+
|
|
63
|
+
#### `notifications`
|
|
64
|
+
- **Purpose**: Show success/error messages
|
|
65
|
+
- **Usage**: Confirm when content is saved to Airtable
|
|
66
|
+
- **Limitation**: Simple notifications only, no data collection
|
|
67
|
+
|
|
68
|
+
### Host Permissions
|
|
69
|
+
|
|
70
|
+
#### `https://*.linkedin.com/*`
|
|
71
|
+
- **Purpose**: Extract public profile information from LinkedIn
|
|
72
|
+
- **Usage**: Save contact details from publicly visible profiles
|
|
73
|
+
- **Limitation**: Only public information, respects LinkedIn's terms of service
|
|
74
|
+
|
|
75
|
+
#### `https://api.airtable.com/*`
|
|
76
|
+
- **Purpose**: Send data directly to your Airtable account
|
|
77
|
+
- **Usage**: Create and update records in your chosen Airtable base
|
|
78
|
+
- **Limitation**: Only your account, using your credentials
|
|
79
|
+
|
|
80
|
+
#### `https://*/` (Optional, for universal web clipping)
|
|
81
|
+
- **Purpose**: Extract content from any website you choose to clip
|
|
82
|
+
- **Usage**: Save articles, posts, and other web content
|
|
83
|
+
- **Limitation**: Only when you explicitly trigger the save action
|
|
84
|
+
|
|
85
|
+
## Third-Party Services
|
|
86
|
+
|
|
87
|
+
### Airtable Integration
|
|
88
|
+
- **Direct API Connection**: We use Airtable's official REST API
|
|
89
|
+
- **Your Credentials**: You provide your own Airtable Personal Access Token
|
|
90
|
+
- **Data Transmission**: Secure HTTPS connection directly to Airtable
|
|
91
|
+
- **Privacy**: Governed by [Airtable's Privacy Policy](https://airtable.com/privacy)
|
|
92
|
+
|
|
93
|
+
### LinkedIn Compliance
|
|
94
|
+
- **Public Data Only**: We only extract publicly visible profile information
|
|
95
|
+
- **Terms Compliance**: We respect LinkedIn's [User Agreement](https://linkedin.com/legal/user-agreement)
|
|
96
|
+
- **Rate Limiting**: We implement delays to avoid overwhelming LinkedIn's servers
|
|
97
|
+
- **Ethical Use**: Designed for legitimate business and research purposes
|
|
98
|
+
|
|
99
|
+
## Your Rights and Controls
|
|
100
|
+
|
|
101
|
+
### Data Portability
|
|
102
|
+
- **Export**: All your data is in your own Airtable account
|
|
103
|
+
- **Backup**: You can export data from Airtable at any time
|
|
104
|
+
- **Migration**: Switch to other tools using Airtable's export features
|
|
105
|
+
|
|
106
|
+
### Data Deletion
|
|
107
|
+
- **Extension Data**: Uninstall the extension to remove all local data
|
|
108
|
+
- **Airtable Data**: Delete records directly in your Airtable account
|
|
109
|
+
- **No Retention**: We don't retain any data when you uninstall
|
|
110
|
+
|
|
111
|
+
### Access Control
|
|
112
|
+
- **Your Choice**: You decide what content to save and when
|
|
113
|
+
- **Granular Control**: Enable/disable features in extension settings
|
|
114
|
+
- **Token Management**: Revoke access tokens in Airtable at any time
|
|
115
|
+
|
|
116
|
+
## Security Measures
|
|
117
|
+
|
|
118
|
+
### Data Protection
|
|
119
|
+
- **Local Encryption**: Sensitive data encrypted in Chrome storage
|
|
120
|
+
- **HTTPS Only**: All API communications use secure connections
|
|
121
|
+
- **No External Servers**: No data passes through our servers
|
|
122
|
+
- **Regular Updates**: Security patches and improvements
|
|
123
|
+
|
|
124
|
+
### Best Practices
|
|
125
|
+
- **Minimal Permissions**: We request only necessary permissions
|
|
126
|
+
- **Secure Storage**: Use Chrome's secure storage APIs
|
|
127
|
+
- **Input Validation**: All data is validated before processing
|
|
128
|
+
- **Error Handling**: Graceful handling of edge cases and failures
|
|
129
|
+
|
|
130
|
+
## Changes to Privacy Policy
|
|
131
|
+
|
|
132
|
+
We may update this privacy policy from time to time. We will notify users of any material changes through:
|
|
133
|
+
- **Extension Updates**: Changes included in extension update notes
|
|
134
|
+
- **GitHub Repository**: Updates posted to our public repository
|
|
135
|
+
- **In-Extension Notices**: Important changes shown in the extension interface
|
|
136
|
+
|
|
137
|
+
## Compliance
|
|
138
|
+
|
|
139
|
+
### Legal Standards
|
|
140
|
+
- **GDPR Compliant**: No personal data collection or processing
|
|
141
|
+
- **CCPA Compliant**: No sale or sharing of personal information
|
|
142
|
+
- **COPPA Compliant**: No data collection from children under 13
|
|
143
|
+
|
|
144
|
+
### Industry Standards
|
|
145
|
+
- **Chrome Web Store Policies**: Full compliance with Chrome extension policies
|
|
146
|
+
- **OAuth 2.0**: Secure authentication standards for API access
|
|
147
|
+
- **REST API Security**: Following best practices for API integration
|
|
148
|
+
|
|
149
|
+
## Contact Information
|
|
150
|
+
|
|
151
|
+
### For Privacy Questions
|
|
152
|
+
- **Email**: Not applicable (we don't collect data to have privacy questions about)
|
|
153
|
+
- **GitHub Issues**: [Report privacy concerns](https://github.com/rashidazarang/airtable-clipper/issues)
|
|
154
|
+
- **Documentation**: [Full documentation](https://github.com/rashidazarang/airtable-clipper)
|
|
155
|
+
|
|
156
|
+
### For Technical Support
|
|
157
|
+
- **GitHub Discussions**: [Get help from the community](https://github.com/rashidazarang/airtable-clipper/discussions)
|
|
158
|
+
- **Bug Reports**: [Report technical issues](https://github.com/rashidazarang/airtable-clipper/issues)
|
|
159
|
+
|
|
160
|
+
## Transparency Report
|
|
161
|
+
|
|
162
|
+
### Open Source
|
|
163
|
+
- **Full Source Code**: Available on [GitHub](https://github.com/rashidazarang/airtable-clipper)
|
|
164
|
+
- **No Hidden Functions**: All code is publicly auditable
|
|
165
|
+
- **Community Contributions**: Open to community review and contributions
|
|
166
|
+
|
|
167
|
+
### No Analytics
|
|
168
|
+
- **No Google Analytics**: We don't use any analytics services
|
|
169
|
+
- **No Crash Reporting**: We don't collect crash reports or error logs
|
|
170
|
+
- **No Usage Tracking**: We don't track how you use the extension
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Summary
|
|
175
|
+
|
|
176
|
+
**Airtable Clipper is designed with privacy as a core principle:**
|
|
177
|
+
|
|
178
|
+
✅ **Local Processing**: Everything happens in your browser
|
|
179
|
+
✅ **Direct Integration**: Your data goes straight to your Airtable
|
|
180
|
+
✅ **No Data Collection**: We don't collect, store, or analyze your data
|
|
181
|
+
✅ **Your Control**: You own and control all your data
|
|
182
|
+
✅ **Open Source**: Full transparency with public source code
|
|
183
|
+
✅ **Minimal Permissions**: Only what's necessary for functionality
|
|
184
|
+
|
|
185
|
+
If you have any questions about this privacy policy or our data practices, please don't hesitate to reach out through our GitHub repository.
|
|
186
|
+
|
|
187
|
+
**Your privacy is our priority.**
|