Describe the Bug
Cursor’s MCP server management system fails to respect both UI toggle switches and configuration-based disabling, resulting in all configured MCP servers being loaded and consuming resources regardless of their disabled state.
Steps to Reproduce
1. Configure Multiple MCP Servers
- Add 10+ MCP servers to
.cursor/mcp.json
in themcpServers
section - Add some servers to
disabledServers
section - Configure servers in Settings > Tools & Integrations
2. Attempt to Disable Servers
- Toggle servers to “disabled” in Settings > Tools & Integrations UI
- Add servers to
disabledServers
section in mcp.json - Restart Cursor
3. Observe the Problem
- All MCP servers load regardless of toggle state
- High disk utilization from multiple server processes
- Performance degradation due to resource consumption
- Toggle switches appear to work in UI but have no effect on actual server loading
Expected Behavior
When an MCP server is disabled (either via UI toggle or configuration):
- Cursor should NOT start that server process
- Cursor should NOT allocate resources to it
- Cursor should NOT perform disk I/O for that server
- The toggle should actually control server loading
Actual Behavior
- All MCP servers in
mcpServers
section are loaded regardless of UI toggle state disabledServers
section is completely ignored- UI toggles are cosmetic only - they change UI state but don’t affect server loading
- 13+ MCP server processes running simultaneously causing disk utilization issues
Screenshots / Screen Recordings
CURSOR_MCP_BUG_REPORT.txt (4.66 KB)
Operating System
Windows 10/11
Current Cursor Version (Menu → About Cursor → Copy)
Version: 1.4.3 (user setup)
VSCode Version: 1.99.3
Commit: e50823e9ded15fddfd743c7122b4724130c25df0
Date: 2025-08-08T17:34:53.060Z
Electron: 34.5.1
Chromium: 132.0.6834.210
Node.js: 20.19.0
V8: 13.2.152.41-electron.0
OS: Windows_NT x64 10.0.19045
Additional Information
Cursor MCP Server Toggle Bug Report
Bug Title
MCP Server Toggle Switches Ignored - All Servers Loaded Regardless of Disabled State
Severity
CRITICAL - Causes excessive disk utilization and performance degradation
Issue Description
Cursor’s MCP server management system fails to respect both UI toggle switches and configuration-based disabling, resulting in all configured MCP servers being loaded and consuming resources regardless of their disabled state.
Steps to Reproduce
1. Configure Multiple MCP Servers
- Add 10+ MCP servers to
.cursor/mcp.json
in themcpServers
section - Add some servers to
disabledServers
section - Configure servers in Settings > Tools & Integrations
2. Attempt to Disable Servers
- Toggle servers to “disabled” in Settings > Tools & Integrations UI
- Add servers to
disabledServers
section in mcp.json - Restart Cursor
3. Observe the Problem
- All MCP servers load regardless of toggle state
- High disk utilization from multiple server processes
- Performance degradation due to resource consumption
- Toggle switches appear to work in UI but have no effect on actual server loading
Expected Behavior
When an MCP server is disabled (either via UI toggle or configuration):
- Cursor should NOT start that server process
- Cursor should NOT allocate resources to it
- Cursor should NOT perform disk I/O for that server
- The toggle should actually control server loading
Actual Behavior
- All MCP servers in
mcpServers
section are loaded regardless of UI toggle state disabledServers
section is completely ignored- UI toggles are cosmetic only - they change UI state but don’t affect server loading
- 13+ MCP server processes running simultaneously causing disk utilization issues
Impact
- Performance: Significant disk I/O and memory usage from unnecessary server processes
- User Experience: Toggle switches don’t work as advertised
- Resource Waste: System resources consumed by disabled servers
- Confusion: Users expect UI controls to work as designed
Technical Details
Configuration Example
{
"mcpServers": {
"server1": {
/* config */
},
"server2": {
/* config */
},
"server3": {
/* config */
}
},
"disabledServers": {
"server2": {
/* config */
},
"server3": {
/* config */
}
}
}
Problem
- All 3 servers load despite server2 and server3 being in
disabledServers
- UI toggles for server2 and server3 have no effect on actual loading
Environment
- Application: Cursor IDE
- Feature: MCP (Model Context Protocol) Server Management
- Components Affected:
- Settings > Tools & Integrations UI
- MCP server loading system
- Configuration file parsing
Suggested Fixes
1. Fix UI Toggle Functionality
- Ensure UI toggles properly communicate with MCP server management
- Implement proper server start/stop based on toggle state
- Add visual feedback when toggles are actually applied
2. Implement disabledServers
Support
- Add proper parsing and respect for
disabledServers
section - Prevent loading of servers listed in
disabledServers
- Maintain configuration for easy re-enabling
3. Add Server Process Management
- Implement proper process lifecycle management
- Add ability to stop/start servers without restarting Cursor
- Add resource monitoring for MCP servers
4. Improve Error Handling
- Add validation for MCP server configurations
- Provide clear error messages when servers fail to load
- Add logging for server loading/unloading events
Testing Recommendations
- Test with various numbers of MCP servers (1, 5, 10, 15+)
- Test UI toggle functionality with server restart
- Test
disabledServers
section functionality - Monitor system resources during server loading
- Test configuration file modifications
Priority
This should be treated as a high priority bug due to:
- Impact on user experience
- Resource consumption issues
- Failure of advertised functionality
- Potential for system performance degradation
Additional Notes
- This appears to be a fundamental failure in the MCP server management architecture
- The disconnect between UI state and actual server loading suggests deeper architectural issues
- Users should not need to manually edit configuration files to disable servers that have UI controls
Reported by: User experiencing high disk utilization due to unnecessary MCP server loading
Date: Current
Status: Needs immediate attention from development team
Does this stop you from using Cursor
Yes - Cursor is unusable