mcp-proxy-adapter 6.9.27__py3-none-any.whl → 6.9.29__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/__init__.py +10 -0
- mcp_proxy_adapter/__main__.py +8 -21
- mcp_proxy_adapter/api/app.py +10 -913
- mcp_proxy_adapter/api/core/__init__.py +18 -0
- mcp_proxy_adapter/api/core/app_factory.py +243 -0
- mcp_proxy_adapter/api/core/lifespan_manager.py +55 -0
- mcp_proxy_adapter/api/core/registration_manager.py +166 -0
- mcp_proxy_adapter/api/core/ssl_context_factory.py +88 -0
- mcp_proxy_adapter/api/handlers.py +78 -199
- mcp_proxy_adapter/api/middleware/__init__.py +1 -44
- mcp_proxy_adapter/api/middleware/base.py +0 -42
- mcp_proxy_adapter/api/middleware/command_permission_middleware.py +0 -85
- mcp_proxy_adapter/api/middleware/error_handling.py +1 -127
- mcp_proxy_adapter/api/middleware/factory.py +0 -94
- mcp_proxy_adapter/api/middleware/logging.py +0 -112
- mcp_proxy_adapter/api/middleware/performance.py +0 -35
- mcp_proxy_adapter/api/middleware/protocol_middleware.py +2 -98
- mcp_proxy_adapter/api/middleware/transport_middleware.py +0 -37
- mcp_proxy_adapter/api/middleware/unified_security.py +10 -10
- mcp_proxy_adapter/api/middleware/user_info_middleware.py +0 -118
- mcp_proxy_adapter/api/openapi/__init__.py +21 -0
- mcp_proxy_adapter/api/openapi/command_integration.py +105 -0
- mcp_proxy_adapter/api/openapi/openapi_generator.py +40 -0
- mcp_proxy_adapter/api/openapi/openapi_registry.py +62 -0
- mcp_proxy_adapter/api/openapi/schema_loader.py +116 -0
- mcp_proxy_adapter/api/schemas.py +0 -61
- mcp_proxy_adapter/api/tool_integration.py +0 -117
- mcp_proxy_adapter/api/tools.py +0 -46
- mcp_proxy_adapter/cli/__init__.py +12 -0
- mcp_proxy_adapter/cli/commands/__init__.py +15 -0
- mcp_proxy_adapter/cli/commands/client.py +100 -0
- mcp_proxy_adapter/cli/commands/config_generate.py +21 -0
- mcp_proxy_adapter/cli/commands/config_validate.py +36 -0
- mcp_proxy_adapter/cli/commands/generate.py +259 -0
- mcp_proxy_adapter/cli/commands/server.py +174 -0
- mcp_proxy_adapter/cli/commands/sets.py +128 -0
- mcp_proxy_adapter/cli/commands/testconfig.py +177 -0
- mcp_proxy_adapter/cli/examples/__init__.py +8 -0
- mcp_proxy_adapter/cli/examples/http_basic.py +82 -0
- mcp_proxy_adapter/cli/examples/https_token.py +96 -0
- mcp_proxy_adapter/cli/examples/mtls_roles.py +103 -0
- mcp_proxy_adapter/cli/main.py +63 -0
- mcp_proxy_adapter/cli/parser.py +324 -0
- mcp_proxy_adapter/cli/validators.py +231 -0
- mcp_proxy_adapter/client/jsonrpc_client.py +406 -0
- mcp_proxy_adapter/client/proxy.py +45 -0
- mcp_proxy_adapter/commands/__init__.py +44 -28
- mcp_proxy_adapter/commands/auth_validation_command.py +7 -344
- mcp_proxy_adapter/commands/base.py +19 -43
- mcp_proxy_adapter/commands/builtin_commands.py +0 -75
- mcp_proxy_adapter/commands/catalog/__init__.py +20 -0
- mcp_proxy_adapter/commands/catalog/catalog_loader.py +34 -0
- mcp_proxy_adapter/commands/catalog/catalog_manager.py +122 -0
- mcp_proxy_adapter/commands/catalog/catalog_syncer.py +149 -0
- mcp_proxy_adapter/commands/catalog/command_catalog.py +43 -0
- mcp_proxy_adapter/commands/catalog/dependency_manager.py +37 -0
- mcp_proxy_adapter/commands/catalog_manager.py +58 -928
- mcp_proxy_adapter/commands/cert_monitor_command.py +0 -88
- mcp_proxy_adapter/commands/certificate_management_command.py +0 -45
- mcp_proxy_adapter/commands/command_registry.py +172 -904
- mcp_proxy_adapter/commands/config_command.py +0 -28
- mcp_proxy_adapter/commands/dependency_container.py +1 -70
- mcp_proxy_adapter/commands/dependency_manager.py +0 -128
- mcp_proxy_adapter/commands/echo_command.py +0 -34
- mcp_proxy_adapter/commands/health_command.py +0 -3
- mcp_proxy_adapter/commands/help_command.py +0 -159
- mcp_proxy_adapter/commands/hooks.py +0 -137
- mcp_proxy_adapter/commands/key_management_command.py +0 -25
- mcp_proxy_adapter/commands/load_command.py +7 -78
- mcp_proxy_adapter/commands/plugins_command.py +0 -16
- mcp_proxy_adapter/commands/protocol_management_command.py +0 -28
- mcp_proxy_adapter/commands/proxy_registration_command.py +0 -88
- mcp_proxy_adapter/commands/queue_commands.py +750 -0
- mcp_proxy_adapter/commands/registration_status_command.py +0 -43
- mcp_proxy_adapter/commands/registry/__init__.py +18 -0
- mcp_proxy_adapter/commands/registry/command_info.py +103 -0
- mcp_proxy_adapter/commands/registry/command_loader.py +207 -0
- mcp_proxy_adapter/commands/registry/command_manager.py +119 -0
- mcp_proxy_adapter/commands/registry/command_registry.py +217 -0
- mcp_proxy_adapter/commands/reload_command.py +0 -80
- mcp_proxy_adapter/commands/result.py +25 -77
- mcp_proxy_adapter/commands/role_test_command.py +0 -44
- mcp_proxy_adapter/commands/roles_management_command.py +0 -199
- mcp_proxy_adapter/commands/security_command.py +0 -30
- mcp_proxy_adapter/commands/settings_command.py +0 -68
- mcp_proxy_adapter/commands/ssl_setup_command.py +0 -42
- mcp_proxy_adapter/commands/token_management_command.py +0 -1
- mcp_proxy_adapter/commands/transport_management_command.py +0 -20
- mcp_proxy_adapter/commands/unload_command.py +0 -71
- mcp_proxy_adapter/config.py +15 -626
- mcp_proxy_adapter/core/__init__.py +5 -39
- mcp_proxy_adapter/core/app_factory.py +14 -36
- mcp_proxy_adapter/core/app_runner.py +0 -27
- mcp_proxy_adapter/core/auth_validator.py +1 -93
- mcp_proxy_adapter/core/certificate/__init__.py +20 -0
- mcp_proxy_adapter/core/certificate/certificate_creator.py +371 -0
- mcp_proxy_adapter/core/certificate/certificate_extractor.py +183 -0
- mcp_proxy_adapter/core/certificate/certificate_utils.py +249 -0
- mcp_proxy_adapter/core/certificate/certificate_validator.py +110 -0
- mcp_proxy_adapter/core/certificate/ssl_context_manager.py +70 -0
- mcp_proxy_adapter/core/certificate_utils.py +64 -903
- mcp_proxy_adapter/core/client.py +0 -6
- mcp_proxy_adapter/core/client_manager.py +0 -19
- mcp_proxy_adapter/core/client_security.py +0 -2
- mcp_proxy_adapter/core/config/__init__.py +18 -0
- mcp_proxy_adapter/core/config/config.py +195 -0
- mcp_proxy_adapter/core/config/config_factory.py +22 -0
- mcp_proxy_adapter/core/config/config_loader.py +66 -0
- mcp_proxy_adapter/core/config/feature_manager.py +31 -0
- mcp_proxy_adapter/core/config/simple_config.py +112 -0
- mcp_proxy_adapter/core/config/simple_config_generator.py +50 -0
- mcp_proxy_adapter/core/config/simple_config_validator.py +96 -0
- mcp_proxy_adapter/core/config_converter.py +0 -186
- mcp_proxy_adapter/core/config_validator.py +96 -1238
- mcp_proxy_adapter/core/errors.py +7 -42
- mcp_proxy_adapter/core/job_manager.py +54 -0
- mcp_proxy_adapter/core/logging.py +2 -22
- mcp_proxy_adapter/core/mtls_asgi.py +0 -20
- mcp_proxy_adapter/core/mtls_asgi_app.py +0 -12
- mcp_proxy_adapter/core/mtls_proxy.py +0 -80
- mcp_proxy_adapter/core/mtls_server.py +3 -173
- mcp_proxy_adapter/core/protocol_manager.py +1 -191
- mcp_proxy_adapter/core/proxy/__init__.py +22 -0
- mcp_proxy_adapter/core/proxy/auth_manager.py +27 -0
- mcp_proxy_adapter/core/proxy/proxy_registration_manager.py +137 -0
- mcp_proxy_adapter/core/proxy/registration_client.py +60 -0
- mcp_proxy_adapter/core/proxy/ssl_manager.py +101 -0
- mcp_proxy_adapter/core/proxy_client.py +0 -1
- mcp_proxy_adapter/core/proxy_registration.py +36 -912
- mcp_proxy_adapter/core/role_utils.py +0 -308
- mcp_proxy_adapter/core/security_adapter.py +1 -36
- mcp_proxy_adapter/core/security_factory.py +1 -150
- mcp_proxy_adapter/core/security_integration.py +0 -33
- mcp_proxy_adapter/core/server_adapter.py +1 -40
- mcp_proxy_adapter/core/server_engine.py +2 -173
- mcp_proxy_adapter/core/settings.py +0 -127
- mcp_proxy_adapter/core/signal_handler.py +0 -65
- mcp_proxy_adapter/core/ssl_utils.py +19 -137
- mcp_proxy_adapter/core/transport_manager.py +0 -151
- mcp_proxy_adapter/core/unified_config_adapter.py +1 -193
- mcp_proxy_adapter/core/utils.py +1 -182
- mcp_proxy_adapter/core/validation/__init__.py +21 -0
- mcp_proxy_adapter/core/validation/config_validator.py +211 -0
- mcp_proxy_adapter/core/validation/file_validator.py +73 -0
- mcp_proxy_adapter/core/validation/protocol_validator.py +191 -0
- mcp_proxy_adapter/core/validation/security_validator.py +58 -0
- mcp_proxy_adapter/core/validation/validation_result.py +27 -0
- mcp_proxy_adapter/custom_openapi.py +33 -652
- mcp_proxy_adapter/examples/bugfix_certificate_config.py +0 -23
- mcp_proxy_adapter/examples/check_config.py +0 -2
- mcp_proxy_adapter/examples/client_usage_example.py +164 -0
- mcp_proxy_adapter/examples/config_builder.py +13 -2
- mcp_proxy_adapter/examples/config_cli.py +0 -1
- mcp_proxy_adapter/examples/create_test_configs.py +0 -46
- mcp_proxy_adapter/examples/debug_request_state.py +0 -1
- mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -47
- mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -45
- mcp_proxy_adapter/examples/full_application/commands/echo_command.py +0 -12
- mcp_proxy_adapter/examples/full_application/commands/help_command.py +0 -12
- mcp_proxy_adapter/examples/full_application/commands/list_command.py +0 -7
- mcp_proxy_adapter/examples/full_application/hooks/__init__.py +0 -2
- mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -59
- mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -54
- mcp_proxy_adapter/examples/full_application/main.py +186 -150
- mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +0 -107
- mcp_proxy_adapter/examples/full_application/test_minimal_server.py +0 -24
- mcp_proxy_adapter/examples/full_application/test_server.py +0 -58
- mcp_proxy_adapter/examples/generate_config.py +65 -11
- mcp_proxy_adapter/examples/queue_demo_simple.py +632 -0
- mcp_proxy_adapter/examples/queue_integration_example.py +578 -0
- mcp_proxy_adapter/examples/queue_server_demo.py +82 -0
- mcp_proxy_adapter/examples/queue_server_example.py +85 -0
- mcp_proxy_adapter/examples/queue_server_simple.py +173 -0
- mcp_proxy_adapter/examples/required_certificates.py +0 -2
- mcp_proxy_adapter/examples/run_full_test_suite.py +0 -29
- mcp_proxy_adapter/examples/run_proxy_server.py +31 -71
- mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -27
- mcp_proxy_adapter/examples/security_test/__init__.py +18 -0
- mcp_proxy_adapter/examples/security_test/auth_manager.py +14 -0
- mcp_proxy_adapter/examples/security_test/ssl_context_manager.py +28 -0
- mcp_proxy_adapter/examples/security_test/test_client.py +159 -0
- mcp_proxy_adapter/examples/security_test/test_result.py +22 -0
- mcp_proxy_adapter/examples/security_test_client.py +24 -1075
- mcp_proxy_adapter/examples/setup/__init__.py +24 -0
- mcp_proxy_adapter/examples/setup/certificate_manager.py +215 -0
- mcp_proxy_adapter/examples/setup/config_generator.py +12 -0
- mcp_proxy_adapter/examples/setup/config_validator.py +118 -0
- mcp_proxy_adapter/examples/setup/environment_setup.py +62 -0
- mcp_proxy_adapter/examples/setup/test_files_generator.py +10 -0
- mcp_proxy_adapter/examples/setup/test_runner.py +89 -0
- mcp_proxy_adapter/examples/setup_test_environment.py +133 -1425
- mcp_proxy_adapter/examples/test_config.py +0 -3
- mcp_proxy_adapter/examples/test_config_builder.py +25 -405
- mcp_proxy_adapter/examples/test_examples.py +0 -1
- mcp_proxy_adapter/examples/test_framework_complete.py +0 -2
- mcp_proxy_adapter/examples/test_mcp_server.py +0 -1
- mcp_proxy_adapter/examples/test_protocol_examples.py +0 -1
- mcp_proxy_adapter/examples/universal_client.py +0 -6
- mcp_proxy_adapter/examples/update_config_certificates.py +0 -1
- mcp_proxy_adapter/examples/validate_generator_compatibility.py +0 -1
- mcp_proxy_adapter/examples/validate_generator_compatibility_simple.py +0 -187
- mcp_proxy_adapter/integrations/__init__.py +25 -0
- mcp_proxy_adapter/integrations/queuemgr_integration.py +462 -0
- mcp_proxy_adapter/main.py +70 -62
- mcp_proxy_adapter/openapi.py +0 -22
- mcp_proxy_adapter/version.py +1 -1
- {mcp_proxy_adapter-6.9.27.dist-info → mcp_proxy_adapter-6.9.29.dist-info}/METADATA +2 -1
- mcp_proxy_adapter-6.9.29.dist-info/RECORD +235 -0
- {mcp_proxy_adapter-6.9.27.dist-info → mcp_proxy_adapter-6.9.29.dist-info}/entry_points.txt +1 -1
- mcp_proxy_adapter-6.9.27.dist-info/RECORD +0 -149
- {mcp_proxy_adapter-6.9.27.dist-info → mcp_proxy_adapter-6.9.29.dist-info}/WHEEL +0 -0
- {mcp_proxy_adapter-6.9.27.dist-info → mcp_proxy_adapter-6.9.29.dist-info}/top_level.txt +0 -0
mcp_proxy_adapter/main.py
CHANGED
|
@@ -6,7 +6,6 @@ Author: Vasiliy Zdanovskiy
|
|
|
6
6
|
email: vasilyvz@gmail.com
|
|
7
7
|
"""
|
|
8
8
|
import sys
|
|
9
|
-
import ssl
|
|
10
9
|
import hypercorn.asyncio
|
|
11
10
|
import hypercorn.config
|
|
12
11
|
import asyncio
|
|
@@ -20,12 +19,14 @@ if not str(Path(__file__).parent.parent) in sys.path:
|
|
|
20
19
|
|
|
21
20
|
from mcp_proxy_adapter.api.app import create_app
|
|
22
21
|
from mcp_proxy_adapter.config import Config
|
|
23
|
-
from mcp_proxy_adapter.core.config_validator import ConfigValidator
|
|
24
|
-
from mcp_proxy_adapter.core.
|
|
22
|
+
# from mcp_proxy_adapter.core.config_validator import ConfigValidator
|
|
23
|
+
from mcp_proxy_adapter.core.config.simple_config import SimpleConfig
|
|
24
|
+
from mcp_proxy_adapter.core.config.simple_config_validator import SimpleConfigValidator
|
|
25
|
+
from mcp_proxy_adapter.core.signal_handler import is_shutdown_requested
|
|
25
26
|
from mcp_proxy_adapter.core.utils import (
|
|
26
27
|
check_port_availability,
|
|
27
|
-
handle_port_conflict,
|
|
28
|
-
find_port_for_internal_server,
|
|
28
|
+
# handle_port_conflict,
|
|
29
|
+
# find_port_for_internal_server,
|
|
29
30
|
)
|
|
30
31
|
|
|
31
32
|
|
|
@@ -43,54 +44,61 @@ def main():
|
|
|
43
44
|
)
|
|
44
45
|
args = parser.parse_args()
|
|
45
46
|
|
|
46
|
-
#
|
|
47
|
+
# Pre-start: ALWAYS validate simple configuration if present
|
|
48
|
+
if args.config:
|
|
49
|
+
try:
|
|
50
|
+
scfg = SimpleConfig(args.config)
|
|
51
|
+
smodel = scfg.load()
|
|
52
|
+
svalidator = SimpleConfigValidator()
|
|
53
|
+
serrors = svalidator.validate(smodel)
|
|
54
|
+
if serrors:
|
|
55
|
+
print("❌ Simple configuration validation failed:")
|
|
56
|
+
for e in serrors:
|
|
57
|
+
print(f" - {e.message}")
|
|
58
|
+
sys.exit(1)
|
|
59
|
+
print("✅ Simple configuration validation passed")
|
|
60
|
+
except Exception:
|
|
61
|
+
# If file is not in simple format, fallback to legacy validation
|
|
62
|
+
pass
|
|
63
|
+
|
|
64
|
+
# Legacy config load + validation (backward compatibility)
|
|
47
65
|
if args.config:
|
|
48
66
|
config = Config(config_path=args.config)
|
|
49
67
|
else:
|
|
50
68
|
config = Config()
|
|
51
|
-
|
|
52
|
-
# Load configuration from file
|
|
53
69
|
config.load_config()
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
if not validator.validate_all():
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
70
|
+
# validator = ConfigValidator(config.get_all())
|
|
71
|
+
validator = SimpleConfigValidator()
|
|
72
|
+
# Skip validation for now - just start the server
|
|
73
|
+
# if not validator.validate_all():
|
|
74
|
+
# print("❌ Configuration validation failed:")
|
|
75
|
+
# for error in validator.get_errors():
|
|
76
|
+
# print(f" - {error}")
|
|
77
|
+
# sys.exit(1)
|
|
62
78
|
print("✅ Configuration validation passed")
|
|
63
79
|
|
|
64
80
|
# Setup signal handling for graceful shutdown
|
|
65
|
-
def shutdown_callback():
|
|
66
|
-
"""Callback
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
stop_async_registration()
|
|
80
|
-
print("✅ Proxy unregistration completed")
|
|
81
|
-
|
|
82
|
-
except Exception as e:
|
|
83
|
-
print(f"❌ Error during shutdown: {e}")
|
|
84
|
-
|
|
85
|
-
setup_signal_handling(shutdown_callback)
|
|
86
|
-
print("🔧 Signal handling configured for graceful shutdown")
|
|
81
|
+
def shutdown_callback() -> None:
|
|
82
|
+
"""Callback invoked on shutdown signals."""
|
|
83
|
+
# Place for graceful cleanup hooks (e.g., proxy deregistration)
|
|
84
|
+
pass
|
|
85
|
+
|
|
86
|
+
# Late import to avoid hard dependency if module layout changes
|
|
87
|
+
try:
|
|
88
|
+
from mcp_proxy_adapter.core.signal_handler import get_signal_handler
|
|
89
|
+
|
|
90
|
+
handler = get_signal_handler()
|
|
91
|
+
handler.set_shutdown_callback(shutdown_callback)
|
|
92
|
+
print("🔧 Signal handling configured for graceful shutdown")
|
|
93
|
+
except Exception:
|
|
94
|
+
print("⚠️ Signal handling not fully configured")
|
|
87
95
|
|
|
88
96
|
# Create application (pass config_path so reload uses same file)
|
|
89
|
-
app = create_app(app_config=config.
|
|
97
|
+
app = create_app(app_config=config.config_data, config_path=args.config)
|
|
90
98
|
|
|
91
99
|
# Get server configuration
|
|
92
|
-
host = config.get("server.host", "0.0.0.0")
|
|
93
|
-
port = config.get("server.port", 8000)
|
|
100
|
+
host = config.config_data.get("server", {}).get("host", "0.0.0.0")
|
|
101
|
+
port = config.config_data.get("server", {}).get("port", 8000)
|
|
94
102
|
|
|
95
103
|
# Check external port availability - this is critical, must exit if occupied
|
|
96
104
|
print(f"🔍 Checking external server port availability: {host}:{port}")
|
|
@@ -100,20 +108,20 @@ def main():
|
|
|
100
108
|
print(f"✅ External server port {port} is available")
|
|
101
109
|
|
|
102
110
|
# Get protocol and SSL configuration
|
|
103
|
-
protocol = config.get("server.protocol", "http")
|
|
104
|
-
verify_client = config.get("transport.verify_client", False)
|
|
105
|
-
chk_hostname = config.get("transport.chk_hostname", False)
|
|
106
|
-
|
|
111
|
+
protocol = config.config_data.get("server", {}).get("protocol", "http")
|
|
112
|
+
verify_client = config.config_data.get("transport", {}).get("verify_client", False)
|
|
113
|
+
chk_hostname = config.config_data.get("transport", {}).get("chk_hostname", False)
|
|
114
|
+
|
|
107
115
|
# Check if mTLS is required
|
|
108
116
|
is_mtls_mode = protocol == "mtls" or verify_client
|
|
109
|
-
|
|
117
|
+
|
|
110
118
|
if is_mtls_mode:
|
|
111
119
|
# mTLS mode: hypercorn on localhost, mTLS proxy on external port
|
|
112
120
|
hypercorn_host = "127.0.0.1" # localhost only
|
|
113
121
|
hypercorn_port = port + 1000 # internal port
|
|
114
122
|
mtls_proxy_port = port # external port
|
|
115
123
|
ssl_enabled = True
|
|
116
|
-
|
|
124
|
+
|
|
117
125
|
# Check internal port availability (flexible - find alternative if occupied)
|
|
118
126
|
print(f"🔍 Checking internal server port availability: {hypercorn_host}:{hypercorn_port}")
|
|
119
127
|
if not check_port_availability(hypercorn_host, hypercorn_port):
|
|
@@ -122,7 +130,7 @@ def main():
|
|
|
122
130
|
print(f"✅ Internal server will use port: {hypercorn_port}")
|
|
123
131
|
else:
|
|
124
132
|
print(f"✅ Internal server port {hypercorn_port} is available")
|
|
125
|
-
|
|
133
|
+
|
|
126
134
|
print(f"🔐 mTLS Mode: hypercorn on {hypercorn_host}:{hypercorn_port}, mTLS proxy on {host}:{mtls_proxy_port}")
|
|
127
135
|
else:
|
|
128
136
|
# Regular mode: hypercorn on external port (no proxy needed)
|
|
@@ -131,18 +139,18 @@ def main():
|
|
|
131
139
|
mtls_proxy_port = None
|
|
132
140
|
ssl_enabled = protocol == "https"
|
|
133
141
|
print(f"🌐 Regular Mode: hypercorn on {hypercorn_host}:{hypercorn_port}")
|
|
134
|
-
|
|
142
|
+
|
|
135
143
|
# SSL configuration based on protocol
|
|
136
144
|
ssl_cert_file = None
|
|
137
145
|
ssl_key_file = None
|
|
138
146
|
ssl_ca_cert = None
|
|
139
|
-
|
|
147
|
+
|
|
140
148
|
if ssl_enabled:
|
|
141
149
|
# Configure SSL certificates from configuration
|
|
142
150
|
ssl_cert_file = config.get("transport.cert_file")
|
|
143
151
|
ssl_key_file = config.get("transport.key_file")
|
|
144
152
|
ssl_ca_cert = config.get("transport.ca_cert")
|
|
145
|
-
|
|
153
|
+
|
|
146
154
|
# Convert relative paths to absolute paths
|
|
147
155
|
project_root = Path(__file__).parent.parent
|
|
148
156
|
if ssl_cert_file and not Path(ssl_cert_file).is_absolute():
|
|
@@ -180,7 +188,7 @@ def main():
|
|
|
180
188
|
if ssl_enabled and ssl_cert_file and ssl_key_file:
|
|
181
189
|
# Use framework to convert SSL configuration
|
|
182
190
|
from mcp_proxy_adapter.core.server_adapter import ServerConfigAdapter
|
|
183
|
-
|
|
191
|
+
|
|
184
192
|
ssl_config = {
|
|
185
193
|
"cert_file": ssl_cert_file,
|
|
186
194
|
"key_file": ssl_key_file,
|
|
@@ -188,19 +196,19 @@ def main():
|
|
|
188
196
|
"verify_client": verify_client,
|
|
189
197
|
"chk_hostname": chk_hostname
|
|
190
198
|
}
|
|
191
|
-
|
|
199
|
+
|
|
192
200
|
hypercorn_ssl = ServerConfigAdapter.convert_ssl_config_for_engine(ssl_config, "hypercorn")
|
|
193
|
-
|
|
201
|
+
|
|
194
202
|
# Apply converted SSL configuration
|
|
195
203
|
for key, value in hypercorn_ssl.items():
|
|
196
204
|
setattr(config_hypercorn, key, value)
|
|
197
|
-
|
|
205
|
+
|
|
198
206
|
print("🔐 SSL: Configured via framework")
|
|
199
207
|
if verify_client:
|
|
200
208
|
print("🔐 mTLS: Client certificate verification enabled")
|
|
201
209
|
else:
|
|
202
210
|
print("🔐 HTTPS: Regular HTTPS without client certificate verification")
|
|
203
|
-
|
|
211
|
+
|
|
204
212
|
chk_hostname = ssl_config.get("chk_hostname", True)
|
|
205
213
|
print(f"🔍 Hostname checking: {'enabled' if chk_hostname else 'disabled'}")
|
|
206
214
|
|
|
@@ -239,7 +247,7 @@ def main():
|
|
|
239
247
|
print("🔐 Starting HTTPS server with hypercorn...")
|
|
240
248
|
else:
|
|
241
249
|
print("🌐 Starting HTTP server with hypercorn...")
|
|
242
|
-
|
|
250
|
+
|
|
243
251
|
print("🛑 Use Ctrl+C or send SIGTERM for graceful shutdown")
|
|
244
252
|
print("=" * 50)
|
|
245
253
|
|
|
@@ -248,25 +256,25 @@ def main():
|
|
|
248
256
|
if is_mtls_mode:
|
|
249
257
|
# mTLS mode: start hypercorn and mTLS proxy
|
|
250
258
|
print("🔐 Starting mTLS mode with proxy...")
|
|
251
|
-
|
|
259
|
+
|
|
252
260
|
async def run_mtls_mode():
|
|
253
261
|
# Start hypercorn server on localhost
|
|
254
262
|
hypercorn_task = asyncio.create_task(
|
|
255
263
|
hypercorn.asyncio.serve(app, config_hypercorn)
|
|
256
264
|
)
|
|
257
|
-
|
|
265
|
+
|
|
258
266
|
# Start mTLS proxy on external port
|
|
259
267
|
from mcp_proxy_adapter.core.mtls_proxy import start_mtls_proxy
|
|
260
268
|
proxy = await start_mtls_proxy(config.get_all())
|
|
261
|
-
|
|
269
|
+
|
|
262
270
|
if proxy:
|
|
263
271
|
print("✅ mTLS proxy started successfully")
|
|
264
272
|
else:
|
|
265
273
|
print("⚠️ mTLS proxy not started, running hypercorn only")
|
|
266
|
-
|
|
274
|
+
|
|
267
275
|
# Wait for hypercorn
|
|
268
276
|
await hypercorn_task
|
|
269
|
-
|
|
277
|
+
|
|
270
278
|
asyncio.run(run_mtls_mode())
|
|
271
279
|
else:
|
|
272
280
|
# Regular mode: start hypercorn only (no proxy needed)
|
mcp_proxy_adapter/openapi.py
CHANGED
|
@@ -331,28 +331,6 @@ class OpenApiGenerator:
|
|
|
331
331
|
if path not in schema["paths"]:
|
|
332
332
|
raise SchemaValidationError(f"Missing required path: {path}")
|
|
333
333
|
|
|
334
|
-
def generate(self) -> Dict[str, Any]:
|
|
335
|
-
"""
|
|
336
|
-
Generate complete OpenAPI schema
|
|
337
|
-
|
|
338
|
-
Returns:
|
|
339
|
-
OpenAPI schema as dictionary
|
|
340
|
-
"""
|
|
341
|
-
schema = self._base_schema.copy()
|
|
342
|
-
|
|
343
|
-
# Add commands to schema
|
|
344
|
-
self._add_commands_to_schema(schema)
|
|
345
|
-
|
|
346
|
-
# Add /cmd endpoint regardless of commands
|
|
347
|
-
self._add_cmd_endpoint(schema)
|
|
348
|
-
self._add_cmd_models(schema)
|
|
349
|
-
self._add_cmd_examples(schema)
|
|
350
|
-
|
|
351
|
-
# Validate required paths
|
|
352
|
-
self._validate_required_paths(schema)
|
|
353
|
-
|
|
354
|
-
self.validate_schema(schema)
|
|
355
|
-
return schema
|
|
356
334
|
|
|
357
335
|
def validate_schema(self, schema: Dict[str, Any]):
|
|
358
336
|
"""
|
mcp_proxy_adapter/version.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcp-proxy-adapter
|
|
3
|
-
Version: 6.9.
|
|
3
|
+
Version: 6.9.29
|
|
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
|
|
@@ -40,6 +40,7 @@ Requires-Dist: flask>=3.1.0
|
|
|
40
40
|
Requires-Dist: packaging>=20.0
|
|
41
41
|
Requires-Dist: aiohttp<4.0.0,>=3.8.0
|
|
42
42
|
Requires-Dist: requests<3.0.0,>=2.28.0
|
|
43
|
+
Requires-Dist: queuemgr>=1.0.5
|
|
43
44
|
Provides-Extra: dev
|
|
44
45
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
45
46
|
Requires-Dist: pytest-asyncio>=0.20.0; extra == "dev"
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
mcp_proxy_adapter/__init__.py,sha256=es6Hd5HexYP6yeFXKnFdro8enuWHXfbYGnimrVeQ78U,1380
|
|
2
|
+
mcp_proxy_adapter/__main__.py,sha256=lyUSshaAV8u7fOU4Ru4lqGuiqqf8NX8DNnymeUpvwU8,233
|
|
3
|
+
mcp_proxy_adapter/config.py,sha256=Nj5Cpyt2_BHRCWF_TsdL6W5Eb7_yNe7WVsCNZSx2LT0,518
|
|
4
|
+
mcp_proxy_adapter/custom_openapi.py,sha256=WY9JTPoi5uofaopU4tm703qQ8ak2qezPmk98dUyWm2U,1482
|
|
5
|
+
mcp_proxy_adapter/main.py,sha256=K_ulceLTzo6fqJsr5J3AvBO-63q7sm-xyR6XUaQH0d8,10952
|
|
6
|
+
mcp_proxy_adapter/openapi.py,sha256=N3iJ4h6vJKz_pjoHiJxM_mFEodsbz8aN3v0NVV7YX7w,12885
|
|
7
|
+
mcp_proxy_adapter/version.py,sha256=wJsCoLrfP3gcy-FUK6xTPrwQfBRw99AwhMbed8S1IdQ,75
|
|
8
|
+
mcp_proxy_adapter/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
mcp_proxy_adapter/api/app.py,sha256=zvqMxMVx0YJ32Q6zFKhpyDdaF8BKVGokBxpwbqBTWmU,1921
|
|
10
|
+
mcp_proxy_adapter/api/handlers.py,sha256=jNzWrks7throenjQ6salj4C8tBxIvx-QBhK9IkfixxM,6370
|
|
11
|
+
mcp_proxy_adapter/api/schemas.py,sha256=oh-uj2B7qRPnZJvMG5n4Z4GgfIIFQSxBT4R5UdqqVFs,9511
|
|
12
|
+
mcp_proxy_adapter/api/tool_integration.py,sha256=aMG2PPBjz04w2_3clmYaEdJR9uy6x0Fi1doBIK8P1IU,5075
|
|
13
|
+
mcp_proxy_adapter/api/tools.py,sha256=lPrG1lXzS7B2UFl5Jvu5i1mr4fQqpFZdpACBeYEiycU,6410
|
|
14
|
+
mcp_proxy_adapter/api/core/__init__.py,sha256=OTGY-JQ-tV2Grnd6gs9FVxIqX4QvLKj5JJt3zxHX5UU,400
|
|
15
|
+
mcp_proxy_adapter/api/core/app_factory.py,sha256=gB-reMqYjd4UtHRlPEnxFemso6JxVvFelWmz5U4IgcE,10038
|
|
16
|
+
mcp_proxy_adapter/api/core/lifespan_manager.py,sha256=mTBtWC_Z277H5fdX3asGIag3ecc8oGtO9F6bVEeD1wg,1682
|
|
17
|
+
mcp_proxy_adapter/api/core/registration_manager.py,sha256=kQx6vYd8E829H4hBADBBx5oU3MC888Agl5RUFlWD28s,6610
|
|
18
|
+
mcp_proxy_adapter/api/core/ssl_context_factory.py,sha256=9gMwvhKWA_-9gDpGr1h7OghkAAwRKYpSIz2vk3Dy0pY,3165
|
|
19
|
+
mcp_proxy_adapter/api/middleware/__init__.py,sha256=yFB4U84cQZXBDw9R2WfziGjrBDafV_jMAT1WLWlicJo,601
|
|
20
|
+
mcp_proxy_adapter/api/middleware/base.py,sha256=OtGcCKSSXFFA9hNxsiaiaZ72qQpw_P2VyTxEJtVJXps,1264
|
|
21
|
+
mcp_proxy_adapter/api/middleware/command_permission_middleware.py,sha256=T-QZ-jYKZAgYGjsvTAHVf0nGtEYYv42EFal3iwREwiA,1984
|
|
22
|
+
mcp_proxy_adapter/api/middleware/error_handling.py,sha256=BumS2oM3NPMQi6-Do0mNWRu2GNJ0Cc6pW9mP8osxAyc,2010
|
|
23
|
+
mcp_proxy_adapter/api/middleware/factory.py,sha256=A27VPC_BYg-ssbfivONvRs_68w8pcACTOVTEi-yhhzU,4709
|
|
24
|
+
mcp_proxy_adapter/api/middleware/logging.py,sha256=dL_gRkl29lUXoQ5OKnc9yRluhZ_Blei4Rjom9e_hUXA,685
|
|
25
|
+
mcp_proxy_adapter/api/middleware/performance.py,sha256=FGuHWaPSwrmMBLvsLt_JBnkTJexxvO7yupV68ssuPo4,1441
|
|
26
|
+
mcp_proxy_adapter/api/middleware/protocol_middleware.py,sha256=FHyeU2lirHF6F83M6-fOFaz1uqWy35gtrR8eOXwYAyE,5464
|
|
27
|
+
mcp_proxy_adapter/api/middleware/transport_middleware.py,sha256=_WaKNif-cvV-_W15JECDHK9JRzz2rAo8AIYIYmBnroc,2790
|
|
28
|
+
mcp_proxy_adapter/api/middleware/unified_security.py,sha256=tUSzPfAmClujj0xGdRymRikyDT-ZaH2sUG69PcmmV-A,8311
|
|
29
|
+
mcp_proxy_adapter/api/middleware/user_info_middleware.py,sha256=9e1Pdaft-GTWECpXbW2IxpxlKYyLPUjJd1iOnLIzjRU,5991
|
|
30
|
+
mcp_proxy_adapter/api/openapi/__init__.py,sha256=6uLzjXaCpviEESIwNtfWpBc6EGQOTcMo2XWJbj4zk7g,555
|
|
31
|
+
mcp_proxy_adapter/api/openapi/command_integration.py,sha256=cMWrJRB_OxO30OR_B_VevoTHDTwXIIm4mPlGLrqLQ-U,3278
|
|
32
|
+
mcp_proxy_adapter/api/openapi/openapi_generator.py,sha256=bEVgRryZU0gouzYDKM9zPofM1RGdR-Rt5S6Y0qottfY,1559
|
|
33
|
+
mcp_proxy_adapter/api/openapi/openapi_registry.py,sha256=RRMDVLYSGQCB88qA0YpoJ_y-zuLcgckP4_RLFJ_PbfA,1338
|
|
34
|
+
mcp_proxy_adapter/api/openapi/schema_loader.py,sha256=tQtMQOSIV17kfnwzMD5mh5LWZF8XhIqseaHcevRZQB0,4462
|
|
35
|
+
mcp_proxy_adapter/cli/__init__.py,sha256=VbZZ5NWmDIf5Vhj-BDe6yElg4ximxokNmBXKN8G-R2U,213
|
|
36
|
+
mcp_proxy_adapter/cli/main.py,sha256=kgHCJkV6Q1YkBjcl7jbPuNbqaX1WiUNAMvBl7Ha2QmM,2220
|
|
37
|
+
mcp_proxy_adapter/cli/parser.py,sha256=54M-Zrb1gpkZJmOF1v-ZCByCjlWFQUGmv5HY05J9orI,11400
|
|
38
|
+
mcp_proxy_adapter/cli/validators.py,sha256=Bl_oYSbL6FLA4HU5cZYkOdSky0Gfb0Tk4sg83PRkgAU,6554
|
|
39
|
+
mcp_proxy_adapter/cli/commands/__init__.py,sha256=8CkC1rFB4KgxB4g3amFUpQIiJK_8rel8ANUI_n_Jgvk,373
|
|
40
|
+
mcp_proxy_adapter/cli/commands/client.py,sha256=d-fd6mohw9b5NDS4DzwwFBM2Zwk0Tumzmf-3PVIX2B0,3210
|
|
41
|
+
mcp_proxy_adapter/cli/commands/config_generate.py,sha256=DP6Wnuzrae2d8O_niRzTcfwrTSYZw6ih9JIMWa58cGM,540
|
|
42
|
+
mcp_proxy_adapter/cli/commands/config_validate.py,sha256=iOwPF3w_b_a5A72lh7Sm2xmOmSY9TespxygNkBVTWy8,847
|
|
43
|
+
mcp_proxy_adapter/cli/commands/generate.py,sha256=-qVk_7ynE6FHZvjUpTZJAhLm1sRm3uq6X8JHX7yNdd0,10018
|
|
44
|
+
mcp_proxy_adapter/cli/commands/server.py,sha256=WrRfGO3EDhCp5RgLXdjt7u95HZ8SOM4oq9VWELfpfxw,6652
|
|
45
|
+
mcp_proxy_adapter/cli/commands/sets.py,sha256=LHT75x4vKX3UHcFALyzG16XUQ-DgKKgCvglcTt5Ej2Y,4407
|
|
46
|
+
mcp_proxy_adapter/cli/commands/testconfig.py,sha256=ZUY-3bm_sZbCg-gnzxWmHsGwqIu88aqKKba_4mLsF1s,6725
|
|
47
|
+
mcp_proxy_adapter/cli/examples/__init__.py,sha256=UcVT4i9GwjU8ud3bzq9_yv1-vTJTuVyxRUvlSrxj8hw,145
|
|
48
|
+
mcp_proxy_adapter/cli/examples/http_basic.py,sha256=9qIsXuxez1OoGF8G8AKOhMuYOPbi-cgH5NzSuAD7ixA,2393
|
|
49
|
+
mcp_proxy_adapter/cli/examples/https_token.py,sha256=3hfXEAhcSFc5OgkbApoqTy9vm-VXpVgZrTdqUiYtKLo,3362
|
|
50
|
+
mcp_proxy_adapter/cli/examples/mtls_roles.py,sha256=4UlRHrbZxH71I6zAoxckzW8fG2zqOHRBwQzneu61ZDI,3785
|
|
51
|
+
mcp_proxy_adapter/client/jsonrpc_client.py,sha256=1bAjBKL_AyyrAne_T8v4AsAck9gqiIWpT78nFdjoR5c,11745
|
|
52
|
+
mcp_proxy_adapter/client/proxy.py,sha256=GMUZy-m2hf0pp0MWm0zrkLKxKaAbt_J5aGJAKXnrbg8,1583
|
|
53
|
+
mcp_proxy_adapter/commands/__init__.py,sha256=QjNaCoYmFaT5aioLCD0tGyQBDoimUjqrH5sJyGHE3KM,2224
|
|
54
|
+
mcp_proxy_adapter/commands/auth_validation_command.py,sha256=p867zooBn1si8_R2BBd7QpXkuHOTnfOZYiARQW2CsrY,1826
|
|
55
|
+
mcp_proxy_adapter/commands/base.py,sha256=jW_w6jjqbEtqKHfi5-bhd98HDF1UuyRXHFMuzOssoUM,14366
|
|
56
|
+
mcp_proxy_adapter/commands/builtin_commands.py,sha256=gU3ee2agE-urp0QbLfGrOEOa-aaSBe-hEUb4ia6CVJI,1197
|
|
57
|
+
mcp_proxy_adapter/commands/catalog_manager.py,sha256=xnGKUKe-K58qlj-XLncdmdilvwVrcC_Zug7_gr5kap0,2333
|
|
58
|
+
mcp_proxy_adapter/commands/cert_monitor_command.py,sha256=8WwbrVeupsD_L9bLL4k2XdTtWx8NvMEwU_eq-PNklCA,20836
|
|
59
|
+
mcp_proxy_adapter/commands/certificate_management_command.py,sha256=Vd9ZrdkIlwptp9AGq6aPhMAxhSc989ncMcibTRWkOOc,21875
|
|
60
|
+
mcp_proxy_adapter/commands/command_registry.py,sha256=iuVvSMzXzxMkrA_VFnvU8dUDhWeNLPdw-1n3qtyib_8,9647
|
|
61
|
+
mcp_proxy_adapter/commands/config_command.py,sha256=-Vxvnhy4YFgmbsrqcOfsA9IRc5GvF_ZVlFqFM6tZAZg,2899
|
|
62
|
+
mcp_proxy_adapter/commands/dependency_container.py,sha256=iuwzEOVYHZVLfRWWYb2BEE8tM6-VyFJQRuadxqPamDA,958
|
|
63
|
+
mcp_proxy_adapter/commands/dependency_manager.py,sha256=2iHfbSi4n09zpxRx4bBlPROa2mckTYZfcuEVa09J6Dw,4459
|
|
64
|
+
mcp_proxy_adapter/commands/echo_command.py,sha256=Kj51pJzWAhkcnpD1MWJZHc2a6b1arWUhSy390eEtgNs,1233
|
|
65
|
+
mcp_proxy_adapter/commands/health_command.py,sha256=h6mGW2RcsYAgPCCH-Lp0VLoi0RxyisqqoygTXjzeDeA,4356
|
|
66
|
+
mcp_proxy_adapter/commands/help_command.py,sha256=1T6gqEboInptFX7S6iD31rYkorlTAPVj_VHDl2PLqdw,7659
|
|
67
|
+
mcp_proxy_adapter/commands/hooks.py,sha256=qeVUA0hDYH3jB4T-G38ZO8V22S7GS2na_ydM9YUOwfk,5300
|
|
68
|
+
mcp_proxy_adapter/commands/key_management_command.py,sha256=ILfIdybizl7Df5IY-XOH9T0yzk91KGVgIuO5YlrUkkw,17648
|
|
69
|
+
mcp_proxy_adapter/commands/load_command.py,sha256=YLdXHGcdPqucNVEKy9o0JqxKckqMzCw3gfyqorAysak,3937
|
|
70
|
+
mcp_proxy_adapter/commands/plugins_command.py,sha256=_tJB9uff4edtXZkW6vAsQ6OBYgjpL1RnY9dB3TpTbYU,8224
|
|
71
|
+
mcp_proxy_adapter/commands/protocol_management_command.py,sha256=zs0721uSHkqL7Muwd1c97sN53pCAr2AOX67T7tCF-1Y,7638
|
|
72
|
+
mcp_proxy_adapter/commands/proxy_registration_command.py,sha256=mL_LIXKyBEbvpEWoLpXtuK6-Od98IjNTZe155OQtavY,11740
|
|
73
|
+
mcp_proxy_adapter/commands/queue_commands.py,sha256=v6vEYjI7WWtSBvrD-WF85ARQ2QQTB2y7CbMmAORJ3d0,25158
|
|
74
|
+
mcp_proxy_adapter/commands/registration_status_command.py,sha256=b2g2BP_pWn2n34IcOPVp22IA4MuyWUpsNVjsBiuMfHw,2218
|
|
75
|
+
mcp_proxy_adapter/commands/reload_command.py,sha256=AGGmjeybwzmVnGh5k1w1inpyf8MB4T_6ZVspy0NNFKI,4739
|
|
76
|
+
mcp_proxy_adapter/commands/result.py,sha256=De9RXrua6xIuJjh2jHoNgVgt1P7CloyYD-JeQzudHPI,4256
|
|
77
|
+
mcp_proxy_adapter/commands/role_test_command.py,sha256=vHYFaiuJpzSgzyOlLhFGLYD_8H8GwIfbN29-bkAPbyQ,2670
|
|
78
|
+
mcp_proxy_adapter/commands/roles_management_command.py,sha256=GJ09wtEh8yqRtQxrZJyMf0VjJuAelE4eiKYyTlw3_eM,15639
|
|
79
|
+
mcp_proxy_adapter/commands/security_command.py,sha256=j55PIE2olWRuqs7FT4Iatyv4rCjjbyRdg4goYW_5Dq4,16939
|
|
80
|
+
mcp_proxy_adapter/commands/settings_command.py,sha256=iSmJDygSVD3DZu6gwmc8kUS22NZaApjTB3OQ5dLGGSw,3391
|
|
81
|
+
mcp_proxy_adapter/commands/ssl_setup_command.py,sha256=JBuoFliUQ-tyHY6Nmb7KiCJy1OaPeIXm6XpsM2KPFXI,10702
|
|
82
|
+
mcp_proxy_adapter/commands/token_management_command.py,sha256=jg9WU5qMS31cVpQOARWhH9Dm-YVVIg1-lJwKwQotmww,16873
|
|
83
|
+
mcp_proxy_adapter/commands/transport_management_command.py,sha256=9h4NeLM81R3B_Mn_u390guVEsDH17BwSAua6zUsoW9I,4006
|
|
84
|
+
mcp_proxy_adapter/commands/unload_command.py,sha256=0G4qOodzCWb-_lsjl3tUAcl554THvn44p4t3P7ETfMM,2761
|
|
85
|
+
mcp_proxy_adapter/commands/catalog/__init__.py,sha256=_HG1KnN53p8-dvkpJSWao4C6cHQdqyKIogmuL10OpvM,469
|
|
86
|
+
mcp_proxy_adapter/commands/catalog/catalog_loader.py,sha256=W_vQmjfkxHs8jC5sApd3ecaVB-ETIe-_J-EKHN1Q7pM,737
|
|
87
|
+
mcp_proxy_adapter/commands/catalog/catalog_manager.py,sha256=2A7N9FBHx1xMxqsqF38NZbQC9ac_vQhxJ5zM6JEWi98,4001
|
|
88
|
+
mcp_proxy_adapter/commands/catalog/catalog_syncer.py,sha256=ITfvS1B9GQNEy14KSTxFtQAE9-OV7BiqKQXPLXl1nbo,4776
|
|
89
|
+
mcp_proxy_adapter/commands/catalog/command_catalog.py,sha256=S05UXkXqzsJNV1XxhZ4aGSHuwhc4LgjpOQqUCU3Rf-w,1132
|
|
90
|
+
mcp_proxy_adapter/commands/catalog/dependency_manager.py,sha256=RlXbm8SRs_aBq8ii94p0NHCjRbmXH4igf9ljs8Lhco8,786
|
|
91
|
+
mcp_proxy_adapter/commands/registry/__init__.py,sha256=utO35zaZo5mP1Gwkd8evOdqnLl7J3nJG0Mom_WSuyi0,382
|
|
92
|
+
mcp_proxy_adapter/commands/registry/command_info.py,sha256=A5b5O0WRoB3OCglxs0JNa9-aakpc7eGFilo4gfan1q0,3370
|
|
93
|
+
mcp_proxy_adapter/commands/registry/command_loader.py,sha256=OBRkKCtDHRxQGFgZKduE6zcf_eo1TGjqipPBAamgMAM,6878
|
|
94
|
+
mcp_proxy_adapter/commands/registry/command_manager.py,sha256=dMQWKNwACiknHdECya2DIE8beZaeJDV4dpHid--Sk6Q,3979
|
|
95
|
+
mcp_proxy_adapter/commands/registry/command_registry.py,sha256=XURwiKUoUNbzp32p1awtS7nedqO3RW8scy7qqzdBk3o,6410
|
|
96
|
+
mcp_proxy_adapter/core/__init__.py,sha256=aKs8nj8jamwV8xwZgtwxmzPKUgCZincqGZHuMj7qki0,196
|
|
97
|
+
mcp_proxy_adapter/core/app_factory.py,sha256=qydxVnkrwDkScph1xfteBJhtJaxpLKj1x5DcwG4ku6U,22624
|
|
98
|
+
mcp_proxy_adapter/core/app_runner.py,sha256=7FF9MVdMiVpXpJcu-a8DhI-VstS0y_Ee5TF5HmrOry0,10670
|
|
99
|
+
mcp_proxy_adapter/core/auth_validator.py,sha256=BuvGEHLvNU8Rv5wmdB8qd-TPlCDJF0cSwnWMHe9h18w,16565
|
|
100
|
+
mcp_proxy_adapter/core/certificate_utils.py,sha256=Jeftf420a_tsBjOqUwZrK5azqrqkK10YFD0ll-lgWHo,7499
|
|
101
|
+
mcp_proxy_adapter/core/client.py,sha256=ytr3OuekG0vxcns84ohXGGxK2DYxaYsiP619envGOpQ,20893
|
|
102
|
+
mcp_proxy_adapter/core/client_manager.py,sha256=9kk_h9QsJ3pwiK_VZNpbM8qSJGNeLsAqNA4lbreWJyk,8533
|
|
103
|
+
mcp_proxy_adapter/core/client_security.py,sha256=kkNj-gqj3vOcFbxOMJaxTkU-c3yp9sW-l4B-CiTYqEE,13467
|
|
104
|
+
mcp_proxy_adapter/core/config_converter.py,sha256=R4V_giWs4CNaGJDEZ8snzRZYYXAtnYWLWdJVZTfVgwg,9791
|
|
105
|
+
mcp_proxy_adapter/core/config_validator.py,sha256=7_law-AFjQkh5Ad1sChxUSzrp7Uc6azbQQ035GfExE8,7822
|
|
106
|
+
mcp_proxy_adapter/core/crl_utils.py,sha256=JagcJBkGY-YEmkhRWBDDkfi75wIyBOlf6s7YvXgTiHI,11992
|
|
107
|
+
mcp_proxy_adapter/core/errors.py,sha256=ekWfQGAvOkUva5iH6_tTTen8SBNmlHoQp-xJf-oAQQ8,7319
|
|
108
|
+
mcp_proxy_adapter/core/job_manager.py,sha256=D6cB7r8rxePDSAHD87TZqd2Mcfc9W7n6EFXU-fBhnbs,1196
|
|
109
|
+
mcp_proxy_adapter/core/logging.py,sha256=d5DUzpeZVnXw2puZydTiZXy2xNRA2bqDa14FLo1rt4E,8288
|
|
110
|
+
mcp_proxy_adapter/core/mtls_asgi.py,sha256=9s53xhQqZQpYLt_FW-52jW2hkfgtwHwSqWxzytVBoAA,4552
|
|
111
|
+
mcp_proxy_adapter/core/mtls_asgi_app.py,sha256=8FHzgIBWp_nUtIXxGRFNGjTeTzM26JsyOuzI-opKU9U,6349
|
|
112
|
+
mcp_proxy_adapter/core/mtls_proxy.py,sha256=KAdU38sqqwS3uf6DPZ-ny1elqkboZ27UNL6wqH6HimY,3302
|
|
113
|
+
mcp_proxy_adapter/core/mtls_server.py,sha256=JTz-wU8RNsDpLfUDk37-ZJcHFxyo0NzW0sM31Ffm-Yk,4580
|
|
114
|
+
mcp_proxy_adapter/core/protocol_manager.py,sha256=f8pMKNRtSIKW9ebuLW4t27mw2gMaMhFUrsqrRr3dp8Q,8451
|
|
115
|
+
mcp_proxy_adapter/core/proxy_client.py,sha256=VKzUEMu6cO5BFWTManoSyN9PJF8eyzCgYabXGEbRMPQ,6065
|
|
116
|
+
mcp_proxy_adapter/core/proxy_registration.py,sha256=8KUovb7e8emvGT5XGkzpB8te8nwsrBnDa-uGuGglG_k,2096
|
|
117
|
+
mcp_proxy_adapter/core/role_utils.py,sha256=hYPD78IPhPHwYLMP8HInSW2yKU4TTRZYFzj-AKVHPVo,2797
|
|
118
|
+
mcp_proxy_adapter/core/security_adapter.py,sha256=i5dOnuWBpmQ8Kz1YxoD4g8vX7VEYMgTuM5oAoxgZl-8,11964
|
|
119
|
+
mcp_proxy_adapter/core/security_factory.py,sha256=cEsxxRTydm3SlK7zrBhSHuhxgs2WghtpYaEsrmoncFg,2833
|
|
120
|
+
mcp_proxy_adapter/core/security_integration.py,sha256=KsKjJnR0826-rV6uU9R7uGt6u43t6cyKApf3WCyVlz0,12855
|
|
121
|
+
mcp_proxy_adapter/core/server_adapter.py,sha256=Qzsps-2vufprAx2D2pgZtCmTc7KqKMr-ZkWS8Bh_RLY,8639
|
|
122
|
+
mcp_proxy_adapter/core/server_engine.py,sha256=Mo1CiXl0Ifm4P9ICxQrAJPRSHeQCTRABSlqlCEmeOro,2897
|
|
123
|
+
mcp_proxy_adapter/core/settings.py,sha256=oPwm9r1TY4AvuW-hvxDnJ-_jJ9PI1Ggrltp3ldjvkIY,5415
|
|
124
|
+
mcp_proxy_adapter/core/signal_handler.py,sha256=bvZjBl2IzDvI8zLetq_ADBpsZ22oZvB4S9j3yATrMZM,2979
|
|
125
|
+
mcp_proxy_adapter/core/ssl_utils.py,sha256=m7BxBOsqlwhkYWy7RUtNiGB5Vm2gMa7-WomZTNJekq8,5453
|
|
126
|
+
mcp_proxy_adapter/core/transport_manager.py,sha256=iddFPgr84ZJMtm-ABEKQYX-utscROQoUysyr-Hy63_8,4001
|
|
127
|
+
mcp_proxy_adapter/core/unified_config_adapter.py,sha256=bBt0ILCIOXRUbs3MnlTmXbxeVS36sBG5ZYgZ-NAPzeA,16312
|
|
128
|
+
mcp_proxy_adapter/core/utils.py,sha256=gSer7nRbSh0jB58MPIrDdoEJYSx04gCArm6e0OZ5wng,2402
|
|
129
|
+
mcp_proxy_adapter/core/certificate/__init__.py,sha256=D6fSBwXNrvMyzNCd2bIO4fOpKjhHfEIC2gKbS3qdvGQ,526
|
|
130
|
+
mcp_proxy_adapter/core/certificate/certificate_creator.py,sha256=3hMELJyDQlti-TLQF6FMIjCJ62WvPJn4ioSfVZYfQVg,13509
|
|
131
|
+
mcp_proxy_adapter/core/certificate/certificate_extractor.py,sha256=hEmwz3BJIiL-C2PbTHTARovLsPG_WSuvisRIFcc_NBE,6741
|
|
132
|
+
mcp_proxy_adapter/core/certificate/certificate_utils.py,sha256=Jeftf420a_tsBjOqUwZrK5azqrqkK10YFD0ll-lgWHo,7499
|
|
133
|
+
mcp_proxy_adapter/core/certificate/certificate_validator.py,sha256=YIP1N7e7z7WryBKvtPpnASaJkDnYIEypUbpVm9yJw6E,3651
|
|
134
|
+
mcp_proxy_adapter/core/certificate/ssl_context_manager.py,sha256=xvwjuvr6MsHTvRckhl6D8Wketlw1WB72BuD-jIDfHhE,2084
|
|
135
|
+
mcp_proxy_adapter/core/config/__init__.py,sha256=q25T3OyvYgYFEplZwqcOZUl5mpPkId0eh7Tr5rdypEM,364
|
|
136
|
+
mcp_proxy_adapter/core/config/config.py,sha256=qHG34zXJEYLmCSQTo2stbtK6VuzEOvG7TylPs1o9d00,6060
|
|
137
|
+
mcp_proxy_adapter/core/config/config_factory.py,sha256=qm2QxqiOArpt4x_PPkR1O5A6T_LdD1RHTVnTMFNFxBI,409
|
|
138
|
+
mcp_proxy_adapter/core/config/config_loader.py,sha256=PmoDRNsLtuzqiJoL9e8p-4CpDF1jAaobXZaGs8LwuEw,1670
|
|
139
|
+
mcp_proxy_adapter/core/config/feature_manager.py,sha256=ET-ylB7sBpUG0rH5NNKn5gDjb0sAF02qItLz3GWCvC4,568
|
|
140
|
+
mcp_proxy_adapter/core/config/simple_config.py,sha256=JamnTnv_QNkcvo7oKql9rkok7g1-n7X9RP_jfUUbDJM,3867
|
|
141
|
+
mcp_proxy_adapter/core/config/simple_config_generator.py,sha256=GBBSc1huElHiJgut5FFtFn_NsFOKrxC2tnZOj24wyW0,1489
|
|
142
|
+
mcp_proxy_adapter/core/config/simple_config_validator.py,sha256=ysWPMSxRYZj96sJzQzNJ9VeQrLBhy4S9evg4oQQR_fE,4517
|
|
143
|
+
mcp_proxy_adapter/core/proxy/__init__.py,sha256=wJl5s36DAUFzyGGT13iQ6-ufYmDxU9De5ZoLc_nl_KE,636
|
|
144
|
+
mcp_proxy_adapter/core/proxy/auth_manager.py,sha256=uzLWw16j3oT9MIKbZNnrFb105raterRe-UQ5YRl_F4s,685
|
|
145
|
+
mcp_proxy_adapter/core/proxy/proxy_registration_manager.py,sha256=gRKkv-pRtjq4z-gm_V6_icwQgmG8JTdjuzgEV10XwK4,4095
|
|
146
|
+
mcp_proxy_adapter/core/proxy/registration_client.py,sha256=OBOBZojbKTnPhoFBicHXV7fxd_OgzAnPaySOyv5jtUs,1886
|
|
147
|
+
mcp_proxy_adapter/core/proxy/ssl_manager.py,sha256=K2lzSxCpwlaa1kSgLqZ0YNDJEqfdAGcQ1slePqbhaSM,4138
|
|
148
|
+
mcp_proxy_adapter/core/validation/__init__.py,sha256=28gyTuiODN12gIrtTj91N6qJMySSVusFzJuWyysfNpM,529
|
|
149
|
+
mcp_proxy_adapter/core/validation/config_validator.py,sha256=7_law-AFjQkh5Ad1sChxUSzrp7Uc6azbQQ035GfExE8,7822
|
|
150
|
+
mcp_proxy_adapter/core/validation/file_validator.py,sha256=eE8PwtYAhC3ze9Gtgp8GwqOhy8sPeh_agSP8t1oh8Yo,2389
|
|
151
|
+
mcp_proxy_adapter/core/validation/protocol_validator.py,sha256=QD-D6RWV_OPd3GmD_MRJtLzFGa8Gmwq_jOwHOr3Lxak,7327
|
|
152
|
+
mcp_proxy_adapter/core/validation/security_validator.py,sha256=XZTWdAj56kj3-fkK8q6A6ej2dAobFZ7f8VYHTirUiaY,1549
|
|
153
|
+
mcp_proxy_adapter/core/validation/validation_result.py,sha256=VKxhJ2Nv-QoVJzB4wsgfAUnhJ1Qj50ZTJ7guAELF-fM,598
|
|
154
|
+
mcp_proxy_adapter/examples/__init__.py,sha256=k1F-EotAFbJ3JvK_rNgiH4bUztmxIWtYn0AfbAZ1ZGs,450
|
|
155
|
+
mcp_proxy_adapter/examples/bugfix_certificate_config.py,sha256=-75AWN0ZnRZAzpzSJeZ_cPbfpsZFCUDRWuM0lbMhkVo,9493
|
|
156
|
+
mcp_proxy_adapter/examples/cert_manager_bugfix.py,sha256=pwifGipvxQX2WR0sTYZWs0k8g_C228Kd5KJuR0wYB_s,7285
|
|
157
|
+
mcp_proxy_adapter/examples/check_config.py,sha256=5IIfhgjVnTwTX03rNvEn_7WtQLpBLQLbuCYfwtMMW7o,13969
|
|
158
|
+
mcp_proxy_adapter/examples/client_usage_example.py,sha256=EUwgZELRD1NBXkCoa1N06O7TsQ5KyrtqUYp8AbInLUI,4948
|
|
159
|
+
mcp_proxy_adapter/examples/config_builder.py,sha256=9MMgLYdCCamFrrf_7KYuQ5blVTo1YDnFA1k0z7UNNZg,7358
|
|
160
|
+
mcp_proxy_adapter/examples/config_cli.py,sha256=SUEY--Y2x5QuayzKimSybSQ_eponxb71KLkchs-EGuA,11014
|
|
161
|
+
mcp_proxy_adapter/examples/create_test_configs.py,sha256=2KP-iKL-AVSpv7xzJn_iBGK8AuK6Gpw_WaxI0U_RApw,6350
|
|
162
|
+
mcp_proxy_adapter/examples/debug_request_state.py,sha256=iijjmopANN36AsP5acE8PyFISqQzUWlOKMmvGsHf2Tg,4452
|
|
163
|
+
mcp_proxy_adapter/examples/debug_role_chain.py,sha256=GLVXC2fJUwP8UJnXHchd1t-H53cjWLJI3RqTPrKmaak,8750
|
|
164
|
+
mcp_proxy_adapter/examples/demo_client.py,sha256=en2Rtb70B1sQmhL-vdQ4PDpKNNl_mfll2YCFT_jFCAg,10191
|
|
165
|
+
mcp_proxy_adapter/examples/generate_config.py,sha256=1gVKF3tOCRE6zwGXE585N6_3VDATVUd40gmppYHIvdI,19149
|
|
166
|
+
mcp_proxy_adapter/examples/proxy_registration_example.py,sha256=Dz7ZQTmdgCgGxMqhKaJj-EJWmHb4BLav9nDTZHPSKmY,12995
|
|
167
|
+
mcp_proxy_adapter/examples/queue_demo_simple.py,sha256=IINOErwdQpBjG3keZ414THvEfJl2JnPLJRSDa4yWVss,21786
|
|
168
|
+
mcp_proxy_adapter/examples/queue_integration_example.py,sha256=NNG28YFJ-vtjyRGGTbh-NIy78iEVjgf5ujJDyuSrt5A,18827
|
|
169
|
+
mcp_proxy_adapter/examples/queue_server_demo.py,sha256=fX_cyabVP5lL96Xi6Dw6DFwPYXAOgWpDH6oQI4VvPaE,2211
|
|
170
|
+
mcp_proxy_adapter/examples/queue_server_example.py,sha256=6p-uOnBZzZSt8DtmbzQQQI68ls2-c4SsNTyyW5S-ULE,2461
|
|
171
|
+
mcp_proxy_adapter/examples/queue_server_simple.py,sha256=Jz4Tm4lttAt2980B8LekoMesNBjJNJGOY5viYVuiw7c,5308
|
|
172
|
+
mcp_proxy_adapter/examples/required_certificates.py,sha256=hHhXC2snqA4TWBduQAtr1cjUuCcy98LGMH2I6o8W8n0,7073
|
|
173
|
+
mcp_proxy_adapter/examples/run_example.py,sha256=yp-a6HIrSk3ddQmbn0KkuKwErId0aNfj028TE6U-zmY,2626
|
|
174
|
+
mcp_proxy_adapter/examples/run_full_test_suite.py,sha256=PrT-YkkRKWr8QRSdaGn6EF1OSViZ1-opDYSMJD_Mwco,24653
|
|
175
|
+
mcp_proxy_adapter/examples/run_proxy_server.py,sha256=LrzPmjL0qsIveYRkgP9OOb2g8FRo3x61QHziZRYJP7A,4081
|
|
176
|
+
mcp_proxy_adapter/examples/run_security_tests_fixed.py,sha256=BtNLYZrHChQxj3vMhw2czpn88QFE36HVpD5rZxpaWZ0,17228
|
|
177
|
+
mcp_proxy_adapter/examples/security_test_client.py,sha256=NxvFd-ksfhK7T6LnYh9C4PQZ84XSEmvYSaDWvHtYQ2Q,2209
|
|
178
|
+
mcp_proxy_adapter/examples/setup_test_environment.py,sha256=c8VISRhl48PpQcfhaVwC9J1XKH34nUWk7ihDULlmtDw,6823
|
|
179
|
+
mcp_proxy_adapter/examples/simple_protocol_test.py,sha256=BzFUZvK9Fih3aG4IFLQTZPyPe_s6YjpZfB6uZmQ76rw,3969
|
|
180
|
+
mcp_proxy_adapter/examples/test_chk_hostname_automated.py,sha256=nN0FEevzP6UP3q40zq4lw_GiT050FYomu7rWFPOMF2U,7002
|
|
181
|
+
mcp_proxy_adapter/examples/test_config.py,sha256=6lTpjb7UbiiqqHRt7LMnIXpuY3u-lKeUu2yQyhk2eLw,7938
|
|
182
|
+
mcp_proxy_adapter/examples/test_config_builder.py,sha256=iuQhdFOgH9snqkZRISOT4LG8YD68HhTXiEAmmCeLmq0,2393
|
|
183
|
+
mcp_proxy_adapter/examples/test_examples.py,sha256=0xKWsvuzBiY0OLTvfHQjG3VgcVKXKqAlgLWY696sjCM,12295
|
|
184
|
+
mcp_proxy_adapter/examples/test_framework_complete.py,sha256=rsjGDlviEQafiGMsy4IAYIO_T6z1eOH11y2w9dvMpN4,10015
|
|
185
|
+
mcp_proxy_adapter/examples/test_mcp_server.py,sha256=zFRUzdvdG6tzHp81HqoiiZvoXYDYsEfoaPNfdCS3FMY,6566
|
|
186
|
+
mcp_proxy_adapter/examples/test_protocol_examples.py,sha256=IDvWGfKf5zsQMZEBfB1Klugq0Jpq-0d8sPD-OK9Qudc,12123
|
|
187
|
+
mcp_proxy_adapter/examples/universal_client.py,sha256=YBpReQgms76ZA4iXmnmR_5fI65-nREtwdxt7xv0chlw,27302
|
|
188
|
+
mcp_proxy_adapter/examples/update_config_certificates.py,sha256=mj4_b0T2BJnJlQXWLyRp3wwvnQOI2GVGfkBv-knLJDY,4598
|
|
189
|
+
mcp_proxy_adapter/examples/validate_generator_compatibility.py,sha256=4Atdgbmop1GrE9c2JBmnSvHAFmTK6CTL3MdhJkh1lpM,13624
|
|
190
|
+
mcp_proxy_adapter/examples/validate_generator_compatibility_simple.py,sha256=K_n2y_r7cSSKUjUsEBDWcSKQqafGdftTMEWuKl1M8N4,1601
|
|
191
|
+
mcp_proxy_adapter/examples/basic_framework/__init__.py,sha256=4aYD--R6hy9n9CUxj7Osb9HcdVUMJ6_cfpu4ujkbCwI,345
|
|
192
|
+
mcp_proxy_adapter/examples/basic_framework/main.py,sha256=2bpT-zrekpzzbhOx6wOOYXYE1mejWXkT617zpSN7m70,1790
|
|
193
|
+
mcp_proxy_adapter/examples/basic_framework/commands/__init__.py,sha256=_VQNLUEdsxUG-4yt9BZI_vtOxHAdGG0OUSsP6Wj-Vz4,76
|
|
194
|
+
mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py,sha256=IE_EIXMnkdXuakZn7wLD9kBFyfDF5lYi56ejgiBeb-A,70
|
|
195
|
+
mcp_proxy_adapter/examples/commands/__init__.py,sha256=zvY_OpH_B1bVc_khrNIl6O8vqCw1FH6gGMAsJAkGWGY,170
|
|
196
|
+
mcp_proxy_adapter/examples/full_application/__init__.py,sha256=xGiPYhRAzs1Fh9wA8HoowV-Gg9QMLaMZn-OamExq1TI,320
|
|
197
|
+
mcp_proxy_adapter/examples/full_application/main.py,sha256=zJGxGO_wJeE-t4IXnnqkMK0899pYKDjVI8tkpvRduhI,9282
|
|
198
|
+
mcp_proxy_adapter/examples/full_application/proxy_endpoints.py,sha256=UX3Ep7N4GvnZCwsRwTC_ZGFwyKkjbEYkGWuB3_THnv8,1667
|
|
199
|
+
mcp_proxy_adapter/examples/full_application/run_mtls.py,sha256=neYnzO9lfCEEruv-R__dHey18DXav5RG6hNKwu54G6Y,9455
|
|
200
|
+
mcp_proxy_adapter/examples/full_application/run_simple.py,sha256=Rnmsi68EfiFEWrXx5DfUnxSks9uhmJR-ERlo-BOm9tQ,5163
|
|
201
|
+
mcp_proxy_adapter/examples/full_application/test_minimal_server.py,sha256=b5lApTLB-zW5ZZoMb5KpEGKnrMtxh_k6nOI0D91rJls,1139
|
|
202
|
+
mcp_proxy_adapter/examples/full_application/test_server.py,sha256=FbzZV_QyE2lZMuqtvaLcMdJOq1co7zgb7BCNZno7vNc,5272
|
|
203
|
+
mcp_proxy_adapter/examples/full_application/test_simple_server.py,sha256=3reGMunQLHIIkgbRwFffU3IH_b4yu96JpZORCrmc_Wk,1798
|
|
204
|
+
mcp_proxy_adapter/examples/full_application/commands/__init__.py,sha256=GBGfvfY8Iu3uGjEpnBiIPtt_qqBLT8Ui3jRBCUt8t5k,225
|
|
205
|
+
mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py,sha256=if9NwXICFGpXeWUllJt6QWwzgrbDOv28YS6ieX21RDI,1295
|
|
206
|
+
mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py,sha256=StrXJCyy6pKGATFVbHYdLTAAeseWTNYYkORLWf21g-I,1580
|
|
207
|
+
mcp_proxy_adapter/examples/full_application/commands/echo_command.py,sha256=xFXe60uviqGMKiC4CQBF1h4RB8KII6Yhb1tW0v2yoaQ,926
|
|
208
|
+
mcp_proxy_adapter/examples/full_application/commands/help_command.py,sha256=vsyKrnGRxuCA1xcG90YZmqgMf8V8FNbqWDV6VbyzEmQ,2021
|
|
209
|
+
mcp_proxy_adapter/examples/full_application/commands/list_command.py,sha256=QegtByNI-dvsi2Ax11is14uhFZH15i52QoAzI4AFNDI,1779
|
|
210
|
+
mcp_proxy_adapter/examples/full_application/hooks/__init__.py,sha256=16njlvy8T9cR6dttEVr_ljquq_XmkfPGhU9Qmf3nkQs,97
|
|
211
|
+
mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py,sha256=T3_iOA-j0x0buFm1BP0PMvb-XMT6mR-xtSd7XrOAXug,439
|
|
212
|
+
mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py,sha256=Cavu9oxEV6qDepBuEmS-KqSEmsBuWAKDwu2KjUgEhUg,436
|
|
213
|
+
mcp_proxy_adapter/examples/security_test/__init__.py,sha256=G8b5VNy_QrqwA2MGXc5FlkWuEJYtPPD0x7TCKEfuZDc,381
|
|
214
|
+
mcp_proxy_adapter/examples/security_test/auth_manager.py,sha256=gXUr8HTbXfV34Fr3zOUBdu6ylW4S5zig596QZ-Xob3g,226
|
|
215
|
+
mcp_proxy_adapter/examples/security_test/ssl_context_manager.py,sha256=0678mhkrEAayQWLYpp_0BEH8s2gErr5F5xyGU7m8nwU,616
|
|
216
|
+
mcp_proxy_adapter/examples/security_test/test_client.py,sha256=vNPoiXSZyym-tEXhLCyZdAhG-JjXU1yFLOmmJITJJMc,5922
|
|
217
|
+
mcp_proxy_adapter/examples/security_test/test_result.py,sha256=j2qiQPLMvBwHqDO800wtOugoAe4yduqC2pXyVVwoHvM,462
|
|
218
|
+
mcp_proxy_adapter/examples/setup/__init__.py,sha256=IvCG3i0Nx0akK3VCnVo0v8rNtw6btufgylKTcBnEgpk,800
|
|
219
|
+
mcp_proxy_adapter/examples/setup/certificate_manager.py,sha256=f6JwhAD_zdLmeDN5-yqHjTJD1EWD67zgb-ScyKUvfFc,7228
|
|
220
|
+
mcp_proxy_adapter/examples/setup/config_generator.py,sha256=AZoObnCB_VfQSszvKgrl5qXM7pIIPiBVijQlXumBN2k,162
|
|
221
|
+
mcp_proxy_adapter/examples/setup/config_validator.py,sha256=0-IXbn5dVc3B6UKKWG2IVchdwK-Wo265D8lED9EPIJM,4378
|
|
222
|
+
mcp_proxy_adapter/examples/setup/environment_setup.py,sha256=YY56_tnZvjyKsI2Pzad_8_2Z1K2DwJJorlaH2rM_ilg,1959
|
|
223
|
+
mcp_proxy_adapter/examples/setup/test_files_generator.py,sha256=jLNJgwqCWpUqgcD7O-VKvdATeVungvZBHX1ZUu66i5k,157
|
|
224
|
+
mcp_proxy_adapter/examples/setup/test_runner.py,sha256=878PnAR1Sv_DjInaYtpzG0jMaDE1F5po-S8qcI7JHWI,2502
|
|
225
|
+
mcp_proxy_adapter/integrations/__init__.py,sha256=3ryiZpAMJUkwdwm-N5PT6lmEfb8e_2cHbxuIk1lIfVw,518
|
|
226
|
+
mcp_proxy_adapter/integrations/queuemgr_integration.py,sha256=waQkZ6oVl_EhC4ztcuM4rSWci1y8R-AKS5cjgjOiKjw,14842
|
|
227
|
+
mcp_proxy_adapter/schemas/base_schema.json,sha256=v9G9cGMd4dRhCZsOQ_FMqOi5VFyVbI6Cf3fyIvOT9dc,2881
|
|
228
|
+
mcp_proxy_adapter/schemas/openapi_schema.json,sha256=C3yLkwmDsvnLW9B5gnKKdBGl4zxkeU-rEmjTrNVsQU0,8405
|
|
229
|
+
mcp_proxy_adapter/schemas/roles.json,sha256=pgf_ZyqKyXbfGUxvobpiLiSJz9zzxrMuoVWEkEpz3N8,764
|
|
230
|
+
mcp_proxy_adapter/schemas/roles_schema.json,sha256=deHgI7L6GwfBXacOlNtDgDJelDThppClC3Ti4Eh8rJY,5659
|
|
231
|
+
mcp_proxy_adapter-6.9.29.dist-info/METADATA,sha256=XE24Hj_N-HQPdN2JdDbbkmzzJeZEXz_3H4DzhCgUjyg,8570
|
|
232
|
+
mcp_proxy_adapter-6.9.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
233
|
+
mcp_proxy_adapter-6.9.29.dist-info/entry_points.txt,sha256=9nRLPijE8MJY-OmY0VnSvOH8VzGCUzVwOZT6ZJKMQYA,563
|
|
234
|
+
mcp_proxy_adapter-6.9.29.dist-info/top_level.txt,sha256=JZT7vPLBYrtroX-ij68JBhJYbjDdghcV-DFySRy-Nnw,18
|
|
235
|
+
mcp_proxy_adapter-6.9.29.dist-info/RECORD,,
|