Summary
Discover MCP configs under VS Code workspaceStorage and user profiles (GAP-096).
Problem
GAP-096 is Missing (P0). Inventory only checks well-known static paths in client_registry.py.
Related gap (validated 2026-06-17): --config-path on a VS Code settings.json file that uses the mcp.servers shape returns zero entries because parse_config_file("user", path) only applies the VS Code extractor when client == "vscode". Explicit --config-path hardcodes client label "user". Standard mcpServers JSON works; VS Code nested settings format does not.
Expected Behavior
- Expand auto-discovery to workspaceStorage / profiles per plan.
- When
--config-path points at a VS Code settings file, detect mcp.servers (and other known shapes) from payload structure, not only from client registry label.
Evidence
src/mcts/inventory/discoverers.py — _extract_mcp_servers, parse_config_file
src/mcts/inventory/runner.py — config_path branch uses parse_config_file("user", path)
References
Acceptance Criteria
Summary
Discover MCP configs under VS Code
workspaceStorageand user profiles (GAP-096).Problem
GAP-096 is Missing (P0). Inventory only checks well-known static paths in
client_registry.py.Related gap (validated 2026-06-17):
--config-pathon a VS Codesettings.jsonfile that uses themcp.serversshape returns zero entries becauseparse_config_file("user", path)only applies the VS Code extractor whenclient == "vscode". Explicit--config-pathhardcodes client label"user". StandardmcpServersJSON works; VS Code nested settings format does not.Expected Behavior
--config-pathpoints at a VS Code settings file, detectmcp.servers(and other known shapes) from payload structure, not only from client registry label.Evidence
src/mcts/inventory/discoverers.py—_extract_mcp_servers,parse_config_filesrc/mcts/inventory/runner.py—config_pathbranch usesparse_config_file("user", path)References
docs/scanning/inventory.mdplanned gapsmcts inventoryreads local MCP configs without consent gate #87 / PR feat(inventory): add privacy controls for config discovery (#87) #279 —--config-pathshippedAcceptance Criteria
--config-pathparses VS Codemcp.serverssettings filesdocs/scanning/inventory.md