mcp-proxy-adapter 6.4.11__tar.gz → 6.4.12__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.
Files changed (147) hide show
  1. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/PKG-INFO +1 -1
  2. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/basic_framework/main.py +3 -2
  3. mcp_proxy_adapter-6.4.12/mcp_proxy_adapter/examples/create_test_configs.py +301 -0
  4. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/run_full_test_suite.py +58 -20
  5. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/setup_test_environment.py +11 -12
  6. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/version.py +1 -1
  7. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter.egg-info/PKG-INFO +1 -1
  8. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter.egg-info/SOURCES.txt +1 -0
  9. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/pyproject.toml +1 -1
  10. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/README.md +0 -0
  11. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/__init__.py +0 -0
  12. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/__main__.py +0 -0
  13. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/__init__.py +0 -0
  14. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/app.py +0 -0
  15. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/handlers.py +0 -0
  16. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/__init__.py +0 -0
  17. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/base.py +0 -0
  18. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/command_permission_middleware.py +0 -0
  19. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/error_handling.py +0 -0
  20. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/factory.py +0 -0
  21. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/logging.py +0 -0
  22. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
  23. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/protocol_middleware.py +0 -0
  24. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/transport_middleware.py +0 -0
  25. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/unified_security.py +0 -0
  26. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/middleware/user_info_middleware.py +0 -0
  27. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/schemas.py +0 -0
  28. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/tool_integration.py +0 -0
  29. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/api/tools.py +0 -0
  30. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/__init__.py +0 -0
  31. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/auth_validation_command.py +0 -0
  32. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/base.py +0 -0
  33. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/builtin_commands.py +0 -0
  34. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/catalog_manager.py +0 -0
  35. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/cert_monitor_command.py +0 -0
  36. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/certificate_management_command.py +0 -0
  37. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/command_registry.py +0 -0
  38. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/config_command.py +0 -0
  39. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
  40. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/dependency_manager.py +0 -0
  41. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/echo_command.py +0 -0
  42. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/health_command.py +0 -0
  43. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/help_command.py +0 -0
  44. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/hooks.py +0 -0
  45. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/key_management_command.py +0 -0
  46. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/load_command.py +0 -0
  47. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/plugins_command.py +0 -0
  48. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/protocol_management_command.py +0 -0
  49. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/proxy_registration_command.py +0 -0
  50. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/reload_command.py +0 -0
  51. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/result.py +0 -0
  52. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/role_test_command.py +0 -0
  53. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/roles_management_command.py +0 -0
  54. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/security_command.py +0 -0
  55. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/settings_command.py +0 -0
  56. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/ssl_setup_command.py +0 -0
  57. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/token_management_command.py +0 -0
  58. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/transport_management_command.py +0 -0
  59. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/commands/unload_command.py +0 -0
  60. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/config.py +0 -0
  61. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/__init__.py +0 -0
  62. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/app_factory.py +0 -0
  63. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/app_runner.py +0 -0
  64. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/auth_validator.py +0 -0
  65. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/certificate_utils.py +0 -0
  66. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/client.py +0 -0
  67. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/client_manager.py +0 -0
  68. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/client_security.py +0 -0
  69. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/config_converter.py +0 -0
  70. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/config_validator.py +0 -0
  71. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/crl_utils.py +0 -0
  72. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/errors.py +0 -0
  73. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/logging.py +0 -0
  74. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/mtls_asgi.py +0 -0
  75. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/mtls_asgi_app.py +0 -0
  76. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/protocol_manager.py +0 -0
  77. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/proxy_client.py +0 -0
  78. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/proxy_registration.py +0 -0
  79. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/role_utils.py +0 -0
  80. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/security_adapter.py +0 -0
  81. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/security_factory.py +0 -0
  82. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/security_integration.py +0 -0
  83. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/server_adapter.py +0 -0
  84. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/server_engine.py +0 -0
  85. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/settings.py +0 -0
  86. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/ssl_utils.py +0 -0
  87. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/transport_manager.py +0 -0
  88. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/unified_config_adapter.py +0 -0
  89. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/core/utils.py +0 -0
  90. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/custom_openapi.py +0 -0
  91. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/__init__.py +0 -0
  92. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/basic_framework/__init__.py +0 -0
  93. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +0 -0
  94. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +0 -0
  95. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/commands/__init__.py +0 -0
  96. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/create_certificates_simple.py +0 -0
  97. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/debug_request_state.py +0 -0
  98. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/debug_role_chain.py +0 -0
  99. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/demo_client.py +0 -0
  100. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/basic_framework/__init__.py +0 -0
  101. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/basic_framework/commands/__init__.py +0 -0
  102. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/basic_framework/hooks/__init__.py +0 -0
  103. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/basic_framework/main.py +0 -0
  104. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/full_application/__init__.py +0 -0
  105. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/full_application/commands/__init__.py +0 -0
  106. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/full_application/commands/custom_echo_command.py +0 -0
  107. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/full_application/commands/dynamic_calculator_command.py +0 -0
  108. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/full_application/hooks/__init__.py +0 -0
  109. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/full_application/hooks/application_hooks.py +0 -0
  110. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/full_application/hooks/builtin_command_hooks.py +0 -0
  111. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/full_application/main.py +0 -0
  112. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/examples/full_application/proxy_endpoints.py +0 -0
  113. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/full_application/__init__.py +0 -0
  114. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/full_application/commands/__init__.py +0 -0
  115. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -0
  116. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -0
  117. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/full_application/hooks/__init__.py +0 -0
  118. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -0
  119. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -0
  120. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/full_application/main.py +0 -0
  121. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +0 -0
  122. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/generate_all_certificates.py +0 -0
  123. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/generate_certificates.py +0 -0
  124. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/generate_certificates_and_tokens.py +0 -0
  125. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/generate_test_configs.py +0 -0
  126. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/proxy_registration_example.py +0 -0
  127. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/run_example.py +0 -0
  128. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/run_proxy_server.py +0 -0
  129. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/run_security_tests.py +0 -0
  130. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -0
  131. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/scripts/config_generator.py +0 -0
  132. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/scripts/create_certificates_simple.py +0 -0
  133. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/scripts/generate_certificates_and_tokens.py +0 -0
  134. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/security_test_client.py +0 -0
  135. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/test_config.py +0 -0
  136. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/test_config_generator.py +0 -0
  137. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/test_examples.py +0 -0
  138. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/examples/universal_client.py +0 -0
  139. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/main.py +0 -0
  140. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter/openapi.py +0 -0
  141. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter.egg-info/dependency_links.txt +0 -0
  142. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter.egg-info/entry_points.txt +0 -0
  143. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter.egg-info/not-zip-safe +0 -0
  144. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter.egg-info/requires.txt +0 -0
  145. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/mcp_proxy_adapter.egg-info/top_level.txt +0 -0
  146. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/setup.cfg +0 -0
  147. {mcp_proxy_adapter-6.4.11 → mcp_proxy_adapter-6.4.12}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-proxy-adapter
