claude-mpm 4.3.12__py3-none-any.whl → 4.3.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/PM_INSTRUCTIONS.md +390 -28
  3. claude_mpm/agents/templates/data_engineer.json +39 -14
  4. claude_mpm/cli/commands/agent_manager.py +3 -3
  5. claude_mpm/cli/commands/agents.py +2 -2
  6. claude_mpm/cli/commands/aggregate.py +1 -1
  7. claude_mpm/cli/commands/config.py +2 -2
  8. claude_mpm/cli/commands/configure.py +5 -5
  9. claude_mpm/cli/commands/configure_tui.py +7 -7
  10. claude_mpm/cli/commands/dashboard.py +1 -1
  11. claude_mpm/cli/commands/debug.py +5 -5
  12. claude_mpm/cli/commands/mcp.py +1 -1
  13. claude_mpm/cli/commands/mcp_command_router.py +1 -1
  14. claude_mpm/cli/commands/mcp_config.py +7 -10
  15. claude_mpm/cli/commands/mcp_external_commands.py +40 -32
  16. claude_mpm/cli/commands/mcp_install_commands.py +38 -10
  17. claude_mpm/cli/commands/mcp_setup_external.py +143 -102
  18. claude_mpm/cli/commands/monitor.py +2 -2
  19. claude_mpm/cli/commands/mpm_init_handler.py +1 -1
  20. claude_mpm/cli/commands/run.py +46 -2
  21. claude_mpm/cli/commands/search.py +41 -34
  22. claude_mpm/cli/interactive/agent_wizard.py +2 -2
  23. claude_mpm/cli/parsers/mcp_parser.py +1 -3
  24. claude_mpm/cli/parsers/search_parser.py +10 -4
  25. claude_mpm/cli/startup_logging.py +3 -5
  26. claude_mpm/cli/utils.py +1 -1
  27. claude_mpm/core/agent_registry.py +12 -8
  28. claude_mpm/core/agent_session_manager.py +8 -8
  29. claude_mpm/core/api_validator.py +4 -4
  30. claude_mpm/core/base_service.py +10 -10
  31. claude_mpm/core/cache.py +5 -5
  32. claude_mpm/core/config_constants.py +1 -1
  33. claude_mpm/core/container.py +1 -1
  34. claude_mpm/core/error_handler.py +2 -2
  35. claude_mpm/core/file_utils.py +1 -1
  36. claude_mpm/core/framework_loader.py +3 -3
  37. claude_mpm/core/hook_manager.py +8 -6
  38. claude_mpm/core/instruction_reinforcement_hook.py +2 -2
  39. claude_mpm/core/interactive_session.py +1 -1
  40. claude_mpm/core/lazy.py +3 -3
  41. claude_mpm/core/log_manager.py +16 -12
  42. claude_mpm/core/logger.py +16 -11
  43. claude_mpm/core/logging_config.py +4 -2
  44. claude_mpm/core/oneshot_session.py +1 -1
  45. claude_mpm/core/optimized_agent_loader.py +6 -6
  46. claude_mpm/core/output_style_manager.py +1 -1
  47. claude_mpm/core/pm_hook_interceptor.py +3 -3
  48. claude_mpm/core/service_registry.py +1 -1
  49. claude_mpm/core/session_manager.py +11 -9
  50. claude_mpm/core/socketio_pool.py +13 -13
  51. claude_mpm/core/types.py +2 -2
  52. claude_mpm/core/unified_agent_registry.py +2 -2
  53. claude_mpm/core/unified_paths.py +1 -1
  54. claude_mpm/dashboard/analysis_runner.py +4 -4
  55. claude_mpm/dashboard/api/simple_directory.py +1 -1
  56. claude_mpm/generators/agent_profile_generator.py +4 -2
  57. claude_mpm/hooks/base_hook.py +2 -2
  58. claude_mpm/hooks/claude_hooks/connection_pool.py +4 -4
  59. claude_mpm/hooks/claude_hooks/event_handlers.py +12 -12
  60. claude_mpm/hooks/claude_hooks/hook_handler.py +4 -4
  61. claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +3 -3
  62. claude_mpm/hooks/claude_hooks/hook_handler_original.py +15 -14
  63. claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +4 -4
  64. claude_mpm/hooks/claude_hooks/installer.py +3 -3
  65. claude_mpm/hooks/claude_hooks/memory_integration.py +3 -3
  66. claude_mpm/hooks/claude_hooks/response_tracking.py +3 -3
  67. claude_mpm/hooks/claude_hooks/services/connection_manager.py +5 -5
  68. claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +3 -3
  69. claude_mpm/hooks/claude_hooks/services/state_manager.py +8 -7
  70. claude_mpm/hooks/claude_hooks/services/subagent_processor.py +3 -3
  71. claude_mpm/hooks/claude_hooks/tool_analysis.py +2 -2
  72. claude_mpm/hooks/memory_integration_hook.py +1 -1
  73. claude_mpm/hooks/tool_call_interceptor.py +2 -2
  74. claude_mpm/models/agent_session.py +5 -5
  75. claude_mpm/services/__init__.py +1 -1
  76. claude_mpm/services/agent_capabilities_service.py +1 -1
  77. claude_mpm/services/agents/agent_builder.py +3 -3
  78. claude_mpm/services/agents/deployment/agent_deployment.py +2 -1
  79. claude_mpm/services/agents/deployment/agent_discovery_service.py +9 -3
  80. claude_mpm/services/agents/deployment/agent_filesystem_manager.py +7 -5
  81. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +3 -1
  82. claude_mpm/services/agents/deployment/agent_metrics_collector.py +1 -1
  83. claude_mpm/services/agents/deployment/agent_operation_service.py +2 -2
  84. claude_mpm/services/agents/deployment/agent_state_service.py +2 -2
  85. claude_mpm/services/agents/deployment/agent_template_builder.py +1 -1
  86. claude_mpm/services/agents/deployment/agent_versioning.py +1 -1
  87. claude_mpm/services/agents/deployment/deployment_wrapper.py +2 -3
  88. claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +1 -1
  89. claude_mpm/services/agents/loading/agent_profile_loader.py +5 -3
  90. claude_mpm/services/agents/loading/base_agent_manager.py +2 -2
  91. claude_mpm/services/agents/local_template_manager.py +6 -6
  92. claude_mpm/services/agents/management/agent_management_service.py +3 -3
  93. claude_mpm/services/agents/memory/content_manager.py +3 -3
  94. claude_mpm/services/agents/memory/memory_format_service.py +2 -2
  95. claude_mpm/services/agents/memory/template_generator.py +3 -3
  96. claude_mpm/services/agents/registry/__init__.py +1 -1
  97. claude_mpm/services/agents/registry/modification_tracker.py +2 -2
  98. claude_mpm/services/async_session_logger.py +3 -3
  99. claude_mpm/services/claude_session_logger.py +4 -4
  100. claude_mpm/services/cli/agent_listing_service.py +1 -1
  101. claude_mpm/services/cli/agent_validation_service.py +1 -0
  102. claude_mpm/services/cli/memory_crud_service.py +11 -6
  103. claude_mpm/services/cli/memory_output_formatter.py +1 -1
  104. claude_mpm/services/cli/session_manager.py +15 -11
  105. claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
  106. claude_mpm/services/core/memory_manager.py +81 -23
  107. claude_mpm/services/core/path_resolver.py +2 -2
  108. claude_mpm/services/diagnostics/checks/installation_check.py +1 -1
  109. claude_mpm/services/event_aggregator.py +4 -2
  110. claude_mpm/services/event_bus/direct_relay.py +5 -3
  111. claude_mpm/services/event_bus/event_bus.py +3 -3
  112. claude_mpm/services/event_bus/relay.py +6 -4
  113. claude_mpm/services/events/consumers/dead_letter.py +5 -3
  114. claude_mpm/services/events/core.py +3 -3
  115. claude_mpm/services/events/producers/hook.py +6 -6
  116. claude_mpm/services/events/producers/system.py +8 -8
  117. claude_mpm/services/exceptions.py +5 -5
  118. claude_mpm/services/framework_claude_md_generator/content_assembler.py +3 -3
  119. claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +2 -2
  120. claude_mpm/services/hook_installer_service.py +1 -1
  121. claude_mpm/services/infrastructure/context_preservation.py +6 -4
  122. claude_mpm/services/infrastructure/daemon_manager.py +2 -2
  123. claude_mpm/services/infrastructure/logging.py +2 -2
  124. claude_mpm/services/mcp_config_manager.py +175 -30
  125. claude_mpm/services/mcp_gateway/__init__.py +1 -1
  126. claude_mpm/services/mcp_gateway/auto_configure.py +3 -3
  127. claude_mpm/services/mcp_gateway/config/config_loader.py +1 -1
  128. claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
  129. claude_mpm/services/mcp_gateway/core/base.py +2 -2
  130. claude_mpm/services/mcp_gateway/main.py +21 -7
  131. claude_mpm/services/mcp_gateway/registry/tool_registry.py +10 -8
  132. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +4 -4
  133. claude_mpm/services/mcp_gateway/server/stdio_handler.py +1 -1
  134. claude_mpm/services/mcp_gateway/server/stdio_server.py +4 -3
  135. claude_mpm/services/mcp_gateway/tools/base_adapter.py +15 -15
  136. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +7 -5
  137. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +190 -137
  138. claude_mpm/services/mcp_gateway/tools/health_check_tool.py +5 -5
  139. claude_mpm/services/mcp_gateway/tools/hello_world.py +9 -9
  140. claude_mpm/services/mcp_gateway/tools/ticket_tools.py +16 -16
  141. claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +17 -17
  142. claude_mpm/services/memory/builder.py +7 -5
  143. claude_mpm/services/memory/indexed_memory.py +4 -4
  144. claude_mpm/services/memory/optimizer.py +6 -6
  145. claude_mpm/services/memory/router.py +3 -3
  146. claude_mpm/services/monitor/daemon.py +1 -1
  147. claude_mpm/services/monitor/daemon_manager.py +6 -6
  148. claude_mpm/services/monitor/event_emitter.py +2 -2
  149. claude_mpm/services/monitor/handlers/file.py +1 -1
  150. claude_mpm/services/monitor/management/lifecycle.py +1 -1
  151. claude_mpm/services/monitor/server.py +4 -4
  152. claude_mpm/services/monitor_build_service.py +2 -2
  153. claude_mpm/services/port_manager.py +2 -2
  154. claude_mpm/services/response_tracker.py +2 -2
  155. claude_mpm/services/session_management_service.py +3 -2
  156. claude_mpm/services/socketio/client_proxy.py +2 -2
  157. claude_mpm/services/socketio/dashboard_server.py +4 -3
  158. claude_mpm/services/socketio/event_normalizer.py +12 -8
  159. claude_mpm/services/socketio/handlers/base.py +2 -2
  160. claude_mpm/services/socketio/handlers/connection.py +10 -10
  161. claude_mpm/services/socketio/handlers/connection_handler.py +13 -10
  162. claude_mpm/services/socketio/handlers/file.py +1 -1
  163. claude_mpm/services/socketio/handlers/git.py +1 -1
  164. claude_mpm/services/socketio/handlers/hook.py +16 -15
  165. claude_mpm/services/socketio/migration_utils.py +1 -1
  166. claude_mpm/services/socketio/monitor_client.py +5 -5
  167. claude_mpm/services/socketio/server/broadcaster.py +9 -7
  168. claude_mpm/services/socketio/server/connection_manager.py +2 -2
  169. claude_mpm/services/socketio/server/core.py +7 -5
  170. claude_mpm/services/socketio/server/eventbus_integration.py +18 -11
  171. claude_mpm/services/socketio/server/main.py +13 -13
  172. claude_mpm/services/socketio_client_manager.py +4 -4
  173. claude_mpm/services/system_instructions_service.py +2 -2
  174. claude_mpm/services/ticket_services/validation_service.py +1 -1
  175. claude_mpm/services/utility_service.py +5 -2
  176. claude_mpm/services/version_control/branch_strategy.py +2 -2
  177. claude_mpm/services/version_control/git_operations.py +22 -20
  178. claude_mpm/services/version_control/semantic_versioning.py +3 -3
  179. claude_mpm/services/version_control/version_parser.py +7 -5
  180. claude_mpm/services/visualization/mermaid_generator.py +1 -1
  181. claude_mpm/storage/state_storage.py +1 -1
  182. claude_mpm/tools/code_tree_analyzer.py +19 -18
  183. claude_mpm/tools/code_tree_builder.py +2 -2
  184. claude_mpm/tools/code_tree_events.py +10 -8
  185. claude_mpm/tools/socketio_debug.py +3 -3
  186. claude_mpm/utils/agent_dependency_loader.py +2 -2
  187. claude_mpm/utils/dependency_strategies.py +8 -3
  188. claude_mpm/utils/environment_context.py +2 -2
  189. claude_mpm/utils/error_handler.py +2 -2
  190. claude_mpm/utils/file_utils.py +1 -1
  191. claude_mpm/utils/imports.py +1 -1
  192. claude_mpm/utils/log_cleanup.py +21 -7
  193. claude_mpm/validation/agent_validator.py +2 -2
  194. {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.13.dist-info}/METADATA +1 -1
  195. {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.13.dist-info}/RECORD +199 -199
  196. {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.13.dist-info}/WHEEL +0 -0
  197. {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.13.dist-info}/entry_points.txt +0 -0
  198. {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.13.dist-info}/licenses/LICENSE +0 -0
  199. {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.13.dist-info}/top_level.txt +0 -0
