🧩 refactor: Decouple MCP Config from Startup Config (#10689)

* Decouple mcp config from start up config

* Chore: Work on AI Review and Copilot Comments

- setRawConfig is not needed since the private raw config is not needed any more
- !!serversLoading bug fixed
- added unit tests for route /api/mcp/servers
- copilot comments addressed

* chore: remove comments

* chore: rename data-provider dir for MCP

* chore: reorganize mcp specific query hooks

* fix: consolidate imports for MCP server manager

* chore: add dev-staging branch to frontend review workflow triggers

* feat: add GitHub Actions workflow for building and pushing Docker images to GitHub Container Registry and Docker Hub

* fix: update label for tag input in BookmarkForm tests to improve clarity

---------

Co-authored-by: Atef Bellaaj <slalom.bellaaj@external.daimlertruck.com>
Co-authored-by: Danny Avila <danny@librechat.ai>
This commit is contained in:
Atef Bellaaj 2025-11-26 21:26:40 +01:00 committed by Danny Avila
parent cbafe214ee
commit 1b0b27b30c
No known key found for this signature in database
GPG key ID: BF31EEB2C5CA0956
36 changed files with 548 additions and 301 deletions

View file

@ -5,7 +5,7 @@ import { LocalStorageKeys } from 'librechat-data-provider';
import type { TStartupConfig, TUser } from 'librechat-data-provider';
import { cleanupTimestampedStorage } from '~/utils/timestamps';
import useSpeechSettingsInit from './useSpeechSettingsInit';
import { useMCPToolsQuery } from '~/data-provider';
import { useMCPToolsQuery, useMCPServersQuery } from '~/data-provider';
import store from '~/store';
export default function useAppStartup({
@ -18,9 +18,10 @@ export default function useAppStartup({
const [defaultPreset, setDefaultPreset] = useRecoilState(store.defaultPreset);
useSpeechSettingsInit(!!user);
const { data: loadedServers, isLoading: serversLoading } = useMCPServersQuery();
useMCPToolsQuery({
enabled: !!startupConfig?.mcpServers && !!user,
enabled: !serversLoading && !!loadedServers && Object.keys(loadedServers).length > 0 && !!user,
});
/** Clean up old localStorage entries on startup */