claude-mpm 4.3.12__py3-none-any.whl → 4.3.14__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.
- claude_mpm/VERSION +1 -1
- claude_mpm/agents/PM_INSTRUCTIONS.md +414 -28
- claude_mpm/agents/templates/data_engineer.json +39 -14
- claude_mpm/agents/templates/engineer.json +11 -3
- claude_mpm/cli/commands/agent_manager.py +3 -3
- claude_mpm/cli/commands/agents.py +2 -2
- claude_mpm/cli/commands/aggregate.py +1 -1
- claude_mpm/cli/commands/config.py +2 -2
- claude_mpm/cli/commands/configure.py +5 -5
- claude_mpm/cli/commands/configure_tui.py +7 -7
- claude_mpm/cli/commands/dashboard.py +1 -1
- claude_mpm/cli/commands/debug.py +5 -5
- claude_mpm/cli/commands/mcp.py +1 -1
- claude_mpm/cli/commands/mcp_command_router.py +1 -1
- claude_mpm/cli/commands/mcp_config.py +7 -10
- claude_mpm/cli/commands/mcp_external_commands.py +40 -32
- claude_mpm/cli/commands/mcp_install_commands.py +38 -10
- claude_mpm/cli/commands/mcp_setup_external.py +143 -102
- claude_mpm/cli/commands/monitor.py +2 -2
- claude_mpm/cli/commands/mpm_init_handler.py +1 -1
- claude_mpm/cli/commands/run.py +54 -2
- claude_mpm/cli/commands/search.py +41 -34
- claude_mpm/cli/interactive/agent_wizard.py +6 -2
- claude_mpm/cli/parsers/mcp_parser.py +1 -3
- claude_mpm/cli/parsers/search_parser.py +10 -4
- claude_mpm/cli/startup_logging.py +158 -5
- claude_mpm/cli/utils.py +1 -1
- claude_mpm/core/agent_registry.py +2 -2
- claude_mpm/core/agent_session_manager.py +8 -8
- claude_mpm/core/api_validator.py +6 -4
- claude_mpm/core/base_service.py +10 -10
- claude_mpm/core/cache.py +5 -5
- claude_mpm/core/config_constants.py +1 -1
- claude_mpm/core/container.py +1 -1
- claude_mpm/core/error_handler.py +2 -2
- claude_mpm/core/file_utils.py +1 -1
- claude_mpm/core/framework_loader.py +3 -3
- claude_mpm/core/hook_manager.py +8 -6
- claude_mpm/core/instruction_reinforcement_hook.py +2 -2
- claude_mpm/core/interactive_session.py +3 -1
- claude_mpm/core/lazy.py +3 -3
- claude_mpm/core/log_manager.py +16 -12
- claude_mpm/core/logger.py +16 -11
- claude_mpm/core/optimized_agent_loader.py +6 -6
- claude_mpm/core/output_style_manager.py +1 -1
- claude_mpm/core/pm_hook_interceptor.py +3 -3
- claude_mpm/core/service_registry.py +1 -1
- claude_mpm/core/session_manager.py +11 -9
- claude_mpm/core/socketio_pool.py +13 -13
- claude_mpm/core/types.py +2 -2
- claude_mpm/core/unified_agent_registry.py +2 -2
- claude_mpm/core/unified_paths.py +1 -1
- claude_mpm/dashboard/analysis_runner.py +4 -4
- claude_mpm/dashboard/api/simple_directory.py +1 -1
- claude_mpm/generators/agent_profile_generator.py +4 -2
- claude_mpm/hooks/base_hook.py +2 -2
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/connection_pool.py +4 -4
- claude_mpm/hooks/claude_hooks/event_handlers.py +12 -12
- claude_mpm/hooks/claude_hooks/hook_handler.py +4 -4
- claude_mpm/hooks/claude_hooks/hook_handler_eventbus.py +3 -3
- claude_mpm/hooks/claude_hooks/hook_handler_original.py +15 -14
- claude_mpm/hooks/claude_hooks/hook_handler_refactored.py +4 -4
- claude_mpm/hooks/claude_hooks/installer.py +3 -3
- claude_mpm/hooks/claude_hooks/memory_integration.py +3 -3
- claude_mpm/hooks/claude_hooks/response_tracking.py +3 -3
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/connection_manager.py +8 -5
- claude_mpm/hooks/claude_hooks/services/connection_manager_http.py +3 -3
- claude_mpm/hooks/claude_hooks/services/state_manager.py +8 -7
- claude_mpm/hooks/claude_hooks/services/subagent_processor.py +3 -3
- claude_mpm/hooks/claude_hooks/tool_analysis.py +2 -2
- claude_mpm/hooks/memory_integration_hook.py +1 -1
- claude_mpm/hooks/tool_call_interceptor.py +2 -2
- claude_mpm/models/agent_session.py +7 -5
- claude_mpm/scripts/mcp_server.py +0 -0
- claude_mpm/scripts/start_activity_logging.py +0 -0
- claude_mpm/services/__init__.py +1 -1
- claude_mpm/services/agent_capabilities_service.py +1 -1
- claude_mpm/services/agents/agent_builder.py +3 -3
- claude_mpm/services/agents/deployment/agent_deployment.py +2 -1
- claude_mpm/services/agents/deployment/agent_discovery_service.py +9 -3
- claude_mpm/services/agents/deployment/agent_filesystem_manager.py +5 -5
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +3 -1
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +1 -1
- claude_mpm/services/agents/deployment/agent_operation_service.py +2 -2
- claude_mpm/services/agents/deployment/agent_state_service.py +2 -2
- claude_mpm/services/agents/deployment/agent_template_builder.py +1 -1
- claude_mpm/services/agents/deployment/agent_versioning.py +1 -1
- claude_mpm/services/agents/deployment/deployment_wrapper.py +2 -3
- claude_mpm/services/agents/deployment/pipeline/steps/agent_processing_step.py +1 -1
- claude_mpm/services/agents/loading/agent_profile_loader.py +5 -3
- claude_mpm/services/agents/loading/base_agent_manager.py +2 -2
- claude_mpm/services/agents/local_template_manager.py +6 -6
- claude_mpm/services/agents/management/agent_management_service.py +3 -3
- claude_mpm/services/agents/memory/content_manager.py +3 -3
- claude_mpm/services/agents/memory/memory_format_service.py +2 -2
- claude_mpm/services/agents/memory/template_generator.py +3 -3
- claude_mpm/services/agents/registry/modification_tracker.py +2 -2
- claude_mpm/services/async_session_logger.py +3 -3
- claude_mpm/services/claude_session_logger.py +4 -4
- claude_mpm/services/cli/agent_listing_service.py +3 -1
- claude_mpm/services/cli/agent_validation_service.py +2 -0
- claude_mpm/services/cli/memory_crud_service.py +11 -6
- claude_mpm/services/cli/memory_output_formatter.py +1 -1
- claude_mpm/services/cli/session_manager.py +15 -11
- claude_mpm/services/core/memory_manager.py +81 -23
- claude_mpm/services/core/path_resolver.py +1 -1
- claude_mpm/services/diagnostics/checks/installation_check.py +1 -1
- claude_mpm/services/event_aggregator.py +4 -2
- claude_mpm/services/event_bus/direct_relay.py +5 -3
- claude_mpm/services/event_bus/event_bus.py +3 -3
- claude_mpm/services/event_bus/relay.py +6 -4
- claude_mpm/services/events/consumers/dead_letter.py +5 -3
- claude_mpm/services/events/core.py +3 -3
- claude_mpm/services/events/producers/hook.py +6 -6
- claude_mpm/services/events/producers/system.py +8 -8
- claude_mpm/services/exceptions.py +5 -5
- claude_mpm/services/framework_claude_md_generator/content_assembler.py +3 -3
- claude_mpm/services/framework_claude_md_generator/section_generators/__init__.py +2 -2
- claude_mpm/services/hook_installer_service.py +1 -1
- claude_mpm/services/infrastructure/context_preservation.py +6 -4
- claude_mpm/services/infrastructure/daemon_manager.py +2 -2
- claude_mpm/services/infrastructure/logging.py +2 -2
- claude_mpm/services/mcp_config_manager.py +175 -30
- claude_mpm/services/mcp_gateway/__init__.py +1 -1
- claude_mpm/services/mcp_gateway/auto_configure.py +3 -3
- claude_mpm/services/mcp_gateway/config/config_loader.py +1 -1
- claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
- claude_mpm/services/mcp_gateway/core/base.py +2 -2
- claude_mpm/services/mcp_gateway/main.py +21 -7
- claude_mpm/services/mcp_gateway/registry/tool_registry.py +10 -8
- claude_mpm/services/mcp_gateway/server/mcp_gateway.py +4 -4
- claude_mpm/services/mcp_gateway/server/stdio_handler.py +1 -1
- claude_mpm/services/mcp_gateway/server/stdio_server.py +5 -2
- claude_mpm/services/mcp_gateway/tools/base_adapter.py +15 -15
- claude_mpm/services/mcp_gateway/tools/document_summarizer.py +7 -5
- claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +190 -137
- claude_mpm/services/mcp_gateway/tools/health_check_tool.py +5 -5
- claude_mpm/services/mcp_gateway/tools/hello_world.py +9 -9
- claude_mpm/services/mcp_gateway/tools/ticket_tools.py +16 -16
- claude_mpm/services/mcp_gateway/tools/unified_ticket_tool.py +16 -16
- claude_mpm/services/memory/builder.py +7 -5
- claude_mpm/services/memory/indexed_memory.py +4 -4
- claude_mpm/services/memory/optimizer.py +6 -6
- claude_mpm/services/memory/router.py +3 -3
- claude_mpm/services/monitor/daemon.py +1 -1
- claude_mpm/services/monitor/daemon_manager.py +6 -6
- claude_mpm/services/monitor/event_emitter.py +2 -2
- claude_mpm/services/monitor/management/lifecycle.py +3 -1
- claude_mpm/services/monitor/server.py +4 -4
- claude_mpm/services/monitor_build_service.py +2 -2
- claude_mpm/services/port_manager.py +3 -1
- claude_mpm/services/response_tracker.py +2 -2
- claude_mpm/services/session_management_service.py +3 -2
- claude_mpm/services/socketio/client_proxy.py +2 -2
- claude_mpm/services/socketio/dashboard_server.py +4 -3
- claude_mpm/services/socketio/event_normalizer.py +11 -7
- claude_mpm/services/socketio/handlers/base.py +2 -2
- claude_mpm/services/socketio/handlers/connection.py +10 -10
- claude_mpm/services/socketio/handlers/connection_handler.py +13 -10
- claude_mpm/services/socketio/handlers/hook.py +16 -15
- claude_mpm/services/socketio/migration_utils.py +1 -1
- claude_mpm/services/socketio/monitor_client.py +5 -5
- claude_mpm/services/socketio/server/broadcaster.py +9 -7
- claude_mpm/services/socketio/server/connection_manager.py +2 -2
- claude_mpm/services/socketio/server/core.py +7 -5
- claude_mpm/services/socketio/server/eventbus_integration.py +18 -12
- claude_mpm/services/socketio/server/main.py +13 -13
- claude_mpm/services/socketio_client_manager.py +4 -4
- claude_mpm/services/system_instructions_service.py +2 -2
- claude_mpm/services/utility_service.py +5 -2
- claude_mpm/services/version_control/branch_strategy.py +2 -2
- claude_mpm/services/version_control/git_operations.py +22 -20
- claude_mpm/services/version_control/semantic_versioning.py +3 -3
- claude_mpm/services/version_control/version_parser.py +7 -5
- claude_mpm/services/visualization/mermaid_generator.py +3 -1
- claude_mpm/storage/state_storage.py +1 -1
- claude_mpm/tools/code_tree_analyzer.py +23 -18
- claude_mpm/tools/code_tree_builder.py +2 -2
- claude_mpm/tools/code_tree_events.py +10 -8
- claude_mpm/tools/socketio_debug.py +3 -3
- claude_mpm/utils/agent_dependency_loader.py +6 -2
- claude_mpm/utils/dependency_strategies.py +8 -3
- claude_mpm/utils/environment_context.py +1 -1
- claude_mpm/utils/error_handler.py +2 -2
- claude_mpm/utils/file_utils.py +1 -1
- claude_mpm/utils/log_cleanup.py +21 -7
- claude_mpm/validation/agent_validator.py +2 -2
- {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.14.dist-info}/METADATA +1 -1
- {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.14.dist-info}/RECORD +204 -191
- {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.14.dist-info}/WHEEL +0 -0
- {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.14.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.14.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.3.12.dist-info → claude_mpm-4.3.14.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,
|
|
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
|
-
|
|
35
|
+
if external_action == "list":
|
|
38
36
|
return self._list_external(args)
|
|
39
|
-
|
|
37
|
+
if external_action == "check":
|
|
40
38
|
return self._check_external(args)
|
|
41
|
-
|
|
39
|
+
if external_action == "fix-browser":
|
|
42
40
|
return self._fix_browser(args)
|
|
43
|
-
|
|
41
|
+
if external_action == "detect":
|
|
44
42
|
return self._detect_and_update(args)
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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,
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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()
|
|
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()
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
218
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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 =
|
|
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(
|
|
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()
|
|
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()
|
|
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
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
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
|