mcp-proxy-adapter 6.9.6__py3-none-any.whl → 6.9.7__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.
@@ -46,7 +46,7 @@ class ConfigValidator:
46
46
  def __init__(self, config_path: Optional[str] = None):
47
47
  """
48
48
  Initialize configuration validator.
49
-
49
+
50
50
  Args:
51
51
  config_path: Path to configuration file for validation
52
52
  """
@@ -314,6 +314,11 @@ class ConfigValidator:
314
314
  # Check conditional sections based on feature flags
315
315
  for feature_name, feature_config in self.feature_flags.items():
316
316
  enabled_key = feature_config["enabled_key"]
317
+
318
+ # Only check if the enabled key exists in the configuration
319
+ if not self._has_nested_key(enabled_key):
320
+ continue
321
+
317
322
  is_enabled = self._get_nested_value_safe(enabled_key, False)
318
323
 
319
324
  if is_enabled and feature_name in self.required_sections:
@@ -423,32 +428,35 @@ class ConfigValidator:
423
428
 
424
429
  # Check SSL requirements
425
430
  if requirements["ssl_enabled"]:
426
- ssl_enabled = self._get_nested_value_safe("ssl.enabled", False)
427
- if not ssl_enabled:
428
- self.validation_results.append(ValidationResult(
429
- level="error",
430
- message=f"Protocol '{protocol}' requires SSL to be enabled",
431
- section="ssl",
432
- key="enabled"
431
+ # Only check SSL if ssl section exists
432
+ if self._has_nested_key("ssl.enabled"):
433
+ ssl_enabled = self._get_nested_value_safe("ssl.enabled", False)
434
+ if not ssl_enabled:
435
+ self.validation_results.append(ValidationResult(
436
+ level="error",
437
+ message=f"Protocol '{protocol}' requires SSL to be enabled",
438
+ section="ssl",
439
+ key="enabled"
433
440
  ))
434
441
 
435
442
  # Check required SSL files
436
443
  for file_key in requirements["required_files"]:
437
- file_path = self._get_nested_value(file_key)
438
- if not file_path:
439
- self.validation_results.append(ValidationResult(
440
- level="error",
441
- message=f"Protocol '{protocol}' requires {file_key} to be specified",
442
- section="ssl",
443
- key=file_key.split(".")[-1]
444
- ))
445
- elif not os.path.exists(file_path):
446
- self.validation_results.append(ValidationResult(
447
- level="error",
448
- message=f"Protocol '{protocol}' requires file '{file_path}' to exist",
449
- section="ssl",
450
- key=file_key.split(".")[-1]
451
- ))
444
+ if self._has_nested_key(file_key):
445
+ file_path = self._get_nested_value(file_key)
446
+ if not file_path:
447
+ self.validation_results.append(ValidationResult(
448
+ level="error",
449
+ message=f"Protocol '{protocol}' requires {file_key} to be specified",
450
+ section="ssl",
451
+ key=file_key.split(".")[-1]
452
+ ))
453
+ elif not os.path.exists(file_path):
454
+ self.validation_results.append(ValidationResult(
455
+ level="error",
456
+ message=f"Protocol '{protocol}' requires file '{file_path}' to exist",
457
+ section="ssl",
458
+ key=file_key.split(".")[-1]
459
+ ))
452
460
 
453
461
  # Check client verification requirements
454
462
  if requirements["client_verification"]:
@@ -565,6 +573,10 @@ class ConfigValidator:
565
573
 
566
574
  def _validate_ssl_configuration(self) -> None:
567
575
  """Validate SSL configuration with detailed certificate validation."""
576
+ # Only validate SSL if the ssl section exists
577
+ if not self._has_nested_key("ssl.enabled"):
578
+ return
579
+
568
580
  ssl_enabled = self._get_nested_value_safe("ssl.enabled", False)
569
581
 
570
582
  if ssl_enabled:
@@ -2,4 +2,4 @@
2
2
  Version information for MCP Proxy Adapter.
3
3
  """
4
4
 
5
- __version__ = "6.9.6"
5
+ __version__ = "6.9.7"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-proxy-adapter
3
- Version: 6.9.6
3
+ Version: 6.9.7
4
4
  Summary: Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration
5
5
  Home-page: https://github.com/maverikod/mcp-proxy-adapter
6
6
  Author: Vasiliy Zdanovskiy
@@ -4,7 +4,7 @@ mcp_proxy_adapter/config.py,sha256=1Ngxri2IPGoytYdCF5pXzbLUXsWcf6qYENkaDkAppg0,2
4
4
  mcp_proxy_adapter/custom_openapi.py,sha256=XRviX-C-ZkSKdBhORhDTdeN_1FWyEfXZADiASft3t9I,28149
5
5
  mcp_proxy_adapter/main.py,sha256=NFcSW7WaEnimRWe5zj28D0CH9otHlRZ92d2Um6XiGjE,10399
6
6
  mcp_proxy_adapter/openapi.py,sha256=2UZOI09ZDRJuBYBjKbMyb2U4uASszoCMD5o_4ktRpvg,13480
7
- mcp_proxy_adapter/version.py,sha256=lXMkwylTh5HmOpFM0VlvfxrhAnukEZJPdC4EfjVHst4,74
7
+ mcp_proxy_adapter/version.py,sha256=e_sPEsKJLZMvetzVlFPS_CvyEGxkD-vhanbfb-2ii1o,74
8
8
  mcp_proxy_adapter/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  mcp_proxy_adapter/api/app.py,sha256=PQ1Ch5ydJIHp3Z6gcMCzKkTsXPQAuZ9weHtQ-EXnNGY,37134
10
10
  mcp_proxy_adapter/api/handlers.py,sha256=X-hcMNVeTAu4yVkKJEChEsj2bFptUS6sLNN-Wysjkow,10011
@@ -62,7 +62,7 @@ mcp_proxy_adapter/core/client.py,sha256=qIbPl8prEwK2U65kl-vGJW2_imo1E4i6HxG_VpPe
62
62
  mcp_proxy_adapter/core/client_manager.py,sha256=yD8HZJlOwmDbVU49YfzSbh1XZ-Vib8qfcLVAaH03Jdg,8832
63
63
  mcp_proxy_adapter/core/client_security.py,sha256=siUaYorcDbpZsEIKgLfg-jBKkp7z_Er8wsO63mDD3Is,13127
64
64
  mcp_proxy_adapter/core/config_converter.py,sha256=Wnnsrbw7DxtgDfLG-IyyzK-hkKu0_1yp7-7dW87tu_4,17422
65
- mcp_proxy_adapter/core/config_validator.py,sha256=AHEh5GZzx4rnZGHUo1ISn74W8-dChDIDB4T7BtDCyuQ,48772
65
+ mcp_proxy_adapter/core/config_validator.py,sha256=Jiu3rJ9eJyEUBNsZ88jVQ-cj_Hd5BxhlBbWtyG6QAsA,49313
66
66
  mcp_proxy_adapter/core/crl_utils.py,sha256=Jnwq2UN52IoCDZCwByRP3XNMOJexftb-mVaH6zes6Fc,11706
67
67
  mcp_proxy_adapter/core/errors.py,sha256=CyhQgvMt0ooQjONa65XRBJ44y-l-E5_ES4KOuRvIpBk,8557
68
68
  mcp_proxy_adapter/core/logging.py,sha256=VIpiC6QTGLukRjiJoVpq3VEoLKhUeLNl8IdfljpW6ZU,9654
@@ -135,8 +135,8 @@ mcp_proxy_adapter/schemas/base_schema.json,sha256=v9G9cGMd4dRhCZsOQ_FMqOi5VFyVbI
135
135
  mcp_proxy_adapter/schemas/openapi_schema.json,sha256=C3yLkwmDsvnLW9B5gnKKdBGl4zxkeU-rEmjTrNVsQU0,8405
136
136
  mcp_proxy_adapter/schemas/roles.json,sha256=pgf_ZyqKyXbfGUxvobpiLiSJz9zzxrMuoVWEkEpz3N8,764
137
137
  mcp_proxy_adapter/schemas/roles_schema.json,sha256=deHgI7L6GwfBXacOlNtDgDJelDThppClC3Ti4Eh8rJY,5659
138
- mcp_proxy_adapter-6.9.6.dist-info/METADATA,sha256=_S16zV8mH7L1G5wJT_zhoA_jyxhB_-r0aX2JBpL_Cs8,8510
139
- mcp_proxy_adapter-6.9.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
140
- mcp_proxy_adapter-6.9.6.dist-info/entry_points.txt,sha256=Bf-O5Aq80n22Ayu9fI9BgidzWqwzIVaqextAddTuHZw,563
141
- mcp_proxy_adapter-6.9.6.dist-info/top_level.txt,sha256=JZT7vPLBYrtroX-ij68JBhJYbjDdghcV-DFySRy-Nnw,18
142
- mcp_proxy_adapter-6.9.6.dist-info/RECORD,,
138
+ mcp_proxy_adapter-6.9.7.dist-info/METADATA,sha256=jPv79sUiL5LIIc9uoDBw4i994eFASaTpiJXisdAGz0g,8510
139
+ mcp_proxy_adapter-6.9.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
140
+ mcp_proxy_adapter-6.9.7.dist-info/entry_points.txt,sha256=Bf-O5Aq80n22Ayu9fI9BgidzWqwzIVaqextAddTuHZw,563
141
+ mcp_proxy_adapter-6.9.7.dist-info/top_level.txt,sha256=JZT7vPLBYrtroX-ij68JBhJYbjDdghcV-DFySRy-Nnw,18
142
+ mcp_proxy_adapter-6.9.7.dist-info/RECORD,,