Why does Roo Code still start MCP servers I have disabled?
In Roo Code (latest as of April 2025, using OpenRouter), a broken MCP server that was disabled still gets started when Roo Code reopens, and its error appears. Disabled servers are hidden from the agent, but their processes still run. Is there a known fix or workaround?
Originally asked on GitHub: https://github.com/RooCodeInc/Roo-Code/issues/2797
5 answers
Status: still unresolved in this thread. The issue was closed as a duplicate, and the last maintainer comment (June 2025) only outlined the intended fix without confirming a release. The behavior is called out as more of a design situation than a bug: a contributor explained there is one MCP process shared across all workspaces, and a global server's activation state is still tracked per workspace until the workspace is reopened and refreshed. So "global" refers to the settings, not the activation status.
A maintainer later described the needed change in
src/services/mcp/McpHub.ts: if a server's effective configuration (global plus project settings, with their precedence) is disabled, its process should not be started, and an already running process should be terminated when the server becomes disabled. No implementation was confirmed in this thread.Other reporters confirmed the problem on Windows 10, VS Code 1.100.0, Roo Code 3.16.5. One user with only the global config saw two processes for the same disabled server and a server that kept running after the editor closed; the same user noted Cursor's MCP client does not start disabled servers.
One user said they have to maintain a completely blank global MCP file and add each server individually at project level. Note that copying the global config into the project config did not work for them: Roo Code created a blank project file, and adding one project-level server produced two entries (global and project) and two processes for the same server.
General advice: after changing MCP settings, check your running processes, and if a server must not run at all, remove its entry from the config entirely.
Did this work for you?What a GitHub user tried on GitHub (Didn't work)
Added a broken MCP server, disabled it, and reopened Roo Code (latest version, OpenRouter). The disabled server was still started and its error appeared.
Source: https://github.com/RooCodeInc/Roo-Code/issues/2797 (opens external site)
Did this work for you?What @PrayagS tried on GitHub (Didn't work)
Added one server in the project-level MCP config and enabled it, expecting that to be the only enabled server. Instead got two entries for the same server (global and project) and two processes running for it.
Source: https://github.com/RooCodeInc/Roo-Code/issues/2797#issuecomment-2827627486 (opens external site)
Did this work for you?What @davibusanello tried on GitHub (Didn't work)
Used only the global MCP config with servers disabled and still saw two instances of the same server running, plus a server that kept running after the editor was closed.
Source: https://github.com/RooCodeInc/Roo-Code/issues/2797#issuecomment-2829361295 (opens external site)
Did this work for you?What @PrayagS tried on GitHub (Outcome unclear)
Proposed in a code review two fixes: make the disabled flag work per tool (like the 'always allow' flag) so the global disabled flag controls process state, or add a separate switch that keeps the process running while hidden. No outcome was reported.
Source: https://github.com/RooCodeInc/Roo-Code/issues/2797#issuecomment-2830925503 (opens external site)
Did this work for you?