mcp-proxy-adapter 6.3.12__py3-none-any.whl → 6.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.
@@ -275,7 +275,12 @@ async def create_and_run_server(
275
275
  server_config["certfile"] = ssl_config.get("cert_file")
276
276
  server_config["keyfile"] = ssl_config.get("key_file")
277
277
  server_config["ca_certs"] = ssl_config.get("ca_cert_file")
278
- server_config["verify_mode"] = ssl_config.get("verify_mode")
278
+ # Set verify_mode based on verify_client setting
279
+ verify_client = ssl_config.get("verify_client", False)
280
+ if verify_client:
281
+ server_config["verify_mode"] = "CERT_REQUIRED"
282
+ else:
283
+ server_config["verify_mode"] = "CERT_NONE"
279
284
  print(f"🔒 SSL enabled: {ssl_config.get('cert_file', 'N/A')}")
280
285
  print(
281
286
  f"🔒 SSL enabled: cert={ssl_config.get('cert_file')}, key={ssl_config.get('key_file')}"
@@ -315,7 +320,12 @@ async def create_and_run_server(
315
320
  server_config["certfile"] = ssl_config.get("cert_file")
316
321
  server_config["keyfile"] = ssl_config.get("key_file")
317
322
  server_config["ca_certs"] = ssl_config.get("ca_cert_file")
318
- server_config["verify_mode"] = ssl_config.get("verify_mode")
323
+ # Set verify_mode based on verify_client setting
324
+ verify_client = ssl_config.get("verify_client", False)
325
+ if verify_client:
326
+ server_config["verify_mode"] = "CERT_REQUIRED"
327
+ else:
328
+ server_config["verify_mode"] = "CERT_NONE"
319
329
  print(f"🔒 SSL enabled: {ssl_config.get('cert_file', 'N/A')}")
320
330
  print(
321
331
  f"🔒 SSL enabled: cert={ssl_config.get('cert_file')}, key={ssl_config.get('key_file')}"
@@ -349,8 +359,14 @@ async def create_and_run_server(
349
359
  config_hypercorn.ca_certs = server_config["ca_certs"]
350
360
  if "verify_mode" in server_config:
351
361
  import ssl
352
-
353
- config_hypercorn.verify_mode = ssl.CERT_REQUIRED
362
+ # Use the verify_mode from configuration, default to CERT_NONE for simple HTTPS
363
+ verify_mode = server_config.get("verify_mode", ssl.CERT_NONE)
364
+ if verify_mode == "CERT_REQUIRED":
365
+ config_hypercorn.verify_mode = ssl.CERT_REQUIRED
366
+ elif verify_mode == "CERT_OPTIONAL":
367
+ config_hypercorn.verify_mode = ssl.CERT_OPTIONAL
368
+ else:
369
+ config_hypercorn.verify_mode = ssl.CERT_NONE
354
370
 
355
371
  # Determine if SSL is enabled
356
372
  ssl_enabled = any(key in server_config for key in ["certfile", "keyfile"])
@@ -11,7 +11,7 @@ import argparse
11
11
  from pathlib import Path
12
12
 
13
13
  # Add the framework to the path
14
- sys.path.insert(0, str(Path(__file__).parent.parent.parent))
14
+ sys.path.insert(0, str(Path(__file__).parent.parent.parent.parent))
15
15
  from mcp_proxy_adapter.core.app_factory import create_and_run_server
16
16
 
17
17
 
@@ -37,14 +37,15 @@ def main():
37
37
  print(f"📋 Configuration: {args.config}")
38
38
  print("=" * 50)
39
39
  # Use the factory method to create and run the server
40
- create_and_run_server(
40
+ import asyncio
41
+ asyncio.run(create_and_run_server(
41
42
  config_path=args.config,
42
43
  title="Basic Framework Example",
43
44
  description="Basic MCP Proxy Adapter with minimal configuration",
44
45
  version="1.0.0",
45
46
  host=config_overrides.get("host", "0.0.0.0"),
46
47
  log_level="debug" if config_overrides.get("debug", False) else "info",
47
- )
48
+ ))
48
49
 
49
50
 
50
51
  if __name__ == "__main__":
@@ -16,7 +16,7 @@ import logging
16
16
  from pathlib import Path
17
17
 
18
18
  # Add the framework to the path
19
- sys.path.insert(0, str(Path(__file__).parent.parent.parent))
19
+ sys.path.insert(0, str(Path(__file__).parent.parent.parent.parent))
20
20
  from mcp_proxy_adapter.core.app_factory import create_and_run_server
21
21
  from mcp_proxy_adapter.api.app import create_app
22
22
  from mcp_proxy_adapter.config import Config
@@ -627,36 +627,32 @@ def generate_enhanced_configurations(output_dir: Path) -> None:
627
627
  "logging": {"level": "DEBUG"},
628
628
  },
629
629
  "production_https.json": {
630
+ "uuid": "550e8400-e29b-41d4-a716-446655440001",
630
631
  "server": {"host": "0.0.0.0", "port": 8443},
631
632
  "protocols": {"enabled": True, "allowed_protocols": ["https"]},
632
- "security": {
633
- "ssl": {
634
- "enabled": True,
635
- "server_cert_file": "certs/server_cert.pem",
636
- "server_key_file": "keys/server_key.pem",
637
- "ca_cert_file": "certs/ca_cert.pem",
638
- "verify_server": True,
639
- "verify_client": False,
640
- "min_tls_version": "TLSv1.2",
641
- }
633
+ "ssl": {
634
+ "enabled": True,
635
+ "cert_file": "mcp_proxy_adapter/examples/basic_framework/certs/server_cert.pem",
636
+ "key_file": "mcp_proxy_adapter/examples/basic_framework/certs/server_key.pem",
637
+ "ca_cert_file": "mcp_proxy_adapter/examples/basic_framework/certs/ca_cert.pem",
638
+ "verify_client": False,
639
+ "min_tls_version": "TLSv1.2",
642
640
  },
643
641
  "logging": {"level": "INFO"},
644
642
  },
645
643
  "mtls_with_roles.json": {
644
+ "uuid": "550e8400-e29b-41d4-a716-446655440000",
646
645
  "server": {"host": "0.0.0.0", "port": 8443},
647
646
  "protocols": {"enabled": True, "allowed_protocols": ["https", "mtls"]},
647
+ "ssl": {
648
+ "enabled": True,
649
+ "cert_file": "mcp_proxy_adapter/examples/basic_framework/certs/server_cert.pem",
650
+ "key_file": "mcp_proxy_adapter/examples/basic_framework/certs/server_key.pem",
651
+ "ca_cert_file": "mcp_proxy_adapter/examples/basic_framework/certs/ca_cert.pem",
652
+ "verify_client": True,
653
+ "min_tls_version": "TLSv1.2",
654
+ },
648
655
  "security": {
649
- "ssl": {
650
- "enabled": True,
651
- "server_cert_file": "certs/server_cert.pem",
652
- "server_key_file": "keys/server_key.pem",
653
- "ca_cert_file": "certs/ca_cert.pem",
654
- "client_cert_file": "certs/client_cert.pem",
655
- "client_key_file": "keys/client_key.pem",
656
- "verify_server": True,
657
- "verify_client": True,
658
- "min_tls_version": "TLSv1.2",
659
- },
660
656
  "auth": {
661
657
  "enabled": True,
662
658
  "token_required": False,
@@ -684,17 +680,15 @@ def generate_enhanced_configurations(output_dir: Path) -> None:
684
680
  "logging": {"level": "INFO"},
685
681
  },
686
682
  "https_simple.json": {
683
+ "uuid": "550e8400-e29b-41d4-a716-446655440002",
687
684
  "server": {"host": "0.0.0.0", "port": 8443},
688
685
  "protocols": {"enabled": True, "allowed_protocols": ["https"]},
689
- "security": {
690
- "ssl": {
691
- "enabled": True,
692
- "server_cert_file": "certs/server_cert.pem",
693
- "server_key_file": "keys/server_key.pem",
694
- "verify_server": False,
695
- "verify_client": False,
696
- "min_tls_version": "TLSv1.2",
697
- }
686
+ "ssl": {
687
+ "enabled": True,
688
+ "cert_file": "mcp_proxy_adapter/examples/basic_framework/certs/server_cert.pem",
689
+ "key_file": "mcp_proxy_adapter/examples/basic_framework/certs/server_key.pem",
690
+ "verify_client": False,
691
+ "min_tls_version": "TLSv1.2",
698
692
  },
699
693
  "logging": {"level": "INFO"},
700
694
  },
@@ -2,4 +2,4 @@
2
2
  Version information for MCP Proxy Adapter.
3
3
  """
4
4
 
5
- __version__ = "6.3.12"
5
+ __version__ = "6.3.14"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-proxy-adapter
3
- Version: 6.3.12
3
+ Version: 6.3.14
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=-7iVS0mUWWKNeao7nqTAFlUD6FcMwRlDkchN7OwYsr0,2
4
4
  mcp_proxy_adapter/custom_openapi.py,sha256=yLle4CntYK9wpivgn9NflZyJhy-YNrmWjJzt0ai5nP0,14672
5
5
  mcp_proxy_adapter/main.py,sha256=qDkQTXnCvf8u0I3b8PRrguOoVdjd8YRr90ZooOqeOto,3401
6
6
  mcp_proxy_adapter/openapi.py,sha256=2UZOI09ZDRJuBYBjKbMyb2U4uASszoCMD5o_4ktRpvg,13480
7
- mcp_proxy_adapter/version.py,sha256=MMZ_TWZADBWTAiuZRAx6apN1G6g8QweStOITjQVux4U,75
7
+ mcp_proxy_adapter/version.py,sha256=MVfIeHEccRPPVwIvZE06OOoj8ARRyWOlAwfPcn9D8gY,75
8
8
  mcp_proxy_adapter/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  mcp_proxy_adapter/api/app.py,sha256=22NIDGo6pGkOZnvBWeKv_-RIRye4YaYkIskVGIsCCMs,28600
10
10
  mcp_proxy_adapter/api/handlers.py,sha256=iyFGoEuUS1wxbV1ELA0zmaxIyQR7j4zw-4MrD-uIO6E,8294
@@ -53,7 +53,7 @@ mcp_proxy_adapter/commands/token_management_command.py,sha256=tCVjhWqAQ3KhcwSsZU
53
53
  mcp_proxy_adapter/commands/transport_management_command.py,sha256=HEnUyL4S014jheyBwO90u9gnzk0qxBlOJdC_0Sxhq9E,4585
54
54
  mcp_proxy_adapter/commands/unload_command.py,sha256=6CUM9B9c-mNxw7uvt2vcvZSnxMySfoMT5UmDhzNXq38,4984
55
55
  mcp_proxy_adapter/core/__init__.py,sha256=3yt0CFZdsIG8Ln4bg-r4ISYzipm3ZUAxTn0twYTs9FI,867
56
- mcp_proxy_adapter/core/app_factory.py,sha256=H4mF6evurcaH5ZPK1lLaYMutTWKKsi98Yit3sDdkuzA,19105
56
+ mcp_proxy_adapter/core/app_factory.py,sha256=NvJBTY4sh9tIxbEvykfNROkHN6XviZAG6U-WNl8tMpI,19964
57
57
  mcp_proxy_adapter/core/app_runner.py,sha256=1t9p_UkWb1IvZDTD7FOCRMNSpOSgtNeHM3i7PP7x6xc,10605
58
58
  mcp_proxy_adapter/core/auth_validator.py,sha256=q8TNkdolvP-gM6Bvecc6nrVG9al5J31pocdwhguhTBk,19742
59
59
  mcp_proxy_adapter/core/certificate_utils.py,sha256=yeDwi-j42CxK_g-r5_ragGFY_HdSgDfTWHVUjDHF6nI,38480
@@ -97,14 +97,14 @@ mcp_proxy_adapter/examples/run_proxy_server.py,sha256=SBLSSY2F_VEBQD3MsCE_Pa9xFE
97
97
  mcp_proxy_adapter/examples/run_security_tests.py,sha256=0vjaUdWC-rLyviQuNxM3PtfiU9TzSRuxGxWMehrFA_w,23311
98
98
  mcp_proxy_adapter/examples/run_security_tests_fixed.py,sha256=2BKMT0_-FhmcZA73hdQOt2XR7Cgb9Sq8qBI88BkwAAA,10934
99
99
  mcp_proxy_adapter/examples/security_test_client.py,sha256=K5gEVat1SJS2pBVxqLl5c9-uiiG12k8UT3ULQDXZ2Uc,35713
100
- mcp_proxy_adapter/examples/setup_test_environment.py,sha256=u34_wRAzrFzfK6yt2jyCr9XeAgO2z2maJDmCpPlMAPE,37142
100
+ mcp_proxy_adapter/examples/setup_test_environment.py,sha256=FiBC52GfNFzv_U2RK3GnhNLLZeo5UdUNWDaIaG5sZ68,37198
101
101
  mcp_proxy_adapter/examples/setup_test_environment_old.py,sha256=qV7IT8lMObcaPeNrFXI7CkuvJnbJsLIVaRn7fTFXjJ0,11631
102
102
  mcp_proxy_adapter/examples/test_config.py,sha256=ekEoUZe9q484vU_0IxOVhQdNMVJXG3IpmQpP--VmuDI,6491
103
103
  mcp_proxy_adapter/examples/test_config_generator.py,sha256=PBXk1V_awJ-iBlbE66Pme5sQwu6CJDxkmqgm8uPtM58,4091
104
104
  mcp_proxy_adapter/examples/test_examples.py,sha256=CYlVatdHUVC_rwv4NsvxFG3GXiKIyxPDUH43BOJHjrU,12330
105
105
  mcp_proxy_adapter/examples/universal_client.py,sha256=n1-cBPOiCipA86Zcc_mI_jMywDMZS1p3u5JT3AqTsrQ,27577
106
106
  mcp_proxy_adapter/examples/basic_framework/__init__.py,sha256=4aYD--R6hy9n9CUxj7Osb9HcdVUMJ6_cfpu4ujkbCwI,345
107
- mcp_proxy_adapter/examples/basic_framework/main.py,sha256=tumfMyKV45eC7sdUM-Uz4ePIlgP01BC5zzGqEmttHYc,1748
107
+ mcp_proxy_adapter/examples/basic_framework/main.py,sha256=AkGUXW05_AK8SEKwlS_0isJKKqjulKBDPp7t36t9QJk,1787
108
108
  mcp_proxy_adapter/examples/basic_framework/commands/__init__.py,sha256=_VQNLUEdsxUG-4yt9BZI_vtOxHAdGG0OUSsP6Wj-Vz4,76
109
109
  mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py,sha256=IE_EIXMnkdXuakZn7wLD9kBFyfDF5lYi56ejgiBeb-A,70
110
110
  mcp_proxy_adapter/examples/commands/__init__.py,sha256=zvY_OpH_B1bVc_khrNIl6O8vqCw1FH6gGMAsJAkGWGY,170
@@ -122,7 +122,7 @@ mcp_proxy_adapter/examples/examples/full_application/hooks/__init__.py,sha256=OR
122
122
  mcp_proxy_adapter/examples/examples/full_application/hooks/application_hooks.py,sha256=vcMHakKOt9pvJDZ6XfgvcYJfrrxg-RnIC8wX6LPqKvA,3500
123
123
  mcp_proxy_adapter/examples/examples/full_application/hooks/builtin_command_hooks.py,sha256=P5KjODcVPier-nxjWWpG7yO7ppSjSx-6BJ9FxArD-ps,2988
124
124
  mcp_proxy_adapter/examples/full_application/__init__.py,sha256=xGiPYhRAzs1Fh9wA8HoowV-Gg9QMLaMZn-OamExq1TI,320
125
- mcp_proxy_adapter/examples/full_application/main.py,sha256=V61KoAxnl3w9CSbC0rZBjJ61j24qQyXaRL67ZDgbku0,7848
125
+ mcp_proxy_adapter/examples/full_application/main.py,sha256=ogL3Bil_5puGnwvMh3YNOjrW76FIzzoggKEp-04HSfo,7855
126
126
  mcp_proxy_adapter/examples/full_application/proxy_endpoints.py,sha256=Kt_WAsG61HLTMkKQ1mQqjvlX9I4TcfwYq0NaRR9HKvM,6179
127
127
  mcp_proxy_adapter/examples/full_application/commands/__init__.py,sha256=yQHxVSFkAyFLUOdk42QOebUODPlQV9IbydPgF3UKsGM,217
128
128
  mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py,sha256=H7FPJmVJNWT61rPWxep06-7hsYRt8XYBUSBiwqpBurU,3096
@@ -136,10 +136,10 @@ mcp_proxy_adapter/examples/scripts/generate_certificates_and_tokens.py,sha256=hU
136
136
  mcp_proxy_adapter/schemas/base_schema.json,sha256=v9G9cGMd4dRhCZsOQ_FMqOi5VFyVbI6Cf3fyIvOT9dc,2881
137
137
  mcp_proxy_adapter/schemas/openapi_schema.json,sha256=C3yLkwmDsvnLW9B5gnKKdBGl4zxkeU-rEmjTrNVsQU0,8405
138
138
  mcp_proxy_adapter/utils/config_generator.py,sha256=UXxuxxAyKTesAS3DOofQ26e20v771inA7EfBV8PZD1c,47543
139
- mcp_proxy_adapter-6.3.12.dist-info/licenses/LICENSE,sha256=6KdtUcTwmTRbJrAmYjVn7e6S-V42ubeDJ-AiVEzZ510,1075
139
+ mcp_proxy_adapter-6.3.14.dist-info/licenses/LICENSE,sha256=6KdtUcTwmTRbJrAmYjVn7e6S-V42ubeDJ-AiVEzZ510,1075
140
140
  mcp_proxy_adapter_issue_package/demonstrate_issue.py,sha256=O54fwWQvUAjEGiHhQGm1JLnARkhVCwAqjBk_89HyRbY,7894
141
- mcp_proxy_adapter-6.3.12.dist-info/METADATA,sha256=jbTTNk7eD1EY_tf8GXmYTOlvornEW-WZSi-XfCRlVR8,22348
142
- mcp_proxy_adapter-6.3.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
143
- mcp_proxy_adapter-6.3.12.dist-info/entry_points.txt,sha256=J3eV6ID0lt_VSp4lIdIgBFTqLCThgObNNxRCbyfiMHw,70
144
- mcp_proxy_adapter-6.3.12.dist-info/top_level.txt,sha256=CHk-Mc-AxjO-tRheegA2qLiQnU4vZRnxuTF81So6SAc,50
145
- mcp_proxy_adapter-6.3.12.dist-info/RECORD,,
141
+ mcp_proxy_adapter-6.3.14.dist-info/METADATA,sha256=rLsXqMhDpbDRKpHcUitRcvI0bZTeD9MaBFdZJap0vQs,22348
142
+ mcp_proxy_adapter-6.3.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
143
+ mcp_proxy_adapter-6.3.14.dist-info/entry_points.txt,sha256=J3eV6ID0lt_VSp4lIdIgBFTqLCThgObNNxRCbyfiMHw,70
144
+ mcp_proxy_adapter-6.3.14.dist-info/top_level.txt,sha256=CHk-Mc-AxjO-tRheegA2qLiQnU4vZRnxuTF81So6SAc,50
145
+ mcp_proxy_adapter-6.3.14.dist-info/RECORD,,