mcp-proxy-adapter 6.9.11__tar.gz → 6.9.13__tar.gz
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.
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/PKG-INFO +1 -1
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/app_factory.py +24 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/mtls_server.py +13 -7
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/proxy_client.py +1 -1
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/proxy_registration.py +20 -27
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/version.py +1 -1
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/PKG-INFO +1 -1
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/pyproject.toml +1 -1
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/README.md +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/__main__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/app.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/handlers.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/base.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/command_permission_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/error_handling.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/factory.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/logging.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/protocol_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/transport_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/unified_security.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/user_info_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/schemas.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/tool_integration.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/tools.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/auth_validation_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/base.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/builtin_commands.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/catalog_manager.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/cert_monitor_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/certificate_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/command_registry.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/config_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/dependency_manager.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/echo_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/health_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/help_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/hooks.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/key_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/load_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/plugins_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/protocol_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/proxy_registration_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/registration_status_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/reload_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/result.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/role_test_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/roles_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/security_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/settings_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/ssl_setup_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/token_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/transport_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/unload_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/config.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/app_runner.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/auth_validator.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/certificate_utils.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/client.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/client_manager.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/client_security.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/config_converter.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/config_validator.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/crl_utils.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/errors.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/logging.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/mtls_asgi.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/mtls_asgi_app.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/mtls_proxy.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/protocol_manager.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/role_utils.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/security_adapter.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/security_factory.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/security_integration.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/server_adapter.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/server_engine.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/settings.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/signal_handler.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/ssl_utils.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/transport_manager.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/unified_config_adapter.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/utils.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/custom_openapi.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/basic_framework/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/basic_framework/main.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/bugfix_certificate_config.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/cert_manager_bugfix.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/check_config.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/config_builder.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/config_cli.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/create_test_configs.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/debug_request_state.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/debug_role_chain.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/demo_client.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/main.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/run_mtls.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/run_simple.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/full_application/test_server.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/generate_config.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/proxy_registration_example.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/required_certificates.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/run_example.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/run_full_test_suite.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/run_proxy_server.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/security_test_client.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/setup_test_environment.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/simple_protocol_test.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_chk_hostname_automated.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_config.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_config_builder.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_examples.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_framework_complete.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_mcp_server.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_protocol_examples.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/universal_client.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/update_config_certificates.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/main.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/openapi.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/schemas/base_schema.json +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/schemas/openapi_schema.json +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/schemas/roles.json +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/schemas/roles_schema.json +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/SOURCES.txt +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/dependency_links.txt +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/entry_points.txt +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/not-zip-safe +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/requires.txt +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/top_level.txt +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/setup.cfg +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/setup.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/tests/test_certificate_validation.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/tests/test_config_integration.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/tests/test_config_validation.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/tests/test_config_validation_isolated.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/tests/test_direct_import.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/tests/test_isolated_validation.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/tests/test_no_defaults.py +0 -0
- {mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/tests/test_simple_validation.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-proxy-adapter
|
3
|
-
Version: 6.9.
|
3
|
+
Version: 6.9.13
|
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
|
@@ -283,6 +283,30 @@ async def create_and_run_server(
|
|
283
283
|
f"🔍 Debug: app_config keys: {list(app_config.keys()) if app_config else 'None'}"
|
284
284
|
)
|
285
285
|
|
286
|
+
# Check for SSL config in root ssl section first (new format)
|
287
|
+
if app_config and "ssl" in app_config:
|
288
|
+
ssl_config = app_config["ssl"]
|
289
|
+
print(f"🔍 Debug: SSL config found in root: {ssl_config}")
|
290
|
+
print(f"🔍 Debug: SSL enabled: {ssl_config.get('enabled', False)}")
|
291
|
+
if ssl_config.get("enabled", False):
|
292
|
+
# Add SSL config directly to server_config for Hypercorn
|
293
|
+
server_config["certfile"] = ssl_config.get("cert_file")
|
294
|
+
server_config["keyfile"] = ssl_config.get("key_file")
|
295
|
+
server_config["ca_certs"] = ssl_config.get(
|
296
|
+
"ca_cert_file", ssl_config.get("ca_cert")
|
297
|
+
)
|
298
|
+
# Set verify_mode based on verify_client setting
|
299
|
+
if ssl_config.get("verify_client", False):
|
300
|
+
server_config["verify_mode"] = "CERT_REQUIRED"
|
301
|
+
else:
|
302
|
+
server_config["verify_mode"] = ssl_config.get("verify_mode")
|
303
|
+
print(f"🔒 SSL enabled: {ssl_config.get('cert_file', 'N/A')}")
|
304
|
+
print(
|
305
|
+
f"🔒 SSL enabled: cert={ssl_config.get('cert_file')}, key={ssl_config.get('key_file')}"
|
306
|
+
)
|
307
|
+
print(
|
308
|
+
f"🔒 Server config SSL: certfile={server_config.get('certfile')}, keyfile={server_config.get('keyfile')}, ca_certs={server_config.get('ca_certs')}, verify_mode={server_config.get('verify_mode')}"
|
309
|
+
)
|
286
310
|
|
287
311
|
# Check for SSL config in security section (fallback)
|
288
312
|
if app_config and "security" in app_config:
|
@@ -140,9 +140,9 @@ class mTLSServer:
|
|
140
140
|
self,
|
141
141
|
host: str = "127.0.0.1",
|
142
142
|
port: int = 8443,
|
143
|
-
cert_file: str =
|
144
|
-
key_file: str =
|
145
|
-
ca_cert_file: str =
|
143
|
+
cert_file: str = None,
|
144
|
+
key_file: str = None,
|
145
|
+
ca_cert_file: str = None,
|
146
146
|
main_app=None,
|
147
147
|
):
|
148
148
|
"""
|
@@ -292,10 +292,16 @@ def start_mtls_server_thread(
|
|
292
292
|
from mcp_proxy_adapter.core.utils import find_port_for_internal_server
|
293
293
|
port = find_port_for_internal_server(host, preferred_port)
|
294
294
|
|
295
|
-
# Get certificate paths
|
296
|
-
cert_file = ssl_config.get("cert_file"
|
297
|
-
key_file = ssl_config.get("key_file"
|
298
|
-
ca_cert_file = ssl_config.get("ca_cert"
|
295
|
+
# Get certificate paths - all required for mTLS
|
296
|
+
cert_file = ssl_config.get("cert_file")
|
297
|
+
key_file = ssl_config.get("key_file")
|
298
|
+
ca_cert_file = ssl_config.get("ca_cert")
|
299
|
+
|
300
|
+
if not cert_file or not key_file:
|
301
|
+
raise ValueError(
|
302
|
+
"mTLS server requires SSL certificate configuration. "
|
303
|
+
"Please configure 'ssl.cert_file' and 'ssl.key_file' in your configuration file."
|
304
|
+
)
|
299
305
|
|
300
306
|
# Create and start mTLS server
|
301
307
|
mtls_server = mTLSServer(
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/proxy_client.py
RENAMED
@@ -49,7 +49,7 @@ class ProxyClient:
|
|
49
49
|
|
50
50
|
Usage:
|
51
51
|
async with ProxyClient(
|
52
|
-
base_url="https://
|
52
|
+
base_url="https://your-proxy-host:3004",
|
53
53
|
ca_cert_path="/path/to/ca.crt",
|
54
54
|
client_cert_path="/path/to/client.crt",
|
55
55
|
client_key_path="/path/to/client.key",
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/proxy_registration.py
RENAMED
@@ -265,15 +265,6 @@ class ProxyRegistrationManager:
|
|
265
265
|
|
266
266
|
if not self.client_security:
|
267
267
|
logger.debug("SSL context creation failed: client_security is None")
|
268
|
-
# Try best-effort default CA if available
|
269
|
-
try:
|
270
|
-
default_ca = "/home/vasilyvz/projects/mcp_proxy_adapter/mtls_certificates/ca/ca.crt"
|
271
|
-
if Path(default_ca).exists():
|
272
|
-
ctx = ssl.create_default_context(cafile=default_ca)
|
273
|
-
logger.debug("Using default CA bundle for SSL verification")
|
274
|
-
return ctx
|
275
|
-
except Exception:
|
276
|
-
pass
|
277
268
|
return None
|
278
269
|
|
279
270
|
try:
|
@@ -302,20 +293,13 @@ class ProxyRegistrationManager:
|
|
302
293
|
cert_config = mapped_cert
|
303
294
|
ssl_config = mapped_ssl
|
304
295
|
|
305
|
-
# If still no client certificate specified,
|
296
|
+
# If still no client certificate specified, raise clear error
|
306
297
|
if not cert_config or not cert_config.get("cert_file") or not cert_config.get("key_file"):
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
if crt_candidates and key_candidates:
|
313
|
-
cert_config = {
|
314
|
-
"cert_file": crt_candidates[0],
|
315
|
-
"key_file": key_candidates[0],
|
316
|
-
}
|
317
|
-
except Exception:
|
318
|
-
pass
|
298
|
+
raise ValueError(
|
299
|
+
"Client certificate configuration is required for mTLS proxy registration. "
|
300
|
+
"Please configure 'proxy_registration.certificate.cert_file' and 'proxy_registration.certificate.key_file' "
|
301
|
+
"in your configuration file."
|
302
|
+
)
|
319
303
|
|
320
304
|
logger.debug(
|
321
305
|
f"SSL context creation: cert_config={cert_config}, ssl_config={ssl_config}"
|
@@ -328,9 +312,13 @@ class ProxyRegistrationManager:
|
|
328
312
|
if ca_file and Path(ca_file).exists():
|
329
313
|
context = ssl.create_default_context(cafile=ca_file)
|
330
314
|
else:
|
331
|
-
#
|
332
|
-
|
333
|
-
|
315
|
+
# No CA certificate configured - use system default
|
316
|
+
context = ssl.create_default_context()
|
317
|
+
logger.warning(
|
318
|
+
"No CA certificate configured for proxy registration. "
|
319
|
+
"This may cause SSL verification failures if the proxy uses self-signed certificates. "
|
320
|
+
"Consider configuring 'proxy_registration.ssl.ca_cert' in your configuration file."
|
321
|
+
)
|
334
322
|
|
335
323
|
# Load client certificates if provided
|
336
324
|
if cert_config:
|
@@ -347,14 +335,19 @@ class ProxyRegistrationManager:
|
|
347
335
|
if ssl_config:
|
348
336
|
ca_cert_file = ssl_config.get("ca_cert")
|
349
337
|
verify_mode = ssl_config.get("verify_mode", "CERT_REQUIRED")
|
338
|
+
verify_ssl = ssl_config.get("verify_ssl", True)
|
350
339
|
|
351
340
|
# Load CA certificate if provided
|
352
341
|
if ca_cert_file:
|
353
342
|
context.load_verify_locations(ca_cert_file)
|
354
343
|
logger.debug(f"Loaded CA certificate: {ca_cert_file}")
|
355
344
|
|
356
|
-
#
|
357
|
-
if
|
345
|
+
# Check if verify_ssl is disabled in ssl_config
|
346
|
+
if verify_ssl == False:
|
347
|
+
context.check_hostname = False
|
348
|
+
context.verify_mode = ssl.CERT_NONE
|
349
|
+
logger.debug("SSL verification disabled (verify_ssl=False)")
|
350
|
+
elif verify_mode == "CERT_NONE":
|
358
351
|
context.check_hostname = False
|
359
352
|
context.verify_mode = ssl.CERT_NONE
|
360
353
|
logger.debug("SSL verification disabled (CERT_NONE)")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-proxy-adapter
|
3
|
-
Version: 6.9.
|
3
|
+
Version: 6.9.13
|
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 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "mcp-proxy-adapter"
|
7
|
-
version = "6.9.
|
7
|
+
version = "6.9.13"
|
8
8
|
description = "Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration"
|
9
9
|
readme = "README.md"
|
10
10
|
license = {text = "MIT"}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/__init__.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/base.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/factory.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/middleware/logging.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/api/tool_integration.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/builtin_commands.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/catalog_manager.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/command_registry.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/config_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/echo_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/health_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/help_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/load_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/plugins_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/reload_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/security_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/settings_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/commands/unload_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/auth_validator.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/certificate_utils.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/client_manager.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/client_security.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/config_converter.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/config_validator.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/mtls_asgi_app.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/protocol_manager.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/security_adapter.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/security_factory.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/security_integration.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/server_adapter.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/server_engine.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/signal_handler.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/core/transport_manager.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/check_config.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/config_builder.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/config_cli.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/debug_role_chain.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/demo_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/generate_config.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/run_example.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/run_proxy_server.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_config.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_examples.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/test_mcp_server.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/examples/universal_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/schemas/base_schema.json
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/schemas/openapi_schema.json
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter/schemas/roles_schema.json
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/entry_points.txt
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/not-zip-safe
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/requires.txt
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/mcp_proxy_adapter.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.11 → mcp_proxy_adapter-6.9.13}/tests/test_config_validation_isolated.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|