mcp-proxy-adapter 4.1.1__tar.gz → 6.1.0__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-4.1.1 → mcp_proxy_adapter-6.1.0}/LICENSE +2 -2
- mcp_proxy_adapter-6.1.0/MANIFEST.in +35 -0
- mcp_proxy_adapter-6.1.0/PKG-INFO +205 -0
- mcp_proxy_adapter-6.1.0/README.md +134 -0
- mcp_proxy_adapter-6.1.0/TODO_SECURITY_INTEGRATION.md +157 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/__main__.py +12 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/app.py +254 -33
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/handlers.py +32 -6
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/api/middleware/__init__.py +55 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/api/middleware/command_permission_middleware.py +148 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/middleware/error_handling.py +9 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/api/middleware/factory.py +243 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/middleware/logging.py +32 -6
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/api/middleware/protocol_middleware.py +135 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/api/middleware/transport_middleware.py +122 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/api/middleware/unified_security.py +152 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/api/middleware/user_info_middleware.py +83 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/__init__.py +37 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/auth_validation_command.py +408 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/commands/base.py +66 -32
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/builtin_commands.py +95 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/catalog_manager.py +838 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/cert_monitor_command.py +620 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/certificate_management_command.py +608 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/command_registry.py +923 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/dependency_manager.py +245 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/echo_command.py +81 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/commands/health_command.py +7 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/commands/help_command.py +21 -14
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/hooks.py +293 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/key_management_command.py +506 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/load_command.py +176 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/plugins_command.py +235 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/protocol_management_command.py +232 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/proxy_registration_command.py +409 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/commands/reload_command.py +48 -50
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/commands/result.py +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/role_test_command.py +141 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/roles_management_command.py +697 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/security_command.py +488 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/ssl_setup_command.py +483 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/token_management_command.py +529 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/transport_management_command.py +144 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/commands/unload_command.py +158 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/config.py +367 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/app_factory.py +326 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/auth_validator.py +606 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/certificate_utils.py +827 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/client_security.py +384 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/config_converter.py +405 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/config_validator.py +218 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/core/logging.py +19 -3
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/mtls_asgi.py +156 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/mtls_asgi_app.py +187 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/protocol_manager.py +235 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/proxy_client.py +602 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/proxy_registration.py +522 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/role_utils.py +426 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/security_adapter.py +370 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/security_factory.py +239 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/security_integration.py +277 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/server_adapter.py +345 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/server_engine.py +364 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/core/settings.py +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/ssl_utils.py +233 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/transport_manager.py +292 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/core/unified_config_adapter.py +579 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/custom_openapi.py +22 -11
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/README.md +257 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/README_EN.md +258 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/SECURITY_TESTING.md +455 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/basic_framework/configs/http_auth.json +37 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/basic_framework/configs/http_simple.json +23 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/basic_framework/configs/https_auth.json +39 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/basic_framework/configs/https_simple.json +25 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/basic_framework/configs/mtls_no_roles.json +39 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/basic_framework/configs/mtls_with_roles.json +45 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/basic_framework/main.py +63 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/basic_framework/roles.json +21 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/cert_config.json +9 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/admin.crt +32 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/admin.key +52 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/admin_cert.pem +21 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/admin_key.pem +28 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/ca_cert.pem +23 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/ca_cert.srl +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/ca_key.pem +28 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/cert_config.json +9 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/client.crt +32 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/client.key +52 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/client_admin.crt +32 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/client_admin.key +52 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/client_user.crt +32 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/client_user.key +52 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/guest_cert.pem +21 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/guest_key.pem +28 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/mcp_proxy_adapter_ca_ca.crt +23 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/proxy_cert.pem +21 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/proxy_key.pem +28 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/readonly.crt +32 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/readonly.key +52 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/readonly_cert.pem +21 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/readonly_key.pem +28 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/server.crt +32 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/server.key +52 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/server_cert.pem +32 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/server_key.pem +52 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/test_ca_ca.crt +20 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/user.crt +32 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/user.key +52 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/user_cert.pem +21 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/certs/user_key.pem +28 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/client_configs/api_key_client.json +13 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/client_configs/basic_auth_client.json +13 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/client_configs/certificate_client.json +22 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/client_configs/jwt_client.json +15 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/client_configs/no_auth_client.json +9 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/commands/__init__.py +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/create_certificates_simple.py +307 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/debug_request_state.py +144 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/debug_role_chain.py +205 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/demo_client.py +341 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +99 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +106 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/configs/http_auth.json +37 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/configs/http_simple.json +23 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/configs/https_auth.json +39 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/configs/https_simple.json +25 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/configs/mtls_no_roles.json +39 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/configs/mtls_with_roles.json +45 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +97 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +95 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/main.py +138 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/full_application/roles.json +21 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/generate_all_certificates.py +429 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/generate_certificates.py +121 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/keys/ca_key.pem +28 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/keys/mcp_proxy_adapter_ca_ca.key +28 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/keys/test_ca_ca.key +28 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log +220 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.1 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.2 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.3 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.4 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter.log.5 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log +220 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.1 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.2 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.3 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.4 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_access.log.5 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log +2 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.1 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.2 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.3 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.4 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/logs/mcp_proxy_adapter_error.log.5 +1 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/proxy_registration_example.py +401 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/roles.json +38 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/run_example.py +81 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/run_security_tests.py +326 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/run_security_tests_fixed.py +300 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/security_test_client.py +743 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/server_configs/config_basic_http.json +204 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/server_configs/config_http_token.json +238 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/server_configs/config_https.json +215 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/server_configs/config_https_token.json +231 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/server_configs/config_mtls.json +215 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/server_configs/config_proxy_registration.json +250 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/server_configs/config_simple.json +46 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/server_configs/roles.json +38 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/test_examples.py +344 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/examples/universal_client.py +628 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/main.py +186 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter/utils/config_generator.py +639 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/version.py +2 -1
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter.egg-info/PKG-INFO +205 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter.egg-info/SOURCES.txt +234 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter.egg-info/entry_points.txt +2 -0
- mcp_proxy_adapter-6.1.0/mcp_proxy_adapter.egg-info/requires.txt +37 -0
- mcp_proxy_adapter-6.1.0/pyproject.toml +182 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/requirements.txt +2 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/setup.py +3 -2
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/api/test_cmd_endpoint.py +45 -37
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/api/test_tool_integration.py +1 -1
- mcp_proxy_adapter-6.1.0/tests/clients/__init__.py +13 -0
- mcp_proxy_adapter-6.1.0/tests/clients/security_test_client.py +640 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/commands/test_config_command.py +5 -1
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/commands/test_echo_command.py +2 -2
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/commands/test_help_command.py +3 -0
- mcp_proxy_adapter-6.1.0/tests/common/mock_classes.py +191 -0
- mcp_proxy_adapter-6.1.0/tests/conftest.py +342 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/functional/test_api.py +2 -2
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/integration/test_cmd_integration.py +54 -11
- mcp_proxy_adapter-6.1.0/tests/integration/test_configuration_scenarios.py +450 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/integration/test_integration.py +41 -12
- mcp_proxy_adapter-6.1.0/tests/integration/test_security_integration.py +286 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/performance/test_performance.py +66 -30
- mcp_proxy_adapter-6.1.0/tests/performance/test_security_performance.py +398 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/stubs/__init__.py +1 -1
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/test_api_endpoints.py +17 -1
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/test_command_registry.py +34 -95
- mcp_proxy_adapter-6.1.0/tests/test_security_examples.py +304 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/unit/test_base_command.py +65 -50
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/unit/test_config.py +54 -1
- mcp_proxy_adapter-6.1.0/tests/unit/test_unified_config_adapter.py +535 -0
- mcp_proxy_adapter-6.1.0/tests/unit/test_unified_security_middleware.py +495 -0
- mcp_proxy_adapter-4.1.1/MANIFEST.in +0 -28
- mcp_proxy_adapter-4.1.1/PKG-INFO +0 -200
- mcp_proxy_adapter-4.1.1/README.md +0 -148
- mcp_proxy_adapter-4.1.1/docs/EN/API_SCHEMA.md +0 -183
- mcp_proxy_adapter-4.1.1/docs/EN/AUTOMATED_PUBLISHING.md +0 -121
- mcp_proxy_adapter-4.1.1/docs/EN/BASIC_ARCHITECTURE.md +0 -210
- mcp_proxy_adapter-4.1.1/docs/EN/COMMAND_CHECKLIST.md +0 -81
- mcp_proxy_adapter-4.1.1/docs/EN/COMMAND_RESULTS.md +0 -252
- mcp_proxy_adapter-4.1.1/docs/EN/COMMAND_TEMPLATE.md +0 -283
- mcp_proxy_adapter-4.1.1/docs/EN/CONFIGURATION_PRINCIPLES.md +0 -305
- mcp_proxy_adapter-4.1.1/docs/EN/DOCUMENTATION_MAP.md +0 -92
- mcp_proxy_adapter-4.1.1/docs/EN/DOCUMENTATION_STANDARDS.md +0 -118
- mcp_proxy_adapter-4.1.1/docs/EN/ERROR_HANDLING.md +0 -225
- mcp_proxy_adapter-4.1.1/docs/EN/EXAMPLES_COMMAND_CLASSES.md +0 -87
- mcp_proxy_adapter-4.1.1/docs/EN/GLOSSARY.md +0 -53
- mcp_proxy_adapter-4.1.1/docs/EN/LOGGING_SYSTEM.md +0 -258
- mcp_proxy_adapter-4.1.1/docs/EN/NAMING_STANDARDS.md +0 -216
- mcp_proxy_adapter-4.1.1/docs/EN/OPENAPI_SCHEMA.md +0 -535
- mcp_proxy_adapter-4.1.1/docs/EN/PROJECT_EXTENSION_GUIDE.md +0 -696
- mcp_proxy_adapter-4.1.1/docs/EN/PROJECT_IDEOLOGY.md +0 -139
- mcp_proxy_adapter-4.1.1/docs/EN/PROJECT_RULES.md +0 -161
- mcp_proxy_adapter-4.1.1/docs/EN/PROJECT_STRUCTURE.md +0 -166
- mcp_proxy_adapter-4.1.1/docs/EN/PUBLISHING_TO_PYPI.md +0 -175
- mcp_proxy_adapter-4.1.1/docs/EN/README.md +0 -20
- mcp_proxy_adapter-4.1.1/docs/EN/api/cmd_endpoint.md +0 -177
- mcp_proxy_adapter-4.1.1/docs/EN/api/errors.md +0 -100
- mcp_proxy_adapter-4.1.1/docs/EN/api/intro.md +0 -30
- mcp_proxy_adapter-4.1.1/docs/EN/api/requests.md +0 -79
- mcp_proxy_adapter-4.1.1/docs/EN/api/responses.md +0 -104
- mcp_proxy_adapter-4.1.1/docs/EN/commands/get_date_command.md +0 -128
- mcp_proxy_adapter-4.1.1/docs/EN/commands/help_command.md +0 -239
- mcp_proxy_adapter-4.1.1/docs/EN/commands/index.md +0 -54
- mcp_proxy_adapter-4.1.1/docs/EN/commands/new_uuid4_command.md +0 -110
- mcp_proxy_adapter-4.1.1/docs/EN/commands/reload_settings_command.md +0 -183
- mcp_proxy_adapter-4.1.1/docs/EN/commands/settings_command.md +0 -298
- mcp_proxy_adapter-4.1.1/docs/EN/development/COMMAND_METADATA_ENHANCEMENT.md +0 -350
- mcp_proxy_adapter-4.1.1/docs/EN/development/DEPENDENCY_INJECTION.md +0 -176
- mcp_proxy_adapter-4.1.1/docs/EN/development/HOOK_SYSTEM.md +0 -346
- mcp_proxy_adapter-4.1.1/docs/EN/development/METADATA_COMMANDS.md +0 -149
- mcp_proxy_adapter-4.1.1/docs/EN/development/OPENAPI_CUSTOMIZATION.md +0 -412
- mcp_proxy_adapter-4.1.1/docs/EN/development/REMOVE_COMMAND_GUIDE.md +0 -122
- mcp_proxy_adapter-4.1.1/docs/EN/development/TOOL_INTEGRATION.md +0 -252
- mcp_proxy_adapter-4.1.1/docs/EN/development/architecture.md +0 -97
- mcp_proxy_adapter-4.1.1/docs/EN/development/command_auto_discovery.md +0 -277
- mcp_proxy_adapter-4.1.1/docs/EN/development/settings_management.md +0 -345
- mcp_proxy_adapter-4.1.1/docs/EN/examples/README.md +0 -37
- mcp_proxy_adapter-4.1.1/docs/EN/examples/anti_patterns.md +0 -156
- mcp_proxy_adapter-4.1.1/docs/EN/examples/basic_example.md +0 -168
- mcp_proxy_adapter-4.1.1/docs/EN/examples/complete_example.md +0 -190
- mcp_proxy_adapter-4.1.1/docs/EN/examples/minimal_example.md +0 -127
- mcp_proxy_adapter-4.1.1/docs/EN/testing/README.md +0 -172
- mcp_proxy_adapter-4.1.1/docs/EN/user/basic_usage.md +0 -122
- mcp_proxy_adapter-4.1.1/docs/EN/user/configuration.md +0 -128
- mcp_proxy_adapter-4.1.1/docs/EN/user/deployment.md +0 -166
- mcp_proxy_adapter-4.1.1/docs/EN/user/examples.md +0 -169
- mcp_proxy_adapter-4.1.1/docs/EN/user/installation.md +0 -56
- mcp_proxy_adapter-4.1.1/docs/RU/API_SCHEMA.md +0 -183
- mcp_proxy_adapter-4.1.1/docs/RU/AUTOMATED_PUBLISHING.md +0 -121
- mcp_proxy_adapter-4.1.1/docs/RU/BASIC_ARCHITECTURE.md +0 -210
- mcp_proxy_adapter-4.1.1/docs/RU/COMMAND_CHECKLIST.md +0 -152
- mcp_proxy_adapter-4.1.1/docs/RU/COMMAND_RESULTS.md +0 -286
- mcp_proxy_adapter-4.1.1/docs/RU/COMMAND_TEMPLATE.md +0 -283
- mcp_proxy_adapter-4.1.1/docs/RU/CONFIGURATION_PRINCIPLES.md +0 -305
- mcp_proxy_adapter-4.1.1/docs/RU/DOCUMENTATION_MAP.md +0 -92
- mcp_proxy_adapter-4.1.1/docs/RU/DOCUMENTATION_STANDARDS.md +0 -118
- mcp_proxy_adapter-4.1.1/docs/RU/ERROR_HANDLING.md +0 -225
- mcp_proxy_adapter-4.1.1/docs/RU/EXAMPLES_COMMAND_CLASSES.md +0 -87
- mcp_proxy_adapter-4.1.1/docs/RU/GLOSSARY.md +0 -53
- mcp_proxy_adapter-4.1.1/docs/RU/LOGGING_SYSTEM.md +0 -258
- mcp_proxy_adapter-4.1.1/docs/RU/NAMING_STANDARDS.md +0 -216
- mcp_proxy_adapter-4.1.1/docs/RU/OPENAPI_SCHEMA.md +0 -535
- mcp_proxy_adapter-4.1.1/docs/RU/PROJECT_EXTENSION_GUIDE.md +0 -612
- mcp_proxy_adapter-4.1.1/docs/RU/PROJECT_IDEOLOGY.md +0 -139
- mcp_proxy_adapter-4.1.1/docs/RU/PROJECT_RULES.md +0 -161
- mcp_proxy_adapter-4.1.1/docs/RU/PROJECT_STRUCTURE.md +0 -166
- mcp_proxy_adapter-4.1.1/docs/RU/PUBLISHING_TO_PYPI.md +0 -175
- mcp_proxy_adapter-4.1.1/docs/RU/README.md +0 -20
- mcp_proxy_adapter-4.1.1/docs/RU/api/cmd_endpoint.md +0 -177
- mcp_proxy_adapter-4.1.1/docs/RU/api/errors.md +0 -100
- mcp_proxy_adapter-4.1.1/docs/RU/api/intro.md +0 -30
- mcp_proxy_adapter-4.1.1/docs/RU/api/requests.md +0 -79
- mcp_proxy_adapter-4.1.1/docs/RU/api/responses.md +0 -104
- mcp_proxy_adapter-4.1.1/docs/RU/commands/get_date_command.md +0 -128
- mcp_proxy_adapter-4.1.1/docs/RU/commands/help_command.md +0 -239
- mcp_proxy_adapter-4.1.1/docs/RU/commands/index.md +0 -54
- mcp_proxy_adapter-4.1.1/docs/RU/commands/new_uuid4_command.md +0 -110
- mcp_proxy_adapter-4.1.1/docs/RU/commands/reload_settings_command.md +0 -183
- mcp_proxy_adapter-4.1.1/docs/RU/commands/settings_command.md +0 -298
- mcp_proxy_adapter-4.1.1/docs/RU/development/COMMAND_METADATA_ENHANCEMENT.md +0 -350
- mcp_proxy_adapter-4.1.1/docs/RU/development/DEPENDENCY_INJECTION.md +0 -176
- mcp_proxy_adapter-4.1.1/docs/RU/development/HOOK_SYSTEM.md +0 -346
- mcp_proxy_adapter-4.1.1/docs/RU/development/METADATA_COMMANDS.md +0 -149
- mcp_proxy_adapter-4.1.1/docs/RU/development/OPENAPI_CUSTOMIZATION.md +0 -411
- mcp_proxy_adapter-4.1.1/docs/RU/development/PLAN_REALIZACII_METADATA.md +0 -452
- mcp_proxy_adapter-4.1.1/docs/RU/development/REMOVE_COMMAND_GUIDE.md +0 -122
- mcp_proxy_adapter-4.1.1/docs/RU/development/TOOL_INTEGRATION.md +0 -252
- mcp_proxy_adapter-4.1.1/docs/RU/development/architecture.md +0 -97
- mcp_proxy_adapter-4.1.1/docs/RU/development/command_auto_discovery.md +0 -277
- mcp_proxy_adapter-4.1.1/docs/RU/development/settings_management.md +0 -345
- mcp_proxy_adapter-4.1.1/docs/RU/examples/README.md +0 -37
- mcp_proxy_adapter-4.1.1/docs/RU/examples/anti_patterns.md +0 -156
- mcp_proxy_adapter-4.1.1/docs/RU/examples/basic_example.md +0 -168
- mcp_proxy_adapter-4.1.1/docs/RU/examples/complete_example.md +0 -190
- mcp_proxy_adapter-4.1.1/docs/RU/examples/minimal_example.md +0 -127
- mcp_proxy_adapter-4.1.1/docs/RU/testing/README.md +0 -172
- mcp_proxy_adapter-4.1.1/docs/RU/user/basic_usage.md +0 -122
- mcp_proxy_adapter-4.1.1/docs/RU/user/configuration.md +0 -128
- mcp_proxy_adapter-4.1.1/docs/RU/user/deployment.md +0 -166
- mcp_proxy_adapter-4.1.1/docs/RU/user/examples.md +0 -169
- mcp_proxy_adapter-4.1.1/docs/RU/user/installation.md +0 -56
- mcp_proxy_adapter-4.1.1/examples/custom_project_example/README.md +0 -103
- mcp_proxy_adapter-4.1.1/examples/custom_project_example/README_EN.md +0 -103
- mcp_proxy_adapter-4.1.1/examples/simple_custom_commands/README.md +0 -149
- mcp_proxy_adapter-4.1.1/examples/simple_custom_commands/README_EN.md +0 -149
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/api/middleware/__init__.py +0 -49
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/api/middleware/auth.py +0 -146
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/api/middleware/rate_limit.py +0 -152
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/commands/__init__.py +0 -22
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/commands/command_registry.py +0 -566
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/commands/hooks.py +0 -260
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/commands/reload_settings_command.py +0 -125
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/config.py +0 -210
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/README.md +0 -124
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/__init__.py +0 -7
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/basic_server/README.md +0 -60
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/basic_server/__init__.py +0 -7
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/basic_server/basic_custom_settings.json +0 -39
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/basic_server/config.json +0 -35
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/basic_server/custom_settings_example.py +0 -238
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/basic_server/server.py +0 -103
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/README.md +0 -127
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/__init__.py +0 -27
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/advanced_hooks.py +0 -250
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/auto_commands/__init__.py +0 -6
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/auto_commands/auto_echo_command.py +0 -103
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/auto_commands/auto_info_command.py +0 -111
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/config.json +0 -35
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/custom_health_command.py +0 -169
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/custom_help_command.py +0 -215
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/custom_openapi_generator.py +0 -76
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/custom_settings.json +0 -96
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/custom_settings_manager.py +0 -241
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/data_transform_command.py +0 -135
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/echo_command.py +0 -122
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/hooks.py +0 -230
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/intercept_command.py +0 -123
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/manual_echo_command.py +0 -103
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/server.py +0 -228
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/custom_commands/test_hooks.py +0 -176
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/deployment/README.md +0 -49
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/deployment/__init__.py +0 -7
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/deployment/config.development.json +0 -8
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/deployment/config.json +0 -29
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/deployment/config.production.json +0 -12
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/deployment/config.staging.json +0 -11
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/deployment/docker-compose.yml +0 -31
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/deployment/run.sh +0 -43
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/examples/deployment/run_docker.sh +0 -84
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/schemas/base_schema.json +0 -114
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/schemas/openapi_schema.json +0 -314
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/tests/api/test_middleware.py +0 -340
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/tests/conftest.py +0 -131
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/tests/stubs/echo_command.py +0 -104
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/tests/test_api_handlers.py +0 -289
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/tests/test_base_command.py +0 -123
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter/tests/test_config.py +0 -127
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter.egg-info/PKG-INFO +0 -200
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter.egg-info/SOURCES.txt +0 -286
- mcp_proxy_adapter-4.1.1/mcp_proxy_adapter.egg-info/requires.txt +0 -7
- mcp_proxy_adapter-4.1.1/pyproject.toml +0 -153
- mcp_proxy_adapter-4.1.1/tests/__init__.py +0 -3
- mcp_proxy_adapter-4.1.1/tests/api/__init__.py +0 -3
- mcp_proxy_adapter-4.1.1/tests/api/test_app.py +0 -659
- mcp_proxy_adapter-4.1.1/tests/api/test_app_extended.py +0 -390
- mcp_proxy_adapter-4.1.1/tests/api/test_auth.py +0 -471
- mcp_proxy_adapter-4.1.1/tests/api/test_error_handling.py +0 -327
- mcp_proxy_adapter-4.1.1/tests/api/test_handler_dependency_injection.py +0 -131
- mcp_proxy_adapter-4.1.1/tests/api/test_handlers_extended.py +0 -392
- mcp_proxy_adapter-4.1.1/tests/api/test_middleware_base.py +0 -246
- mcp_proxy_adapter-4.1.1/tests/api/test_middleware_logging.py +0 -338
- mcp_proxy_adapter-4.1.1/tests/api/test_middleware_performance.py +0 -267
- mcp_proxy_adapter-4.1.1/tests/api/test_openapi.py +0 -356
- mcp_proxy_adapter-4.1.1/tests/api/test_rate_limit.py +0 -106
- mcp_proxy_adapter-4.1.1/tests/api/test_schemas_extended.py +0 -347
- mcp_proxy_adapter-4.1.1/tests/api/test_schemas_final.py +0 -193
- mcp_proxy_adapter-4.1.1/tests/api/test_tool_description.py +0 -240
- mcp_proxy_adapter-4.1.1/tests/api/test_tool_integration.py +0 -368
- mcp_proxy_adapter-4.1.1/tests/api/test_tools.py +0 -309
- mcp_proxy_adapter-4.1.1/tests/commands/__init__.py +0 -3
- mcp_proxy_adapter-4.1.1/tests/commands/test_base_command_extended.py +0 -490
- mcp_proxy_adapter-4.1.1/tests/commands/test_base_command_final.py +0 -806
- mcp_proxy_adapter-4.1.1/tests/commands/test_command_di.py +0 -155
- mcp_proxy_adapter-4.1.1/tests/commands/test_command_discovery_config.py +0 -137
- mcp_proxy_adapter-4.1.1/tests/commands/test_command_metadata.py +0 -128
- mcp_proxy_adapter-4.1.1/tests/commands/test_command_registry_extended.py +0 -527
- mcp_proxy_adapter-4.1.1/tests/commands/test_config_command_extended.py +0 -252
- mcp_proxy_adapter-4.1.1/tests/commands/test_dependency_container.py +0 -101
- mcp_proxy_adapter-4.1.1/tests/commands/test_echo_command_di.py +0 -127
- mcp_proxy_adapter-4.1.1/tests/commands/test_health_command_extended.py +0 -377
- mcp_proxy_adapter-4.1.1/tests/commands/test_help_command.py +0 -315
- mcp_proxy_adapter-4.1.1/tests/commands/test_hooks.py +0 -422
- mcp_proxy_adapter-4.1.1/tests/commands/test_priority_commands.py +0 -219
- mcp_proxy_adapter-4.1.1/tests/commands/test_reload_commands_extended.py +0 -453
- mcp_proxy_adapter-4.1.1/tests/commands/test_result.py +0 -404
- mcp_proxy_adapter-4.1.1/tests/commands/test_settings_command_extended.py +0 -300
- mcp_proxy_adapter-4.1.1/tests/conftest.py +0 -50
- mcp_proxy_adapter-4.1.1/tests/core/test_config.py +0 -366
- mcp_proxy_adapter-4.1.1/tests/core/test_errors.py +0 -439
- mcp_proxy_adapter-4.1.1/tests/core/test_logging.py +0 -389
- mcp_proxy_adapter-4.1.1/tests/core/test_settings_extended.py +0 -557
- mcp_proxy_adapter-4.1.1/tests/core/test_utils.py +0 -326
- mcp_proxy_adapter-4.1.1/tests/examples/test_advanced_hooks.py +0 -297
- mcp_proxy_adapter-4.1.1/tests/examples/test_auto_echo_command.py +0 -198
- mcp_proxy_adapter-4.1.1/tests/examples/test_auto_info_command.py +0 -233
- mcp_proxy_adapter-4.1.1/tests/examples/test_basic_server.py +0 -279
- mcp_proxy_adapter-4.1.1/tests/examples/test_custom_commands.py +0 -212
- mcp_proxy_adapter-4.1.1/tests/examples/test_custom_commands_hooks.py +0 -449
- mcp_proxy_adapter-4.1.1/tests/examples/test_custom_commands_server.py +0 -268
- mcp_proxy_adapter-4.1.1/tests/examples/test_custom_health_command.py +0 -458
- mcp_proxy_adapter-4.1.1/tests/examples/test_custom_help_command.py +0 -359
- mcp_proxy_adapter-4.1.1/tests/examples/test_custom_openapi_generator.py +0 -320
- mcp_proxy_adapter-4.1.1/tests/examples/test_custom_settings_manager.py +0 -364
- mcp_proxy_adapter-4.1.1/tests/examples/test_data_transform_command.py +0 -267
- mcp_proxy_adapter-4.1.1/tests/examples/test_echo_command.py +0 -290
- mcp_proxy_adapter-4.1.1/tests/examples/test_intercept_command.py +0 -297
- mcp_proxy_adapter-4.1.1/tests/examples/test_manual_echo_command.py +0 -213
- mcp_proxy_adapter-4.1.1/tests/integration/__init__.py +0 -3
- mcp_proxy_adapter-4.1.1/tests/integration/test_di_integration.py +0 -226
- mcp_proxy_adapter-4.1.1/tests/test_custom_openapi_extended.py +0 -297
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/__init__.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/__init__.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/middleware/base.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/schemas.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/tool_integration.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/api/tools.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/commands/config_command.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/commands/settings_command.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/core/__init__.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/core/errors.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/core/utils.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter/openapi.py +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter.egg-info/dependency_links.txt +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/mcp_proxy_adapter.egg-info/top_level.txt +0 -0
- {mcp_proxy_adapter-4.1.1 → mcp_proxy_adapter-6.1.0}/setup.cfg +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/__init__.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/api/__init__.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/api/test_custom_openapi.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/api/test_handlers.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/api/test_schemas.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/commands/__init__.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/functional/__init__.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/integration/__init__.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/performance/__init__.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/test_batch_requests.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/test_utils.py +0 -0
- {mcp_proxy_adapter-4.1.1/mcp_proxy_adapter → mcp_proxy_adapter-6.1.0}/tests/unit/__init__.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
MIT License
|
2
2
|
|
3
|
-
Copyright (c)
|
3
|
+
Copyright (c) 2024 Vasiliy Zdanovskiy
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
-
SOFTWARE.
|
21
|
+
SOFTWARE.
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Include README and license
|
2
|
+
include README.md
|
3
|
+
include LICENSE
|
4
|
+
include requirements.txt
|
5
|
+
include pyproject.toml
|
6
|
+
include setup.py
|
7
|
+
|
8
|
+
# Include package data
|
9
|
+
recursive-include mcp_proxy_adapter/schemas *.json
|
10
|
+
recursive-include mcp_proxy_adapter/examples *
|
11
|
+
recursive-include mcp_proxy_adapter/docs *.md
|
12
|
+
|
13
|
+
# Include test files
|
14
|
+
recursive-include tests *.py
|
15
|
+
recursive-include tests *.json
|
16
|
+
recursive-include tests *.md
|
17
|
+
|
18
|
+
# Include configuration examples
|
19
|
+
include *.json
|
20
|
+
include *.md
|
21
|
+
|
22
|
+
# Exclude development files
|
23
|
+
global-exclude *.pyc
|
24
|
+
global-exclude *.pyo
|
25
|
+
global-exclude *.pyd
|
26
|
+
global-exclude __pycache__
|
27
|
+
global-exclude .git*
|
28
|
+
global-exclude .venv
|
29
|
+
global-exclude venv
|
30
|
+
global-exclude .pytest_cache
|
31
|
+
global-exclude .coverage
|
32
|
+
global-exclude htmlcov
|
33
|
+
global-exclude dist
|
34
|
+
global-exclude build
|
35
|
+
global-exclude *.egg-info
|
@@ -0,0 +1,205 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: mcp-proxy-adapter
|
3
|
+
Version: 6.1.0
|
4
|
+
Summary: Model Context Protocol Proxy Adapter with Security Framework
|
5
|
+
Home-page: https://github.com/maverikod/mcp-proxy-adapter
|
6
|
+
Author: Vasiliy Zdanovskiy
|
7
|
+
Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
8
|
+
Maintainer-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
9
|
+
License: MIT
|
10
|
+
Project-URL: Homepage, https://github.com/vasilyvz/mcp-proxy-adapter
|
11
|
+
Project-URL: Documentation, https://mcp-proxy-adapter.readthedocs.io/
|
12
|
+
Project-URL: Repository, https://github.com/vasilyvz/mcp-proxy-adapter.git
|
13
|
+
Project-URL: Bug Tracker, https://github.com/vasilyvz/mcp-proxy-adapter/issues
|
14
|
+
Project-URL: Security Policy, https://github.com/vasilyvz/mcp-proxy-adapter/security/policy
|
15
|
+
Keywords: mcp,proxy,adapter,json-rpc,microservice,security,fastapi
|
16
|
+
Classifier: Development Status :: 5 - Production/Stable
|
17
|
+
Classifier: Intended Audience :: Developers
|
18
|
+
Classifier: License :: OSI Approved :: MIT License
|
19
|
+
Classifier: Operating System :: OS Independent
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
21
|
+
Classifier: Programming Language :: Python :: 3.8
|
22
|
+
Classifier: Programming Language :: Python :: 3.9
|
23
|
+
Classifier: Programming Language :: Python :: 3.10
|
24
|
+
Classifier: Programming Language :: Python :: 3.11
|
25
|
+
Classifier: Programming Language :: Python :: 3.12
|
26
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
27
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
28
|
+
Classifier: Topic :: Security
|
29
|
+
Classifier: Framework :: FastAPI
|
30
|
+
Requires-Python: >=3.9
|
31
|
+
Description-Content-Type: text/markdown
|
32
|
+
License-File: LICENSE
|
33
|
+
Requires-Dist: fastapi>=0.100.0
|
34
|
+
Requires-Dist: uvicorn[standard]>=0.20.0
|
35
|
+
Requires-Dist: pydantic>=2.0.0
|
36
|
+
Requires-Dist: mcp-security-framework>=0.1.0
|
37
|
+
Requires-Dist: python-multipart>=0.0.6
|
38
|
+
Requires-Dist: python-jose[cryptography]>=3.3.0
|
39
|
+
Requires-Dist: passlib[bcrypt]>=1.7.4
|
40
|
+
Requires-Dist: cryptography>=3.4.8
|
41
|
+
Requires-Dist: pyOpenSSL>=23.0.0
|
42
|
+
Requires-Dist: certifi>=2023.7.22
|
43
|
+
Requires-Dist: requests>=2.31.0
|
44
|
+
Requires-Dist: aiofiles>=23.1.0
|
45
|
+
Requires-Dist: python-dotenv>=1.0.0
|
46
|
+
Provides-Extra: dev
|
47
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
48
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
49
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
50
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
51
|
+
Requires-Dist: isort>=5.12.0; extra == "dev"
|
52
|
+
Requires-Dist: flake8>=6.0.0; extra == "dev"
|
53
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
54
|
+
Requires-Dist: pre-commit>=3.0.0; extra == "dev"
|
55
|
+
Requires-Dist: httpx>=0.24.0; extra == "dev"
|
56
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "dev"
|
57
|
+
Provides-Extra: test
|
58
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
59
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
|
60
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
61
|
+
Requires-Dist: httpx>=0.24.0; extra == "test"
|
62
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "test"
|
63
|
+
Provides-Extra: docs
|
64
|
+
Requires-Dist: mkdocs>=1.4.0; extra == "docs"
|
65
|
+
Requires-Dist: mkdocs-material>=9.0.0; extra == "docs"
|
66
|
+
Requires-Dist: mkdocstrings[python]>=0.20.0; extra == "docs"
|
67
|
+
Dynamic: author
|
68
|
+
Dynamic: home-page
|
69
|
+
Dynamic: license-file
|
70
|
+
Dynamic: requires-python
|
71
|
+
|
72
|
+
# MCP Proxy Adapter
|
73
|
+
|
74
|
+
A powerful framework for creating JSON-RPC-enabled microservices with built-in security, authentication, and proxy registration capabilities.
|
75
|
+
|
76
|
+
## Features
|
77
|
+
|
78
|
+
- **JSON-RPC Framework**: Complete JSON-RPC 2.0 implementation
|
79
|
+
- **Security Integration**: Built-in support for mcp_security_framework
|
80
|
+
- **Authentication**: Multiple auth methods (API Key, JWT, Certificate, Basic Auth)
|
81
|
+
- **Proxy Registration**: Automatic registration and discovery of services
|
82
|
+
- **Command System**: Extensible command framework with role-based access control
|
83
|
+
- **SSL/TLS Support**: Full SSL/TLS support including mTLS
|
84
|
+
- **Async Support**: Built on FastAPI with full async support
|
85
|
+
- **Extensible**: Plugin system for custom commands and middleware
|
86
|
+
|
87
|
+
## Quick Start
|
88
|
+
|
89
|
+
### Installation
|
90
|
+
|
91
|
+
```bash
|
92
|
+
pip install mcp-proxy-adapter
|
93
|
+
```
|
94
|
+
|
95
|
+
### Basic Usage
|
96
|
+
|
97
|
+
```python
|
98
|
+
from mcp_proxy_adapter import create_app, Command, SuccessResult
|
99
|
+
|
100
|
+
# Create a custom command
|
101
|
+
class HelloCommand(Command):
|
102
|
+
name = "hello"
|
103
|
+
descr = "Say hello"
|
104
|
+
|
105
|
+
async def execute(self, **kwargs) -> SuccessResult:
|
106
|
+
name = kwargs.get("name", "World")
|
107
|
+
return SuccessResult(f"Hello, {name}!")
|
108
|
+
|
109
|
+
# Create and run the application
|
110
|
+
app = create_app()
|
111
|
+
```
|
112
|
+
|
113
|
+
### Configuration
|
114
|
+
|
115
|
+
```json
|
116
|
+
{
|
117
|
+
"server": {
|
118
|
+
"host": "0.0.0.0",
|
119
|
+
"port": 8000
|
120
|
+
},
|
121
|
+
"security": {
|
122
|
+
"enabled": true,
|
123
|
+
"framework": "mcp_security_framework"
|
124
|
+
},
|
125
|
+
"commands": {
|
126
|
+
"auto_discovery": true,
|
127
|
+
"builtin_commands": ["echo", "health", "config"]
|
128
|
+
}
|
129
|
+
}
|
130
|
+
```
|
131
|
+
|
132
|
+
## Examples
|
133
|
+
|
134
|
+
### Proxy Registration Example
|
135
|
+
|
136
|
+
```python
|
137
|
+
# Example of proxy registration with authentication
|
138
|
+
import asyncio
|
139
|
+
from mcp_proxy_adapter.examples.proxy_registration_example import ProxyRegistrationExample
|
140
|
+
|
141
|
+
async def main():
|
142
|
+
async with ProxyRegistrationExample("http://localhost:8002", "your-token") as client:
|
143
|
+
result = await client.test_registration({
|
144
|
+
"server_id": "my-server",
|
145
|
+
"server_url": "http://localhost:8001",
|
146
|
+
"server_name": "My Server"
|
147
|
+
})
|
148
|
+
print(f"Registration result: {result}")
|
149
|
+
|
150
|
+
asyncio.run(main())
|
151
|
+
```
|
152
|
+
|
153
|
+
### Security Testing
|
154
|
+
|
155
|
+
The framework includes comprehensive security testing examples:
|
156
|
+
|
157
|
+
- HTTP with Token Authentication
|
158
|
+
- HTTPS with Certificate Authentication
|
159
|
+
- mTLS (Mutual TLS) Authentication
|
160
|
+
- Role-based Access Control
|
161
|
+
- Permission Validation
|
162
|
+
|
163
|
+
## Documentation
|
164
|
+
|
165
|
+
For detailed documentation, examples, and API reference, see the [documentation](https://github.com/maverikod/mcp-proxy-adapter).
|
166
|
+
|
167
|
+
## Development
|
168
|
+
|
169
|
+
### Setup Development Environment
|
170
|
+
|
171
|
+
```bash
|
172
|
+
git clone https://github.com/maverikod/mcp-proxy-adapter.git
|
173
|
+
cd mcp-proxy-adapter
|
174
|
+
python -m venv .venv
|
175
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
176
|
+
pip install -e ".[dev]"
|
177
|
+
```
|
178
|
+
|
179
|
+
### Running Tests
|
180
|
+
|
181
|
+
```bash
|
182
|
+
pytest tests/
|
183
|
+
```
|
184
|
+
|
185
|
+
### Running Examples
|
186
|
+
|
187
|
+
```bash
|
188
|
+
# Start server
|
189
|
+
python -m mcp_proxy_adapter.main --config examples/server_configs/config_simple.json
|
190
|
+
|
191
|
+
# Run proxy registration example
|
192
|
+
python examples/proxy_registration_example.py
|
193
|
+
```
|
194
|
+
|
195
|
+
## License
|
196
|
+
|
197
|
+
MIT License - see LICENSE file for details.
|
198
|
+
|
199
|
+
## Author
|
200
|
+
|
201
|
+
**Vasiliy Zdanovskiy** - vasilyvz@gmail.com
|
202
|
+
|
203
|
+
## Version
|
204
|
+
|
205
|
+
6.1.0 - Major release with security framework integration and proxy registration capabilities.
|
@@ -0,0 +1,134 @@
|
|
1
|
+
# MCP Proxy Adapter
|
2
|
+
|
3
|
+
A powerful framework for creating JSON-RPC-enabled microservices with built-in security, authentication, and proxy registration capabilities.
|
4
|
+
|
5
|
+
## Features
|
6
|
+
|
7
|
+
- **JSON-RPC Framework**: Complete JSON-RPC 2.0 implementation
|
8
|
+
- **Security Integration**: Built-in support for mcp_security_framework
|
9
|
+
- **Authentication**: Multiple auth methods (API Key, JWT, Certificate, Basic Auth)
|
10
|
+
- **Proxy Registration**: Automatic registration and discovery of services
|
11
|
+
- **Command System**: Extensible command framework with role-based access control
|
12
|
+
- **SSL/TLS Support**: Full SSL/TLS support including mTLS
|
13
|
+
- **Async Support**: Built on FastAPI with full async support
|
14
|
+
- **Extensible**: Plugin system for custom commands and middleware
|
15
|
+
|
16
|
+
## Quick Start
|
17
|
+
|
18
|
+
### Installation
|
19
|
+
|
20
|
+
```bash
|
21
|
+
pip install mcp-proxy-adapter
|
22
|
+
```
|
23
|
+
|
24
|
+
### Basic Usage
|
25
|
+
|
26
|
+
```python
|
27
|
+
from mcp_proxy_adapter import create_app, Command, SuccessResult
|
28
|
+
|
29
|
+
# Create a custom command
|
30
|
+
class HelloCommand(Command):
|
31
|
+
name = "hello"
|
32
|
+
descr = "Say hello"
|
33
|
+
|
34
|
+
async def execute(self, **kwargs) -> SuccessResult:
|
35
|
+
name = kwargs.get("name", "World")
|
36
|
+
return SuccessResult(f"Hello, {name}!")
|
37
|
+
|
38
|
+
# Create and run the application
|
39
|
+
app = create_app()
|
40
|
+
```
|
41
|
+
|
42
|
+
### Configuration
|
43
|
+
|
44
|
+
```json
|
45
|
+
{
|
46
|
+
"server": {
|
47
|
+
"host": "0.0.0.0",
|
48
|
+
"port": 8000
|
49
|
+
},
|
50
|
+
"security": {
|
51
|
+
"enabled": true,
|
52
|
+
"framework": "mcp_security_framework"
|
53
|
+
},
|
54
|
+
"commands": {
|
55
|
+
"auto_discovery": true,
|
56
|
+
"builtin_commands": ["echo", "health", "config"]
|
57
|
+
}
|
58
|
+
}
|
59
|
+
```
|
60
|
+
|
61
|
+
## Examples
|
62
|
+
|
63
|
+
### Proxy Registration Example
|
64
|
+
|
65
|
+
```python
|
66
|
+
# Example of proxy registration with authentication
|
67
|
+
import asyncio
|
68
|
+
from mcp_proxy_adapter.examples.proxy_registration_example import ProxyRegistrationExample
|
69
|
+
|
70
|
+
async def main():
|
71
|
+
async with ProxyRegistrationExample("http://localhost:8002", "your-token") as client:
|
72
|
+
result = await client.test_registration({
|
73
|
+
"server_id": "my-server",
|
74
|
+
"server_url": "http://localhost:8001",
|
75
|
+
"server_name": "My Server"
|
76
|
+
})
|
77
|
+
print(f"Registration result: {result}")
|
78
|
+
|
79
|
+
asyncio.run(main())
|
80
|
+
```
|
81
|
+
|
82
|
+
### Security Testing
|
83
|
+
|
84
|
+
The framework includes comprehensive security testing examples:
|
85
|
+
|
86
|
+
- HTTP with Token Authentication
|
87
|
+
- HTTPS with Certificate Authentication
|
88
|
+
- mTLS (Mutual TLS) Authentication
|
89
|
+
- Role-based Access Control
|
90
|
+
- Permission Validation
|
91
|
+
|
92
|
+
## Documentation
|
93
|
+
|
94
|
+
For detailed documentation, examples, and API reference, see the [documentation](https://github.com/maverikod/mcp-proxy-adapter).
|
95
|
+
|
96
|
+
## Development
|
97
|
+
|
98
|
+
### Setup Development Environment
|
99
|
+
|
100
|
+
```bash
|
101
|
+
git clone https://github.com/maverikod/mcp-proxy-adapter.git
|
102
|
+
cd mcp-proxy-adapter
|
103
|
+
python -m venv .venv
|
104
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
105
|
+
pip install -e ".[dev]"
|
106
|
+
```
|
107
|
+
|
108
|
+
### Running Tests
|
109
|
+
|
110
|
+
```bash
|
111
|
+
pytest tests/
|
112
|
+
```
|
113
|
+
|
114
|
+
### Running Examples
|
115
|
+
|
116
|
+
```bash
|
117
|
+
# Start server
|
118
|
+
python -m mcp_proxy_adapter.main --config examples/server_configs/config_simple.json
|
119
|
+
|
120
|
+
# Run proxy registration example
|
121
|
+
python examples/proxy_registration_example.py
|
122
|
+
```
|
123
|
+
|
124
|
+
## License
|
125
|
+
|
126
|
+
MIT License - see LICENSE file for details.
|
127
|
+
|
128
|
+
## Author
|
129
|
+
|
130
|
+
**Vasiliy Zdanovskiy** - vasilyvz@gmail.com
|
131
|
+
|
132
|
+
## Version
|
133
|
+
|
134
|
+
6.1.0 - Major release with security framework integration and proxy registration capabilities.
|
@@ -0,0 +1,157 @@
|
|
1
|
+
# TODO: Security Framework Integration
|
2
|
+
|
3
|
+
**Author**: Vasiliy Zdanovskiy
|
4
|
+
**Email**: vasilyvz@gmail.com
|
5
|
+
**Date**: 2025-08-30
|
6
|
+
|
7
|
+
## ✅ Выполненные задачи
|
8
|
+
|
9
|
+
### 1. Анализ конфигурации фреймворка
|
10
|
+
- [x] Проанализирована структура `mcp_security_framework/schemas/config.py`
|
11
|
+
- [x] Изучены все схемы: `SecurityConfig`, `AuthConfig`, `SSLConfig`, `PermissionConfig`, `RateLimitConfig`, `CertificateConfig`, `LoggingConfig`
|
12
|
+
- [x] Понята структура конфигурации фреймворка
|
13
|
+
|
14
|
+
### 2. Создание утилиты генерации конфигов
|
15
|
+
- [x] Создан `mcp_proxy_adapter/utils/config_generator.py`
|
16
|
+
- [x] Реализована генерация 4 типов конфигов: minimal, development, secure, full
|
17
|
+
- [x] Добавлены комментарии и документация
|
18
|
+
- [x] Протестирована генерация конфигов
|
19
|
+
|
20
|
+
### 3. Прямая интеграция с фреймворком
|
21
|
+
- [x] Создан `mcp_proxy_adapter/core/security_integration.py`
|
22
|
+
- [x] Реализованы прямые вызовы методов фреймворка:
|
23
|
+
- `SecurityManager` - валидация запросов
|
24
|
+
- `AuthManager` - аутентификация (API key, JWT, certificate)
|
25
|
+
- `CertificateManager` - управление сертификатами
|
26
|
+
- `PermissionManager` - управление ролями и правами
|
27
|
+
- `RateLimiter` - ограничение скорости
|
28
|
+
- [x] Заменен `UnifiedSecurityMiddleware` на прямое использование `FastAPISecurityMiddleware`
|
29
|
+
|
30
|
+
### 4. Новая команда безопасности
|
31
|
+
- [x] Создан `mcp_proxy_adapter/commands/security_command.py`
|
32
|
+
- [x] Реализованы все операции безопасности через фреймворк
|
33
|
+
- [x] Поддержка аутентификации, управления сертификатами, ролями, rate limiting
|
34
|
+
|
35
|
+
### 5. Клиентская интеграция с фреймворком
|
36
|
+
- [x] Создан `mcp_proxy_adapter/core/client_security.py`
|
37
|
+
- [x] Реализованы клиентские методы безопасности:
|
38
|
+
- Создание SSL контекстов для клиентских подключений
|
39
|
+
- Генерация API ключей и JWT токенов
|
40
|
+
- Валидация серверных сертификатов
|
41
|
+
- Извлечение ролей из сертификатов
|
42
|
+
- Создание заголовков аутентификации
|
43
|
+
- [x] Интеграция с утилитами фреймворка
|
44
|
+
|
45
|
+
### 6. Конфигурация регистрации прокси
|
46
|
+
- [x] Добавлена секция `registration` в конфигурацию
|
47
|
+
- [x] Поддержка различных методов аутентификации:
|
48
|
+
- Сертификаты (cert_file, key_file, ca_cert_file)
|
49
|
+
- Токены (token, token_type, refresh_interval)
|
50
|
+
- API ключи (key, key_header)
|
51
|
+
- [x] Настройки heartbeat и auto_discovery
|
52
|
+
- [x] Информация о прокси (capabilities, endpoints)
|
53
|
+
|
54
|
+
### 7. Обновление модуля регистрации прокси
|
55
|
+
- [x] Обновлен `mcp_proxy_adapter/core/proxy_registration.py`
|
56
|
+
- [x] Интеграция с `ClientSecurityManager`
|
57
|
+
- [x] Безопасные подключения с SSL/TLS
|
58
|
+
- [x] Аутентификация через фреймворк безопасности
|
59
|
+
- [x] Heartbeat с безопасными запросами
|
60
|
+
- [x] Валидация ответов сервера
|
61
|
+
|
62
|
+
## 🔄 Текущие задачи
|
63
|
+
|
64
|
+
### 8. Интеграция в основное приложение
|
65
|
+
- [ ] Обновить `mcp_proxy_adapter/api/app.py` для инициализации регистрации
|
66
|
+
- [ ] Добавить инициализацию `ClientSecurityManager` в startup
|
67
|
+
- [ ] Интегрировать безопасную регистрацию в lifecycle приложения
|
68
|
+
|
69
|
+
### 9. Обновление команд
|
70
|
+
- [ ] Обновить `mcp_proxy_adapter/commands/proxy_registration_command.py`
|
71
|
+
- [ ] Добавить команды для управления безопасной регистрацией
|
72
|
+
- [ ] Интегрировать с новой командой безопасности
|
73
|
+
|
74
|
+
### 10. Тестирование и документация
|
75
|
+
- [ ] Создать тесты для клиентской безопасности
|
76
|
+
- [ ] Протестировать безопасную регистрацию
|
77
|
+
- [ ] Обновить документацию
|
78
|
+
- [ ] Создать примеры использования
|
79
|
+
|
80
|
+
## 📋 План действий
|
81
|
+
|
82
|
+
### Этап 1: Интеграция в приложение (1 день)
|
83
|
+
1. Обновить `api/app.py` для инициализации компонентов безопасности
|
84
|
+
2. Добавить безопасную регистрацию в startup/shutdown
|
85
|
+
3. Интегрировать с middleware
|
86
|
+
|
87
|
+
### Этап 2: Обновление команд (0.5 дня)
|
88
|
+
1. Обновить команду регистрации прокси
|
89
|
+
2. Добавить новые команды безопасности
|
90
|
+
3. Протестировать команды
|
91
|
+
|
92
|
+
### Этап 3: Тестирование (0.5 дня)
|
93
|
+
1. Создать тесты для клиентской безопасности
|
94
|
+
2. Протестировать безопасную регистрацию
|
95
|
+
3. Проверить все сценарии
|
96
|
+
|
97
|
+
## 🎯 Критические моменты
|
98
|
+
|
99
|
+
### Архитектура безопасности
|
100
|
+
```
|
101
|
+
mcp_proxy_adapter
|
102
|
+
├── core/
|
103
|
+
│ ├── security_integration.py ✅ Готово
|
104
|
+
│ ├── client_security.py ✅ Готово
|
105
|
+
│ ├── proxy_registration.py ✅ Готово
|
106
|
+
│ └── proxy_manager.py 🔄 Нужно обновить
|
107
|
+
├── commands/
|
108
|
+
│ ├── security_command.py ✅ Готово
|
109
|
+
│ └── proxy_registration_command.py 🔄 Нужно обновить
|
110
|
+
├── api/
|
111
|
+
│ ├── app.py 🔄 Нужно обновить
|
112
|
+
│ └── middleware/
|
113
|
+
│ └── unified_security.py ✅ Готово
|
114
|
+
└── utils/
|
115
|
+
└── config_generator.py ✅ Готово
|
116
|
+
```
|
117
|
+
|
118
|
+
### Конфигурация регистрации
|
119
|
+
```json
|
120
|
+
{
|
121
|
+
"registration": {
|
122
|
+
"enabled": true,
|
123
|
+
"server_url": "https://proxy-registry.example.com",
|
124
|
+
"auth_method": "certificate",
|
125
|
+
"certificate": {
|
126
|
+
"enabled": true,
|
127
|
+
"cert_file": "./certs/proxy_client.crt",
|
128
|
+
"key_file": "./keys/proxy_client.key",
|
129
|
+
"ca_cert_file": "./certs/ca.crt"
|
130
|
+
},
|
131
|
+
"heartbeat": {
|
132
|
+
"enabled": true,
|
133
|
+
"interval": 300
|
134
|
+
}
|
135
|
+
}
|
136
|
+
}
|
137
|
+
```
|
138
|
+
|
139
|
+
## 📝 Заметки
|
140
|
+
|
141
|
+
### Выполненные интеграции
|
142
|
+
- ✅ Прямое использование `SecurityManager`, `AuthManager`, `CertificateManager`
|
143
|
+
- ✅ Клиентская безопасность с SSL/TLS и аутентификацией
|
144
|
+
- ✅ Безопасная регистрация прокси с heartbeat
|
145
|
+
- ✅ Конфигурация с поддержкой сертификатов, токенов, API ключей
|
146
|
+
|
147
|
+
### Следующие шаги
|
148
|
+
1. Интегрировать в основное приложение
|
149
|
+
2. Обновить команды
|
150
|
+
3. Протестировать полную интеграцию
|
151
|
+
4. Обновить документацию
|
152
|
+
|
153
|
+
### Результаты
|
154
|
+
- **Удалено дублирование**: Все методы безопасности теперь используют фреймворк
|
155
|
+
- **Добавлена безопасность**: Клиентские подключения защищены SSL/TLS
|
156
|
+
- **Улучшена конфигурация**: Единая конфигурация для проекта и фреймворка
|
157
|
+
- **Готова регистрация**: Безопасная регистрация прокси с аутентификацией
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
Main entry point for MCP Proxy Adapter.
|
4
|
+
|
5
|
+
This module allows running the MCP Proxy Adapter as a module:
|
6
|
+
python -m mcp_proxy_adapter
|
7
|
+
"""
|
8
|
+
|
9
|
+
from mcp_proxy_adapter.main import main
|
10
|
+
|
11
|
+
if __name__ == "__main__":
|
12
|
+
main()
|