Problem
DebugMCP supports selecting a launch.json configuration when starting a debug session via configurationName.
However, when multiple debug sessions are running within the same VS Code workspace, stop_debugging and restart_debugging provide no way to specify which session they should operate on.
For example, a launch.json may contain two configurations:
Both configurations use the exact same:
but have different environment variables, such as APPLICATION_DOMAIN and HTTP_PORT.
Therefore, once both sessions are running, there is no unambiguous way for stop_debugging or restart_debugging to target one of them.
Relation to #25 / #104
This does not appear to be a duplicate of #25.
PR #104 added support for concurrent debug sessions across different VS Code windows/workspaces by routing requests to the appropriate workspace.
This issue is about a different level of concurrency: multiple debug sessions within the same workspace.
Workspace-level routing therefore isn't sufficient to distinguish the sessions.
Possible solution
One option would be to expose a debug session identifier and allow operations such as:
stop_debugging(sessionId)
restart_debugging(sessionId)
However, the MCP client should not necessarily be expected to already know the session ID. A debug session may have been started manually in VS Code, or by another client/session.
A list_debug_sessions operation could therefore expose the currently active debug sessions, including their identifiers and useful information such as the configuration name, program, and state. The client could then identify the appropriate session and use its sessionId when calling stop_debugging or restart_debugging.
For example:
list_debug_sessions()
↓
[
{ id: "abc", configurationName: "Admin site", ... },
{ id: "def", configurationName: "Customer site", ... }
]
↓
restart_debugging("def")
Alternatively, allowing stop_debugging / restart_debugging to directly target a configurationName could address the common launch.json use case, although a session ID would be more robust when multiple instances of the same configuration are running.
Thanks!
Problem
DebugMCP supports selecting a
launch.jsonconfiguration when starting a debug session viaconfigurationName.However, when multiple debug sessions are running within the same VS Code workspace,
stop_debuggingandrestart_debuggingprovide no way to specify which session they should operate on.For example, a
launch.jsonmay contain two configurations:Both configurations use the exact same:
programcwdbut have different environment variables, such as
APPLICATION_DOMAINandHTTP_PORT.Therefore, once both sessions are running, there is no unambiguous way for
stop_debuggingorrestart_debuggingto target one of them.Relation to #25 / #104
This does not appear to be a duplicate of #25.
PR #104 added support for concurrent debug sessions across different VS Code windows/workspaces by routing requests to the appropriate workspace.
This issue is about a different level of concurrency: multiple debug sessions within the same workspace.
Workspace-level routing therefore isn't sufficient to distinguish the sessions.
Possible solution
One option would be to expose a debug session identifier and allow operations such as:
However, the MCP client should not necessarily be expected to already know the session ID. A debug session may have been started manually in VS Code, or by another client/session.
A
list_debug_sessionsoperation could therefore expose the currently active debug sessions, including their identifiers and useful information such as the configuration name, program, and state. The client could then identify the appropriate session and use itssessionIdwhen callingstop_debuggingorrestart_debugging.For example:
Alternatively, allowing
stop_debugging/restart_debuggingto directly target aconfigurationNamecould address the commonlaunch.jsonuse case, although a session ID would be more robust when multiple instances of the same configuration are running.Thanks!