@@ -4,8 +4,6 @@ This module provides commands for managing external MCP services
4
4
  like mcp-vector-search and mcp-browser.
5
5
  """
6
6
 
7
- import sys
8
-
9
7
 
10
8
  class MCPExternalCommands:
11
9
  """Handles MCP external service commands."""
@@ -14,7 +12,7 @@ class MCPExternalCommands:
14
12
  """Initialize the MCP external commands handler."""
15
13
  self.logger = logger
16
14
 
17
- def manage_external(self, args):
15
+ def manage_external(self, args): # noqa: PLR0911
18
16
  """Manage external MCP services.
19
17
 
20
18
  Args:
@@ -24,7 +22,7 @@ class MCPExternalCommands:
24
22
  int: Exit code (0 for success, non-zero for failure)
25
23
  """
26
24
  # Get the external subcommand if it exists
27
- external_action = getattr(args, 'external_action', None)
25
+ external_action = getattr(args, "external_action", None)
28
26
 
29
27
  if not external_action:
30
28
  # No subcommand provided, show help
@@ -34,18 +32,17 @@ class MCPExternalCommands:
34
32
  # Route to appropriate handler
35
33
  if external_action == "setup":
36
34
  return self._setup_external(args)
37
- elif external_action == "list":
35
+ if external_action == "list":
38
36
  return self._list_external(args)
39
- elif external_action == "check":
37
+ if external_action == "check":
40
38
  return self._check_external(args)
41
- elif external_action == "fix-browser":
39
+ if external_action == "fix-browser":
42
40
  return self._fix_browser(args)
43
- elif external_action == "detect":
41
+ if external_action == "detect":
44
42
  return self._detect_and_update(args)
45
- else:
46
- print(f"Unknown external subcommand: {external_action}")
47
- self._show_help()
48
- return 1
43
+ print(f"Unknown external subcommand: {external_action}")
44
+ self._show_help()
45
+ return 1
49
46
 
50
47
  def _setup_external(self, args):
51
48
  """Setup external MCP services in Claude Desktop.
