mcp-quickbase 2.0.5 → 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 (146) hide show
  1. package/.crewchief/runs/state.json +3 -0
  2. package/.mcp.json +6 -32
  3. package/.sdd/tickets/RELS_relationship-management/README.md +98 -0
  4. package/.sdd/tickets/RELS_relationship-management/planning/analysis.md +190 -0
  5. package/.sdd/tickets/RELS_relationship-management/planning/architecture.md +413 -0
  6. package/.sdd/tickets/RELS_relationship-management/planning/plan.md +177 -0
  7. package/.sdd/tickets/RELS_relationship-management/planning/quality-strategy.md +335 -0
  8. package/.sdd/tickets/RELS_relationship-management/planning/review-updates.md +95 -0
  9. package/.sdd/tickets/RELS_relationship-management/planning/security-review.md +213 -0
  10. package/.sdd/tickets/RELS_relationship-management/planning/ticket-review.md +885 -0
  11. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.1001_domain-setup.md +96 -0
  12. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.1002_get-relationships-tool.md +142 -0
  13. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.1003_register-phase1-tools.md +105 -0
  14. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.2001_create-relationship-tool.md +151 -0
  15. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.2002_update-relationship-tool.md +145 -0
  16. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.3001_delete-relationship-tool.md +154 -0
  17. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.4001_integration-testing.md +159 -0
  18. package/.sdd/tickets/RELS_relationship-management/tasks/RELS.4002_final-verification.md +182 -0
  19. package/.sdd/tickets/RELS_relationship-management/tasks/RELS_TASK_INDEX.md +179 -0
  20. package/crewchief.config.js +31 -0
  21. package/dist/client/quickbase.d.ts +7 -2
  22. package/dist/client/quickbase.js +64 -51
  23. package/dist/client/quickbase.js.map +1 -1
  24. package/dist/mcp/index.d.ts +1 -1
  25. package/dist/mcp/server.d.ts +3 -3
  26. package/dist/mcp/server.js +21 -17
  27. package/dist/mcp/server.js.map +1 -1
  28. package/dist/mcp-stdio-server.js +64 -49
  29. package/dist/mcp-stdio-server.js.map +1 -1
  30. package/dist/server.js +84 -83
  31. package/dist/server.js.map +1 -1
  32. package/dist/tools/apps/create_app.d.ts +2 -2
  33. package/dist/tools/apps/create_app.js +23 -23
  34. package/dist/tools/apps/create_app.js.map +1 -1
  35. package/dist/tools/apps/index.d.ts +4 -4
  36. package/dist/tools/apps/index.js +3 -3
  37. package/dist/tools/apps/list_tables.d.ts +7 -7
  38. package/dist/tools/apps/list_tables.js +28 -27
  39. package/dist/tools/apps/list_tables.js.map +1 -1
  40. package/dist/tools/apps/update_app.d.ts +2 -2
  41. package/dist/tools/apps/update_app.js +28 -26
  42. package/dist/tools/apps/update_app.js.map +1 -1
  43. package/dist/tools/base.d.ts +3 -3
  44. package/dist/tools/base.js +7 -7
  45. package/dist/tools/base.js.map +1 -1
  46. package/dist/tools/configure_cache.d.ts +3 -3
  47. package/dist/tools/configure_cache.js +16 -16
  48. package/dist/tools/configure_cache.js.map +1 -1
  49. package/dist/tools/fields/create_field.d.ts +8 -7
  50. package/dist/tools/fields/create_field.js +39 -29
  51. package/dist/tools/fields/create_field.js.map +1 -1
  52. package/dist/tools/fields/delete_field.d.ts +79 -0
  53. package/dist/tools/fields/delete_field.js +105 -0
  54. package/dist/tools/fields/delete_field.js.map +1 -0
  55. package/dist/tools/fields/get_field.d.ts +91 -0
  56. package/dist/tools/fields/get_field.js +82 -0
  57. package/dist/tools/fields/get_field.js.map +1 -0
  58. package/dist/tools/fields/index.d.ts +5 -3
  59. package/dist/tools/fields/index.js +11 -5
  60. package/dist/tools/fields/index.js.map +1 -1
  61. package/dist/tools/fields/update_field.d.ts +7 -15
  62. package/dist/tools/fields/update_field.js +39 -38
  63. package/dist/tools/fields/update_field.js.map +1 -1
  64. package/dist/tools/files/download_file.d.ts +2 -2
  65. package/dist/tools/files/download_file.js +35 -35
  66. package/dist/tools/files/download_file.js.map +1 -1
  67. package/dist/tools/files/index.d.ts +3 -3
  68. package/dist/tools/files/index.js +3 -3
  69. package/dist/tools/files/upload_file.d.ts +2 -2
  70. package/dist/tools/files/upload_file.js +52 -44
  71. package/dist/tools/files/upload_file.js.map +1 -1
  72. package/dist/tools/index.d.ts +13 -12
  73. package/dist/tools/index.js +6 -3
  74. package/dist/tools/index.js.map +1 -1
  75. package/dist/tools/records/bulk_create_records.d.ts +2 -2
  76. package/dist/tools/records/bulk_create_records.js +28 -28
  77. package/dist/tools/records/bulk_create_records.js.map +1 -1
  78. package/dist/tools/records/bulk_update_records.d.ts +2 -2
  79. package/dist/tools/records/bulk_update_records.js +27 -27
  80. package/dist/tools/records/bulk_update_records.js.map +1 -1
  81. package/dist/tools/records/create_record.d.ts +2 -2
  82. package/dist/tools/records/create_record.js +40 -40
  83. package/dist/tools/records/create_record.js.map +1 -1
  84. package/dist/tools/records/index.d.ts +6 -6
  85. package/dist/tools/records/index.js +3 -3
  86. package/dist/tools/records/query_records.d.ts +3 -3
  87. package/dist/tools/records/query_records.js +82 -78
  88. package/dist/tools/records/query_records.js.map +1 -1
  89. package/dist/tools/records/update_record.d.ts +2 -2
  90. package/dist/tools/records/update_record.js +31 -29
  91. package/dist/tools/records/update_record.js.map +1 -1
  92. package/dist/tools/registry.d.ts +1 -1
  93. package/dist/tools/registry.js +1 -1
  94. package/dist/tools/relationships/create_relationship.d.ts +150 -0
  95. package/dist/tools/relationships/create_relationship.js +181 -0
  96. package/dist/tools/relationships/create_relationship.js.map +1 -0
  97. package/dist/tools/relationships/delete_relationship.d.ts +66 -0
  98. package/dist/tools/relationships/delete_relationship.js +85 -0
  99. package/dist/tools/relationships/delete_relationship.js.map +1 -0
  100. package/dist/tools/relationships/get_relationships.d.ts +126 -0
  101. package/dist/tools/relationships/get_relationships.js +126 -0
  102. package/dist/tools/relationships/get_relationships.js.map +1 -0
  103. package/dist/tools/relationships/index.d.ts +14 -0
  104. package/dist/tools/relationships/index.js +37 -0
  105. package/dist/tools/relationships/index.js.map +1 -0
  106. package/dist/tools/relationships/update_relationship.d.ts +139 -0
  107. package/dist/tools/relationships/update_relationship.js +168 -0
  108. package/dist/tools/relationships/update_relationship.js.map +1 -0
  109. package/dist/tools/reports/index.d.ts +2 -2
  110. package/dist/tools/reports/index.js +3 -3
  111. package/dist/tools/reports/run_report.d.ts +3 -3
  112. package/dist/tools/reports/run_report.js +29 -29
  113. package/dist/tools/reports/run_report.js.map +1 -1
  114. package/dist/tools/tables/create_table.d.ts +2 -49
  115. package/dist/tools/tables/create_table.js +26 -49
  116. package/dist/tools/tables/create_table.js.map +1 -1
  117. package/dist/tools/tables/get_table_fields.d.ts +2 -2
  118. package/dist/tools/tables/get_table_fields.js +25 -25
  119. package/dist/tools/tables/get_table_fields.js.map +1 -1
  120. package/dist/tools/tables/index.d.ts +4 -4
  121. package/dist/tools/tables/index.js +3 -3
  122. package/dist/tools/tables/update_table.d.ts +2 -2
  123. package/dist/tools/tables/update_table.js +28 -26
  124. package/dist/tools/tables/update_table.js.map +1 -1
  125. package/dist/tools/test_connection.d.ts +2 -2
  126. package/dist/tools/test_connection.js +28 -28
  127. package/dist/tools/test_connection.js.map +1 -1
  128. package/dist/types/api.d.ts +1 -1
  129. package/dist/types/mcp.d.ts +1 -1
  130. package/dist/utils/cache.js +16 -16
  131. package/dist/utils/cache.js.map +1 -1
  132. package/dist/utils/file.js +44 -40
  133. package/dist/utils/file.js.map +1 -1
  134. package/dist/utils/logger.js +30 -28
  135. package/dist/utils/logger.js.map +1 -1
  136. package/dist/utils/retry.js +10 -10
  137. package/dist/utils/retry.js.map +1 -1
  138. package/dist/utils/validation.d.ts +1 -1
  139. package/dist/utils/validation.js +39 -36
  140. package/dist/utils/validation.js.map +1 -1
  141. package/docs/README.md +6 -0
  142. package/docs/future-improvements.md +33 -0
  143. package/docs/migration-guide.md +160 -0
  144. package/docs/release-notes.md +89 -0
  145. package/package.json +5 -4
  146. /package/{HARDENING_SUMMARY.md → docs/hardening-summary.md} +0 -0
