LibreChat/api/server/routes
Theo N. Truong 8780a78165
♻️ refactor: MCPManager for Scalability, Fix App-Level Detection, Add Lazy Connections (#8930)
* feat: MCP Connection management overhaul - Making MCPManager manageable

Refactor the monolithic MCPManager into focused, single-responsibility classes:

• MCPServersRegistry: Server configuration discovery and metadata management
• UserConnectionManager: Manages user-level connections
• ConnectionsRepository: Low-level connection pool with lazy loading
• MCPConnectionFactory: Handles MCP connection creation with OAuth support

New Features:
• Lazy loading of app-level connections for horizontal scaling
• Automatic reconnection for app-level connections
• Enhanced OAuth detection with explicit requiresOAuth flag
• Centralized MCP configuration management

Bug Fixes:
• App-level connection detection in MCPManager.callTool
• MCP Connection Reinitialization route behavior

Optimizations:
• MCPConnection.isConnected() caching to reduce overhead
• Concurrent server metadata retrieval instead of sequential

This refactoring addresses scalability bottlenecks and improves reliability
while maintaining backward compatibility with existing configurations.

* feat: Enabled import order in eslint.

* # Moved tests to __tests__ folder
# added tests for MCPServersRegistry.ts

* # Add unit tests for ConnectionsRepository functionality

* # Add unit tests for MCPConnectionFactory functionality

* # Reorganize MCP connection tests and improve error handling

* # reordering imports

* # Update testPathIgnorePatterns in jest.config.mjs to exclude development TypeScript files

* # removed mcp/manager.ts
2025-08-13 11:45:06 -04:00
..
__tests__ ♻️ refactor: MCPManager for Scalability, Fix App-Level Detection, Add Lazy Connections (#8930) 2025-08-13 11:45:06 -04:00
agents 🔒 fix: Agents Config/Permission Checks after Streamline Change (#8089) 2025-06-26 18:53:05 -04:00
assistants 🤖 refactor: Improve Agents Memory Usage, Bump Keyv, Grok 3 (#6850) 2025-04-12 18:46:36 -04:00
edit 👤 feat: User Placeholder Variables for Custom Endpoint Headers (#7993) 2025-06-23 12:39:27 -04:00
files 📂 fix: File Cleanup for Uploaded "Agent" Files (#8900) 2025-08-06 19:45:57 -04:00
types WIP: Update UI to match Official Style; Vision and Assistants 👷🏽 (#1190) 2023-11-16 10:42:24 -05:00
actions.js 🪐 feat: MCP OAuth 2.0 Discovery Support (#7924) 2025-06-17 13:50:33 -04:00
auth.js 🪙 feat: Sync Balance Config on Login (#6671) 2025-04-01 21:19:42 -04:00
balance.js feat: Accurate Token Usage Tracking & Optional Balance (#1018) 2023-10-05 18:34:10 -04:00
banner.js 🚀 feat: Banner (#3952) 2024-09-11 09:34:25 -04:00
categories.js 🗨️ feat: Prompts (#3131) 2024-06-20 20:24:32 -04:00
config.js 🔑 refactor: MCP Settings Rendering Logic for OAuth Servers (#8718) 2025-07-29 09:08:46 -04:00
convos.js 🔧 fix: Assistants API SDK calls to match Updated Arguments (#8818) 2025-08-02 12:19:58 -04:00
endpoints.js refactor: Speed up Config fetching and Setup Config Groundwork 👷🚧 (#1297) 2023-12-06 19:36:57 -05:00
index.js 🤖 feat: Streamline Endpoints to Agent Framework (#8013) 2025-06-23 09:59:05 -04:00
keys.js refactor: Encrypt & Expire User Provided Keys, feat: Rate Limiting (#874) 2023-09-06 10:46:27 -04:00
mcp.js ♻️ refactor: MCPManager for Scalability, Fix App-Level Detection, Add Lazy Connections (#8930) 2025-08-13 11:45:06 -04:00
memories.js 🛂 feat: Payload limits and Validation for User-created Memories (#8974) 2025-08-10 14:46:16 -04:00
messages.js 🔀 feat: Save & Submit Message Content Parts (#8171) 2025-07-01 15:43:10 -04:00
models.js 🛠️ refactor: Model Loading and Custom Endpoint Error Handling (#1849) 2024-02-20 12:57:58 -05:00
oauth.js 🔒 fix: Provider Validation for Social, OpenID, SAML, and LDAP Logins (#8999) 2025-08-11 18:51:46 -04:00
plugins.js feat(GPT/Anthropic): Continue Regenerating & Generation Buttons (#808) 2023-08-17 12:50:05 -04:00
presets.js 🛡️ : Security Enhancements (#1681) 2024-01-30 14:34:02 -05:00
prompts.js 🔒 fix: Agents Config/Permission Checks after Streamline Change (#8089) 2025-06-26 18:53:05 -04:00
roles.js 🧠 feat: User Memories for Conversational Context (#7760) 2025-06-07 18:52:22 -04:00
search.js 🔃 refactor: Streamline Navigation, Message Loading UX (#7118) 2025-04-28 18:18:13 -04:00
share.js 🪐 refactor: Migrate Share Functionality to Type-Safe Methods (#7903) 2025-06-14 11:24:30 -04:00
static.js 🗂️ fix: Disable express-static-gzip for Uploaded Images (#8307) 2025-07-11 16:51:53 -04:00
tags.js 🔒 fix: Agents Config/Permission Checks after Streamline Change (#8089) 2025-06-26 18:53:05 -04:00
tokenizer.js 🛡️ : Security Enhancements (#1681) 2024-01-30 14:34:02 -05:00
user.js ⚖️ feat: Terms and Conditions Dialog (#3712) 2024-08-31 16:08:04 -04:00