@@ -72,7 +69,7 @@ class MCPExternalCommands:
72
69
 
73
70
  # Then configure in Claude Desktop
74
71
  print("\n2️⃣ Configuring Claude Desktop...")
75
- force = getattr(args, 'force', False)
72
+ force = getattr(args, "force", False)
76
73
  if setup.setup_external_services(force=force):
77
74
  print("\n✅ External services setup completed successfully!")
78
75
  print("\nNext steps:")
@@ -80,10 +77,9 @@ class MCPExternalCommands:
80
77
  print("2. Check status with: claude-mpm mcp external list")
81
78
  print("3. The services will be available in Claude as separate MCP servers")
82
79
  return 0
83
- else:
84
- print("\n❌ Failed to setup external services")
85
- print("Please check the error messages above and try again")
86
- return 1
80
+ print("\n❌ Failed to setup external services")
81
+ print("Please check the error messages above and try again")
82
+ return 1
87
83
 
88
84
  def _list_external(self, args):
89
85
  """List external MCP services and their status.
@@ -112,16 +108,24 @@ class MCPExternalCommands:
112
108
  print("🔍 Checking External MCP Services Configuration")
113
109
  print("=" * 50)
114
110
 
115
- from pathlib import Path
116
111
  import json
112
+ from pathlib import Path
117
113
 
118
114
  # Check Claude Desktop configuration
119
115
  config_paths = [
120
- Path.home() / "Library" / "Application Support" / "Claude" / "claude_desktop_config.json", # macOS
116
+ Path.home()
117
+ / "Library"
118
+ / "Application Support"
119
+ / "Claude"
120
+ / "claude_desktop_config.json", # macOS
121
121
  Path.home() / ".config" / "Claude" / "claude_desktop_config.json", # Linux
122
- Path.home() / "AppData" / "Roaming" / "Claude" / "claude_desktop_config.json", # Windows
122
+ Path.home()
123
+ / "AppData"
124
+ / "Roaming"
125
+ / "Claude"
126
+ / "claude_desktop_config.json", # Windows
123
127
  Path.home() / ".claude" / "claude_desktop_config.json", # Alternative
124
- Path.home() / ".claude.json" # Legacy
128
+ Path.home() / ".claude.json", # Legacy
125
129
  ]
126
130
 
127
131
  config_found = False
@@ -164,7 +168,7 @@ class MCPExternalCommands:
164
168
 
165
169
  packages = [
166
170
  ("mcp-vector-search", "mcp_vector_search"),
167
- ("mcp-browser", "mcp_browser")
171
+ ("mcp-browser", "mcp_browser"),
168
172
  ]
169
173
 
170
174
  for package_name, module_name in packages:
@@ -189,8 +193,7 @@ class MCPExternalCommands:
189
193
  setup = MCPExternalServicesSetup(self.logger)
190
194
  if setup.fix_browser_configuration():
191
195
  return 0
192
- else:
193
- return 1
196
+ return 1
194
197
 
195
198
  def _detect_and_update(self, args):
196
199
  """Auto-detect MCP service installations and update configuration.
