@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.
- package/package.json +10 -1
- package/.github/ISSUE_TEMPLATE/bug-report.yml +0 -173
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
- package/.github/ISSUE_TEMPLATE/custom.md +0 -10
- package/.github/ISSUE_TEMPLATE/feature-request.yml +0 -209
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/ISSUE_TEMPLATE/security-report.yml +0 -216
- package/.github/pull_request_template.md +0 -245
- package/.github/workflows/ci-cd.yml +0 -408
- package/.github/workflows/security-audit.yml +0 -316
- package/API_DOCUMENTATION.md +0 -897
- package/CAPABILITY_REPORT.md +0 -118
- package/CLAUDE_INTEGRATION.md +0 -96
- package/CODE_OF_CONDUCT.md +0 -181
- package/CONTRIBUTING.md +0 -81
- package/DEVELOPMENT.md +0 -190
- package/Dockerfile +0 -39
- package/Dockerfile.node +0 -20
- package/Dockerfile.production +0 -127
- package/IMPROVEMENT_PROPOSAL.md +0 -371
- package/INSTALLATION.md +0 -183
- package/ISSUE_RESPONSES.md +0 -171
- package/MCP_REVIEW_SUMMARY.md +0 -142
- package/QUICK_START.md +0 -60
- package/RELEASE_NOTES_v1.2.0.md +0 -50
- package/RELEASE_NOTES_v1.2.1.md +0 -40
- package/RELEASE_NOTES_v1.2.2.md +0 -48
- package/RELEASE_NOTES_v1.2.3.md +0 -105
- package/RELEASE_NOTES_v1.2.4.md +0 -60
- package/RELEASE_NOTES_v1.4.0.md +0 -104
- package/RELEASE_NOTES_v1.5.0.md +0 -185
- package/RELEASE_NOTES_v1.6.0.md +0 -248
- package/SECURITY_NOTICE.md +0 -40
- package/airtable-clipper/CHANGELOG.md +0 -198
- package/airtable-clipper/CHROME_STORE_SUBMISSION.md +0 -343
- package/airtable-clipper/LAUNCH_STRATEGY.md +0 -495
- package/airtable-clipper/LICENSE +0 -21
- package/airtable-clipper/OAUTH_SETUP.md +0 -51
- package/airtable-clipper/PRIVACY_POLICY.md +0 -187
- package/airtable-clipper/README.md +0 -575
- package/airtable-clipper/SUBMIT_TO_CHROME_STORE.md +0 -273
- package/airtable-clipper/build.sh +0 -85
- package/airtable-clipper/docs/QUICK_START.md +0 -99
- package/airtable-clipper/docs/SETUP.md +0 -291
- package/airtable-clipper/extension/background.js +0 -337
- package/airtable-clipper/extension/base-setup.html +0 -324
- package/airtable-clipper/extension/base-setup.js +0 -471
- package/airtable-clipper/extension/content.js +0 -771
- package/airtable-clipper/extension/icons/README.md +0 -69
- package/airtable-clipper/extension/icons/icon-16.png +0 -3
- package/airtable-clipper/extension/manifest.json +0 -73
- package/airtable-clipper/extension/popup.html +0 -144
- package/airtable-clipper/extension/popup.js +0 -475
- package/airtable-clipper/extension/styles/content.css +0 -229
- package/airtable-clipper/extension/styles/popup.css +0 -477
- package/airtable-clipper/privacy-policy.md +0 -63
- package/airtable-clipper/releases/v1.0.0/background.js +0 -337
- package/airtable-clipper/releases/v1.0.0/base-setup.html +0 -324
- package/airtable-clipper/releases/v1.0.0/base-setup.js +0 -471
- package/airtable-clipper/releases/v1.0.0/content.js +0 -771
- package/airtable-clipper/releases/v1.0.0/icons/README.md +0 -69
- package/airtable-clipper/releases/v1.0.0/icons/icon-128.png +0 -2
- package/airtable-clipper/releases/v1.0.0/icons/icon-16.png +0 -3
- package/airtable-clipper/releases/v1.0.0/icons/icon-32.png +0 -2
- package/airtable-clipper/releases/v1.0.0/icons/icon-48.png +0 -2
- package/airtable-clipper/releases/v1.0.0/manifest.json +0 -73
- package/airtable-clipper/releases/v1.0.0/popup.html +0 -144
- package/airtable-clipper/releases/v1.0.0/popup.js +0 -475
- package/airtable-clipper/releases/v1.0.0/sidepanel.html +0 -25
- package/airtable-clipper/releases/v1.0.0/styles/content.css +0 -229
- package/airtable-clipper/releases/v1.0.0/styles/popup.css +0 -477
- package/airtable-clipper/releases/v1.0.1/background.js +0 -337
- package/airtable-clipper/releases/v1.0.1/base-setup.html +0 -324
- package/airtable-clipper/releases/v1.0.1/base-setup.js +0 -471
- package/airtable-clipper/releases/v1.0.1/content.js +0 -771
- package/airtable-clipper/releases/v1.0.1/icons/README.md +0 -69
- package/airtable-clipper/releases/v1.0.1/icons/icon-128.png +0 -2
- package/airtable-clipper/releases/v1.0.1/icons/icon-16.png +0 -3
- package/airtable-clipper/releases/v1.0.1/icons/icon-32.png +0 -2
- package/airtable-clipper/releases/v1.0.1/icons/icon-48.png +0 -2
- package/airtable-clipper/releases/v1.0.1/manifest.json +0 -70
- package/airtable-clipper/releases/v1.0.1/popup.html +0 -157
- package/airtable-clipper/releases/v1.0.1/popup.js +0 -562
- package/airtable-clipper/releases/v1.0.1/sidepanel.html +0 -25
- package/airtable-clipper/releases/v1.0.1/styles/content.css +0 -229
- package/airtable-clipper/releases/v1.0.1/styles/popup.css +0 -647
- package/airtable-clipper/releases/v1.0.2/background.js +0 -337
- package/airtable-clipper/releases/v1.0.2/base-setup.html +0 -324
- package/airtable-clipper/releases/v1.0.2/base-setup.js +0 -471
- package/airtable-clipper/releases/v1.0.2/content.js +0 -771
- package/airtable-clipper/releases/v1.0.2/icons/README.md +0 -69
- package/airtable-clipper/releases/v1.0.2/icons/icon-128.png +0 -2
- package/airtable-clipper/releases/v1.0.2/icons/icon-16.png +0 -3
- package/airtable-clipper/releases/v1.0.2/icons/icon-32.png +0 -2
- package/airtable-clipper/releases/v1.0.2/icons/icon-48.png +0 -2
- package/airtable-clipper/releases/v1.0.2/manifest.json +0 -62
- package/airtable-clipper/releases/v1.0.2/popup.html +0 -157
- package/airtable-clipper/releases/v1.0.2/popup.js +0 -567
- package/airtable-clipper/releases/v1.0.2/sidepanel.html +0 -25
- package/airtable-clipper/releases/v1.0.2/styles/content.css +0 -229
- package/airtable-clipper/releases/v1.0.2/styles/popup.css +0 -647
- package/airtable-clipper/terms-of-service.md +0 -124
- package/airtable-clipper/test-credentials.md +0 -61
- package/airtable-clipper/test-extension/background.js +0 -337
- package/airtable-clipper/test-extension/base-setup.html +0 -324
- package/airtable-clipper/test-extension/base-setup.js +0 -471
- package/airtable-clipper/test-extension/content.js +0 -873
- package/airtable-clipper/test-extension/icons/README.md +0 -69
- package/airtable-clipper/test-extension/icons/icon-128.png +0 -2
- package/airtable-clipper/test-extension/icons/icon-16.png +0 -3
- package/airtable-clipper/test-extension/icons/icon-32.png +0 -2
- package/airtable-clipper/test-extension/icons/icon-48.png +0 -2
- package/airtable-clipper/test-extension/manifest.json +0 -72
- package/airtable-clipper/test-extension/popup.html +0 -274
- package/airtable-clipper/test-extension/popup.js +0 -729
- package/airtable-clipper/test-extension/sidepanel.html +0 -25
- package/airtable-clipper/test-extension/styles/content.css +0 -229
- package/airtable-clipper/test-extension/styles/popup.css +0 -794
- package/airtable_mcp/__init__.py +0 -5
- package/airtable_mcp/src/server.py +0 -329
- package/airtable_mcp_v2.js +0 -1505
- package/airtable_mcp_v2_oauth.js +0 -1048
- package/airtable_mcp_v3_advanced.js +0 -1161
- package/cleanup.sh +0 -71
- package/docker-compose.production.yml +0 -366
- package/helm/airtable-mcp/Chart.yaml +0 -122
- package/helm/airtable-mcp/values.yaml +0 -538
- package/index.js +0 -179
- package/inspector.py +0 -148
- package/inspector_server.py +0 -337
- package/k8s/deployment.yaml +0 -402
- package/k8s/namespace.yaml +0 -108
- package/k8s/service.yaml +0 -194
- package/monitoring/alerts.yml +0 -289
- package/monitoring/prometheus.yml +0 -224
- package/publish-steps.txt +0 -27
- package/quick_test.sh +0 -30
- package/requirements.txt +0 -10
- package/setup.py +0 -29
- package/simple_airtable_server.py +0 -151
- package/smithery.yaml +0 -45
- package/test_all_features.sh +0 -146
- package/test_all_operations.sh +0 -120
- package/test_client.py +0 -70
- package/test_enhanced_features.js +0 -389
- package/test_mcp_comprehensive.js +0 -163
- package/test_mock_server.js +0 -180
- package/test_v1.4.0_final.sh +0 -131
- package/test_v1.5.0_comprehensive.sh +0 -96
- package/test_v1.5.0_final.sh +0 -224
- package/test_v1.6.0_comprehensive.sh +0 -187
- package/test_webhooks.sh +0 -105
package/ISSUE_RESPONSES.md
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
# GitHub Issue Responses
|
|
2
|
-
|
|
3
|
-
## Issue #7: Personal Access Token Leakage
|
|
4
|
-
|
|
5
|
-
Thank you for responsibly disclosing this security vulnerability. This has been fixed in v1.2.4.
|
|
6
|
-
|
|
7
|
-
### Actions Taken:
|
|
8
|
-
โ
Removed all hardcoded tokens from test files
|
|
9
|
-
โ
Updated code to require environment variables for credentials
|
|
10
|
-
โ
Added SECURITY_NOTICE.md with rotation instructions
|
|
11
|
-
โ
The exposed tokens have been invalidated
|
|
12
|
-
|
|
13
|
-
### Changes Made:
|
|
14
|
-
- `test_client.py` - Now uses environment variables
|
|
15
|
-
- `test_mcp_comprehensive.js` - Now uses environment variables
|
|
16
|
-
- Added `.env.example` file for secure configuration
|
|
17
|
-
- Updated documentation with security best practices
|
|
18
|
-
|
|
19
|
-
All users should update to v1.2.4 immediately. The exposed tokens are no longer valid, and users must use their own Airtable credentials.
|
|
20
|
-
|
|
21
|
-
Thank you for helping improve the security of this project!
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Issue #6: [Server Bug] @rashidazarang/airtable-mcp
|
|
26
|
-
|
|
27
|
-
This issue has been resolved in v1.2.4!
|
|
28
|
-
|
|
29
|
-
### Root Cause:
|
|
30
|
-
The Smithery configuration was using the Python implementation which had compatibility issues with MCP 1.4.1.
|
|
31
|
-
|
|
32
|
-
### Solution:
|
|
33
|
-
- Updated `smithery.yaml` to use the stable JavaScript implementation (`airtable_simple.js`)
|
|
34
|
-
- Fixed authentication flow to properly handle credentials
|
|
35
|
-
- Added proper environment variable support
|
|
36
|
-
|
|
37
|
-
### To fix:
|
|
38
|
-
1. Update to v1.2.4: `npm install @rashidazarang/airtable-mcp@latest`
|
|
39
|
-
2. Reconfigure with your credentials as shown in the updated README
|
|
40
|
-
3. Restart Claude Desktop
|
|
41
|
-
|
|
42
|
-
The server should now connect properly without the "API key is required" error.
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Issue #5: When Using Smithy, throwing 'Streamable HTTP error: Error POSTing to endpoint (HTTP 400): null'
|
|
47
|
-
|
|
48
|
-
Fixed in v1.2.4! This was the same root cause as Issue #6.
|
|
49
|
-
|
|
50
|
-
### What was wrong:
|
|
51
|
-
- The Python server had MCP compatibility issues
|
|
52
|
-
- Authentication wasn't being handled correctly
|
|
53
|
-
- The Smithery configuration was misconfigured
|
|
54
|
-
|
|
55
|
-
### What we fixed:
|
|
56
|
-
- Switched to the JavaScript implementation
|
|
57
|
-
- Updated smithery.yaml with proper configuration
|
|
58
|
-
- Fixed credential passing through Smithery
|
|
59
|
-
|
|
60
|
-
### How to resolve:
|
|
61
|
-
```bash
|
|
62
|
-
# Update to latest version
|
|
63
|
-
npm install -g @rashidazarang/airtable-mcp@latest
|
|
64
|
-
|
|
65
|
-
# Or if using Smithery directly:
|
|
66
|
-
npx @smithery/cli install @rashidazarang/airtable-mcp --update
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Then reconfigure with your Airtable credentials. The HTTP 400 errors should be resolved.
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
## Issue #4: Glama listing is missing Dockerfile
|
|
74
|
-
|
|
75
|
-
Fixed in v1.2.4!
|
|
76
|
-
|
|
77
|
-
### Changes:
|
|
78
|
-
- Created `Dockerfile.node` specifically for Node.js deployment
|
|
79
|
-
- Updated `smithery.yaml` to reference the correct Dockerfile
|
|
80
|
-
- The original Dockerfile is retained for backward compatibility
|
|
81
|
-
|
|
82
|
-
The Dockerfile is now included and properly configured for cloud deployments.
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
# GitHub Release Text for v1.2.4
|
|
87
|
-
|
|
88
|
-
## ๐จ Critical Security Release - v1.2.4
|
|
89
|
-
|
|
90
|
-
### โ ๏ธ IMPORTANT SECURITY FIX
|
|
91
|
-
|
|
92
|
-
This release addresses a **critical security vulnerability** where API tokens were hardcoded in test files. All users should update immediately.
|
|
93
|
-
|
|
94
|
-
### ๐ Security Fixes
|
|
95
|
-
- **Removed hardcoded API tokens** from all test files (fixes #7)
|
|
96
|
-
- Test files now require environment variables for credentials
|
|
97
|
-
- Added comprehensive security documentation
|
|
98
|
-
- Previously exposed tokens have been invalidated
|
|
99
|
-
|
|
100
|
-
### ๐ Bug Fixes
|
|
101
|
-
- **Fixed Smithery deployment issues** (fixes #5, #6)
|
|
102
|
-
- Resolved HTTP 400 errors when connecting through Smithery
|
|
103
|
-
- Fixed "API key is required for remote connections" error
|
|
104
|
-
- Switched to stable JavaScript implementation for cloud deployments
|
|
105
|
-
- **Added missing Dockerfile** for Glama listing (fixes #4)
|
|
106
|
-
|
|
107
|
-
### โจ Improvements
|
|
108
|
-
- Added environment variable support for secure credential management
|
|
109
|
-
- Improved logging with configurable levels (ERROR, WARN, INFO, DEBUG)
|
|
110
|
-
- Enhanced error messages for better debugging
|
|
111
|
-
- Updated documentation with clear setup instructions
|
|
112
|
-
|
|
113
|
-
### ๐ฆ What's Changed
|
|
114
|
-
- `test_client.py` - Now uses environment variables
|
|
115
|
-
- `test_mcp_comprehensive.js` - Now uses environment variables
|
|
116
|
-
- `airtable_simple.js` - Added env variable and logging support
|
|
117
|
-
- `smithery.yaml` - Fixed to use JavaScript implementation
|
|
118
|
-
- `Dockerfile.node` - New optimized Docker image for Node.js
|
|
119
|
-
- `SECURITY_NOTICE.md` - Important security information
|
|
120
|
-
- `README.md` - Complete rewrite with better instructions
|
|
121
|
-
|
|
122
|
-
### ๐ Breaking Changes
|
|
123
|
-
Test files now require environment variables:
|
|
124
|
-
```bash
|
|
125
|
-
export AIRTABLE_TOKEN="your_token"
|
|
126
|
-
export AIRTABLE_BASE_ID="your_base_id"
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### ๐ Migration Instructions
|
|
130
|
-
|
|
131
|
-
1. **Update to v1.2.4:**
|
|
132
|
-
```bash
|
|
133
|
-
npm install -g @rashidazarang/airtable-mcp@latest
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
2. **Set up environment variables:**
|
|
137
|
-
```bash
|
|
138
|
-
export AIRTABLE_TOKEN="your_personal_token"
|
|
139
|
-
export AIRTABLE_BASE_ID="your_base_id"
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
3. **Update your MCP configuration** (see README for details)
|
|
143
|
-
|
|
144
|
-
4. **Restart your MCP client**
|
|
145
|
-
|
|
146
|
-
### ๐ Acknowledgments
|
|
147
|
-
Special thanks to @BXXC-SDXZ for responsibly disclosing the security vulnerability, and to @ricklesgibson and @punkpeye for reporting the deployment issues.
|
|
148
|
-
|
|
149
|
-
### โ ๏ธ Security Note
|
|
150
|
-
If you were using the previously exposed tokens, they have been revoked. You must use your own Airtable credentials going forward.
|
|
151
|
-
|
|
152
|
-
**Full Changelog**: https://github.com/rashidazarang/airtable-mcp/compare/v1.2.3...v1.2.4
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## NPM Publish Commands
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
# Make sure you're logged in to npm
|
|
160
|
-
npm login
|
|
161
|
-
|
|
162
|
-
# Update version (already done in package.json)
|
|
163
|
-
npm version 1.2.4
|
|
164
|
-
|
|
165
|
-
# Publish to npm
|
|
166
|
-
npm publish --access public
|
|
167
|
-
|
|
168
|
-
# Create git tag
|
|
169
|
-
git tag -a v1.2.4 -m "Critical security fix and Smithery deployment fixes"
|
|
170
|
-
git push origin v1.2.4
|
|
171
|
-
```
|
package/MCP_REVIEW_SUMMARY.md
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
# Airtable MCP Review Summary
|
|
2
|
-
|
|
3
|
-
## ๐ฏ Overall Assessment: **WORKING โ
**
|
|
4
|
-
|
|
5
|
-
The Airtable MCP is **fully functional** and ready for use. All core functionality has been tested and verified.
|
|
6
|
-
|
|
7
|
-
## ๐ Test Results
|
|
8
|
-
|
|
9
|
-
### โ
**What's Working**
|
|
10
|
-
|
|
11
|
-
1. **MCP Server Implementation**
|
|
12
|
-
- Simple JavaScript server (`airtable_simple.js`) is fully operational
|
|
13
|
-
- Running on port 8010 with proper HTTP/JSON-RPC protocol
|
|
14
|
-
- Correctly handles all MCP method calls
|
|
15
|
-
|
|
16
|
-
2. **Airtable API Integration**
|
|
17
|
-
- Successfully connects to Airtable API using Personal Access Token
|
|
18
|
-
- Can access multiple bases (103 bases available with test token)
|
|
19
|
-
- Target base "ayudalocal.mex" (ID: appi7fWMQcB3BNzPs) is accessible
|
|
20
|
-
- Contains 11 tables with various field types
|
|
21
|
-
|
|
22
|
-
3. **MCP Tools Functionality**
|
|
23
|
-
- โ
`list_tables` - Lists all tables in the base
|
|
24
|
-
- โ
`list_records` - Retrieves records from any table
|
|
25
|
-
- โ
`resources/list` - Returns available MCP resources
|
|
26
|
-
- โ
`prompts/list` - Returns available MCP prompts
|
|
27
|
-
|
|
28
|
-
4. **Data Access**
|
|
29
|
-
- Successfully retrieved records from multiple tables:
|
|
30
|
-
- **requests** table (service requests)
|
|
31
|
-
- **providers** table (service providers)
|
|
32
|
-
- **categories** table (service categories)
|
|
33
|
-
- **coverage_areas** table
|
|
34
|
-
- **services** table
|
|
35
|
-
- And 6 other tables
|
|
36
|
-
|
|
37
|
-
5. **JSON-RPC Protocol**
|
|
38
|
-
- Properly implements JSON-RPC 2.0 specification
|
|
39
|
-
- Correct error handling and response formatting
|
|
40
|
-
- Valid JSON responses for all requests
|
|
41
|
-
|
|
42
|
-
### โ ๏ธ **Issues Found & Fixed**
|
|
43
|
-
|
|
44
|
-
1. **Python MCP Server Compatibility**
|
|
45
|
-
- **Issue**: `app.rpc_method` not available in MCP version 1.4.1
|
|
46
|
-
- **Fix**: Removed incompatible rpc_method calls from `inspector_server.py`
|
|
47
|
-
- **Status**: Fixed and ready for use
|
|
48
|
-
|
|
49
|
-
2. **Main Entry Point**
|
|
50
|
-
- **Issue**: Node.js `index.js` had dependency on Python server with compatibility issues
|
|
51
|
-
- **Status**: Simple JavaScript server works perfectly as alternative
|
|
52
|
-
|
|
53
|
-
## ๐งช **Comprehensive Testing Performed**
|
|
54
|
-
|
|
55
|
-
### Test Coverage
|
|
56
|
-
- โ
MCP server startup and initialization
|
|
57
|
-
- โ
Airtable API authentication and connection
|
|
58
|
-
- โ
Base listing and access verification
|
|
59
|
-
- โ
Table listing and schema inspection
|
|
60
|
-
- โ
Record retrieval from multiple tables
|
|
61
|
-
- โ
JSON-RPC protocol compliance
|
|
62
|
-
- โ
Error handling and response formatting
|
|
63
|
-
- โ
HTTP server functionality
|
|
64
|
-
- โ
CORS handling for web clients
|
|
65
|
-
|
|
66
|
-
### Test Data Verified
|
|
67
|
-
- **Base**: ayudalocal.mex (ID: appi7fWMQcB3BNzPs)
|
|
68
|
-
- **Tables**: 11 tables with complex schemas
|
|
69
|
-
- **Records**: Successfully retrieved from requests, providers, categories tables
|
|
70
|
-
- **Fields**: Various field types including text, dates, numbers, attachments, links
|
|
71
|
-
|
|
72
|
-
## ๐ **Ready for Production Use**
|
|
73
|
-
|
|
74
|
-
### Recommended Setup
|
|
75
|
-
```bash
|
|
76
|
-
# Start the MCP server
|
|
77
|
-
node airtable_simple.js --token YOUR_AIRTABLE_TOKEN --base YOUR_BASE_ID
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Configuration for Claude Desktop
|
|
81
|
-
```json
|
|
82
|
-
{
|
|
83
|
-
"mcpServers": {
|
|
84
|
-
"airtable-mcp": {
|
|
85
|
-
"command": "node",
|
|
86
|
-
"args": [
|
|
87
|
-
"/path/to/airtable-mcp-main/airtable_simple.js",
|
|
88
|
-
"--token",
|
|
89
|
-
"YOUR_AIRTABLE_TOKEN",
|
|
90
|
-
"--base",
|
|
91
|
-
"YOUR_BASE_ID"
|
|
92
|
-
]
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## ๐ **Performance Metrics**
|
|
99
|
-
|
|
100
|
-
- **Response Time**: < 500ms for most operations
|
|
101
|
-
- **Reliability**: 100% success rate in testing
|
|
102
|
-
- **Data Accuracy**: All retrieved data matches Airtable base
|
|
103
|
-
- **Error Handling**: Proper error messages and status codes
|
|
104
|
-
|
|
105
|
-
## ๐ง **Technical Architecture**
|
|
106
|
-
|
|
107
|
-
### Working Components
|
|
108
|
-
1. **Simple JavaScript Server** (`airtable_simple.js`)
|
|
109
|
-
- HTTP server on port 8010
|
|
110
|
-
- JSON-RPC 2.0 implementation
|
|
111
|
-
- Direct Airtable API integration
|
|
112
|
-
- CORS support for web clients
|
|
113
|
-
|
|
114
|
-
2. **Airtable API Integration**
|
|
115
|
-
- Personal Access Token authentication
|
|
116
|
-
- RESTful API calls to Airtable
|
|
117
|
-
- Proper error handling and retry logic
|
|
118
|
-
|
|
119
|
-
3. **MCP Protocol Implementation**
|
|
120
|
-
- Standard MCP tool definitions
|
|
121
|
-
- Proper JSON-RPC request/response handling
|
|
122
|
-
- Resource and prompt listing support
|
|
123
|
-
|
|
124
|
-
## ๐ **Conclusion**
|
|
125
|
-
|
|
126
|
-
The Airtable MCP is **fully functional and production-ready**. The simple JavaScript implementation provides all necessary functionality for connecting AI tools to Airtable databases. The MCP successfully:
|
|
127
|
-
|
|
128
|
-
- Connects to Airtable API
|
|
129
|
-
- Lists and accesses bases and tables
|
|
130
|
-
- Retrieves and displays records
|
|
131
|
-
- Implements proper MCP protocol
|
|
132
|
-
- Handles errors gracefully
|
|
133
|
-
|
|
134
|
-
**Recommendation**: Use the `airtable_simple.js` server for production deployments as it's stable, well-tested, and provides all required functionality.
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
*Review completed on: January 15, 2025*
|
|
139
|
-
*Test environment: macOS, Node.js v23.9.0, Python 3.10.16*
|
|
140
|
-
*MCP version tested: 1.4.1*
|
|
141
|
-
|
|
142
|
-
|
package/QUICK_START.md
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# Quick Start Guide for Claude Users
|
|
2
|
-
|
|
3
|
-
This guide provides simple instructions for getting the Airtable MCP working with Claude.
|
|
4
|
-
|
|
5
|
-
## Step 1: Clone the repository
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
git clone https://github.com/rashidazarang/airtable-mcp.git
|
|
9
|
-
cd airtable-mcp
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
## Step 2: Install dependencies
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
npm install
|
|
16
|
-
pip install mcp
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Step 3: Configure Claude
|
|
20
|
-
|
|
21
|
-
In Claude settings, add a new MCP server with this configuration (adjust paths as needed):
|
|
22
|
-
|
|
23
|
-
```json
|
|
24
|
-
{
|
|
25
|
-
"mcpServers": {
|
|
26
|
-
"airtable": {
|
|
27
|
-
"command": "python3",
|
|
28
|
-
"args": [
|
|
29
|
-
"/path/to/airtable-mcp/inspector_server.py",
|
|
30
|
-
"--token",
|
|
31
|
-
"YOUR_AIRTABLE_TOKEN",
|
|
32
|
-
"--base",
|
|
33
|
-
"YOUR_BASE_ID"
|
|
34
|
-
]
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
Replace:
|
|
41
|
-
- `/path/to/airtable-mcp/` with the actual path where you cloned the repository
|
|
42
|
-
- `YOUR_AIRTABLE_TOKEN` with your Airtable Personal Access Token
|
|
43
|
-
- `YOUR_BASE_ID` with your Airtable Base ID
|
|
44
|
-
|
|
45
|
-
## Step 4: Restart Claude
|
|
46
|
-
|
|
47
|
-
After configuring, restart Claude and try these commands:
|
|
48
|
-
|
|
49
|
-
1. "List the tables in my Airtable base"
|
|
50
|
-
2. "Show me records from [table name]"
|
|
51
|
-
|
|
52
|
-
## Troubleshooting
|
|
53
|
-
|
|
54
|
-
If you encounter issues:
|
|
55
|
-
|
|
56
|
-
1. Check the Claude logs (click on the error message)
|
|
57
|
-
2. Verify your Airtable token and base ID are correct
|
|
58
|
-
3. Make sure you've specified the correct path to `inspector_server.py`
|
|
59
|
-
|
|
60
|
-
This version includes enhanced error handling to properly format JSON responses and avoid "Method not found" errors in Claude.
|
package/RELEASE_NOTES_v1.2.0.md
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# Release v1.2.0: Claude & Windsurf Compatibility
|
|
2
|
-
|
|
3
|
-
This release addresses compatibility issues with Claude Desktop and Windsurf, while also improving the overall stability of the MCP.
|
|
4
|
-
|
|
5
|
-
## Key Improvements
|
|
6
|
-
|
|
7
|
-
### ๐ง Major Fixes
|
|
8
|
-
|
|
9
|
-
1. **AbortController Compatibility**: Added polyfill for Node.js versions < 15.0.0
|
|
10
|
-
- Fixes `ReferenceError: AbortController is not defined` errors
|
|
11
|
-
- Automatically detects and applies the polyfill when needed
|
|
12
|
-
|
|
13
|
-
2. **Enhanced JSON Parsing**: Robust handling of malformed JSON configurations
|
|
14
|
-
- Fixes `Unexpected token 'F', "Found & ig"... is not valid JSON` errors
|
|
15
|
-
- Adds multiple sanitization steps for JSON in both JavaScript and Python
|
|
16
|
-
- Supports backslash-escaped and double-quoted strings
|
|
17
|
-
|
|
18
|
-
3. **Improved Configuration Options**: Alternative ways to configure the MCP
|
|
19
|
-
- Added support for direct token and base ID parameters (no JSON required)
|
|
20
|
-
- Created reference configuration files for different platforms
|
|
21
|
-
|
|
22
|
-
### ๐ New Features
|
|
23
|
-
|
|
24
|
-
1. **Claude and Windsurf Examples**: Added configuration templates
|
|
25
|
-
- `examples/claude_config.json`: Sample configuration for Claude
|
|
26
|
-
- `examples/windsurf_mcp_config.json`: Reference config for Windsurf
|
|
27
|
-
|
|
28
|
-
2. **Comprehensive Documentation**:
|
|
29
|
-
- Updated `CLAUDE_INTEGRATION.md` with detailed setup guides
|
|
30
|
-
- Added troubleshooting steps for common issues
|
|
31
|
-
|
|
32
|
-
## Installation
|
|
33
|
-
|
|
34
|
-
### NPM
|
|
35
|
-
```
|
|
36
|
-
npm install -g @rashidazarang/airtable-mcp
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Direct Download
|
|
40
|
-
Download the tarball package: `rashidazarang-airtable-mcp-1.2.0.tgz`
|
|
41
|
-
|
|
42
|
-
## Upgrading from v1.1.0
|
|
43
|
-
|
|
44
|
-
If you're upgrading from v1.1.0, you can simply install the new version:
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
npm update -g @rashidazarang/airtable-mcp
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
For Claude and Windsurf users, we recommend following the updated configuration instructions in `CLAUDE_INTEGRATION.md`.
|
package/RELEASE_NOTES_v1.2.1.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Release v1.2.1: Enhanced Claude Integration
|
|
2
|
-
|
|
3
|
-
This release adds specific improvements for Claude users, focusing on eliminating error messages and providing a smoother experience when using the MCP with Claude Desktop and other Claude integrations.
|
|
4
|
-
|
|
5
|
-
## Key Improvements
|
|
6
|
-
|
|
7
|
-
### ๐ Claude-specific Methods
|
|
8
|
-
|
|
9
|
-
1. **Added support for Claude-specific RPC methods**:
|
|
10
|
-
- Implemented `resources/list` method
|
|
11
|
-
- Implemented `prompts/list` method
|
|
12
|
-
|
|
13
|
-
2. **User Experience Enhancements**:
|
|
14
|
-
- Eliminated "Method not found" errors in logs
|
|
15
|
-
- Improved compatibility with Claude's native UI components
|
|
16
|
-
- Added suggested prompts for common Airtable operations
|
|
17
|
-
|
|
18
|
-
## Installation
|
|
19
|
-
|
|
20
|
-
### NPM
|
|
21
|
-
```
|
|
22
|
-
npm install -g @rashidazarang/airtable-mcp@1.2.1
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### Direct Download
|
|
26
|
-
Download the tarball package: `rashidazarang-airtable-mcp-1.2.1.tgz`
|
|
27
|
-
|
|
28
|
-
## Upgrading from Previous Versions
|
|
29
|
-
|
|
30
|
-
If you're upgrading from v1.2.0 or earlier, you can simply install the new version:
|
|
31
|
-
|
|
32
|
-
```
|
|
33
|
-
npm update -g @rashidazarang/airtable-mcp
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
For Claude users, this update is especially recommended as it will eliminate error messages and provide a more seamless integration experience.
|
|
37
|
-
|
|
38
|
-
## Configuration
|
|
39
|
-
|
|
40
|
-
No configuration changes are needed to benefit from these improvements. The Claude-specific methods are automatically available when using Claude with this MCP version.
|
package/RELEASE_NOTES_v1.2.2.md
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# Release Notes - v1.2.2
|
|
2
|
-
|
|
3
|
-
## Major Improvements
|
|
4
|
-
|
|
5
|
-
### Documentation & Setup
|
|
6
|
-
- Completely revamped documentation with focus on Claude Desktop integration
|
|
7
|
-
- Added clear step-by-step installation guide
|
|
8
|
-
- Simplified configuration process with working JSON examples
|
|
9
|
-
- Added detailed troubleshooting section
|
|
10
|
-
|
|
11
|
-
### Configuration
|
|
12
|
-
- Removed complex JSON configuration in favor of simpler format
|
|
13
|
-
- Fixed JSON parsing issues with Claude Desktop
|
|
14
|
-
- Updated configuration file path for Claude Desktop
|
|
15
|
-
- Removed unnecessary escape characters in configuration
|
|
16
|
-
|
|
17
|
-
### Integration
|
|
18
|
-
- Improved Claude Desktop compatibility
|
|
19
|
-
- Added 30-second connection establishment guidance
|
|
20
|
-
- Added verification steps with example commands
|
|
21
|
-
- Enhanced error handling and logging guidance
|
|
22
|
-
|
|
23
|
-
## Technical Updates
|
|
24
|
-
- Updated dependencies to latest versions
|
|
25
|
-
- Added @smithery/cli as direct dependency
|
|
26
|
-
- Updated Airtable SDK to v0.12.2
|
|
27
|
-
- Improved Node.js version compatibility
|
|
28
|
-
|
|
29
|
-
## Bug Fixes
|
|
30
|
-
- Fixed JSON parsing errors in Claude Desktop
|
|
31
|
-
- Resolved connection timeout issues
|
|
32
|
-
- Fixed configuration file path issues
|
|
33
|
-
- Improved error messaging
|
|
34
|
-
|
|
35
|
-
## Breaking Changes
|
|
36
|
-
- Configuration format has changed to use direct parameters instead of JSON config string
|
|
37
|
-
- Removed support for complex JSON configurations
|
|
38
|
-
- Changed default configuration file location for Claude Desktop
|
|
39
|
-
|
|
40
|
-
## Migration Guide
|
|
41
|
-
If upgrading from v1.2.1 or earlier:
|
|
42
|
-
1. Update your configuration file to use the new format
|
|
43
|
-
2. Remove any escape characters from your token
|
|
44
|
-
3. Restart Claude Desktop after changes
|
|
45
|
-
4. Wait 30 seconds for connection to establish
|
|
46
|
-
|
|
47
|
-
## Contributors
|
|
48
|
-
- @rashidazarang
|
package/RELEASE_NOTES_v1.2.3.md
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
# Release Notes v1.2.3
|
|
2
|
-
|
|
3
|
-
## ๐ **Major Improvements**
|
|
4
|
-
|
|
5
|
-
### โ
**Fixed Critical Issues**
|
|
6
|
-
- **Fixed main entry point**: Updated `package.json` to use `airtable_simple.js` as the main entry point
|
|
7
|
-
- **Added proper npm scripts**: Added `test`, `test:quick`, `start:python`, and `dev` scripts
|
|
8
|
-
- **Fixed Python compatibility**: Removed incompatible `app.rpc_method` calls from `inspector_server.py`
|
|
9
|
-
- **Updated documentation**: Completely rewrote README with working configuration examples
|
|
10
|
-
|
|
11
|
-
### ๐ **New Features**
|
|
12
|
-
- **Comprehensive testing suite**: Added `test_mcp_comprehensive.js` for full MCP testing
|
|
13
|
-
- **Quick testing script**: Added `quick_test.sh` for rapid verification
|
|
14
|
-
- **Cleanup utilities**: Added `cleanup.sh` for easy server management
|
|
15
|
-
- **Development guide**: Added `DEVELOPMENT.md` for contributors
|
|
16
|
-
|
|
17
|
-
### ๐ **Documentation Improvements**
|
|
18
|
-
- **Clear architecture overview**: Documented working vs legacy components
|
|
19
|
-
- **Multiple setup options**: Direct usage and Smithery cloud options
|
|
20
|
-
- **Troubleshooting guide**: Common issues and solutions
|
|
21
|
-
- **Testing instructions**: Step-by-step testing procedures
|
|
22
|
-
|
|
23
|
-
### ๐ ๏ธ **Developer Experience**
|
|
24
|
-
- **Better npm scripts**: `npm run test`, `npm run test:quick`, `npm start`
|
|
25
|
-
- **Port management**: Easy port clearing with `lsof -ti:8010 | xargs kill -9`
|
|
26
|
-
- **Error handling**: Improved error messages and debugging
|
|
27
|
-
- **Code organization**: Clear separation of working and legacy code
|
|
28
|
-
|
|
29
|
-
## ๐ง **Technical Changes**
|
|
30
|
-
|
|
31
|
-
### **Package.json Updates**
|
|
32
|
-
```json
|
|
33
|
-
{
|
|
34
|
-
"main": "airtable_simple.js",
|
|
35
|
-
"bin": {
|
|
36
|
-
"airtable-mcp": "./airtable_simple.js"
|
|
37
|
-
},
|
|
38
|
-
"scripts": {
|
|
39
|
-
"start": "node airtable_simple.js",
|
|
40
|
-
"test": "node test_mcp_comprehensive.js",
|
|
41
|
-
"test:quick": "./quick_test.sh"
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### **Recommended Configuration**
|
|
47
|
-
```json
|
|
48
|
-
{
|
|
49
|
-
"mcpServers": {
|
|
50
|
-
"airtable-mcp": {
|
|
51
|
-
"command": "node",
|
|
52
|
-
"args": [
|
|
53
|
-
"/path/to/airtable-mcp-main/airtable_simple.js",
|
|
54
|
-
"--token",
|
|
55
|
-
"YOUR_AIRTABLE_TOKEN",
|
|
56
|
-
"--base",
|
|
57
|
-
"YOUR_BASE_ID"
|
|
58
|
-
]
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## ๐งช **Testing Results**
|
|
65
|
-
- โ
**100% test success rate** on all MCP operations
|
|
66
|
-
- โ
**Airtable API integration** working perfectly
|
|
67
|
-
- โ
**JSON-RPC 2.0 protocol** fully compliant
|
|
68
|
-
- โ
**Error handling** robust and informative
|
|
69
|
-
- โ
**CORS support** for web clients
|
|
70
|
-
|
|
71
|
-
## ๐ **Performance**
|
|
72
|
-
- **Response time**: < 500ms for most operations
|
|
73
|
-
- **Reliability**: 100% success rate in testing
|
|
74
|
-
- **Memory usage**: Minimal footprint
|
|
75
|
-
- **Scalability**: Handles multiple concurrent requests
|
|
76
|
-
|
|
77
|
-
## ๐ฏ **Migration Guide**
|
|
78
|
-
|
|
79
|
-
### **From Previous Versions**
|
|
80
|
-
1. **Update configuration**: Use the new direct Node.js configuration
|
|
81
|
-
2. **Test your setup**: Run `npm run test:quick` to verify
|
|
82
|
-
3. **Update documentation**: Follow the new README instructions
|
|
83
|
-
|
|
84
|
-
### **Breaking Changes**
|
|
85
|
-
- **Main entry point**: Now uses `airtable_simple.js` instead of `index.js`
|
|
86
|
-
- **Python server**: Deprecated due to compatibility issues
|
|
87
|
-
- **Configuration format**: Simplified JSON structure
|
|
88
|
-
|
|
89
|
-
## ๐ **What's Next**
|
|
90
|
-
- Enhanced error reporting
|
|
91
|
-
- Additional Airtable operations (create, update, delete)
|
|
92
|
-
- Better field type handling
|
|
93
|
-
- Performance optimizations
|
|
94
|
-
|
|
95
|
-
## ๐ **Contributors**
|
|
96
|
-
- Rashid Azarang (maintainer)
|
|
97
|
-
- Community testing and feedback
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
**Release Date**: January 15, 2025
|
|
102
|
-
**Compatibility**: Node.js >= 14.0.0, MCP 1.4.1+
|
|
103
|
-
**Status**: Production Ready โ
|
|
104
|
-
|
|
105
|
-
|
package/RELEASE_NOTES_v1.2.4.md
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# Release Notes - v1.2.4
|
|
2
|
-
|
|
3
|
-
## ๐ Security Fix Release
|
|
4
|
-
|
|
5
|
-
### Critical Security Fix
|
|
6
|
-
- **REMOVED hardcoded API tokens from test files** (Addresses Issue #7)
|
|
7
|
-
- `test_client.py` and `test_mcp_comprehensive.js` now require environment variables
|
|
8
|
-
- Added security notice documentation
|
|
9
|
-
- No exposed credentials in the codebase
|
|
10
|
-
|
|
11
|
-
### ๐ Bug Fixes
|
|
12
|
-
|
|
13
|
-
#### Smithery Cloud Deployment Issues (Issues #5 and #6)
|
|
14
|
-
- **Fixed HTTP 400 errors** when using Smithery
|
|
15
|
-
- **Switched to JavaScript implementation** for Smithery deployment
|
|
16
|
-
- Updated `smithery.yaml` to use `airtable_simple.js` instead of problematic Python server
|
|
17
|
-
- Created dedicated `Dockerfile.node` for Node.js deployment
|
|
18
|
-
- Fixed authentication flow for Smithery connections
|
|
19
|
-
|
|
20
|
-
### ๐ Documentation Updates
|
|
21
|
-
- Added `SECURITY_NOTICE.md` with token rotation instructions
|
|
22
|
-
- Created `.env.example` file for secure configuration
|
|
23
|
-
- Updated Dockerfile references for Glama listing (Issue #4)
|
|
24
|
-
|
|
25
|
-
### ๐ง Improvements
|
|
26
|
-
- Added environment variable support with dotenv
|
|
27
|
-
- Improved logging system with configurable levels (ERROR, WARN, INFO, DEBUG)
|
|
28
|
-
- Better error messages for missing credentials
|
|
29
|
-
|
|
30
|
-
### โ ๏ธ Breaking Changes
|
|
31
|
-
- Test files now require environment variables:
|
|
32
|
-
```bash
|
|
33
|
-
export AIRTABLE_TOKEN="your_token"
|
|
34
|
-
export AIRTABLE_BASE_ID="your_base_id"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### ๐ Migration Guide
|
|
38
|
-
|
|
39
|
-
1. **Update your environment variables:**
|
|
40
|
-
```bash
|
|
41
|
-
cp .env.example .env
|
|
42
|
-
# Edit .env with your credentials
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
2. **For Smithery users:**
|
|
46
|
-
- Reinstall the MCP to get the latest configuration
|
|
47
|
-
- The server now properly accepts credentials through Smithery's config
|
|
48
|
-
|
|
49
|
-
3. **For direct users:**
|
|
50
|
-
- Continue using command line arguments or switch to environment variables
|
|
51
|
-
- Both methods are supported
|
|
52
|
-
|
|
53
|
-
### ๐ Notes
|
|
54
|
-
- All previously exposed tokens have been revoked
|
|
55
|
-
- Please use your own Airtable credentials
|
|
56
|
-
- Never commit API tokens to version control
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
**Full Changelog**: [v1.2.3...v1.2.4](https://github.com/rashidazarang/airtable-mcp/compare/v1.2.3...v1.2.4)
|