@rashidazarang/airtable-mcp 1.6.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 (57) hide show
  1. package/README.md +1 -0
  2. package/airtable_simple_production.js +532 -0
  3. package/package.json +15 -6
  4. package/.claude/settings.local.json +0 -12
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
  6. package/.github/ISSUE_TEMPLATE/custom.md +0 -10
  7. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  8. package/CAPABILITY_REPORT.md +0 -118
  9. package/CLAUDE_INTEGRATION.md +0 -96
  10. package/CONTRIBUTING.md +0 -81
  11. package/DEVELOPMENT.md +0 -190
  12. package/Dockerfile +0 -39
  13. package/Dockerfile.node +0 -20
  14. package/IMPROVEMENT_PROPOSAL.md +0 -371
  15. package/INSTALLATION.md +0 -183
  16. package/ISSUE_RESPONSES.md +0 -171
  17. package/MCP_REVIEW_SUMMARY.md +0 -142
  18. package/QUICK_START.md +0 -60
  19. package/RELEASE_NOTES_v1.2.0.md +0 -50
  20. package/RELEASE_NOTES_v1.2.1.md +0 -40
  21. package/RELEASE_NOTES_v1.2.2.md +0 -48
  22. package/RELEASE_NOTES_v1.2.3.md +0 -105
  23. package/RELEASE_NOTES_v1.2.4.md +0 -60
  24. package/RELEASE_NOTES_v1.4.0.md +0 -104
  25. package/RELEASE_NOTES_v1.5.0.md +0 -185
  26. package/RELEASE_NOTES_v1.6.0.md +0 -248
  27. package/SECURITY_NOTICE.md +0 -40
  28. package/airtable-mcp-1.1.0.tgz +0 -0
  29. package/airtable_enhanced.js +0 -499
  30. package/airtable_mcp/__init__.py +0 -5
  31. package/airtable_mcp/src/server.py +0 -329
  32. package/airtable_simple_v1.2.4_backup.js +0 -277
  33. package/airtable_v1.4.0.js +0 -654
  34. package/cleanup.sh +0 -71
  35. package/index.js +0 -179
  36. package/inspector.py +0 -148
  37. package/inspector_server.py +0 -337
  38. package/publish-steps.txt +0 -27
  39. package/quick_test.sh +0 -30
  40. package/rashidazarang-airtable-mcp-1.1.0.tgz +0 -0
  41. package/rashidazarang-airtable-mcp-1.2.0.tgz +0 -0
  42. package/rashidazarang-airtable-mcp-1.2.1.tgz +0 -0
  43. package/requirements.txt +0 -10
  44. package/setup.py +0 -29
  45. package/simple_airtable_server.py +0 -151
  46. package/smithery.yaml +0 -45
  47. package/test_all_features.sh +0 -146
  48. package/test_all_operations.sh +0 -120
  49. package/test_client.py +0 -70
  50. package/test_enhanced_features.js +0 -389
  51. package/test_mcp_comprehensive.js +0 -163
  52. package/test_mock_server.js +0 -180
  53. package/test_v1.4.0_final.sh +0 -131
  54. package/test_v1.5.0_comprehensive.sh +0 -96
  55. package/test_v1.5.0_final.sh +0 -224
  56. package/test_v1.6.0_comprehensive.sh +0 -187
  57. package/test_webhooks.sh +0 -105
@@ -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.
@@ -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`.
@@ -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.
@@ -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
@@ -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
-
@@ -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)
@@ -1,104 +0,0 @@
1
- # Release Notes - v1.4.0
2
-
3
- ## 🚀 Major Feature Release
4
-
5
- ### ✨ New Features
6
-
7
- #### 🪝 **Webhook Management** (5 new tools)
8
- - `list_webhooks` - List all webhooks in your base
9
- - `create_webhook` - Create webhooks for real-time notifications
10
- - `delete_webhook` - Remove webhooks
11
- - `get_webhook_payloads` - Retrieve webhook payload history
12
- - `refresh_webhook` - Extend webhook expiration time
13
-
14
- #### 🔧 **Enhanced CRUD Operations** (5 tools added since v1.2.4)
15
- - `create_record` - Create new records in any table
16
- - `update_record` - Update existing records
17
- - `delete_record` - Remove records from tables
18
- - `get_record` - Retrieve single record by ID
19
- - `search_records` - Advanced filtering with Airtable formulas
20
-
21
- ### 📊 **Complete Tool Set (12 tools total)**
22
- 1. **list_tables** - List all tables in base
23
- 2. **list_records** - List records from table
24
- 3. **get_record** - Get single record by ID
25
- 4. **create_record** - Create new records
26
- 5. **update_record** - Update existing records
27
- 6. **delete_record** - Delete records
28
- 7. **search_records** - Search with filters
29
- 8. **list_webhooks** - List webhooks
30
- 9. **create_webhook** - Create webhooks
31
- 10. **delete_webhook** - Delete webhooks
32
- 11. **get_webhook_payloads** - Get webhook history
33
- 12. **refresh_webhook** - Refresh webhook expiration
34
-
35
- ### 🔐 **Security Improvements**
36
- - Environment variable support for credentials
37
- - Token masking in logs
38
- - Configurable logging levels (ERROR, WARN, INFO, DEBUG)
39
- - No hardcoded credentials in test files
40
-
41
- ### 🛠️ **Technical Improvements**
42
- - Full HTTP method support (GET, POST, PATCH, DELETE)
43
- - Enhanced error handling with detailed messages
44
- - Proper API endpoint routing
45
- - Debug logging support
46
- - Graceful shutdown handling
47
-
48
- ### 📈 **Testing**
49
- - **100% test coverage** - All 12 tools tested and verified
50
- - Tested with real Airtable API
51
- - Comprehensive test suite included
52
- - Test scripts for validation
53
-
54
- ### 💔 **Breaking Changes**
55
- - Test files now require environment variables:
56
- ```bash
57
- export AIRTABLE_TOKEN="your_token"
58
- export AIRTABLE_BASE_ID="your_base_id"
59
- ```
60
-
61
- ### 🔄 **Migration from v1.2.4**
62
-
63
- 1. **Update package**:
64
- ```bash
65
- npm install -g @rashidazarang/airtable-mcp@latest
66
- ```
67
-
68
- 2. **Set credentials** (choose one method):
69
- - Environment variables
70
- - Command line arguments
71
- - .env file
72
-
73
- 3. **Update configuration** if using webhooks
74
-
75
- ### 📝 **Webhook Usage Example**
76
-
77
- ```javascript
78
- // Create a webhook
79
- {
80
- "name": "create_webhook",
81
- "arguments": {
82
- "notificationUrl": "https://your-endpoint.com/webhook"
83
- }
84
- }
85
-
86
- // The response includes:
87
- // - Webhook ID
88
- // - MAC secret (save this - shown only once!)
89
- // - Expiration time
90
- ```
91
-
92
- ### 🎯 **What's Next**
93
- - Batch operations support
94
- - Comment management
95
- - Attachment handling
96
- - Schema modification tools
97
-
98
- ### 🙏 **Acknowledgments**
99
- - Thanks to all testers and contributors
100
- - Special thanks for the comprehensive testing feedback
101
-
102
- ---
103
-
104
- **Full Changelog**: [v1.2.4...v1.4.0](https://github.com/rashidazarang/airtable-mcp/compare/v1.2.4...v1.4.0)