claude-mpm 4.4.4__py3-none-any.whl → 4.4.6__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 (26) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/cli/commands/mcp_external_commands.py +7 -7
  3. claude_mpm/cli/commands/mcp_install_commands.py +9 -9
  4. claude_mpm/cli/commands/mcp_setup_external.py +6 -6
  5. claude_mpm/hooks/kuzu_memory_hook.py +4 -2
  6. claude_mpm/services/diagnostics/checks/__init__.py +2 -2
  7. claude_mpm/services/diagnostics/checks/{claude_desktop_check.py → claude_code_check.py} +95 -112
  8. claude_mpm/services/diagnostics/checks/mcp_check.py +6 -6
  9. claude_mpm/services/diagnostics/checks/mcp_services_check.py +97 -22
  10. claude_mpm/services/diagnostics/diagnostic_runner.py +5 -5
  11. claude_mpm/services/diagnostics/doctor_reporter.py +4 -4
  12. claude_mpm/services/mcp_config_manager.py +314 -47
  13. claude_mpm/services/mcp_gateway/core/process_pool.py +11 -8
  14. claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +4 -4
  15. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +8 -4
  16. claude_mpm/services/project/project_organizer.py +8 -1
  17. claude_mpm/services/unified/analyzer_strategies/structure_analyzer.py +1 -2
  18. claude_mpm/services/unified/config_strategies/context_strategy.py +1 -3
  19. claude_mpm/services/unified/config_strategies/file_loader_strategy.py +3 -1
  20. claude_mpm/validation/frontmatter_validator.py +1 -1
  21. {claude_mpm-4.4.4.dist-info → claude_mpm-4.4.6.dist-info}/METADATA +35 -18
  22. {claude_mpm-4.4.4.dist-info → claude_mpm-4.4.6.dist-info}/RECORD +26 -26
  23. {claude_mpm-4.4.4.dist-info → claude_mpm-4.4.6.dist-info}/WHEEL +0 -0
  24. {claude_mpm-4.4.4.dist-info → claude_mpm-4.4.6.dist-info}/entry_points.txt +0 -0
  25. {claude_mpm-4.4.4.dist-info → claude_mpm-4.4.6.dist-info}/licenses/LICENSE +0 -0
  26. {claude_mpm-4.4.4.dist-info → claude_mpm-4.4.6.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION CHANGED
@@ -1 +1 @@
1
- 4.4.4
1
+ 4.4.6
@@ -45,7 +45,7 @@ class MCPExternalCommands:
45
45
  return 1
46
46
 
47
47
  def _setup_external(self, args):
48
- """Setup external MCP services in Claude Desktop.
48
+ """Setup external MCP services in Claude Code.
49
49
 
50
50
  Args:
51
51
  args: Command line arguments
@@ -67,13 +67,13 @@ class MCPExternalCommands:
67
67
  print(" You may need to install them manually:")
68
68
  print(" pip install mcp-vector-search mcp-browser")
69
69
 
70
- # Then configure in Claude Desktop
71
- print("\n2️⃣ Configuring Claude Desktop...")
70
+ # Then configure in Claude Code
71
+ print("\n2️⃣ Configuring Claude Code...")
72
72
  force = getattr(args, "force", False)
73
73
  if setup.setup_external_services(force=force):
74
74
  print("\n✅ External services setup completed successfully!")
75
75
  print("\nNext steps:")
76
- print("1. Restart Claude Desktop to load the new services")
76
+ print("1. Restart Claude Code to load the new services")
77
77
  print("2. Check status with: claude-mpm mcp external list")
78
78
  print("3. The services will be available in Claude as separate MCP servers")
79
79
  return 0
@@ -111,7 +111,7 @@ class MCPExternalCommands:
111
111
  import json
112
112
  from pathlib import Path
113
113
 
114
- # Check Claude Desktop configuration
114
+ # Check Claude Code configuration
115
115
  config_paths = [
116
116
  Path.home()
117
117
  / "Library"
@@ -157,7 +157,7 @@ class MCPExternalCommands:
157
157
  break
158
158
 
159
159
  if not config_found:
160
- print("❌ No Claude Desktop configuration found")
160
+ print("❌ No Claude Code configuration found")
161
161
  print(" Please run: claude-mpm mcp install")
162
162
 
163
163
  # Check Python packages
@@ -215,7 +215,7 @@ class MCPExternalCommands:
215
215
  print("\n✅ Configuration updated successfully!")
216
216
  print("\nNext steps:")
217
217
  print("1. Review the .mcp.json file to verify the configuration")
218
- print("2. Restart Claude Desktop to load the updated services")
218
+ print("2. Restart Claude Code to load the updated services")
219
219
  return 0
220
220
  print("\n❌ Failed to update configuration")
221
221
  return 1
@@ -46,8 +46,8 @@ class MCPInstallCommands:
46
46
  print("\nPlease install manually with: pip install mcp")
47
47
  return 1
48
48
 
49
- # Step 2: Configure Claude Desktop with the new CLI command
50
- print("\n2️⃣ Configuring Claude Desktop...")
49
+ # Step 2: Configure Claude Code with the new CLI command
50
+ print("\n2️⃣ Configuring Claude Code...")
51
51
  try:
52
52
  success = self._configure_claude_desktop(args.force)
53
53
  if not success:
@@ -72,7 +72,7 @@ class MCPInstallCommands:
72
72
  # Install Python packages for external services
73
73
  external_setup.check_and_install_pip_packages()
74
74
 
75
- # Setup external services in Claude Desktop config
75
+ # Setup external services in Claude Code config
76
76
  if external_setup.setup_external_services(force=args.force):
77
77
  print("✅ External services configured successfully")
78
78
  else:
@@ -86,7 +86,7 @@ class MCPInstallCommands:
86
86
  print("\n✅ Configuration completed successfully")
87
87
  print("\n🎉 MCP Gateway is ready to use!")
88
88
  print("\nNext steps:")
89
- print("1. Restart Claude Desktop (if running)")
89
+ print("1. Restart Claude Code (if running)")
90
90
  print("2. Test the server: claude-mpm mcp server --test")
91
91
  print("3. Check status: claude-mpm mcp status")
92
92
  print("4. List external services: claude-mpm mcp external list")
@@ -97,9 +97,9 @@ class MCPInstallCommands:
97
97
  return 1
98
98
 
99
99
  def _configure_claude_desktop(self, force=False):
100
- """Configure Claude Desktop to use the MCP gateway via CLI command.
100
+ """Configure Claude Code to use the MCP gateway via CLI command.
101
101
 
102
- WHY: Claude Desktop reads MCP server configurations from a platform-specific
102
+ WHY: Claude Code reads MCP server configurations from a platform-specific
103
103
  configuration file. This method updates that file to include the claude-mpm-gateway
104
104
  server configuration.
105
105
 
@@ -166,14 +166,14 @@ class MCPInstallCommands:
166
166
  return self._save_config(config, config_path)
167
167
 
168
168
  def _get_claude_config_path(self):
169
- """Get the Claude Desktop configuration file path.
169
+ """Get the Claude Code configuration file path.
170
170
 
171
171
  Returns:
172
- Path or None: Path to Claude Desktop config file
172
+ Path or None: Path to Claude Code config file
173
173
  """
174
174
  import platform
175
175
 
176
- # Try multiple possible locations for Claude Desktop config
176
+ # Try multiple possible locations for Claude Code config
177
177
  possible_paths = [
178
178
  Path.home()
179
179
  / "Library"
@@ -1,7 +1,7 @@
1
1
  """MCP external services setup module.
2
2
 
3
3
  This module handles the registration of external MCP services
4
- (mcp-vector-search, mcp-browser) as separate MCP servers in Claude Desktop.
4
+ (mcp-vector-search, mcp-browser) as separate MCP servers in Claude Code.
5
5
  """
6
6
 
7
7
  import json
@@ -13,7 +13,7 @@ from typing import Dict, Optional, Tuple
13
13
 
14
14
 
15
15
  class MCPExternalServicesSetup:
16
- """Handles setup of external MCP services in Claude Desktop configuration."""
16
+ """Handles setup of external MCP services in Claude Code configuration."""
17
17
 
18
18
  def get_project_services(self, project_path: Path) -> Dict:
19
19
  """Get external services configuration for the current project.
@@ -472,9 +472,9 @@ class MCPExternalServicesSetup:
472
472
  f"\n✅ Successfully configured {success_count} external services in .mcp.json"
473
473
  )
474
474
  print(
475
- "\n📌 Note: Claude Desktop will automatically load these services"
475
+ "\n📌 Note: Claude Code will automatically load these services"
476
476
  )
477
- print(" when you open this project directory in Claude Desktop.")
477
+ print(" when you open this project directory in Claude Code.")
478
478
  return True
479
479
  print("❌ Failed to save configuration")
480
480
  return False
@@ -487,7 +487,7 @@ class MCPExternalServicesSetup:
487
487
  """Setup a single external MCP service.
488
488
 
489
489
  Args:
490
- config: The Claude Desktop configuration
490
+ config: The Claude Code configuration
491
491
  service_name: Name of the service to setup
492
492
  service_info: Service configuration information
493
493
  force: Whether to overwrite existing configuration
@@ -814,7 +814,7 @@ class MCPExternalServicesSetup:
814
814
  print("✅ Successfully updated mcp-browser configuration in .mcp.json")
815
815
  print(f" Command: {browser_config['command']}")
816
816
  print(f" Args: {browser_config['args']}")
817
- print("\n📌 Note: Claude Desktop will automatically use this configuration")
817
+ print("\n📌 Note: Claude Code will automatically use this configuration")
818
818
  print(" when you open this project directory.")
819
819
  return True
820
820
  print("❌ Failed to save configuration")
@@ -163,7 +163,8 @@ class KuzuMemoryHook(SubmitHook):
163
163
  capture_output=True,
164
164
  text=True,
165
165
  timeout=5,
166
- cwd=str(self.project_path), check=False,
166
+ cwd=str(self.project_path),
167
+ check=False,
167
168
  )
168
169
 
169
170
  if result.returncode == 0 and result.stdout:
@@ -267,7 +268,8 @@ Note: Use the memories above to provide more informed and contextual responses.
267
268
  capture_output=True,
268
269
  text=True,
269
270
  timeout=5,
270
- cwd=str(self.project_path), check=False,
271
+ cwd=str(self.project_path),
272
+ check=False,
271
273
  )
272
274
 
273
275
  if result.returncode == 0:
@@ -7,7 +7,7 @@ diagnostic components.
7
7
 
8
8
  from .agent_check import AgentCheck
9
9
  from .base_check import BaseDiagnosticCheck
10
- from .claude_desktop_check import ClaudeDesktopCheck
10
+ from .claude_code_check import ClaudeCodeCheck
11
11
  from .common_issues_check import CommonIssuesCheck
12
12
  from .configuration_check import ConfigurationCheck
13
13
  from .filesystem_check import FilesystemCheck
@@ -21,7 +21,7 @@ from .startup_log_check import StartupLogCheck
21
21
  __all__ = [
22
22
  "AgentCheck",
23
23
  "BaseDiagnosticCheck",
24
- "ClaudeDesktopCheck",
24
+ "ClaudeCodeCheck",
25
25
  "CommonIssuesCheck",
26
26
  "ConfigurationCheck",
27
27
  "FilesystemCheck",
@@ -1,7 +1,7 @@
1
1
  """
2
- Check Claude Desktop integration.
2
+ Check Claude Code (CLI) integration.
3
3
 
4
- WHY: Verify that Claude Desktop is installed, properly configured,
4
+ WHY: Verify that Claude Code CLI is installed, properly configured,
5
5
  and integrated with claude-mpm.
6
6
  """
7
7
 
@@ -13,24 +13,24 @@ from ..models import DiagnosticResult, DiagnosticStatus
13
13
  from .base_check import BaseDiagnosticCheck
14
14
 
15
15
 
16
- class ClaudeDesktopCheck(BaseDiagnosticCheck):
17
- """Check Claude Desktop installation and integration."""
16
+ class ClaudeCodeCheck(BaseDiagnosticCheck):
17
+ """Check Claude Code CLI installation and integration."""
18
18
 
19
19
  @property
20
20
  def name(self) -> str:
21
- return "claude_desktop_check"
21
+ return "claude_code_check"
22
22
 
23
23
  @property
24
24
  def category(self) -> str:
25
- return "Claude Desktop"
25
+ return "Claude Code"
26
26
 
27
27
  def run(self) -> DiagnosticResult:
28
- """Run Claude Desktop diagnostics."""
28
+ """Run Claude Code CLI diagnostics."""
29
29
  try:
30
30
  sub_results = []
31
31
  details = {}
32
32
 
33
- # Check if Claude Desktop is installed
33
+ # Check if Claude Code CLI is installed
34
34
  install_result = self._check_installation()
35
35
  sub_results.append(install_result)
36
36
  details["installed"] = install_result.status == DiagnosticStatus.OK
@@ -54,13 +54,13 @@ class ClaudeDesktopCheck(BaseDiagnosticCheck):
54
54
  # Determine overall status
55
55
  if any(r.status == DiagnosticStatus.ERROR for r in sub_results):
56
56
  status = DiagnosticStatus.ERROR
57
- message = "Claude Desktop has critical issues"
57
+ message = "Claude Code CLI has critical issues"
58
58
  elif any(r.status == DiagnosticStatus.WARNING for r in sub_results):
59
59
  status = DiagnosticStatus.WARNING
60
- message = "Claude Desktop needs configuration"
60
+ message = "Claude Code CLI needs configuration"
61
61
  else:
62
62
  status = DiagnosticStatus.OK
63
- message = "Claude Desktop properly configured"
63
+ message = "Claude Code CLI properly configured"
64
64
 
65
65
  return DiagnosticResult(
66
66
  category=self.category,
@@ -74,109 +74,102 @@ class ClaudeDesktopCheck(BaseDiagnosticCheck):
74
74
  return DiagnosticResult(
75
75
  category=self.category,
76
76
  status=DiagnosticStatus.ERROR,
77
- message=f"Claude Desktop check failed: {e!s}",
77
+ message=f"Claude Code CLI check failed: {e!s}",
78
78
  details={"error": str(e)},
79
79
  )
80
80
 
81
81
  def _check_installation(self) -> DiagnosticResult:
82
- """Check if Claude Desktop is installed."""
83
- # Check common installation paths
84
- mac_path = Path("/Applications/Claude.app")
85
- linux_paths = [
86
- Path.home() / ".local/share/applications/claude.desktop",
87
- Path("/usr/share/applications/claude.desktop"),
88
- Path("/opt/Claude"),
89
- ]
90
- windows_paths = [
91
- Path("C:/Program Files/Claude/Claude.exe"),
92
- Path.home() / "AppData/Local/Claude/Claude.exe",
93
- ]
94
-
95
- # Check for Claude process
82
+ """Check if Claude Code CLI is installed."""
83
+ # Check if claude command is available
96
84
  try:
97
85
  result = subprocess.run(
98
- ["pgrep", "-f", "Claude"], capture_output=True, timeout=2, check=False
86
+ ["claude", "--version"],
87
+ capture_output=True,
88
+ timeout=5,
89
+ check=False,
90
+ text=True
99
91
  )
100
92
  if result.returncode == 0:
101
93
  return DiagnosticResult(
102
- category="Claude Desktop Installation",
94
+ category="Claude Code CLI Installation",
103
95
  status=DiagnosticStatus.OK,
104
- message="Claude Desktop is running",
105
- details={"running": True},
96
+ message="Claude Code CLI is installed and accessible",
97
+ details={
98
+ "installed": True,
99
+ "path": "claude",
100
+ "version_output": result.stdout.strip()
101
+ },
106
102
  )
107
103
  except (subprocess.SubprocessError, FileNotFoundError):
108
104
  pass
109
105
 
110
- # Check installation paths
111
- if mac_path.exists():
112
- return DiagnosticResult(
113
- category="Claude Desktop Installation",
114
- status=DiagnosticStatus.OK,
115
- message="Claude Desktop installed (macOS)",
116
- details={"path": str(mac_path), "platform": "macos"},
117
- )
118
-
119
- for path in linux_paths:
120
- if path.exists():
121
- return DiagnosticResult(
122
- category="Claude Desktop Installation",
123
- status=DiagnosticStatus.OK,
124
- message="Claude Desktop installed (Linux)",
125
- details={"path": str(path), "platform": "linux"},
126
- )
106
+ # Check common installation paths
107
+ possible_paths = [
108
+ Path("/usr/local/bin/claude"),
109
+ Path.home() / ".local/bin/claude",
110
+ Path("/opt/homebrew/bin/claude"),
111
+ Path("/usr/bin/claude"),
112
+ ]
127
113
 
128
- for path in windows_paths:
129
- if path.exists():
114
+ for path in possible_paths:
115
+ if path.exists() and path.is_file():
130
116
  return DiagnosticResult(
131
- category="Claude Desktop Installation",
117
+ category="Claude Code CLI Installation",
132
118
  status=DiagnosticStatus.OK,
133
- message="Claude Desktop installed (Windows)",
134
- details={"path": str(path), "platform": "windows"},
119
+ message=f"Claude Code CLI found at {path}",
120
+ details={"installed": True, "path": str(path)},
135
121
  )
136
122
 
137
123
  return DiagnosticResult(
138
- category="Claude Desktop Installation",
139
- status=DiagnosticStatus.WARNING,
140
- message="Claude Desktop not found",
124
+ category="Claude Code CLI Installation",
125
+ status=DiagnosticStatus.ERROR,
126
+ message="Claude Code CLI not found",
141
127
  details={"installed": False},
142
- fix_description="Install Claude Desktop from https://claude.ai/download",
128
+ fix_description="Install Claude Code CLI from https://claude.ai/code",
143
129
  )
144
130
 
145
131
  def _check_version(self) -> DiagnosticResult:
146
- """Check Claude Desktop version compatibility."""
147
- # Try to get version from config file
148
- config_paths = [
149
- Path.home() / "Library/Application Support/Claude/config.json", # macOS
150
- Path.home() / ".config/Claude/config.json", # Linux
151
- Path.home() / "AppData/Roaming/Claude/config.json", # Windows
152
- ]
132
+ """Check Claude Code CLI version compatibility."""
133
+ try:
134
+ result = subprocess.run(
135
+ ["claude", "--version"],
136
+ capture_output=True,
137
+ timeout=5,
138
+ check=True,
139
+ text=True
140
+ )
141
+ version_output = result.stdout.strip()
153
142
 
154
- for config_path in config_paths:
155
- if config_path.exists():
156
- try:
157
- with open(config_path) as f:
158
- config = json.load(f)
159
- version = config.get("version", "unknown")
160
-
161
- # Simple version check (would need real version comparison logic)
162
- return DiagnosticResult(
163
- category="Claude Desktop Version",
164
- status=DiagnosticStatus.OK,
165
- message=f"Version: {version}",
166
- details={
167
- "version": version,
168
- "config_path": str(config_path),
169
- },
170
- )
171
- except Exception:
172
- pass
143
+ # Extract version number (basic parsing)
144
+ version = "unknown"
145
+ if "version" in version_output.lower():
146
+ parts = version_output.split()
147
+ for i, part in enumerate(parts):
148
+ if "version" in part.lower() and i + 1 < len(parts):
149
+ version = parts[i + 1]
150
+ break
173
151
 
174
- return DiagnosticResult(
175
- category="Claude Desktop Version",
176
- status=DiagnosticStatus.WARNING,
177
- message="Could not determine version",
178
- details={"version": "unknown"},
179
- )
152
+ # Check minimum version requirement (1.0.60+)
153
+ status = DiagnosticStatus.OK
154
+ message = f"Version: {version}"
155
+
156
+ return DiagnosticResult(
157
+ category="Claude Code CLI Version",
158
+ status=status,
159
+ message=message,
160
+ details={
161
+ "version": version,
162
+ "version_output": version_output,
163
+ },
164
+ )
165
+
166
+ except subprocess.SubprocessError as e:
167
+ return DiagnosticResult(
168
+ category="Claude Code CLI Version",
169
+ status=DiagnosticStatus.WARNING,
170
+ message=f"Could not determine version: {e}",
171
+ details={"version": "unknown", "error": str(e)},
172
+ )
180
173
 
181
174
  def _check_output_style(self) -> DiagnosticResult:
182
175
  """Check if output style is deployed."""
@@ -224,36 +217,26 @@ class ClaudeDesktopCheck(BaseDiagnosticCheck):
224
217
  )
225
218
 
226
219
  def _check_mcp_integration(self) -> DiagnosticResult:
227
- """Check MCP server integration with Claude Desktop."""
228
- config_path = Path.home() / ".config/claude/claude_desktop_config.json"
220
+ """Check MCP server integration with Claude Code CLI."""
221
+ # Claude Code CLI uses ~/.claude.json for configuration
222
+ config_path = Path.home() / ".claude.json"
229
223
 
230
224
  if not config_path.exists():
231
- # Try alternate paths
232
- alt_paths = [
233
- Path.home()
234
- / "Library/Application Support/Claude/claude_desktop_config.json",
235
- Path.home() / "AppData/Roaming/Claude/claude_desktop_config.json",
236
- ]
237
- for alt_path in alt_paths:
238
- if alt_path.exists():
239
- config_path = alt_path
240
- break
241
- else:
242
- return DiagnosticResult(
243
- category="MCP Integration",
244
- status=DiagnosticStatus.WARNING,
245
- message="Claude Desktop config not found",
246
- details={"configured": False},
247
- fix_command="claude-mpm mcp install",
248
- fix_description="Install MCP server integration",
249
- )
225
+ return DiagnosticResult(
226
+ category="MCP Integration",
227
+ status=DiagnosticStatus.WARNING,
228
+ message="Claude Code CLI config not found",
229
+ details={"configured": False, "config_path": str(config_path)},
230
+ fix_command="claude-mpm mcp install",
231
+ fix_description="Install MCP server integration for Claude Code CLI",
232
+ )
250
233
 
251
234
  try:
252
235
  with open(config_path) as f:
253
236
  config = json.load(f)
254
237
 
255
238
  mcp_servers = config.get("mcpServers", {})
256
- if "claude-mpm-gateway" in mcp_servers:
239
+ if "claude-mpm-gateway" in mcp_servers or "claude-mpm" in mcp_servers:
257
240
  return DiagnosticResult(
258
241
  category="MCP Integration",
259
242
  status=DiagnosticStatus.OK,
@@ -274,7 +257,7 @@ class ClaudeDesktopCheck(BaseDiagnosticCheck):
274
257
  "config_path": str(config_path),
275
258
  },
276
259
  fix_command="claude-mpm mcp install",
277
- fix_description="Configure MCP server for Claude Desktop",
260
+ fix_description="Configure MCP server for Claude Code CLI",
278
261
  )
279
262
 
280
263
  except Exception as e:
@@ -283,4 +266,4 @@ class ClaudeDesktopCheck(BaseDiagnosticCheck):
283
266
  status=DiagnosticStatus.WARNING,
284
267
  message=f"Could not check MCP configuration: {e!s}",
285
268
  details={"error": str(e)},
286
- )
269
+ )
@@ -2,7 +2,7 @@
2
2
  Check MCP (Model Context Protocol) server status.
3
3
 
4
4
  WHY: Verify that the MCP gateway is properly installed, configured,
5
- and functioning for enhanced Claude Desktop capabilities.
5
+ and functioning for enhanced Claude Code capabilities.
6
6
  """
7
7
 
8
8
  import json
@@ -129,7 +129,7 @@ class MCPCheck(BaseDiagnosticCheck):
129
129
  )