@@ -206,7 +209,7 @@ class MCPExternalCommands:
206
209
  from .mcp_setup_external import MCPExternalServicesSetup
207
210
 
208
211
  setup = MCPExternalServicesSetup(self.logger)
209
- force = getattr(args, 'force', False)
212
+ force = getattr(args, "force", False)
210
213
 
211
214
  if setup.update_mcp_json_with_detected(force=force):
212
215
  print("\n✅ Configuration updated successfully!")
@@ -214,28 +217,33 @@ class MCPExternalCommands:
214
217
  print("1. Review the .mcp.json file to verify the configuration")
215
218
  print("2. Restart Claude Desktop to load the updated services")
216
219
  return 0
217
- else:
218
- print("\n❌ Failed to update configuration")
219
- return 1
220
+ print("\n❌ Failed to update configuration")
221
+ return 1
220
222
 
221
223
  def _show_help(self):
222
224
  """Show help for external commands."""
223
225
  print("\nMCP External Services Management")
224
226
  print("=" * 40)
225
227
  print("\nAvailable commands:")
226
- print(" setup - Setup external MCP services (mcp-vector-search, mcp-browser)")
228
+ print(
229
+ " setup - Setup external MCP services (mcp-vector-search, mcp-browser)"
230
+ )
227
231
  print(" list - List available external services and their status")
