mcp-proxy-adapter 6.9.8__tar.gz → 6.9.10__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.8 → mcp_proxy_adapter-6.9.10}/PKG-INFO +1 -1
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/app.py +11 -10
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/config_validator.py +60 -9
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/config_builder.py +6 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/version.py +1 -1
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/PKG-INFO +1 -1
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/pyproject.toml +1 -1
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/README.md +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/__main__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/handlers.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/base.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/command_permission_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/error_handling.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/factory.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/logging.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/protocol_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/transport_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/unified_security.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/user_info_middleware.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/schemas.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/tool_integration.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/tools.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/auth_validation_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/base.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/builtin_commands.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/catalog_manager.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/cert_monitor_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/certificate_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/command_registry.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/config_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/dependency_manager.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/echo_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/health_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/help_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/hooks.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/key_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/load_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/plugins_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/protocol_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/proxy_registration_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/registration_status_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/reload_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/result.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/role_test_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/roles_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/security_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/settings_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/ssl_setup_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/token_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/transport_management_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/unload_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/config.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/app_factory.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/app_runner.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/auth_validator.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/certificate_utils.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/client.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/client_manager.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/client_security.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/config_converter.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/crl_utils.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/errors.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/logging.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/mtls_asgi.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/mtls_asgi_app.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/mtls_proxy.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/mtls_server.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/protocol_manager.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/proxy_client.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/proxy_registration.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/role_utils.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/security_adapter.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/security_factory.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/security_integration.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/server_adapter.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/server_engine.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/settings.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/signal_handler.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/ssl_utils.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/transport_manager.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/unified_config_adapter.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/utils.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/custom_openapi.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/basic_framework/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/basic_framework/main.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/bugfix_certificate_config.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/cert_manager_bugfix.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/check_config.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/config_cli.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/create_test_configs.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/debug_request_state.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/debug_role_chain.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/demo_client.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/main.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/run_mtls.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/run_simple.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/full_application/test_server.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/generate_config.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/proxy_registration_example.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/required_certificates.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/run_example.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/run_full_test_suite.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/run_proxy_server.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/security_test_client.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/setup_test_environment.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/simple_protocol_test.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_chk_hostname_automated.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_config.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_config_builder.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_examples.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_framework_complete.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_mcp_server.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_protocol_examples.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/universal_client.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/update_config_certificates.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/main.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/openapi.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/schemas/base_schema.json +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/schemas/openapi_schema.json +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/schemas/roles.json +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/schemas/roles_schema.json +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/SOURCES.txt +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/dependency_links.txt +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/entry_points.txt +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/not-zip-safe +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/requires.txt +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/top_level.txt +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/setup.cfg +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/setup.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/tests/test_certificate_validation.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/tests/test_config_integration.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/tests/test_config_validation.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/tests/test_config_validation_isolated.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/tests/test_direct_import.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/tests/test_isolated_validation.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/tests/test_no_defaults.py +0 -0
- {mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/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.10
|
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
|
@@ -388,18 +388,19 @@ def create_app(
|
|
388
388
|
try:
|
389
389
|
from mcp_proxy_adapter.core.config_validator import ConfigValidator
|
390
390
|
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
391
|
+
_validator = ConfigValidator()
|
392
|
+
_validator.config_data = current_config
|
393
|
+
_validation_results = _validator.validate_config()
|
394
|
+
errors = [r for r in _validation_results if r.level == "error"]
|
395
|
+
warnings = [r for r in _validation_results if r.level == "warning"]
|
396
|
+
|
397
|
+
if errors:
|
397
398
|
logger.critical("CRITICAL CONFIG ERROR: Invalid configuration at startup:")
|
398
|
-
for _e in
|
399
|
-
logger.critical(f" - {_e}")
|
399
|
+
for _e in errors:
|
400
|
+
logger.critical(f" - {_e.message}")
|
400
401
|
raise SystemExit(1)
|
401
|
-
for _w in
|
402
|
-
logger.warning(f"Config warning: {_w}")
|
402
|
+
for _w in warnings:
|
403
|
+
logger.warning(f"Config warning: {_w.message}")
|
403
404
|
except Exception as _ex:
|
404
405
|
logger.error(f"Failed to run startup configuration validation: {_ex}")
|
405
406
|
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/config_validator.py
RENAMED
@@ -312,9 +312,15 @@ class ConfigValidator:
|
|
312
312
|
))
|
313
313
|
|
314
314
|
# Check conditional sections based on feature flags
|
315
|
+
protocol = self._get_nested_value_safe("server.protocol", "http")
|
316
|
+
|
315
317
|
for feature_name, feature_config in self.feature_flags.items():
|
316
318
|
enabled_key = feature_config["enabled_key"]
|
317
319
|
|
320
|
+
# Skip SSL validation for HTTP protocol
|
321
|
+
if feature_name in ["ssl", "transport_ssl"] and protocol not in ["https", "mtls"]:
|
322
|
+
continue
|
323
|
+
|
318
324
|
# Only check if the enabled key exists in the configuration
|
319
325
|
if not self._has_nested_key(enabled_key):
|
320
326
|
continue
|
@@ -365,9 +371,15 @@ class ConfigValidator:
|
|
365
371
|
|
366
372
|
def _validate_feature_flags(self) -> None:
|
367
373
|
"""Validate feature flags and their dependencies."""
|
374
|
+
protocol = self._get_nested_value_safe("server.protocol", "http")
|
375
|
+
|
368
376
|
for feature_name, feature_config in self.feature_flags.items():
|
369
377
|
enabled_key = feature_config["enabled_key"]
|
370
378
|
|
379
|
+
# Skip SSL validation for HTTP protocol
|
380
|
+
if feature_name in ["ssl", "transport_ssl"] and protocol not in ["https", "mtls"]:
|
381
|
+
continue
|
382
|
+
|
371
383
|
# Check if the enabled key exists in the configuration
|
372
384
|
if not self._has_nested_key(enabled_key):
|
373
385
|
# Skip validation if the feature flag key doesn't exist
|
@@ -415,6 +427,26 @@ class ConfigValidator:
|
|
415
427
|
"""Validate protocol-specific requirements."""
|
416
428
|
protocol = self._get_nested_value_safe("server.protocol", "http")
|
417
429
|
|
430
|
+
# Check mTLS protocol requirements
|
431
|
+
if protocol == "mtls":
|
432
|
+
# mTLS requires HTTPS protocol
|
433
|
+
if not self._has_nested_key("ssl.enabled"):
|
434
|
+
self.validation_results.append(ValidationResult(
|
435
|
+
level="error",
|
436
|
+
message="mTLS protocol requires SSL configuration",
|
437
|
+
section="ssl",
|
438
|
+
key="enabled"
|
439
|
+
))
|
440
|
+
else:
|
441
|
+
ssl_enabled = self._get_nested_value_safe("ssl.enabled", False)
|
442
|
+
if not ssl_enabled:
|
443
|
+
self.validation_results.append(ValidationResult(
|
444
|
+
level="error",
|
445
|
+
message="mTLS protocol requires SSL to be enabled",
|
446
|
+
section="ssl",
|
447
|
+
key="enabled"
|
448
|
+
))
|
449
|
+
|
418
450
|
if protocol not in self.protocol_requirements:
|
419
451
|
self.validation_results.append(ValidationResult(
|
420
452
|
level="error",
|
@@ -471,23 +503,37 @@ class ConfigValidator:
|
|
471
503
|
|
472
504
|
def _validate_file_existence(self) -> None:
|
473
505
|
"""Validate that all referenced files exist."""
|
506
|
+
protocol = self._get_nested_value_safe("server.protocol", "http")
|
507
|
+
|
474
508
|
file_keys = [
|
475
509
|
"logging.log_dir",
|
476
510
|
"commands.commands_directory",
|
477
511
|
"commands.catalog_directory",
|
478
512
|
"commands.custom_commands_path",
|
479
513
|
"security.roles_file",
|
480
|
-
"roles.config_file"
|
481
|
-
"ssl.cert_file",
|
482
|
-
"ssl.key_file",
|
483
|
-
"ssl.ca_cert",
|
484
|
-
"transport.ssl.cert_file",
|
485
|
-
"transport.ssl.key_file",
|
486
|
-
"transport.ssl.ca_cert",
|
487
|
-
"proxy_registration.certificate.cert_file",
|
488
|
-
"proxy_registration.certificate.key_file"
|
514
|
+
"roles.config_file"
|
489
515
|
]
|
490
516
|
|
517
|
+
# Only add SSL-related files if protocol requires SSL
|
518
|
+
if protocol in ["https", "mtls"]:
|
519
|
+
file_keys.extend([
|
520
|
+
"ssl.cert_file",
|
521
|
+
"ssl.key_file",
|
522
|
+
"ssl.ca_cert",
|
523
|
+
"transport.ssl.cert_file",
|
524
|
+
"transport.ssl.key_file",
|
525
|
+
"transport.ssl.ca_cert"
|
526
|
+
])
|
527
|
+
|
528
|
+
# Only add proxy registration files if proxy registration is enabled
|
529
|
+
if self._has_nested_key("proxy_registration.enabled"):
|
530
|
+
proxy_enabled = self._get_nested_value_safe("proxy_registration.enabled", False)
|
531
|
+
if proxy_enabled:
|
532
|
+
file_keys.extend([
|
533
|
+
"proxy_registration.certificate.cert_file",
|
534
|
+
"proxy_registration.certificate.key_file"
|
535
|
+
])
|
536
|
+
|
491
537
|
for file_key in file_keys:
|
492
538
|
file_path = self._get_nested_value(file_key)
|
493
539
|
if file_path and not os.path.exists(file_path):
|
@@ -607,6 +653,11 @@ class ConfigValidator:
|
|
607
653
|
|
608
654
|
def _validate_ssl_configuration(self) -> None:
|
609
655
|
"""Validate SSL configuration with detailed certificate validation."""
|
656
|
+
# Only validate SSL if the protocol requires it
|
657
|
+
protocol = self._get_nested_value_safe("server.protocol", "http")
|
658
|
+
if protocol not in ["https", "mtls"]:
|
659
|
+
return
|
660
|
+
|
610
661
|
# Only validate SSL if the ssl section exists
|
611
662
|
if not self._has_nested_key("ssl.enabled"):
|
612
663
|
return
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/config_builder.py
RENAMED
@@ -82,6 +82,12 @@ def generate_complete_config(host: str = "0.0.0.0", port: int = 8000) -> Dict[st
|
|
82
82
|
"enabled": False,
|
83
83
|
"level": "WARNING"
|
84
84
|
},
|
85
|
+
"ssl": {
|
86
|
+
"enabled": False,
|
87
|
+
"cert_file": None,
|
88
|
+
"key_file": None,
|
89
|
+
"ca_cert": None
|
90
|
+
},
|
85
91
|
"security": {
|
86
92
|
"enabled": False,
|
87
93
|
"tokens": {},
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-proxy-adapter
|
3
|
-
Version: 6.9.
|
3
|
+
Version: 6.9.10
|
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.10"
|
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
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/__init__.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/base.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/factory.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/logging.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/middleware/performance.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.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/api/tool_integration.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/builtin_commands.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/catalog_manager.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/command_registry.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/config_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/echo_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/health_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/help_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/load_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/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.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/reload_command.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/role_test_command.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/security_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/settings_command.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/ssl_setup_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/commands/unload_command.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/auth_validator.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/certificate_utils.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/client_manager.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/client_security.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/config_converter.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/mtls_asgi_app.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/protocol_manager.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/proxy_registration.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/security_adapter.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/security_factory.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/security_integration.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/server_adapter.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/server_engine.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/signal_handler.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/core/transport_manager.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
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/check_config.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/commands/__init__.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/config_cli.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/debug_role_chain.py
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/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.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/generate_config.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/run_example.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/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.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_config.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_examples.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/examples/test_mcp_server.py
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/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.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/schemas/base_schema.json
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/schemas/openapi_schema.json
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter/schemas/roles_schema.json
RENAMED
File without changes
|
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/dependency_links.txt
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/entry_points.txt
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/not-zip-safe
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/mcp_proxy_adapter.egg-info/requires.txt
RENAMED
File without changes
|
{mcp_proxy_adapter-6.9.8 → mcp_proxy_adapter-6.9.10}/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.8 → mcp_proxy_adapter-6.9.10}/tests/test_config_validation_isolated.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|