claude-mpm 4.4.7__py3-none-any.whl → 4.4.8__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/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/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/scripts/mcp_server.py +0 -0
- claude_mpm/scripts/start_activity_logging.py +0 -0
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +122 -0
- claude_mpm/services/diagnostics/diagnostic_runner.py +3 -0
- {claude_mpm-4.4.7.dist-info → claude_mpm-4.4.8.dist-info}/METADATA +1 -1
- {claude_mpm-4.4.7.dist-info → claude_mpm-4.4.8.dist-info}/RECORD +22 -9
- {claude_mpm-4.4.7.dist-info → claude_mpm-4.4.8.dist-info}/WHEEL +0 -0
- {claude_mpm-4.4.7.dist-info → claude_mpm-4.4.8.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.4.7.dist-info → claude_mpm-4.4.8.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.4.7.dist-info → claude_mpm-4.4.8.dist-info}/top_level.txt +0 -0
claude_mpm/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.4.
|
1
|
+
4.4.8
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
claude_mpm/scripts/mcp_server.py
CHANGED
File without changes
|
File without changes
|
@@ -10,6 +10,7 @@ import subprocess
|
|
10
10
|
from pathlib import Path
|
11
11
|
from typing import Dict, List, Optional, Tuple
|
12
12
|
|
13
|
+
from claude_mpm.core.logger import get_logger
|
13
14
|
from ..models import DiagnosticResult, DiagnosticStatus
|
14
15
|
from .base_check import BaseDiagnosticCheck
|
15
16
|
|
@@ -17,6 +18,11 @@ from .base_check import BaseDiagnosticCheck
|
|
17
18
|
class MCPServicesCheck(BaseDiagnosticCheck):
|
18
19
|
"""Check MCP external services installation and health."""
|
19
20
|
|
21
|
+
def __init__(self, verbose: bool = False):
|
22
|
+
"""Initialize the MCP services check."""
|
23
|
+
super().__init__(verbose)
|
24
|
+
self.logger = get_logger(self.__class__.__name__)
|
25
|
+
|
20
26
|
# Define MCP services to check
|
21
27
|
MCP_SERVICES = {
|
22
28
|
"mcp-vector-search": {
|
@@ -71,6 +77,11 @@ class MCPServicesCheck(BaseDiagnosticCheck):
|
|
71
77
|
sub_results = []
|
72
78
|
services_status = {}
|
73
79
|
|
80
|
+
# Check for kuzu-memory configuration issues and offer auto-fix
|
81
|
+
kuzu_config_result = self._check_and_fix_kuzu_memory_config()
|
82
|
+
if kuzu_config_result:
|
83
|
+
sub_results.append(kuzu_config_result)
|
84
|
+
|
74
85
|
# Check each MCP service
|
75
86
|
for service_name, service_config in self.MCP_SERVICES.items():
|
76
87
|
service_result = self._check_service(service_name, service_config)
|
@@ -391,6 +402,117 @@ class MCPServicesCheck(BaseDiagnosticCheck):
|
|
391
402
|
|
392
403
|
return None
|
393
404
|
|
405
|
+
def _check_and_fix_kuzu_memory_config(self) -> Optional[DiagnosticResult]:
|
406
|
+
"""Check for incorrect kuzu-memory configuration in .claude.json and offer auto-fix."""
|
407
|
+
claude_config_path = Path.home() / ".claude.json"
|
408
|
+
|
409
|
+
if not claude_config_path.exists():
|
410
|
+
return None
|
411
|
+
|
412
|
+
try:
|
413
|
+
with open(claude_config_path) as f:
|
414
|
+
config = json.load(f)
|
415
|
+
|
416
|
+
mcp_servers = config.get("mcpServers", {})
|
417
|
+
kuzu_config = mcp_servers.get("kuzu-memory")
|
418
|
+
|
419
|
+
if not kuzu_config:
|
420
|
+
return None
|
421
|
+
|
422
|
+
# Check if kuzu-memory has incorrect args
|
423
|
+
args = kuzu_config.get("args", [])
|
424
|
+
needs_fix = False
|
425
|
+
fix_reason = ""
|
426
|
+
new_args = None
|
427
|
+
|
428
|
+
# Check for outdated configurations
|
429
|
+
if args == ["claude", "mcp-server"]:
|
430
|
+
needs_fix = True
|
431
|
+
fix_reason = "Outdated 'claude mcp-server' format"
|
432
|
+
new_args = ["mcp", "serve"]
|
433
|
+
elif args == ["serve"]:
|
434
|
+
needs_fix = True
|
435
|
+
fix_reason = "Legacy 'serve' format"
|
436
|
+
new_args = ["mcp", "serve"]
|
437
|
+
elif args == ["mcp-server"]:
|
438
|
+
needs_fix = True
|
439
|
+
fix_reason = "Incorrect 'mcp-server' format"
|
440
|
+
new_args = ["mcp", "serve"]
|
441
|
+
|
442
|
+
if needs_fix:
|
443
|
+
# Offer to auto-fix
|
444
|
+
self.logger.warning(
|
445
|
+
f"Found incorrect kuzu-memory configuration: {fix_reason}. "
|
446
|
+
f"Current args: {args}"
|
447
|
+
)
|
448
|
+
|
449
|
+
# Auto-fix the configuration
|
450
|
+
fixed = self._fix_kuzu_memory_args(claude_config_path, config, new_args)
|
451
|
+
|
452
|
+
if fixed:
|
453
|
+
return DiagnosticResult(
|
454
|
+
category="kuzu-memory Configuration Fix",
|
455
|
+
status=DiagnosticStatus.OK,
|
456
|
+
message="Fixed kuzu-memory configuration",
|
457
|
+
details={
|
458
|
+
"old_args": args,
|
459
|
+
"new_args": new_args,
|
460
|
+
"reason": fix_reason,
|
461
|
+
"auto_fixed": True,
|
462
|
+
},
|
463
|
+
)
|
464
|
+
else:
|
465
|
+
return DiagnosticResult(
|
466
|
+
category="kuzu-memory Configuration",
|
467
|
+
status=DiagnosticStatus.WARNING,
|
468
|
+
message="kuzu-memory has incorrect configuration",
|
469
|
+
details={
|
470
|
+
"current_args": args,
|
471
|
+
"correct_args": new_args,
|
472
|
+
"reason": fix_reason,
|
473
|
+
"auto_fix_failed": True,
|
474
|
+
},
|
475
|
+
fix_command="claude-mpm configure --mcp --fix-kuzu",
|
476
|
+
fix_description="Fix kuzu-memory configuration manually",
|
477
|
+
)
|
478
|
+
|
479
|
+
# Configuration is correct
|
480
|
+
return None
|
481
|
+
|
482
|
+
except (json.JSONDecodeError, Exception) as e:
|
483
|
+
self.logger.debug(f"Could not check kuzu-memory config: {e}")
|
484
|
+
return None
|
485
|
+
|
486
|
+
def _fix_kuzu_memory_args(self, config_path: Path, config: Dict, new_args: List[str]) -> bool:
|
487
|
+
"""Fix kuzu-memory args in the configuration."""
|
488
|
+
try:
|
489
|
+
# Save old args before updating
|
490
|
+
old_args = config["mcpServers"]["kuzu-memory"].get("args", [])
|
491
|
+
|
492
|
+
# Create backup
|
493
|
+
backup_path = config_path.with_suffix(".json.backup")
|
494
|
+
with open(backup_path, "w") as f:
|
495
|
+
json.dump(config, f, indent=2)
|
496
|
+
|
497
|
+
# Update the configuration
|
498
|
+
config["mcpServers"]["kuzu-memory"]["args"] = new_args
|
499
|
+
|
500
|
+
# Write updated configuration
|
501
|
+
with open(config_path, "w") as f:
|
502
|
+
json.dump(config, f, indent=2)
|
503
|
+
|
504
|
+
self.logger.info(
|
505
|
+
f"✅ Fixed kuzu-memory configuration in {config_path}\n"
|
506
|
+
f" Changed args from {old_args} to {new_args}\n"
|
507
|
+
f" Backup saved to {backup_path}"
|
508
|
+
)
|
509
|
+
|
510
|
+
return True
|
511
|
+
|
512
|
+
except Exception as e:
|
513
|
+
self.logger.error(f"Failed to fix kuzu-memory configuration: {e}")
|
514
|
+
return False
|
515
|
+
|
394
516
|
def _check_gateway_configuration(self) -> DiagnosticResult:
|
395
517
|
"""Check if MCP services are configured in the gateway."""
|
396
518
|
try:
|
@@ -214,6 +214,9 @@ class DiagnosticRunner:
|
|
214
214
|
"agents": AgentCheck,
|
215
215
|
"agent": AgentCheck,
|
216
216
|
"mcp": MCPCheck,
|
217
|
+
"mcp_services": MCPServicesCheck,
|
218
|
+
"mcp-services": MCPServicesCheck,
|
219
|
+
"external": MCPServicesCheck,
|
217
220
|
"monitor": MonitorCheck,
|
218
221
|
"monitoring": MonitorCheck,
|
219
222
|
"common": CommonIssuesCheck,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
claude_mpm/BUILD_NUMBER,sha256=toytnNjkIKPgQaGwDqQdC1rpNTAdSEc6Vja50d7Ovug,4
|
2
|
-
claude_mpm/VERSION,sha256=
|
2
|
+
claude_mpm/VERSION,sha256=6Oq7YOKP_W7Ec69SP5f3Of7vy8xtRJusLVAXeC2etgg,6
|
3
3
|
claude_mpm/__init__.py,sha256=lyTZAYGH4DTaFGLRNWJKk5Q5oTjzN5I6AXmfVX-Jff0,1512
|
4
4
|
claude_mpm/__main__.py,sha256=Ro5UBWBoQaSAIoSqWAr7zkbLyvi4sSy28WShqAhKJG0,723
|
5
5
|
claude_mpm/constants.py,sha256=cChN3myrAcF3jC-6DvHnBFTEnwlDk-TAsIXPvUZr_yw,5953
|
@@ -383,12 +383,25 @@ claude_mpm/hooks/claude_hooks/installer.py,sha256=4QUZcnQWlQDH11BypvYs_JpQ-ojRF0
|
|
383
383
|
claude_mpm/hooks/claude_hooks/memory_integration.py,sha256=9PogijgklM7iSNRTK2Sdz3s9AOlxL8Rt5axtU71-J2M,8866
|
384
384
|
claude_mpm/hooks/claude_hooks/response_tracking.py,sha256=eMixPs2fOAqLn9WysTPgfIwwjwzZTdnAn0jpDjlOS6U,15024
|
385
385
|
claude_mpm/hooks/claude_hooks/tool_analysis.py,sha256=t4CFrLldjD-akBY52su6Cl0cBmZCKRZbGbIE-Yg2Hhk,7896
|
386
|
+
claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-313.pyc,sha256=bRXmkaVByqCv8qmFpfSJOEeKUOzLNgFVgFc5GVZ1oGo,322
|
387
|
+
claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-313.pyc,sha256=W3pUVNdaDSE0ndQmQUSnGlBWaxOVnvjvZxCcmjLag-0,28937
|
388
|
+
claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-313.pyc,sha256=HTbwMv0BW8gMg9DxzH6UbEPRPZ8a0e_R7sNaRMJ6I1w,21336
|
389
|
+
claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-313.pyc,sha256=xUXfgAB_3qc52cTpL8UgsO_xaplQ0v-yhI4pJLUBDF8,29046
|
390
|
+
claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-313.pyc,sha256=qhDYC403V_m8NG2LHMXtcK_SH3qMuPADSp0sJ9D6YTo,8895
|
391
|
+
claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-313.pyc,sha256=MuqyPvXZuFph_xp1j1vtNLqLKRJT51oI2AmZ3SEn69c,14213
|
392
|
+
claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-313.pyc,sha256=OsljgmGIgSmKTyVRRrJmKvmoHdQFq0kBBGTRUrAdnrI,9137
|
386
393
|
claude_mpm/hooks/claude_hooks/services/__init__.py,sha256=OIYOKsUNw1BHYawOCp-KFK5kmQKuj92cCqCEPO0nwo0,585
|
387
394
|
claude_mpm/hooks/claude_hooks/services/connection_manager.py,sha256=6GSZ6lB0j6u7jE-w9ay-57YX-VVBFGfK_wmZNNM6hxE,8280
|
388
395
|
claude_mpm/hooks/claude_hooks/services/connection_manager_http.py,sha256=sEIWyV-3pfS6VM6_jQgnrKiepD-6DLrk5rr_KU80kHo,8832
|
389
396
|
claude_mpm/hooks/claude_hooks/services/duplicate_detector.py,sha256=Fh9LmEMsVmQM9t0U1v2l_fuBwvNpVkl_0EF8Wu5KLHQ,3882
|
390
397
|
claude_mpm/hooks/claude_hooks/services/state_manager.py,sha256=l50dVFt6eafeLCjlu6TH3qqt8tTBEof971U1OlrUxZ8,11166
|
391
398
|
claude_mpm/hooks/claude_hooks/services/subagent_processor.py,sha256=f7a_vgo_kuG9MalDTka2UPXwDyCkqNgCvG8i1hp0oRo,15263
|
399
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-313.pyc,sha256=bk04TMdGscqiVyfzkby3gPrW6DcSqzHJOCnclbO5Qrs,565
|
400
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager.cpython-313.pyc,sha256=xEEOqJmCwu_rOaZTzfYdLQtamwrlvn_Uv4M9GcTJeIA,8713
|
401
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-313.pyc,sha256=HvK-KUCBSg8J_0UTxNd98pMVa68_NYRkyoTgdATD_n4,9967
|
402
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-313.pyc,sha256=87ROjkadSdZB1L24rVdjdOHggYRfaGZ2v0nnhLlUnJk,4722
|
403
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-313.pyc,sha256=QoAQvuBn4xDlo_YXuHNgJ3vqXLhp4KzKunTOf9crJ70,11772
|
404
|
+
claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-313.pyc,sha256=svC-kX-MYT5YIbWrY_aNf-Biz-JL49noI--1D-dSx_Q,13821
|
392
405
|
claude_mpm/models/__init__.py,sha256=GADyLAiF-1VVghYKI7Urz3zSnf2sjJUXlOEMuCOs7_g,468
|
393
406
|
claude_mpm/models/agent_definition.py,sha256=LC7EwihixF2Gw4QqOxiCNchsEzzyQJPR6AgPrcTrWTM,6674
|
394
407
|
claude_mpm/models/agent_session.py,sha256=BEI9RsCnnSVMF3oOzWKY3a_NEmWI33J2nU_2O-WEyJQ,20027
|
@@ -547,7 +560,7 @@ claude_mpm/services/core/interfaces/communication.py,sha256=evwtLbYCFa3Zb8kEfL10
|
|
547
560
|
claude_mpm/services/core/interfaces/infrastructure.py,sha256=eLtr_dFhA3Ux3mPOV_4DbWhGjHpfpGnj6xOhfQcgZGk,10037
|
548
561
|
claude_mpm/services/core/interfaces/service.py,sha256=hNfHXe45LcPCp_dToOmZCfnUZBF5axMf_TdxqCSm2-I,11536
|
549
562
|
claude_mpm/services/diagnostics/__init__.py,sha256=WTRucANR9EwNi53rotjkeE4k75s18RjHJ8s1BfBj7ic,614
|
550
|
-
claude_mpm/services/diagnostics/diagnostic_runner.py,sha256=
|
563
|
+
claude_mpm/services/diagnostics/diagnostic_runner.py,sha256=PJje2C3_20JAeDBf2LpZ_rfi3rwSWk73EXJmZEkDcvs,9470
|
551
564
|
claude_mpm/services/diagnostics/doctor_reporter.py,sha256=WhlHBWy-KI8OhAWujOu77VAgSvkBvtF3sDrjacYZhvg,19649
|
552
565
|
claude_mpm/services/diagnostics/models.py,sha256=nqOQLllZyZmw3Zt5eFJfE1Al7C3Vrn3REgFlARtT3jQ,3831
|
553
566
|
claude_mpm/services/diagnostics/checks/__init__.py,sha256=aNdOeJHZVIpEqqzr6xWUOiyZCIrN4vckfRxkW70cqeo,987
|
@@ -560,7 +573,7 @@ claude_mpm/services/diagnostics/checks/filesystem_check.py,sha256=V5HoHDYlSuoK2l
|
|
560
573
|
claude_mpm/services/diagnostics/checks/installation_check.py,sha256=WoTt15R8Wg-6k2JZFAtmffFuih1AIyCX71QOHEFH-Ro,19562
|
561
574
|
claude_mpm/services/diagnostics/checks/instructions_check.py,sha256=VbgBorl0RpFvxKQ_SC1gibTmGSiXaKSp-vVZt6hbH1g,16290
|
562
575
|
claude_mpm/services/diagnostics/checks/mcp_check.py,sha256=SftuhP70abopyMD8GlLA_K3XHEYnBAeITggUQI0cYP4,12173
|
563
|
-
claude_mpm/services/diagnostics/checks/mcp_services_check.py,sha256=
|
576
|
+
claude_mpm/services/diagnostics/checks/mcp_services_check.py,sha256=osS6J9UbGkwgUs1vxlMfUL4cGlUAkUH4CuatWY8sAIo,23794
|
564
577
|
claude_mpm/services/diagnostics/checks/monitor_check.py,sha256=NUx5G1yjHWlukZmwhUz4o8STRWgsQEx01YjIMReNC0A,10096
|
565
578
|
claude_mpm/services/diagnostics/checks/startup_log_check.py,sha256=DrXdml2rHvmhFBdb_sntE3xmwaP_DZIKjdVbCn8Dy7E,12258
|
566
579
|
claude_mpm/services/event_bus/__init__.py,sha256=ETCo4a6puIeyVWAv55uCDjjhzNyUwbVAHEcAVkVapx8,688
|
@@ -773,9 +786,9 @@ claude_mpm/utils/subprocess_utils.py,sha256=D0izRT8anjiUb_JG72zlJR_JAw1cDkb7kalN
|
|
773
786
|
claude_mpm/validation/__init__.py,sha256=YZhwE3mhit-lslvRLuwfX82xJ_k4haZeKmh4IWaVwtk,156
|
774
787
|
claude_mpm/validation/agent_validator.py,sha256=Nm2WmcbCb0EwOG4nFcikc3wVdiiAfjGBBI3YoR6ainQ,20915
|
775
788
|
claude_mpm/validation/frontmatter_validator.py,sha256=IDBOCBweO6umydSnUJjBh81sKk3cy9hRFYm61DCiXbI,7020
|
776
|
-
claude_mpm-4.4.
|
777
|
-
claude_mpm-4.4.
|
778
|
-
claude_mpm-4.4.
|
779
|
-
claude_mpm-4.4.
|
780
|
-
claude_mpm-4.4.
|
781
|
-
claude_mpm-4.4.
|
789
|
+
claude_mpm-4.4.8.dist-info/licenses/LICENSE,sha256=lpaivOlPuBZW1ds05uQLJJswy8Rp_HMNieJEbFlqvLk,1072
|
790
|
+
claude_mpm-4.4.8.dist-info/METADATA,sha256=Mai4bOdvj2KC_AhFTAoj8nHaIxYjWzaI95XBAsC2sx0,17517
|
791
|
+
claude_mpm-4.4.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
792
|
+
claude_mpm-4.4.8.dist-info/entry_points.txt,sha256=FDPZgz8JOvD-6iuXY2l9Zbo9zYVRuE4uz4Qr0vLeGOk,471
|
793
|
+
claude_mpm-4.4.8.dist-info/top_level.txt,sha256=1nUg3FEaBySgm8t-s54jK5zoPnu3_eY6EP6IOlekyHA,11
|
794
|
+
claude_mpm-4.4.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|