228
232
  print(" check - Check configuration and installation status")
229
- print(" detect - Auto-detect installations and update .mcp.json (prioritizes local dev)")
233
+ print(
234
+ " detect - Auto-detect installations and update .mcp.json (prioritizes local dev)"
235
+ )
230
236
  print(" fix-browser - Fix mcp-browser configuration to use pipx installation")
231
237
  print("\nUsage:")
232
238
  print(" claude-mpm mcp external setup # Interactive setup")
233
239
  print(" claude-mpm mcp external setup --force # Force reconfiguration")
234
240
  print(" claude-mpm mcp external detect # Auto-detect and update config")
235
- print(" claude-mpm mcp external detect --force # Force update even if configured")
241
+ print(
242
+ " claude-mpm mcp external detect --force # Force update even if configured"
243
+ )
236
244
  print(" claude-mpm mcp external list # Show service status")
237
245
  print(" claude-mpm mcp external check # Detailed configuration check")
238
246
  print(" claude-mpm mcp external fix-browser # Fix mcp-browser to use pipx")
239
247
  print("\nExternal services provide additional capabilities:")
240
248
  print(" - mcp-vector-search: Semantic code search with embeddings")
241
- print(" - mcp-browser: Web browsing and content extraction")
249
+ print(" - mcp-browser: Web browsing and content extraction")
@@ -61,7 +61,13 @@ class MCPInstallCommands:
61
61
  external_setup = MCPExternalServicesSetup(self.logger)
