feat(mcp): enhance MCP installation with status tracking and custom configs

- Add /mcp-servers/ to .gitignore for MCP server installations
- Extend mcp_installations table with status, logs, and validation fields
- Refactor MCP install route to support custom configs, enable logs, and async installation
- Improve MCPSyncService with promise-based syncing to prevent concurrent operations

This update improves MCP management by adding robust installation tracking, custom configuration support, and better error handling for a more reliable user experience.
This commit is contained in:
Evandro Fonseca Junior committed 2025-10-28 21:59:00 -03:00
1 parent 1042f2136b
commit f19bf10ef3
35 files changed
+4743 -429

No files matched your search

+56
View File
@@ -41,6 +41,15 @@ importers:
react-syntax-highlighter:
specifier: ^16.0.0
version: 16.0.0([email protected])
react-virtualized-auto-sizer:
specifier: ^1.0.26
version: 1.0.26([email protected]([email protected]))([email protected])
react-window:
specifier: ^2.2.2
version: 2.2.2([email protected]([email protected]))([email protected])
react-window-infinite-loader:
specifier: ^2.0.0
version: 2.0.0([email protected]([email protected]))([email protected])
refractor:
specifier: ^3.6.0
version: 3.6.0
@@ -75,6 +84,9 @@ importers:
'@types/react-dom':
specifier: ^19
version: 19.2.2(@types/[email protected])
'@types/react-window':
specifier: ^2.0.0
version: 2.0.0([email protected]([email protected]))([email protected])
tailwindcss:
specifier: ^4
version: 4.1.16
@@ -626,6 +638,10 @@ packages:
peerDependencies:
'@types/react': ^19.2.0
'@types/[email protected]':
resolution: {integrity: sha512-E8hMDtImEpMk1SjswSvqoSmYvk7GEtyVaTa/GJV++FdDNuMVVEzpAClyJ0nqeKYBrMkGiyH6M1+rPLM0Nu1exQ==}
deprecated: This is a stub types definition. react-window provides its own type definitions, so you do not need this installed.
'@types/[email protected]':
resolution: {integrity: sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==}
@@ -1229,6 +1245,24 @@ packages:
peerDependencies:
react: '>= 0.14.0'
[email protected]:
resolution: {integrity: sha512-CblNyiNVw2o+hsa5/49NH2ogGxZ+t+3aweRvNSq7TVjDIlwk7ir4lencEg5HxHeSzwNarSkNkiu0qJSOXtxm5A==}
peerDependencies:
react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0
[email protected]:
resolution: {integrity: sha512-dioOyvShGheEqqFHcPNKCixCOc2evwb2VEt9sitfJfTZ1hir8m6b8W0CNBvcUj+8Y8IeWu4yb88DI7k88aYTQQ==}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
[email protected]:
resolution: {integrity: sha512-kvHKwFImKBWNbx2S87NZOhQhAVkBthjmnOfHlhQI45p3A+D+V53E+CqQMsyHrxNe3ke+YtWXuKDa1eoHAaIWJg==}
peerDependencies:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
[email protected]:
resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==}
engines: {node: '>=0.10.0'}
@@ -1784,6 +1818,13 @@ snapshots:
dependencies:
'@types/react': 19.2.2
'@types/[email protected]([email protected]([email protected]))([email protected])':
dependencies:
react-window: 2.2.2([email protected]([email protected]))([email protected])
transitivePeerDependencies:
- react
- react-dom
'@types/[email protected]':
dependencies:
csstype: 3.1.3
@@ -2658,6 +2699,21 @@ snapshots:
react: 19.2.0
refractor: 5.0.0
[email protected]([email protected]([email protected]))([email protected]):
dependencies:
react: 19.2.0
react-dom: 19.2.0([email protected])
[email protected]([email protected]([email protected]))([email protected]):
dependencies:
react: 19.2.0
react-dom: 19.2.0([email protected])
[email protected]([email protected]([email protected]))([email protected]):
dependencies:
react: 19.2.0
react-dom: 19.2.0([email protected])
[email protected]: {}
[email protected]: