mcp-proxy-adapter 6.9.12__tar.gz → 6.9.14__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.12 → mcp_proxy_adapter-6.9.14}/PKG-INFO +1 -1
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/app_factory.py +82 -34
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/proxy_registration.py +7 -2
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/version.py +1 -1
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/PKG-INFO +1 -1
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/pyproject.toml +1 -1
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/README.md +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/__main__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/app.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/handlers.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/base.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/command_permission_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/error_handling.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/factory.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/logging.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/protocol_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/transport_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/unified_security.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/user_info_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/schemas.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/tool_integration.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/tools.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/auth_validation_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/base.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/builtin_commands.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/catalog_manager.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/cert_monitor_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/certificate_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/command_registry.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/config_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/dependency_manager.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/echo_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/health_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/help_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/hooks.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/key_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/load_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/plugins_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/protocol_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/proxy_registration_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/registration_status_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/reload_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/result.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/role_test_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/roles_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/security_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/settings_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/ssl_setup_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/token_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/transport_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/unload_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/config.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/app_runner.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/auth_validator.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/certificate_utils.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/client.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/client_manager.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/client_security.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/config_converter.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/config_validator.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/crl_utils.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/errors.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/logging.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/mtls_asgi.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/mtls_asgi_app.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/mtls_proxy.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/mtls_server.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/protocol_manager.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/proxy_client.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/role_utils.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/security_adapter.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/security_factory.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/security_integration.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/server_adapter.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/server_engine.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/settings.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/signal_handler.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/ssl_utils.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/transport_manager.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/unified_config_adapter.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/utils.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/custom_openapi.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/basic_framework/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/basic_framework/main.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/bugfix_certificate_config.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/cert_manager_bugfix.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/check_config.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/config_builder.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/config_cli.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/create_test_configs.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/debug_request_state.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/debug_role_chain.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/demo_client.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/main.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/run_mtls.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/run_simple.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/full_application/test_server.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/generate_config.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/proxy_registration_example.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/required_certificates.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/run_example.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/run_full_test_suite.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/run_proxy_server.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/security_test_client.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/setup_test_environment.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/simple_protocol_test.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_chk_hostname_automated.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_config.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_config_builder.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_examples.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_framework_complete.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_mcp_server.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_protocol_examples.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/universal_client.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/update_config_certificates.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/main.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/openapi.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/schemas/base_schema.json +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/schemas/openapi_schema.json +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/schemas/roles.json +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/schemas/roles_schema.json +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/SOURCES.txt +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/dependency_links.txt +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/entry_points.txt +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/not-zip-safe +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/requires.txt +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/top_level.txt +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/setup.cfg +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/setup.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/tests/test_certificate_validation.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/tests/test_config_integration.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/tests/test_config_validation.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/tests/test_config_validation_isolated.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/tests/test_direct_import.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/tests/test_isolated_validation.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/tests/test_no_defaults.py +0 -0
- {mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.14
|
4
4
|
Summary: Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration
|
5
5
|
Home-page: https://github.com/maverikod/mcp-proxy-adapter
|
6
6
|
Author: Vasiliy Zdanovskiy
|
@@ -85,10 +85,13 @@ async def create_and_run_server(
|
|
85
85
|
# Validate UUID configuration (mandatory)
|
86
86
|
from mcp_proxy_adapter.core.config_validator import ConfigValidator
|
87
87
|
|
88
|
-
validator = ConfigValidator(
|
89
|
-
|
88
|
+
validator = ConfigValidator()
|
89
|
+
validator.config_data = app_config
|
90
|
+
validation_results = validator.validate_config()
|
91
|
+
errors = [r for r in validation_results if r.level == "error"]
|
92
|
+
if errors:
|
90
93
|
print("❌ Configuration validation failed:")
|
91
|
-
for error in
|
94
|
+
for error in errors:
|
92
95
|
print(f" - {error}")
|
93
96
|
sys.exit(1)
|
94
97
|
print("✅ Configuration validation passed")
|
@@ -118,8 +121,8 @@ async def create_and_run_server(
|
|
118
121
|
print(f"🔍 Debug: No root SSL section after loading")
|
119
122
|
|
120
123
|
# Debug: Check app_config immediately after get_all()
|
121
|
-
if app_config and "
|
122
|
-
ssl_config = app_config["
|
124
|
+
if app_config and "ssl" in app_config:
|
125
|
+
ssl_config = app_config["ssl"]
|
123
126
|
print(
|
124
127
|
f"🔍 Debug: app_config after get_all(): SSL enabled={ssl_config.get('enabled', False)}"
|
125
128
|
)
|
@@ -130,35 +133,56 @@ async def create_and_run_server(
|
|
130
133
|
f"🔍 Debug: app_config after get_all(): SSL key_file={ssl_config.get('key_file')}"
|
131
134
|
)
|
132
135
|
|
133
|
-
#
|
134
|
-
if app_config and "
|
135
|
-
ssl_config = app_config["
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
print(
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
if ssl_config.get("enabled", False):
|
148
|
-
print(f"🔍 Debug: SSL config is enabled and correct")
|
149
|
-
else:
|
150
|
-
print(f"🔍 Debug: SSL config is disabled or incorrect")
|
151
|
-
# Try to get SSL config from root level
|
152
|
-
root_ssl = app_config.get("ssl", {})
|
153
|
-
print(
|
154
|
-
f"🔍 Debug: Root SSL config: enabled={root_ssl.get('enabled', False)}"
|
155
|
-
)
|
156
|
-
print(
|
157
|
-
f"🔍 Debug: Root SSL config: cert_file={root_ssl.get('cert_file')}"
|
136
|
+
# CRITICAL: Validate SSL configuration - NO FALLBACKS!
|
137
|
+
if app_config and "ssl" in app_config:
|
138
|
+
ssl_config = app_config["ssl"]
|
139
|
+
ssl_enabled = ssl_config.get('enabled', False)
|
140
|
+
protocol = app_config.get("server", {}).get("protocol", "http")
|
141
|
+
|
142
|
+
print(f"🔍 Debug: SSL enabled={ssl_enabled}, protocol={protocol}")
|
143
|
+
|
144
|
+
# CRITICAL CHECK: If SSL is enabled, protocol MUST be https or mtls
|
145
|
+
if ssl_enabled and protocol not in ["https", "mtls"]:
|
146
|
+
raise ValueError(
|
147
|
+
f"CRITICAL CONFIG ERROR: SSL is enabled but protocol is '{protocol}'. "
|
148
|
+
f"Protocol MUST be 'https' or 'mtls' when SSL is enabled. "
|
149
|
+
f"Fix your configuration file."
|
158
150
|
)
|
159
|
-
|
160
|
-
|
151
|
+
|
152
|
+
# CRITICAL CHECK: If protocol is https/mtls, SSL MUST be enabled
|
153
|
+
if protocol in ["https", "mtls"] and not ssl_enabled:
|
154
|
+
raise ValueError(
|
155
|
+
f"CRITICAL CONFIG ERROR: Protocol is '{protocol}' but SSL is disabled. "
|
156
|
+
f"SSL MUST be enabled when protocol is 'https' or 'mtls'. "
|
157
|
+
f"Fix your configuration file."
|
161
158
|
)
|
159
|
+
|
160
|
+
# CRITICAL CHECK: If SSL is enabled, cert and key files MUST exist
|
161
|
+
if ssl_enabled:
|
162
|
+
cert_file = ssl_config.get('cert_file')
|
163
|
+
key_file = ssl_config.get('key_file')
|
164
|
+
|
165
|
+
if not cert_file or not key_file:
|
166
|
+
raise ValueError(
|
167
|
+
f"CRITICAL CONFIG ERROR: SSL is enabled but cert_file or key_file is missing. "
|
168
|
+
f"cert_file={cert_file}, key_file={key_file}. "
|
169
|
+
f"Fix your configuration file."
|
170
|
+
)
|
171
|
+
|
172
|
+
from pathlib import Path
|
173
|
+
if not Path(cert_file).exists():
|
174
|
+
raise ValueError(
|
175
|
+
f"CRITICAL CONFIG ERROR: SSL certificate file does not exist: {cert_file}. "
|
176
|
+
f"Fix your configuration file or create the certificate."
|
177
|
+
)
|
178
|
+
|
179
|
+
if not Path(key_file).exists():
|
180
|
+
raise ValueError(
|
181
|
+
f"CRITICAL CONFIG ERROR: SSL key file does not exist: {key_file}. "
|
182
|
+
f"Fix your configuration file or create the key."
|
183
|
+
)
|
184
|
+
|
185
|
+
print(f"✅ SSL configuration validated: cert={cert_file}, key={key_file}")
|
162
186
|
|
163
187
|
# Validate security framework configuration only if enabled
|
164
188
|
security_config = app_config.get("security", {})
|
@@ -169,7 +193,7 @@ async def create_and_run_server(
|
|
169
193
|
print(f"🔒 Security framework: {framework}")
|
170
194
|
|
171
195
|
# Debug: Check SSL config before validation
|
172
|
-
ssl_config =
|
196
|
+
ssl_config = app_config.get("ssl", {})
|
173
197
|
print(
|
174
198
|
f"🔍 Debug: SSL config before validation: enabled={ssl_config.get('enabled', False)}"
|
175
199
|
)
|
@@ -183,7 +207,7 @@ async def create_and_run_server(
|
|
183
207
|
validation_result = adapter.validate_configuration(app_config)
|
184
208
|
|
185
209
|
# Debug: Check SSL config after validation
|
186
|
-
ssl_config = app_config.get("
|
210
|
+
ssl_config = app_config.get("ssl", {})
|
187
211
|
print(
|
188
212
|
f"🔍 Debug: SSL config after validation: enabled={ssl_config.get('enabled', False)}"
|
189
213
|
)
|
@@ -283,6 +307,30 @@ async def create_and_run_server(
|
|
283
307
|
f"🔍 Debug: app_config keys: {list(app_config.keys()) if app_config else 'None'}"
|
284
308
|
)
|
285
309
|
|
310
|
+
# Check for SSL config in root ssl section first (new format)
|
311
|
+
if app_config and "ssl" in app_config:
|
312
|
+
ssl_config = app_config["ssl"]
|
313
|
+
print(f"🔍 Debug: SSL config found in root: {ssl_config}")
|
314
|
+
print(f"🔍 Debug: SSL enabled: {ssl_config.get('enabled', False)}")
|
315
|
+
if ssl_config.get("enabled", False):
|
316
|
+
# Add SSL config directly to server_config for Hypercorn
|
317
|
+
server_config["certfile"] = ssl_config.get("cert_file")
|
318
|
+
server_config["keyfile"] = ssl_config.get("key_file")
|
319
|
+
server_config["ca_certs"] = ssl_config.get(
|
320
|
+
"ca_cert_file", ssl_config.get("ca_cert")
|
321
|
+
)
|
322
|
+
# Set verify_mode based on verify_client setting
|
323
|
+
if ssl_config.get("verify_client", False):
|
324
|
+
server_config["verify_mode"] = "CERT_REQUIRED"
|
325
|
+
else:
|
326
|
+
server_config["verify_mode"] = ssl_config.get("verify_mode")
|
327
|
+
print(f"🔒 SSL enabled: {ssl_config.get('cert_file', 'N/A')}")
|
328
|
+
print(
|
329
|
+
f"🔒 SSL enabled: cert={ssl_config.get('cert_file')}, key={ssl_config.get('key_file')}"
|
330
|
+
)
|
331
|
+
print(
|
332
|
+
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')}"
|
333
|
+
)
|
286
334
|
|
287
335
|
# Check for SSL config in security section (fallback)
|
288
336
|
if app_config and "security" in app_config:
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/proxy_registration.py
RENAMED
@@ -335,14 +335,19 @@ class ProxyRegistrationManager:
|
|
335
335
|
if ssl_config:
|
336
336
|
ca_cert_file = ssl_config.get("ca_cert")
|
337
337
|
verify_mode = ssl_config.get("verify_mode", "CERT_REQUIRED")
|
338
|
+
verify_ssl = ssl_config.get("verify_ssl", True)
|
338
339
|
|
339
340
|
# Load CA certificate if provided
|
340
341
|
if ca_cert_file:
|
341
342
|
context.load_verify_locations(ca_cert_file)
|
342
343
|
logger.debug(f"Loaded CA certificate: {ca_cert_file}")
|
343
344
|
|
344
|
-
#
|
345
|
-
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":
|
346
351
|
context.check_hostname = False
|
347
352
|
context.verify_mode = ssl.CERT_NONE
|
348
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.14
|
4
4
|
Summary: Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration
|
5
5
|
Home-page: https://github.com/maverikod/mcp-proxy-adapter
|
6
6
|
Author: Vasiliy Zdanovskiy
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "mcp-proxy-adapter"
|
7
|
-
version = "6.9.
|
7
|
+
version = "6.9.14"
|
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.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/__init__.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/base.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/middleware/factory.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/api/tool_integration.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/builtin_commands.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/catalog_manager.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/command_registry.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/config_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/echo_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/health_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/help_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/load_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/commands/security_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/auth_validator.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/certificate_utils.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/client_manager.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/client_security.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/config_converter.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/mtls_asgi_app.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/protocol_manager.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/proxy_client.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/security_adapter.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/security_factory.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/security_integration.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/server_adapter.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/server_engine.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/core/signal_handler.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/check_config.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/config_builder.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/config_cli.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/debug_role_chain.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/generate_config.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/run_example.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_config.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_examples.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/examples/test_mcp_server.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/schemas/base_schema.json
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/schemas/openapi_schema.json
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter/schemas/roles_schema.json
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/entry_points.txt
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/not-zip-safe
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/mcp_proxy_adapter.egg-info/requires.txt
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.12 → mcp_proxy_adapter-6.9.14}/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.12 → mcp_proxy_adapter-6.9.14}/tests/test_config_validation_isolated.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|