62
62
 
63
63
  # Check if user wants to set up external services
64
- response = input("\nDo you want to set up external MCP services (mcp-vector-search, mcp-browser)? (Y/n): ").strip().lower()
64
+ response = (
65
+ input(
66
+ "\nDo you want to set up external MCP services (mcp-vector-search, mcp-browser)? (Y/n): "
67
+ )
68
+ .strip()
69
+ .lower()
70
+ )
65
71
  if response in ["", "y", "yes"]:
66
72
  # Install Python packages for external services
67
73
  external_setup.check_and_install_pip_packages()
@@ -73,7 +79,9 @@ class MCPInstallCommands:
73
79
  print("⚠️ Some external services may not have been configured")
74
80
  else:
75
81
  print("⏭️ Skipping external services setup")
76
- print(" You can set them up later with: claude-mpm mcp external setup")
82
+ print(
83
+ " You can set them up later with: claude-mpm mcp external setup"
84
+ )
77
85
 
78
86
  print("\n✅ Configuration completed successfully")
79
87
  print("\n🎉 MCP Gateway is ready to use!")
@@ -167,9 +175,17 @@ class MCPInstallCommands:
167
175
 
168
176
  # Try multiple possible locations for Claude Desktop config
169
177
  possible_paths = [
170
- Path.home() / "Library" / "Application Support" / "Claude" / "claude_desktop_config.json", # macOS
178
+ Path.home()
179
+ / "Library"
180
+ / "Application Support"
181
+ / "Claude"
182
+ / "claude_desktop_config.json", # macOS
171
183
  Path.home() / ".config" / "Claude" / "claude_desktop_config.json", # Linux
172
- Path.home() / "AppData" / "Roaming" / "Claude" / "claude_desktop_config.json", # Windows
184
+ Path.home()
185
+ / "AppData"
186
+ / "Roaming"
187
+ / "Claude"
188
+ / "claude_desktop_config.json", # Windows
173
189
  Path.home() / ".claude" / "claude_desktop_config.json", # Alternative
174
190
  Path.home() / ".claude.json", # Legacy
175
191
  ]
@@ -181,11 +197,23 @@ class MCPInstallCommands:
181
197
  # If none exist, return the platform-appropriate default
182
198
  system = platform.system()
183
199
  if system == "Darwin": # macOS
184
- return Path.home() / "Library" / "Application Support" / "Claude" / "claude_desktop_config.json"
185
- elif system == "Windows":
186
- return Path.home() / "AppData" / "Roaming" / "Claude" / "claude_desktop_config.json"
187
- else: # Linux and others
188
- return Path.home() / ".config" / "Claude" / "claude_desktop_config.json"
200
+ return (
201
+ Path.home()
202
+ / "Library"
203
+ / "Application Support"
204
+ / "Claude"
205
+ / "claude_desktop_config.json"
206
+ )
207
+ if system == "Windows":
208
+ return (
209
+ Path.home()
210
+ / "AppData"
211
+ / "Roaming"
212
+ / "Claude"
213
+ / "claude_desktop_config.json"
214
+ )
215
+ # Linux and others
216
+ return Path.home() / ".config" / "Claude" / "claude_desktop_config.json"
189
217
 
190
218
  def _find_claude_mpm_executable(self):
191
219
  """Find the claude-mpm executable path.
@@ -281,7 +309,7 @@ class MCPInstallCommands:
281
309
  existing_config = json.load(f)
282
310
  config = existing_config
283
311
  print(" Force mode: Overwriting existing configuration")
284
- except:
312
+ except Exception:
285
313
  pass # File doesn't exist or is invalid, start fresh
286
314
 
287
315
  # Ensure mcpServers section exists