@@ -0,0 +1,160 @@
1
+ # Migration Guide: V1 to V2
2
+
3
+ This guide helps existing users upgrade from v1 to v2 of Quickbase MCP Server.
4
+
5
+ ## 🎯 Key Benefits of V2
6
+
7
+ - **Pure TypeScript**: No Python dependencies required
8
+ - **Better Performance**: ~60% faster startup, 40% less memory usage
9
+ - **Type Safety**: Full TypeScript with strict mode
10
+ - **Improved Error Handling**: Detailed error messages with context
11
+ - **Better Testing**: More comprehensive test coverage
12
+ - **Enhanced Caching**: Intelligent caching with configurable TTL
13
+
14
+ ## 📋 Pre-Migration Checklist
15
+
16
+ 1. **Backup your configuration**:
17
+ - Save your current `.env` file
18
+ - Note your Claude Desktop configuration
19
+ - Document any custom modifications
20
+
21
+ 2. **Check Node.js version**:
22
+ - V2 requires Node.js 18+ (v1 required 14+)
23
+ - Run `node --version` to check
24
+
25
+ ## 🚀 Migration Steps
26
+
27
+ ### Step 1: Pull Latest Changes
28
+
29
+ ```bash
30
+ git pull origin main
31
+ ```
32
+
33
+ ### Step 2: Install Dependencies
34
+
35
+ ```bash
36
+ # Remove old dependencies
37
+ rm -rf node_modules package-lock.json
38
+
39
+ # Install v2 dependencies
40
+ npm install
41
+
42
+ # Build the TypeScript project
43
+ npm run build
44
+ ```
45
+
46
+ ### Step 3: Update Configuration
47
+
48
+ 1. **Environment Variables** - Your existing `.env` file is compatible! Just ensure it's in the root directory.
49
+
50
+ 2. **Claude Desktop Configuration** - Update your Claude configuration file:
51
+
52
+ **Old (v1):**
53
+ ```json
54
+ {
55
+ "mcpServers": {
56
+ "quickbase": {
57
+ "command": "node",
58
+ "args": ["path/to/mcp-quickbase/dist/mcp-stdio-server.js"],
59
+ "env": {
60
+ "QUICKBASE_REALM_HOST": "your-realm.quickbase.com",
61
+ "QUICKBASE_USER_TOKEN": "your-token"
62
+ }
63
+ }
64
+ }
65
+ }
66
+ ```
67
+
68
+ **New (v2):**
69
+ ```json
70
+ {
71
+ "mcpServers": {
72
+ "quickbase": {
73
+ "command": "node",
74
+ "args": ["path/to/mcp-quickbase/dist/mcp-stdio-server.js"],
75
+ "env": {
76
+ "QUICKBASE_REALM_HOST": "your-realm.quickbase.com",
77
+ "QUICKBASE_USER_TOKEN": "your-token"
78
+ }
79
+ }
80
+ }
81
+ }
82
+ ```
83
+
84
+ Note: Only the path changed from `src/quickbase/server.js` to `dist/mcp-stdio-server.js`
85
+
86
+ ### Step 4: Restart Claude Desktop
87
+
88
+ After updating the configuration, restart Claude Desktop for changes to take effect.
89
+
90
+ ### Step 5: Test the Connection
91
+
92
+ In Claude, test that the connector is working:
93
+
94
+ ```
95
+ Can you test the Quickbase connection?
96
+ ```
97
+
98
+ ## 🔄 What's Changed
99
+
100
+ ### Tool Names and Parameters
101
+ All tool names and parameters remain the same! Your existing prompts and workflows will continue to work.
102
+
103
+ ### Performance Improvements
104
+ - Startup time reduced from 5+ seconds to ~2 seconds
105
+ - Memory usage reduced by ~40%
106
+ - Caching is now more intelligent and configurable
107
+
108
+ ### Error Messages
109
+ Error messages are now more detailed and helpful, but the structure remains compatible.
110
+
111
+ ### New Features in V2
112
+ - Better pagination support for large datasets
113
+ - Improved file upload/download reliability
114
+ - Enhanced bulk operations performance
115
+ - More comprehensive validation
116
+
117
+ ## 🚧 Troubleshooting
118
+
119
+ ### Issue: "Cannot find module" error
120
+ **Solution**: Ensure you ran `npm run build` after installing dependencies.
121
+
122
+ ### Issue: Connection fails after migration
123
+ **Solution**:
124
+ 1. Check that your `.env` file is in the root directory
125
+ 2. Verify the path in Claude configuration points to `dist/mcp-stdio-server.js`
126
+ 3. Ensure Node.js 18+ is installed
127
+
128
+ ### Issue: Python-related errors
129
+ **Solution**: V2 doesn't use Python! These errors indicate you're still using v1. Check your Claude configuration path.
130
+
131
+ ### Issue: Cache behavior different
132
+ **Solution**: V2 has improved caching. You can configure it via:
133
+ ```env
134
+ QUICKBASE_CACHE_ENABLED=true
135
+ QUICKBASE_CACHE_TTL=3600 # seconds
136
+ ```
137
+
138
+ ## 📞 Getting Help
139
+
140
+ 1. Check the [README](../README.md) for updated documentation
141
+ 2. Review the [Quick Start Guide](quickstart.md#-troubleshooting) for common issues
142
+ 3. Open an issue on GitHub if you encounter problems
143
+
144
+ ## 🔙 Rolling Back (Not Recommended)
145
+
146
+ If you must roll back to v1:
147
+
148
+ 1. The v1 code is preserved in `v1-legacy/` for reference
149
+ 2. However, v1 is no longer maintained or supported
150
+ 3. We strongly recommend working through any v2 migration issues instead
151
+
152
+ ## ✅ Post-Migration Checklist
153
+
154
+ - [ ] Claude Desktop restarted
155
+ - [ ] Connection test successful
156
+ - [ ] Basic operations working (query, create, update)
157
+ - [ ] File operations tested (if used)
158
+ - [ ] Performance noticeably improved
159
+
160
+ Congratulations! You've successfully migrated to v2. Enjoy the improved performance and reliability!
@@ -0,0 +1,89 @@
1
+ # v2 Release Notes
2
+
3
+ ## 🎉 Major Release: v2.0.0
4
+
5
+ This release represents a complete rewrite of Quickbase MCP Server with significant improvements in performance, reliability, and developer experience.
6
+
7
+ ### 🚀 Key Improvements
8
+
9
+ #### Architecture
10
+ - **Pure TypeScript Implementation**: Removed Python dependency completely
11
+ - **Type Safety**: Full TypeScript with strict mode enabled
12
+ - **Modern Patterns**: Async/await throughout, no callbacks
13
+ - **Clean Architecture**: Layered design with clear separation of concerns
14
+
15
+ #### Performance
16
+ - **60% Faster Startup**: ~2 seconds vs 5+ seconds in v1
17
+ - **40% Less Memory**: Optimized resource usage
18
+ - **Intelligent Caching**: Configurable TTL with automatic invalidation
19
+ - **Rate Limiting**: Built-in protection against API overload
20
+
21
+ #### Reliability
22
+ - **Retry Logic**: Automatic exponential backoff for transient failures
23
+ - **Better Error Handling**: Structured errors with detailed context
24
+ - **Session Management**: Proper lifecycle management
25
+ - **Graceful Degradation**: Continues operating even with partial failures
26
+
27
+ #### Developer Experience
28
+ - **Comprehensive Types**: Full type definitions for all APIs
29
+ - **Better Testing**: Jest-based test suite with 45%+ coverage
30
+ - **ESLint + Prettier**: Consistent code formatting
31
+ - **Improved Documentation**: Clear examples and migration guide
32
+
33
+ ### 📦 What's Included
34
+
35
+ #### Tools (18 total)
36
+ - **Connection**: test_connection, configure_cache
37
+ - **Apps**: create_app, update_app, list_tables
38
+ - **Tables**: create_table, update_table, get_table_fields
39
+ - **Fields**: create_field, update_field
40
+ - **Records**: query_records, create_record, update_record, bulk_create_records, bulk_update_records
41
+ - **Files**: upload_file, download_file
42
+ - **Reports**: run_report
43
+
44
+ #### Configuration
45
+ - Environment-based configuration
46
+ - Backwards compatible with v1 .env files
47
+ - New optional settings for performance tuning
48
+
49
+ ### 🔄 Migration from v1
50
+
51
+ See [Migration Guide](migration-guide.md) for detailed migration instructions.
52
+
53
+ **Quick Summary**:
54
+ 1. Pull latest changes
55
+ 2. Run `npm install && npm run build`
56
+ 3. Update Claude config path from `src/quickbase/server.js` to `dist/mcp-stdio-server.js`
57
+ 4. Restart Claude Desktop
58
+
59
+ ### ⚠️ Breaking Changes
60
+
61
+ - Minimum Node.js version is now 18+ (was 14+)
62
+ - Entry point changed from `src/quickbase/server.js` to `dist/mcp-stdio-server.js`
63
+ - Some internal APIs changed (but all MCP tools remain the same)
64
+
65
+ ### 🐛 Bug Fixes
66
+
67
+ - Fixed memory leaks in long-running sessions
68
+ - Resolved race conditions in concurrent requests
69
+ - Fixed file upload issues with large files
70
+ - Corrected pagination bugs in query_records
71
+ - Fixed cache invalidation timing issues
72
+
73
+ ### 🔮 Future Plans
74
+
75
+ - Increase test coverage to 80%+
76
+ - Add webhook support
77
+ - Implement streaming for large datasets
78
+ - Add more comprehensive logging options
79
+ - Support for Quickbase formulas and relationships
80
+
81
+ ### 📝 Notes
82
+
83
+ - v1 code is preserved in `v1-legacy/` for reference only
84
+ - All new development should use v2
85
+ - Please report any issues on GitHub
86
+
87
+ ### 🙏 Acknowledgments
88
+
89
+ Thanks to all contributors and testers who helped make v2 a reality!
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "mcp-quickbase",
3
- "version": "2.0.5",
3
+ "version": "2.2.0",
4
4
  "description": "Work with Quickbase via Model Context Protocol",
5
5
  "main": "dist/mcp-stdio-server.js",
6
6
  "types": "dist/mcp-stdio-server.d.ts",
7
7
  "bin": {
8
- "mcp-quickbase": "./dist/mcp-stdio-server.js"
8
+ "mcp-quickbase": "dist/mcp-stdio-server.js"
9
9
  },
10
10
  "scripts": {
11
11
  "build": "tsc",
@@ -22,7 +22,7 @@
22
22
  "license": "MIT",
23
23
  "repository": {
24
24
  "type": "git",
25
- "url": "https://github.com/danielbushman/MCP-Quickbase.git"
25
+ "url": "git+https://github.com/danielbushman/MCP-Quickbase.git"
26
26
  },
27
27
  "homepage": "https://github.com/danielbushman/MCP-Quickbase#readme",
28
28
  "bugs": {
@@ -49,6 +49,7 @@
49
49
  "cors": "^2.8.5",
50
50
  "dotenv": "^16.3.1",
51
51
  "express": "^4.18.2",
52
+ "mcp-proxy": "^3.2.0",
52
53
  "node-cache": "^5.1.2",
53
54
  "zod": "^3.24.4"
54
55
  },
@@ -65,4 +66,4 @@
65
66
  "ts-node": "^10.9.1",
66
67
  "typescript": "^5.2.2"
67
68
  }
68
- }
69
+ }