mcp-proxy-adapter 6.9.26__py3-none-any.whl → 6.9.28__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.
Potentially problematic release.
This version of mcp-proxy-adapter might be problematic. Click here for more details.
- mcp_proxy_adapter/api/app.py +6 -5
- mcp_proxy_adapter/api/middleware/unified_security.py +6 -5
- mcp_proxy_adapter/core/client_security.py +6 -5
- mcp_proxy_adapter/core/proxy_registration.py +3 -2
- mcp_proxy_adapter/core/security_adapter.py +6 -9
- mcp_proxy_adapter/core/security_integration.py +6 -9
- mcp_proxy_adapter/core/unified_config_adapter.py +6 -7
- {mcp_proxy_adapter-6.9.26.dist-info → mcp_proxy_adapter-6.9.28.dist-info}/METADATA +1 -1
- {mcp_proxy_adapter-6.9.26.dist-info → mcp_proxy_adapter-6.9.28.dist-info}/RECORD +12 -12
- {mcp_proxy_adapter-6.9.26.dist-info → mcp_proxy_adapter-6.9.28.dist-info}/WHEEL +0 -0
- {mcp_proxy_adapter-6.9.26.dist-info → mcp_proxy_adapter-6.9.28.dist-info}/entry_points.txt +0 -0
- {mcp_proxy_adapter-6.9.26.dist-info → mcp_proxy_adapter-6.9.28.dist-info}/top_level.txt +0 -0
mcp_proxy_adapter/api/app.py
CHANGED
|
@@ -78,11 +78,12 @@ def _determine_registration_url(config: Dict[str, Any]) -> str:
|
|
|
78
78
|
protocol = "https" if registration_protocol == "mtls" else registration_protocol
|
|
79
79
|
get_global_logger().info(f"🔍 Using registration.protocol: {registration_protocol} -> {protocol}")
|
|
80
80
|
else:
|
|
81
|
-
#
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
# NO FALLBACK! Protocol must be explicitly specified
|
|
82
|
+
raise ValueError(
|
|
83
|
+
"registration.protocol is required in configuration. "
|
|
84
|
+
"Please specify protocol explicitly in proxy_registration section. "
|
|
85
|
+
"NO FALLBACK to server.protocol is allowed!"
|
|
86
|
+
)
|
|
86
87
|
|
|
87
88
|
# Determine host
|
|
88
89
|
if not public_host:
|
|
@@ -23,11 +23,12 @@ try:
|
|
|
23
23
|
from mcp_security_framework.schemas.config import SecurityConfig
|
|
24
24
|
|
|
25
25
|
SECURITY_FRAMEWORK_AVAILABLE = True
|
|
26
|
-
except ImportError:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
except ImportError as e:
|
|
27
|
+
# NO FALLBACK! mcp_security_framework is REQUIRED
|
|
28
|
+
raise RuntimeError(
|
|
29
|
+
f"CRITICAL: mcp_security_framework is required but not available: {e}. "
|
|
30
|
+
"Install it with: pip install mcp_security_framework>=1.2.8"
|
|
31
|
+
) from e
|
|
31
32
|
|
|
32
33
|
from mcp_proxy_adapter.core.logging import get_global_logger
|
|
33
34
|
from mcp_proxy_adapter.core.security_integration import create_security_integration
|
|
@@ -31,11 +31,12 @@ try:
|
|
|
31
31
|
from mcp_security_framework.schemas.models import AuthResult, ValidationResult
|
|
32
32
|
|
|
33
33
|
SECURITY_FRAMEWORK_AVAILABLE = True
|
|
34
|
-
except ImportError:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
except ImportError as e:
|
|
35
|
+
# NO FALLBACK! mcp_security_framework is REQUIRED
|
|
36
|
+
raise RuntimeError(
|
|
37
|
+
f"CRITICAL: mcp_security_framework is required but not available: {e}. "
|
|
38
|
+
"Install it with: pip install mcp_security_framework>=1.2.8"
|
|
39
|
+
) from e
|
|
39
40
|
AuthResult = None
|
|
40
41
|
ValidationResult = None
|
|
41
42
|
|
|
@@ -355,6 +355,7 @@ class ProxyRegistrationManager:
|
|
|
355
355
|
ca_cert_file = ssl_config.get("ca_cert")
|
|
356
356
|
verify_mode = ssl_config.get("verify_mode", "CERT_REQUIRED")
|
|
357
357
|
verify_ssl = ssl_config.get("verify_ssl", True)
|
|
358
|
+
verify_hostname = ssl_config.get("verify_hostname", True) # ✅ Read verify_hostname setting
|
|
358
359
|
|
|
359
360
|
# Load CA certificate if provided
|
|
360
361
|
if ca_cert_file:
|
|
@@ -371,9 +372,9 @@ class ProxyRegistrationManager:
|
|
|
371
372
|
context.verify_mode = ssl.CERT_NONE
|
|
372
373
|
get_global_logger().debug("SSL verification disabled (CERT_NONE)")
|
|
373
374
|
elif verify_mode == "CERT_REQUIRED":
|
|
374
|
-
context.check_hostname =
|
|
375
|
+
context.check_hostname = verify_hostname # ✅ Use verify_hostname setting
|
|
375
376
|
context.verify_mode = ssl.CERT_REQUIRED
|
|
376
|
-
get_global_logger().debug("SSL verification enabled (CERT_REQUIRED)")
|
|
377
|
+
get_global_logger().debug(f"SSL verification enabled (CERT_REQUIRED), hostname check: {verify_hostname}")
|
|
377
378
|
else:
|
|
378
379
|
# For test environments, default to CERT_NONE to avoid certificate issues
|
|
379
380
|
context.check_hostname = False
|
|
@@ -22,15 +22,12 @@ try:
|
|
|
22
22
|
|
|
23
23
|
# Note: SecurityRequest and SecurityResult are not available in current version
|
|
24
24
|
SECURITY_FRAMEWORK_AVAILABLE = True
|
|
25
|
-
except ImportError:
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
SSLConfig = None
|
|
32
|
-
PermissionConfig = None
|
|
33
|
-
RateLimitConfig = None
|
|
25
|
+
except ImportError as e:
|
|
26
|
+
# NO FALLBACK! mcp_security_framework is REQUIRED
|
|
27
|
+
raise RuntimeError(
|
|
28
|
+
f"CRITICAL: mcp_security_framework is required but not available: {e}. "
|
|
29
|
+
"Install it with: pip install mcp_security_framework>=1.2.8"
|
|
30
|
+
) from e
|
|
34
31
|
|
|
35
32
|
from mcp_proxy_adapter.core.logging import get_global_logger
|
|
36
33
|
|
|
@@ -38,15 +38,12 @@ try:
|
|
|
38
38
|
)
|
|
39
39
|
|
|
40
40
|
SECURITY_FRAMEWORK_AVAILABLE = True
|
|
41
|
-
except ImportError:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
PermissionManager = None
|
|
48
|
-
RateLimiter = None
|
|
49
|
-
FastAPISecurityMiddleware = None
|
|
41
|
+
except ImportError as e:
|
|
42
|
+
# NO FALLBACK! mcp_security_framework is REQUIRED
|
|
43
|
+
raise RuntimeError(
|
|
44
|
+
f"CRITICAL: mcp_security_framework is required but not available: {e}. "
|
|
45
|
+
"Install it with: pip install mcp_security_framework>=1.2.8"
|
|
46
|
+
) from e
|
|
50
47
|
|
|
51
48
|
from mcp_proxy_adapter.core.logging import get_global_logger
|
|
52
49
|
|
|
@@ -25,13 +25,12 @@ try:
|
|
|
25
25
|
)
|
|
26
26
|
|
|
27
27
|
SECURITY_FRAMEWORK_AVAILABLE = True
|
|
28
|
-
except ImportError:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
RateLimitConfig = None
|
|
28
|
+
except ImportError as e:
|
|
29
|
+
# NO FALLBACK! mcp_security_framework is REQUIRED
|
|
30
|
+
raise RuntimeError(
|
|
31
|
+
f"CRITICAL: mcp_security_framework is required but not available: {e}. "
|
|
32
|
+
"Install it with: pip install mcp_security_framework>=1.2.8"
|
|
33
|
+
) from e
|
|
35
34
|
|
|
36
35
|
from mcp_proxy_adapter.core.logging import get_global_logger
|
|
37
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-proxy-adapter
|
|
3
|
-
Version: 6.9.
|
|
3
|
+
Version: 6.9.28
|
|
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
|
|
@@ -6,7 +6,7 @@ mcp_proxy_adapter/main.py,sha256=FV1p-w_TTgdyfaVII5_VA8EAWnKCMmoR4nezcg2iSZg,104
|
|
|
6
6
|
mcp_proxy_adapter/openapi.py,sha256=2UZOI09ZDRJuBYBjKbMyb2U4uASszoCMD5o_4ktRpvg,13480
|
|
7
7
|
mcp_proxy_adapter/version.py,sha256=cU-yX-PaA0egHOSIRsMZ-BeRuLtW9wgyP4HPVao8arE,75
|
|
8
8
|
mcp_proxy_adapter/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
-
mcp_proxy_adapter/api/app.py,sha256=
|
|
9
|
+
mcp_proxy_adapter/api/app.py,sha256=rX76Qnc1QdTQAon8-V1BDQE6DrUjd-ObBu-67Wv-RMs,39158
|
|
10
10
|
mcp_proxy_adapter/api/handlers.py,sha256=NTZk34hP1US3bvAl0Z0DDrOEQBNk5T7jkt9AatI-5rc,10074
|
|
11
11
|
mcp_proxy_adapter/api/schemas.py,sha256=mevUvQnYgWQfkJAs3-vq3HalBzh6-Saa-Au1VVf0peE,12377
|
|
12
12
|
mcp_proxy_adapter/api/tool_integration.py,sha256=cL3phrdQl7UR_OFHV6OVoA0-pUDLov7vlcvIbddhik8,10234
|
|
@@ -20,7 +20,7 @@ mcp_proxy_adapter/api/middleware/logging.py,sha256=pqsXbLNJPo2ZRADmsjAkkL7NOD_J9
|
|
|
20
20
|
mcp_proxy_adapter/api/middleware/performance.py,sha256=WkE5hVTuq7PV1Bc_tVpmbEaQqTqX7Krjq7bqO6Jc_NQ,2394
|
|
21
21
|
mcp_proxy_adapter/api/middleware/protocol_middleware.py,sha256=uVQRtqO_CoyXwtoYH3N71mQ5mOWjgHfTyvRD5QfjQgw,9406
|
|
22
22
|
mcp_proxy_adapter/api/middleware/transport_middleware.py,sha256=cdl0RhIAaZYPU_lrOiwbLI_RHsmWiA2Vt9u2uGPnXWY,4311
|
|
23
|
-
mcp_proxy_adapter/api/middleware/unified_security.py,sha256=
|
|
23
|
+
mcp_proxy_adapter/api/middleware/unified_security.py,sha256=R4IDOjn0yIRa04gYyp9kBTMWFaVcZAVyE1vN_GlzSbA,8370
|
|
24
24
|
mcp_proxy_adapter/api/middleware/user_info_middleware.py,sha256=ozsBOcuIbrqyfSefFmvkTJW201r6ZJi8M8Gp1eJt2Xo,11348
|
|
25
25
|
mcp_proxy_adapter/commands/__init__.py,sha256=3BOfAiep__ftpx2hMfwj96vtDFdcVf3P3nm-vZWGohE,1700
|
|
26
26
|
mcp_proxy_adapter/commands/auth_validation_command.py,sha256=hOzi3oWUYgi6F5rcbb-BVkgVaESLeK84XsTAl6m0XSo,14719
|
|
@@ -60,7 +60,7 @@ mcp_proxy_adapter/core/auth_validator.py,sha256=XZuaozJ7bgvS2mmSAYSvythvYGwsQjYH
|
|
|
60
60
|
mcp_proxy_adapter/core/certificate_utils.py,sha256=tzF8OOG7wnQ4vZBElN-cGpFbaOyWwzttjuJ9zXeitqM,38831
|
|
61
61
|
mcp_proxy_adapter/core/client.py,sha256=qIbPl8prEwK2U65kl-vGJW2_imo1E4i6HxG_VpPeWpQ,21168
|
|
62
62
|
mcp_proxy_adapter/core/client_manager.py,sha256=RIOQqvoefxfjZIDLobnsQW2-_d5iA9wx4n145aIX7NI,9001
|
|
63
|
-
mcp_proxy_adapter/core/client_security.py,sha256=
|
|
63
|
+
mcp_proxy_adapter/core/client_security.py,sha256=4scrrK7H91ZQponDIQ6sXwGqXrij9uwTf5xjekUOvw0,13603
|
|
64
64
|
mcp_proxy_adapter/core/config_converter.py,sha256=_aMJPFwKIbMlzLgtpEHBbXp_PgScKMGHGvXnq95GzgA,17654
|
|
65
65
|
mcp_proxy_adapter/core/config_validator.py,sha256=i0tkmWPPugG5XwQvBGoNuANZwMoHidlFOIhWSezI3QE,59666
|
|
66
66
|
mcp_proxy_adapter/core/crl_utils.py,sha256=JagcJBkGY-YEmkhRWBDDkfi75wIyBOlf6s7YvXgTiHI,11992
|
|
@@ -72,18 +72,18 @@ mcp_proxy_adapter/core/mtls_proxy.py,sha256=f_B_cB0REzHiL2WZQPBCwzQnKAzT5s0qsZ8t
|
|
|
72
72
|
mcp_proxy_adapter/core/mtls_server.py,sha256=dhx_KXEmq8lMI2F6XEpoNybGnVzXeuVyR2abJ0_VZkE,10740
|
|
73
73
|
mcp_proxy_adapter/core/protocol_manager.py,sha256=LzQMxnBfF4UKr1ZTgfK5_KDQEKrHhoJgzw1C-YJjtoQ,15055
|
|
74
74
|
mcp_proxy_adapter/core/proxy_client.py,sha256=T9rqITYNijAw-yE4wvBe7ABN-LhJjkbIEeK6Rv1iUeA,6100
|
|
75
|
-
mcp_proxy_adapter/core/proxy_registration.py,sha256=
|
|
75
|
+
mcp_proxy_adapter/core/proxy_registration.py,sha256=r426L8iAwUOSodwwKYYu_FMaJdfRvuryxj_eL5X0At0,43141
|
|
76
76
|
mcp_proxy_adapter/core/role_utils.py,sha256=YwRenGoXI5YrHVbFjKFAH2DJs2miyqhcr9LWF7mxieg,12284
|
|
77
|
-
mcp_proxy_adapter/core/security_adapter.py,sha256=
|
|
77
|
+
mcp_proxy_adapter/core/security_adapter.py,sha256=28r6b00tluONim6rl6-98Gyu7Uq9Qgwa_ZzoNQFt_4Y,13179
|
|
78
78
|
mcp_proxy_adapter/core/security_factory.py,sha256=u_WUwnNSTsTFwRV-uwyRufbcUSeOrdZATGs4NEmfNA0,8211
|
|
79
|
-
mcp_proxy_adapter/core/security_integration.py,sha256=
|
|
79
|
+
mcp_proxy_adapter/core/security_integration.py,sha256=rT0Fer2GDhc22ebZf5xcNphsct6zEBZTckhYaB0DQKw,14253
|
|
80
80
|
mcp_proxy_adapter/core/server_adapter.py,sha256=pncWkCPdnfmwlMZNTW2dYbvsE3GBxypaRrhJsT98364,9911
|
|
81
81
|
mcp_proxy_adapter/core/server_engine.py,sha256=DXPLQ1-8e4iJWsrUMS3fcI6wM0Qn4AGZwwZWhnJ70kI,9692
|
|
82
82
|
mcp_proxy_adapter/core/settings.py,sha256=D6cF4R_5gJ0XFGxzXUIzeqe-_muu6HL561TAei9wwZ0,10521
|
|
83
83
|
mcp_proxy_adapter/core/signal_handler.py,sha256=U3kSojb7F1svFGp2ic0w4v8eSzL7_BbdAMqesUsymhs,5481
|
|
84
84
|
mcp_proxy_adapter/core/ssl_utils.py,sha256=syvaJ3wnl7-r2D0oDv_trleXPo-xaw1cxSFe6SOpsd0,9654
|
|
85
85
|
mcp_proxy_adapter/core/transport_manager.py,sha256=CBFsOJZKGnzBrfQgplkxq4KW3krMSkHhVo9S70Z0nIk,9472
|
|
86
|
-
mcp_proxy_adapter/core/unified_config_adapter.py,sha256=
|
|
86
|
+
mcp_proxy_adapter/core/unified_config_adapter.py,sha256=RVkpU6eTTUXynVqSzejdbvaURHmpXvG7n2__Dt9w6h0,22971
|
|
87
87
|
mcp_proxy_adapter/core/utils.py,sha256=xWQOW0aM0q4xl8SwByHsMSKZouYEX2jDngET0s2cybk,8110
|
|
88
88
|
mcp_proxy_adapter/examples/__init__.py,sha256=k1F-EotAFbJ3JvK_rNgiH4bUztmxIWtYn0AfbAZ1ZGs,450
|
|
89
89
|
mcp_proxy_adapter/examples/bugfix_certificate_config.py,sha256=YGBE_SI6wYZUJLWl7-fP1OWXiSH4mHJAZHApgQWvG7s,10529
|
|
@@ -142,8 +142,8 @@ mcp_proxy_adapter/schemas/base_schema.json,sha256=v9G9cGMd4dRhCZsOQ_FMqOi5VFyVbI
|
|
|
142
142
|
mcp_proxy_adapter/schemas/openapi_schema.json,sha256=C3yLkwmDsvnLW9B5gnKKdBGl4zxkeU-rEmjTrNVsQU0,8405
|
|
143
143
|
mcp_proxy_adapter/schemas/roles.json,sha256=pgf_ZyqKyXbfGUxvobpiLiSJz9zzxrMuoVWEkEpz3N8,764
|
|
144
144
|
mcp_proxy_adapter/schemas/roles_schema.json,sha256=deHgI7L6GwfBXacOlNtDgDJelDThppClC3Ti4Eh8rJY,5659
|
|
145
|
-
mcp_proxy_adapter-6.9.
|
|
146
|
-
mcp_proxy_adapter-6.9.
|
|
147
|
-
mcp_proxy_adapter-6.9.
|
|
148
|
-
mcp_proxy_adapter-6.9.
|
|
149
|
-
mcp_proxy_adapter-6.9.
|
|
145
|
+
mcp_proxy_adapter-6.9.28.dist-info/METADATA,sha256=ks_zeL9BFyyf2-u4PEUZsHCyfeWFOYi8oQsvEt5HCcM,8539
|
|
146
|
+
mcp_proxy_adapter-6.9.28.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
147
|
+
mcp_proxy_adapter-6.9.28.dist-info/entry_points.txt,sha256=Bf-O5Aq80n22Ayu9fI9BgidzWqwzIVaqextAddTuHZw,563
|
|
148
|
+
mcp_proxy_adapter-6.9.28.dist-info/top_level.txt,sha256=JZT7vPLBYrtroX-ij68JBhJYbjDdghcV-DFySRy-Nnw,18
|
|
149
|
+
mcp_proxy_adapter-6.9.28.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|