3
- Version: 6.4.11
3
+ Version: 6.4.12
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
@@ -43,8 +43,9 @@ def main():
43
43
  title="Basic Framework Example",
44
44
  description="Basic MCP Proxy Adapter with minimal configuration",
45
45
  version="1.0.0",
46
- host=config_overrides.get("host", "0.0.0.0"),
47
- log_level="debug" if config_overrides.get("debug", False) else "info",
46
+ host=config_overrides.get("host"),
47
+ port=config_overrides.get("port"),
48
+ debug=config_overrides.get("debug", False),
48
49
  ))
49
50
 
50
51
 
@@ -0,0 +1,301 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Test Configuration Generator
4
+ Creates test configurations by copying the comprehensive config and enabling/disabling specific options.
5
+ Author: Vasiliy Zdanovskiy
6
+ email: vasilyvz@gmail.com
7
+ """
8
+ import json
9
+ import shutil
10
+ from pathlib import Path
11
+ from typing import Dict, Any, Optional
12
+
13
+
14
+ class TestConfigGenerator:
15
+ """Generator for test configurations based on comprehensive config."""
16
+
17
+ def __init__(self, comprehensive_config_path: str, output_dir: str = "configs"):
18
+ """
19
+ Initialize the generator.
20
+
21
+ Args:
22
+ comprehensive_config_path: Path to the comprehensive configuration file
23
+ output_dir: Directory to output test configurations
24
+ """
25
+ self.comprehensive_config_path = Path(comprehensive_config_path)
26
+ self.output_dir = Path(output_dir)
27
+ self.output_dir.mkdir(exist_ok=True)
28
+
29
+ # Load the comprehensive config
30
+ with open(self.comprehensive_config_path, 'r', encoding='utf-8') as f:
31
+ self.base_config = json.load(f)
32
+
33
+ def create_config(self, name: str, modifications: Dict[str, Any]) -> Path:
34
+ """
35
+ Create a test configuration with specific modifications.
36
+
37
+ Args:
38
+ name: Name of the configuration (without .json extension)
39
+ modifications: Dictionary of modifications to apply
40
+
41
+ Returns:
42
+ Path to the created configuration file
43
+ """
44
+ # Deep copy the base config
45
+ config = json.loads(json.dumps(self.base_config))
46
+
47
+ # Apply modifications
48
+ for key, value in modifications.items():
49
+ self._set_nested_value(config, key, value)
50
+
51
+ # Save the configuration
52
+ output_path = self.output_dir / f"{name}.json"
53
+ with open(output_path, 'w', encoding='utf-8') as f:
54
+ json.dump(config, f, indent=2, ensure_ascii=False)
55
+
56
+ print(f"✅ Created test config: {output_path}")
57
+ return output_path
58
+
59
+ def _set_nested_value(self, config: Dict, key: str, value: Any):
60
+ """Set a nested value in the configuration using dot notation."""
61
+ keys = key.split('.')
62
+ current = config
63
+
64
+ for k in keys[:-1]:
65
+ if k not in current:
66
+ current[k] = {}
67
+ current = current[k]
68
+
69
+ current[keys[-1]] = value
70
+
71
+ def create_all_test_configs(self):
72
+ """Create all standard test configurations."""
73
+ print("🔧 Creating test configurations from comprehensive config...")
74
+
75
+ # 1. HTTP Simple
76
+ self.create_config("http_simple", {
77
+ "server.port": 8001,
78
+ "ssl.enabled": False,
79
+ "security.enabled": False,
80
+ "proxy_registration.enabled": False,
81
+ "protocols.allowed_protocols": ["http"]
82
+ })
83
+
84
+ # 2. HTTP with Auth
85
+ self.create_config("http_auth", {
86
+ "server.port": 8002,
87
+ "ssl.enabled": False,
88
+ "security.enabled": True,
89
+ "security.auth.enabled": True,
90
+ "security.auth.methods": ["api_key"],
91
+ "security.auth.api_keys": {
92
+ "admin": "admin-secret-key",
93
+ "user": "user-secret-key"
94
+ },
95
+ "proxy_registration.enabled": False,
96
+ "protocols.allowed_protocols": ["http"]
97
+ })
98
+
99
+ # 3. HTTPS Simple
100
+ self.create_config("https_simple", {
101
+ "server.port": 8003,
102
+ "ssl.enabled": True,
103
+ "ssl.cert_file": "certs/localhost_server.crt",
104
+ "ssl.key_file": "keys/localhost_server.key",
105
+ "security.enabled": False,
106
+ "proxy_registration.enabled": False,
107
+ "protocols.allowed_protocols": ["https"]
108
+ })
109
+
110
+ # 4. HTTPS with Auth
111
+ self.create_config("https_auth", {
112
+ "server.port": 8004,
113
+ "ssl.enabled": True,
114
+ "ssl.cert_file": "certs/localhost_server.crt",
115
+ "ssl.key_file": "keys/localhost_server.key",
116
+ "security.enabled": True,
117
+ "security.auth.enabled": True,
118
+ "security.auth.methods": ["api_key"],
119
+ "security.auth.api_keys": {
120
+ "admin": "admin-secret-key",
121
+ "user": "user-secret-key"
122
+ },
123
+ "proxy_registration.enabled": False,
124
+ "protocols.allowed_protocols": ["https"]
125
+ })
126
+
127
+ # 5. mTLS Simple
128
+ self.create_config("mtls_simple", {
129
+ "server.port": 8005,
130
+ "ssl.enabled": True,
131
+ "ssl.cert_file": "certs/localhost_server.crt",
132
+ "ssl.key_file": "keys/localhost_server.key",
133
+ "ssl.ca_cert": "certs/mcp_proxy_adapter_ca_ca.crt",
134
+ "ssl.verify_client": True,
135
+ "security.enabled": True,
136
+ "security.auth.enabled": True,
137
+ "security.auth.methods": ["certificate"],
138
+ "proxy_registration.enabled": False,
139
+ "protocols.allowed_protocols": ["https", "mtls"]
140
+ })
141
+
142
+ # 6. mTLS with Roles
143
+ self.create_config("mtls_with_roles", {
144
+ "server.port": 8006,
145
+ "ssl.enabled": True,
146
+ "ssl.cert_file": "certs/localhost_server.crt",
147
+ "ssl.key_file": "keys/localhost_server.key",
148
+ "ssl.ca_cert": "certs/mcp_proxy_adapter_ca_ca.crt",
149
+ "ssl.verify_client": True,
150
+ "security.enabled": True,
151
+ "security.auth.enabled": True,
152
+ "security.auth.methods": ["certificate"],
153
+ "security.permissions.enabled": True,
154
+ "security.permissions.roles_file": "configs/roles.json",
155
+ "proxy_registration.enabled": False,
156
+ "protocols.allowed_protocols": ["https", "mtls"]
157
+ })
158
+
159
+ # 6a. mTLS without Roles (for security tests)
160
+ self.create_config("mtls_no_roles", {
161
+ "server.port": 8009,
162
+ "ssl.enabled": True,
163
+ "ssl.cert_file": "certs/localhost_server.crt",
164
+ "ssl.key_file": "keys/localhost_server.key",
165
+ "ssl.ca_cert": "certs/mcp_proxy_adapter_ca_ca.crt",
166
+ "ssl.verify_client": True,
167
+ "security.enabled": True,
168
+ "security.auth.enabled": True,
169
+ "security.auth.methods": ["certificate"],
170
+ "security.permissions.enabled": False,
171
+ "proxy_registration.enabled": False,
172
+ "protocols.allowed_protocols": ["https", "mtls"]
173
+ })
174
+
175
+ # 7. mTLS with Proxy Registration
176
+ self.create_config("mtls_with_proxy", {
177
+ "server.port": 8007,
178
+ "ssl.enabled": True,
179
+ "ssl.cert_file": "certs/localhost_server.crt",
180
+ "ssl.key_file": "keys/localhost_server.key",
181
+ "ssl.ca_cert": "certs/mcp_proxy_adapter_ca_ca.crt",
182
+ "ssl.verify_client": True,
183
+ "security.enabled": True,
184
+ "security.auth.enabled": True,
185
+ "security.auth.methods": ["certificate"],
186
+ "proxy_registration.enabled": True,
187
+ "proxy_registration.proxy_url": "http://127.0.0.1:3006",
188
+ "proxy_registration.server_id": "mcp_test_server",
189
+ "proxy_registration.server_name": "MCP Test Server",
190
+ "protocols.allowed_protocols": ["https", "mtls"]
191
+ })
192
+
193
+ # 8. HTTP with Token Auth (for security tests)
194
+ self.create_config("http_token", {
195
+ "server.port": 8010,
196
+ "ssl.enabled": False,
197
+ "security.enabled": True,
198
+ "security.auth.enabled": True,
199
+ "security.auth.methods": ["api_key"],
200
+ "security.auth.api_keys": {
201
+ "admin": "admin-secret-key",
202
+ "user": "user-secret-key"
203
+ },
204
+ "proxy_registration.enabled": False,
205
+ "protocols.allowed_protocols": ["http"]
206
+ })
207
+
208
+ # 9. HTTPS with Token Auth (for security tests)
209
+ self.create_config("https_token", {
210
+ "server.port": 8011,
211
+ "ssl.enabled": True,
212
+ "ssl.cert_file": "certs/localhost_server.crt",
213
+ "ssl.key_file": "keys/localhost_server.key",
214
+ "security.enabled": True,
215
+ "security.auth.enabled": True,
216
+ "security.auth.methods": ["api_key"],
217
+ "security.auth.api_keys": {
218
+ "admin": "admin-secret-key",
219
+ "user": "user-secret-key"
220
+ },
221
+ "proxy_registration.enabled": False,
222
+ "protocols.allowed_protocols": ["https"]
223
+ })
224
+
225
+ # 10. Full Featured (everything enabled)
226
+ self.create_config("full_featured", {
227
+ "server.port": 8008,
228
+ "ssl.enabled": True,
229
+ "ssl.cert_file": "certs/localhost_server.crt",
230
+ "ssl.key_file": "keys/localhost_server.key",
231
+ "ssl.ca_cert": "certs/mcp_proxy_adapter_ca_ca.crt",
232
+ "ssl.verify_client": True,
233
+ "security.enabled": True,
234
+ "security.auth.enabled": True,
235
+ "security.auth.methods": ["certificate", "api_key"],
236
+ "security.auth.api_keys": {
237
+ "admin": "admin-secret-key",
238
+ "user": "user-secret-key"
239
+ },
240
+ "security.permissions.enabled": True,
241
+ "security.permissions.roles_file": "configs/roles.json",
242
+ "security.rate_limit.enabled": True,
243
+ "proxy_registration.enabled": True,
244
+ "proxy_registration.proxy_url": "http://127.0.0.1:3006",
245
+ "proxy_registration.server_id": "mcp_full_server",
246
+ "proxy_registration.server_name": "MCP Full Featured Server",
247
+ "protocols.allowed_protocols": ["http", "https", "mtls", "jsonrpc"]
248
+ })
249
+
250
+ print(f"✅ Created {10} test configurations in {self.output_dir}")
251
+
252
+
253
+ def main():
254
+ """Main entry point."""
255
+ import argparse
256
+
257
+ parser = argparse.ArgumentParser(description="Generate test configurations")
258
+ parser.add_argument(
259
+ "--comprehensive-config",
260
+ default="comprehensive_config.json",
261
+ help="Path to comprehensive configuration file"
262
+ )
263
+ parser.add_argument(
264
+ "--output-dir",
265
+ default="configs",
266
+ help="Output directory for test configurations"
267
+ )
268
+ parser.add_argument(
269
+ "--config-name",
270
+ help="Create a specific configuration (http_simple, https_auth, mtls_with_roles, etc.)"
271
+ )
272
+ parser.add_argument(
273
+ "--modifications",
274
+ help="JSON string of modifications to apply (for custom configs)"
275
+ )
276
+
277
+ args = parser.parse_args()
278
+
279
+ generator = TestConfigGenerator(args.comprehensive_config, args.output_dir)
280
+
281
+ if args.config_name:
282
+ # Create a specific configuration
283
+ if args.modifications:
284
+ modifications = json.loads(args.modifications)
285
+ else:
286
+ # Use predefined modifications
287
+ predefined = {
288
+ "http_simple": {"server.port": 8001, "ssl.enabled": False, "security.enabled": False},
289
+ "https_simple": {"server.port": 8003, "ssl.enabled": True},
290
+ "mtls_simple": {"server.port": 8005, "ssl.enabled": True, "ssl.verify_client": True},
291
+ }
292
+ modifications = predefined.get(args.config_name, {})
293
+
294
+ generator.create_config(args.config_name, modifications)
295
+ else:
296
+ # Create all test configurations
297
+ generator.create_all_test_configs()
298
+
299
+
300
+ if __name__ == "__main__":
301
+ main()
@@ -115,11 +115,7 @@ class FullTestSuiteRunner:
115
115
 
116
116
  try:
117
117
  # Run certificate generation script
118
- cmd = [
119
- sys.executable,
120
- "-m",
121
- "mcp_proxy_adapter.examples.create_certificates_simple",
122
- ]
118
+ cmd = [sys.executable, "create_certificates_simple.py"]
123
119
  self.print_info("Running certificate generation script...")
124
120
 
125
121
  result = subprocess.run(
@@ -143,29 +139,76 @@ class FullTestSuiteRunner:
143
139
  return False
144
140
 
145
141
  def generate_configurations(self) -> bool:
146
- """Generate test configurations."""
142
+ """Generate test configurations from comprehensive config."""
147
143
  self.print_step("4", "Configuration Generation")
148
144
 
149
145
  try:
150
- # Run configuration generation script
151
- cmd = [
152
- sys.executable,
153
- "-m",
154
- "mcp_proxy_adapter.examples.generate_test_configs",
155
- ]
156
- self.print_info("Running configuration generation script...")
146
+ # Check if create_test_configs.py exists
147
+ config_script = self.working_dir / "create_test_configs.py"
148
+ if not config_script.exists():
149
+ self.print_error(f"Configuration generator not found: {config_script}")
150
+ return False
151
+
152
+ # Check if comprehensive_config.json exists
153
+ comprehensive_config = self.working_dir / "comprehensive_config.json"
154
+ if not comprehensive_config.exists():
155
+ self.print_error(f"Comprehensive config not found: {comprehensive_config}")
156
+ return False
157
+
158
+ self.print_info("Generating test configurations from comprehensive config...")
159
+ self.print_info("This will create:")
160
+ self.print_info(" - HTTP configurations (simple and with auth)")
161
+ self.print_info(" - HTTPS configurations (simple and with auth)")
162
+ self.print_info(" - mTLS configurations (simple, with roles, with proxy registration)")
163
+ self.print_info(" - Full featured configuration (everything enabled)")
157
164
 
165
+ # Run the configuration generator
166
+ cmd = [sys.executable, "create_test_configs.py", "--comprehensive-config", "comprehensive_config.json"]
158
167
  result = subprocess.run(
159
168
  cmd, capture_output=True, text=True, cwd=self.working_dir
160
169
  )
161
170
 
162
171
  if result.returncode == 0:
163
- self.print_success("Configurations generated successfully")
172
+ self.print_success("Configuration generation completed successfully!")
164
173
  if result.stdout:
174
+ print("Generator output:")
165
175
  print(result.stdout)
176
+
177
+ # Create roles.json file
178
+ self.print_info("Creating roles.json file...")
179
+ roles_content = {
180
+ "roles": {
181
+ "admin": {
182
+ "permissions": ["*"],
183
+ "description": "Full administrative access"
184
+ },
185
+ "user": {
186
+ "permissions": ["read", "write"],
187
+ "description": "Standard user access"
188
+ },
189
+ "readonly": {
190
+ "permissions": ["read"],
191
+ "description": "Read-only access"
192
+ },
193
+ "guest": {
194
+ "permissions": ["read"],
195
+ "description": "Limited guest access"
196
+ }
197
+ }
198
+ }
199
+
200
+ roles_file = self.configs_dir / "roles.json"
201
+ import json
202
+ with open(roles_file, 'w', encoding='utf-8') as f:
203
+ json.dump(roles_content, f, indent=2, ensure_ascii=False)
204
+ self.print_success(f"Created roles.json: {roles_file}")
205
+
166
206
  return True
167
207
  else:
168
208
  self.print_error("Configuration generation failed!")
209
+ if result.stdout:
210
+ print("Generator output:")
211
+ print(result.stdout)
169
212
  if result.stderr:
170
213
  print("Error output:")
171
214
  print(result.stderr)
@@ -181,12 +224,7 @@ class FullTestSuiteRunner:
181
224
 
182
225
  try:
183
226
  # Run security tests
184
- cmd = [
185
- sys.executable,
186
- "-m",
187
- "mcp_proxy_adapter.examples.run_security_tests",
188
- "--verbose",
189
- ]
227
+ cmd = [sys.executable, "run_security_tests.py", "--verbose"]
190
228
  self.print_info("Running security tests...")
191
229
 
192
230
  # Debug: show current working directory and check files
@@ -420,8 +420,7 @@ import asyncio
420
420
  import ssl
421
421
  from fastapi import FastAPI, Request
422
422
  from fastapi.responses import JSONResponse
423
- from hypercorn.asyncio import serve
424
- from hypercorn.config import Config
423
+ import uvicorn
425
424
 
426
425
 
427
426
  app = FastAPI(title="Test mTLS Proxy Server", version="1.0.0")
@@ -473,7 +472,7 @@ async def health_check():
473
472
  )
474
473
 
475
474
 
476
- async def main():
475
+ def main():
477
476
  """Run the mTLS proxy server."""
478
477
  print("🚀 Starting Test mTLS Proxy Server...")
479
478
  print("📡 Server URL: https://127.0.0.1:3004")
@@ -483,19 +482,19 @@ async def main():
483
482
  print(" GET /health - Health check")
484
483
  print("⚡ Press Ctrl+C to stop\\n")
485
484
 
486
- # Configure hypercorn
487
- config = Config()
488
- config.bind = ["127.0.0.1:3004"]
489
- config.keyfile = "mtls_certificates/server/mcp-proxy.key"
490
- config.certfile = "mtls_certificates/server/mcp-proxy.pem"
491
- config.loglevel = "info"
492
-
493
485
  # Run server with mTLS
494
- await serve(app, config)
486
+ uvicorn.run(
487
+ app,
488
+ host="127.0.0.1",
489
+ port=3004,
490
+ ssl_keyfile="mtls_certificates/server/mcp-proxy.key",
491
+ ssl_certfile="mtls_certificates/server/mcp-proxy.pem",
492
+ log_level="info"
493
+ )
495
494
 
496
495
 
497
496
  if __name__ == "__main__":
498
- asyncio.run(main())
497
+ main()
499
498
  '''
500
499
  )
501
500
 
@@ -2,4 +2,4 @@
2
2
  Version information for MCP Proxy Adapter.
3
3
  """
4
4
 
5
- __version__ = "6.4.11"
5
+ __version__ = "6.4.12"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-proxy-adapter
3
- Version: 6.4.11
3
+ Version: 6.4.12
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
@@ -93,6 +93,7 @@ mcp_proxy_adapter/core/unified_config_adapter.py
93
93
  mcp_proxy_adapter/core/utils.py
94
94
  mcp_proxy_adapter/examples/__init__.py
95
95
  mcp_proxy_adapter/examples/create_certificates_simple.py
96
+ mcp_proxy_adapter/examples/create_test_configs.py
96
97
  mcp_proxy_adapter/examples/debug_request_state.py
97
98
  mcp_proxy_adapter/examples/debug_role_chain.py
98
99
  mcp_proxy_adapter/examples/demo_client.py
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mcp-proxy-adapter"
7
- version = "6.4.11"
7
+ version = "6.4.12"
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"}