130
130
 
131
131
  def _check_configuration(self) -> DiagnosticResult:
132
- """Check MCP configuration in Claude Desktop."""
132
+ """Check MCP configuration in Claude Code."""
133
133
  config_paths = [
134
134
  Path.home() / ".config/claude/claude_desktop_config.json",
135
135
  Path.home()
@@ -147,10 +147,10 @@ class MCPCheck(BaseDiagnosticCheck):
147
147
  return DiagnosticResult(
148
148
  category="MCP Configuration",
149
149
  status=DiagnosticStatus.WARNING,
150
- message="Claude Desktop config not found",
150
+ message="Claude Code config not found",
151
151
  details={"configured": False},
152
152
  fix_command="claude-mpm mcp config",
153
- fix_description="Configure MCP server in Claude Desktop",
153
+ fix_description="Configure MCP server in Claude Code",
154
154
  )
155
155
 
156
156
  try:
@@ -167,7 +167,7 @@ class MCPCheck(BaseDiagnosticCheck):
167
167
  message="MCP gateway not configured",
168
168
  details={"configured": False, "config_path": str(config_path)},
169
169
  fix_command="claude-mpm mcp config",
170
- fix_description="Add MCP gateway to Claude Desktop configuration",
170
+ fix_description="Add MCP gateway to Claude Code configuration",
171
171
  )
172
172
 
173
173
  # Check configuration validity
@@ -203,7 +203,7 @@ class MCPCheck(BaseDiagnosticCheck):
203
203
  status=DiagnosticStatus.ERROR,
204
204
  message="Invalid JSON in config file",
205
205
  details={"error": str(e), "config_path": str(config_path)},
206
- fix_description="Fix JSON syntax in Claude Desktop config",
206
+ fix_description="Fix JSON syntax in Claude Code config",
207
207
  )
208
208
  except Exception as e:
209
209
  return DiagnosticResult(