mcp-proxy-adapter 6.4.45__tar.gz → 6.4.47__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 (144) hide show
  1. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/PKG-INFO +1 -1
  2. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/reload_command.py +1 -1
  3. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/proxy_registration.py +9 -1
  4. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/custom_openapi.py +294 -2
  5. mcp_proxy_adapter-6.4.47/mcp_proxy_adapter/schemas/base_schema.json +114 -0
  6. mcp_proxy_adapter-6.4.47/mcp_proxy_adapter/schemas/openapi_schema.json +314 -0
  7. mcp_proxy_adapter-6.4.47/mcp_proxy_adapter/schemas/roles.json +37 -0
  8. mcp_proxy_adapter-6.4.47/mcp_proxy_adapter/schemas/roles_schema.json +162 -0
  9. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/version.py +1 -1
  10. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter.egg-info/PKG-INFO +1 -1
  11. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter.egg-info/SOURCES.txt +9 -1
  12. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/pyproject.toml +1 -1
  13. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/README.md +0 -0
  14. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/__init__.py +0 -0
  15. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/__main__.py +0 -0
  16. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/__init__.py +0 -0
  17. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/app.py +0 -0
  18. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/handlers.py +0 -0
  19. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/__init__.py +0 -0
  20. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/base.py +0 -0
  21. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/command_permission_middleware.py +0 -0
  22. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/error_handling.py +0 -0
  23. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/factory.py +0 -0
  24. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/logging.py +0 -0
  25. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
  26. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/protocol_middleware.py +0 -0
  27. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/transport_middleware.py +0 -0
  28. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/unified_security.py +0 -0
  29. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/middleware/user_info_middleware.py +0 -0
  30. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/schemas.py +0 -0
  31. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/tool_integration.py +0 -0
  32. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/api/tools.py +0 -0
  33. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/__init__.py +0 -0
  34. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/auth_validation_command.py +0 -0
  35. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/base.py +0 -0
  36. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/builtin_commands.py +0 -0
  37. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/catalog_manager.py +0 -0
  38. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/cert_monitor_command.py +0 -0
  39. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/certificate_management_command.py +0 -0
  40. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/command_registry.py +0 -0
  41. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/config_command.py +0 -0
  42. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
  43. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/dependency_manager.py +0 -0
  44. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/echo_command.py +0 -0
  45. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/health_command.py +0 -0
  46. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/help_command.py +0 -0
  47. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/hooks.py +0 -0
  48. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/key_management_command.py +0 -0
  49. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/load_command.py +0 -0
  50. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/plugins_command.py +0 -0
  51. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/protocol_management_command.py +0 -0
  52. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/proxy_registration_command.py +0 -0
  53. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/result.py +0 -0
  54. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/role_test_command.py +0 -0
  55. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/roles_management_command.py +0 -0
  56. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/security_command.py +0 -0
  57. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/settings_command.py +0 -0
  58. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/ssl_setup_command.py +0 -0
  59. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/token_management_command.py +0 -0
  60. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/transport_management_command.py +0 -0
  61. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/commands/unload_command.py +0 -0
  62. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/config.py +0 -0
  63. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/__init__.py +0 -0
  64. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/app_factory.py +0 -0
  65. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/app_runner.py +0 -0
  66. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/auth_validator.py +0 -0
  67. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/certificate_utils.py +0 -0
  68. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/client.py +0 -0
  69. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/client_manager.py +0 -0
  70. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/client_security.py +0 -0
  71. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/config_converter.py +0 -0
  72. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/config_validator.py +0 -0
  73. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/crl_utils.py +0 -0
  74. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/errors.py +0 -0
  75. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/logging.py +0 -0
  76. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/mtls_asgi.py +0 -0
  77. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/mtls_asgi_app.py +0 -0
  78. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/mtls_server.py +0 -0
  79. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/protocol_manager.py +0 -0
  80. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/proxy_client.py +0 -0
  81. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/role_utils.py +0 -0
  82. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/security_adapter.py +0 -0
  83. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/security_factory.py +0 -0
  84. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/security_integration.py +0 -0
  85. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/server_adapter.py +0 -0
  86. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/server_engine.py +0 -0
  87. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/settings.py +0 -0
  88. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/ssl_utils.py +0 -0
  89. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/transport_manager.py +0 -0
  90. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/unified_config_adapter.py +0 -0
  91. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/core/utils.py +0 -0
  92. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/__init__.py +0 -0
  93. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/basic_framework/__init__.py +0 -0
  94. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +0 -0
  95. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +0 -0
  96. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/basic_framework/main.py +0 -0
  97. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/bugfix_certificate_config.py +0 -0
  98. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/cert_manager_bugfix.py +0 -0
  99. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/commands/__init__.py +0 -0
  100. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/config_builder.py +0 -0
  101. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/config_cli.py +0 -0
  102. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/create_test_configs.py +0 -0
  103. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/debug_request_state.py +0 -0
  104. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/debug_role_chain.py +0 -0
  105. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/demo_client.py +0 -0
  106. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/full_application/__init__.py +0 -0
  107. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/full_application/commands/__init__.py +0 -0
  108. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -0
  109. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -0
  110. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/full_application/hooks/__init__.py +0 -0
  111. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -0
  112. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -0
  113. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/full_application/main.py +0 -0
  114. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +0 -0
  115. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/generate_all_certificates.py +0 -0
  116. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/generate_certificates_bugfix.py +0 -0
  117. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/generate_certificates_cli.py +0 -0
  118. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/generate_certificates_fixed.py +0 -0
  119. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/generate_certificates_framework.py +0 -0
  120. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/generate_certificates_openssl.py +0 -0
  121. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/proxy_registration_example.py +0 -0
  122. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/required_certificates.py +0 -0
  123. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/run_example.py +0 -0
  124. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/run_full_test_suite.py +0 -0
  125. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/run_proxy_server.py +0 -0
  126. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -0
  127. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/security_test_client.py +0 -0
  128. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/setup_test_environment.py +0 -0
  129. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/simple_protocol_test.py +0 -0
  130. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/test_config.py +0 -0
  131. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/test_config_builder.py +0 -0
  132. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/test_examples.py +0 -0
  133. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/test_protocol_examples.py +0 -0
  134. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/universal_client.py +0 -0
  135. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/examples/update_config_certificates.py +0 -0
  136. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/main.py +0 -0
  137. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter/openapi.py +0 -0
  138. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter.egg-info/dependency_links.txt +0 -0
  139. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter.egg-info/entry_points.txt +0 -0
  140. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter.egg-info/not-zip-safe +0 -0
  141. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter.egg-info/requires.txt +0 -0
  142. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/mcp_proxy_adapter.egg-info/top_level.txt +0 -0
  143. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/setup.cfg +0 -0
  144. {mcp_proxy_adapter-6.4.45 → mcp_proxy_adapter-6.4.47}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-proxy-adapter
3
- Version: 6.4.45
3
+ Version: 6.4.47
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
@@ -164,7 +164,7 @@ class ReloadCommand(Command):
164
164
  logger.warning("No config_path provided, using default configuration")
165
165
 
166
166
  # Perform reload using unified initialization
167
- reload_info = registry.reload_system(config_path=config_path)
167
+ reload_info = await registry.reload_system(config_path=config_path)
168
168
 
169
169
  # Create result
170
170
  result = ReloadResult(
@@ -247,6 +247,13 @@ class ProxyRegistrationManager:
247
247
  SSL context or None if SSL not needed
248
248
  """
249
249
  logger.debug("_create_ssl_context called")
250
+
251
+ # Check if we're in HTTP mode - if so, don't create SSL context
252
+ server_config = self.config.get("server", {})
253
+ if server_config.get("protocol", "http").lower() == "http":
254
+ logger.debug("HTTP mode detected, skipping SSL context creation")
255
+ return None
256
+
250
257
  if not self.client_security:
251
258
  logger.debug("SSL context creation failed: client_security is None")
252
259
  # Try best-effort default CA if available
@@ -366,7 +373,8 @@ class ProxyRegistrationManager:
366
373
 
367
374
  return None
368
375
  except Exception as e:
369
- logger.error(f"Failed to create SSL context: {e}")
376
+ logger.warning(f"Failed to create SSL context: {e}")
377
+ # Don't fail the entire operation, just return None
370
378
  return None
371
379
 
372
380
  async def register_server(self) -> bool:
@@ -45,8 +45,300 @@ class CustomOpenAPIGenerator:
45
45
  Returns:
46
46
  Dict containing the base OpenAPI schema.
47
47
  """
48
- with open(self.base_schema_path, "r", encoding="utf-8") as f:
49
- return json.load(f)
48
+ try:
49
+ with open(self.base_schema_path, "r", encoding="utf-8") as f:
50
+ return json.load(f)
51
+ except FileNotFoundError:
52
+ logger.warning(f"Base schema file not found at {self.base_schema_path}, using fallback schema")
53
+ return self._get_fallback_schema()
54
+
55
+ def _get_fallback_schema(self) -> Dict[str, Any]:
56
+ """
57
+ Get a fallback OpenAPI schema when the base schema file is not available.
58
+
59
+ Returns:
60
+ Dict containing a basic OpenAPI schema.
61
+ """
62
+ return {
63
+ "openapi": "3.0.2",
64
+ "info": {
65
+ "title": "MCP Microservice API",
66
+ "description": "API для выполнения команд микросервиса",
67
+ "version": "1.0.0"
68
+ },
69
+ "paths": {
70
+ "/cmd": {
71
+ "post": {
72
+ "summary": "Execute Command",
73
+ "description": "Executes a command via JSON-RPC protocol.",
74
+ "operationId": "execute_command",
75
+ "requestBody": {
76
+ "content": {
77
+ "application/json": {
78
+ "schema": {
79
+ "oneOf": [
80
+ { "$ref": "#/components/schemas/CommandRequest" },
81
+ { "$ref": "#/components/schemas/JsonRpcRequest" }
82
+ ]
83
+ }
84
+ }
85
+ },
86
+ "required": True
87
+ },
88
+ "responses": {
89
+ "200": {
90
+ "description": "Successful Response",
91
+ "content": {
92
+ "application/json": {
93
+ "schema": {
94
+ "oneOf": [
95
+ { "$ref": "#/components/schemas/CommandResponse" },
96
+ { "$ref": "#/components/schemas/JsonRpcResponse" }
97
+ ]
98
+ }
99
+ }
100
+ }
101
+ },
102
+ "422": {
103
+ "description": "Validation Error",
104
+ "content": {
105
+ "application/json": {
106
+ "schema": {
107
+ "$ref": "#/components/schemas/HTTPValidationError"
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
114
+ },
115
+ "/health": {
116
+ "get": {
117
+ "summary": "Проверить работоспособность сервиса",
118
+ "description": "Возвращает информацию о состоянии сервиса",
119
+ "operationId": "health_check",
120
+ "responses": {
121
+ "200": {
122
+ "description": "Информация о состоянии сервиса",
123
+ "content": {
124
+ "application/json": {
125
+ "schema": {
126
+ "$ref": "#/components/schemas/HealthResponse"
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+ }
133
+ },
134
+ "/openapi.json": {
135
+ "get": {
136
+ "summary": "Get Openapi Schema",
137
+ "description": "Returns OpenAPI schema.",
138
+ "operationId": "get_openapi_schema_openapi_json_get",
139
+ "responses": {
140
+ "200": {
141
+ "description": "Successful Response",
142
+ "content": {
143
+ "application/json": {
144
+ "schema": {}
145
+ }
146
+ }
147
+ }
148
+ }
149
+ }
150
+ },
151
+ "/api/commands": {
152
+ "get": {
153
+ "summary": "Get Commands",
154
+ "description": "Returns list of available commands with their descriptions.",
155
+ "operationId": "get_commands_api_commands_get",
156
+ "responses": {
157
+ "200": {
158
+ "description": "Successful Response",
159
+ "content": {
160
+ "application/json": {
161
+ "schema": {}
162
+ }
163
+ }
164
+ }
165
+ }
166
+ }
167
+ }
168
+ },
169
+ "components": {
170
+ "schemas": {
171
+ "CommandRequest": {
172
+ "title": "CommandRequest",
173
+ "description": "Запрос на выполнение команды",
174
+ "type": "object",
175
+ "required": ["command"],
176
+ "properties": {
177
+ "command": {
178
+ "title": "Command",
179
+ "description": "Команда для выполнения",
180
+ "type": "string"
181
+ },
182
+ "params": {
183
+ "title": "Parameters",
184
+ "description": "Параметры команды, зависят от типа команды",
185
+ "type": "object",
186
+ "additionalProperties": True
187
+ }
188
+ }
189
+ },
190
+ "CommandResponse": {
191
+ "title": "CommandResponse",
192
+ "description": "Ответ на выполнение команды",
193
+ "type": "object",
194
+ "required": ["result"],
195
+ "properties": {
196
+ "result": {
197
+ "title": "Result",
198
+ "description": "Результат выполнения команды"
199
+ }
200
+ }
201
+ },
202
+ "JsonRpcRequest": {
203
+ "properties": {
204
+ "jsonrpc": {
205
+ "type": "string",
206
+ "title": "Jsonrpc",
207
+ "description": "JSON-RPC version",
208
+ "default": "2.0"
209
+ },
210
+ "method": {
211
+ "type": "string",
212
+ "title": "Method",
213
+ "description": "Method name to call"
214
+ },
215
+ "params": {
216
+ "additionalProperties": True,
217
+ "type": "object",
218
+ "title": "Params",
219
+ "description": "Method parameters",
220
+ "default": {}
221
+ },
222
+ "id": {
223
+ "anyOf": [
224
+ {"type": "string"},
225
+ {"type": "integer"},
226
+ {"type": "null"}
227
+ ],
228
+ "title": "Id",
229
+ "description": "Request identifier"
230
+ }
231
+ },
232
+ "type": "object",
233
+ "required": ["method"],
234
+ "title": "JsonRpcRequest",
235
+ "description": "Base model for JSON-RPC requests."
236
+ },
237
+ "JsonRpcResponse": {
238
+ "properties": {
239
+ "jsonrpc": {
240
+ "type": "string",
241
+ "title": "Jsonrpc",
242
+ "description": "JSON-RPC version",
243
+ "default": "2.0"
244
+ },
245
+ "result": {
246
+ "anyOf": [
247
+ {},
248
+ {"type": "null"}
249
+ ],
250
+ "title": "Result",
251
+ "description": "Method execution result"
252
+ },
253
+ "error": {
254
+ "anyOf": [
255
+ {
256
+ "additionalProperties": True,
257
+ "type": "object"
258
+ },
259
+ {"type": "null"}
260
+ ],
261
+ "title": "Error",
262
+ "description": "Error information"
263
+ },
264
+ "id": {
265
+ "anyOf": [
266
+ {"type": "string"},
267
+ {"type": "integer"},
268
+ {"type": "null"}
269
+ ],
270
+ "title": "Id",
271
+ "description": "Request identifier"
272
+ }
273
+ },
274
+ "type": "object",
275
+ "title": "JsonRpcResponse",
276
+ "description": "Base model for JSON-RPC responses."
277
+ },
278
+ "HealthResponse": {
279
+ "title": "HealthResponse",
280
+ "description": "Информация о состоянии сервиса",
281
+ "type": "object",
282
+ "required": ["status", "model", "version"],
283
+ "properties": {
284
+ "status": {
285
+ "title": "Status",
286
+ "description": "Статус сервиса (ok/error)",
287
+ "type": "string"
288
+ },
289
+ "model": {
290
+ "title": "Model",
291
+ "description": "Текущая активная модель",
292
+ "type": "string"
293
+ },
294
+ "version": {
295
+ "title": "Version",
296
+ "description": "Версия сервиса",
297
+ "type": "string"
298
+ }
299
+ }
300
+ },
301
+ "HTTPValidationError": {
302
+ "properties": {
303
+ "detail": {
304
+ "items": {
305
+ "$ref": "#/components/schemas/ValidationError"
306
+ },
307
+ "type": "array",
308
+ "title": "Detail"
309
+ }
310
+ },
311
+ "type": "object",
312
+ "title": "HTTPValidationError"
313
+ },
314
+ "ValidationError": {
315
+ "properties": {
316
+ "loc": {
317
+ "items": {
318
+ "anyOf": [
319
+ {"type": "string"},
320
+ {"type": "integer"}
321
+ ]
322
+ },
323
+ "type": "array",
324
+ "title": "Location"
325
+ },
326
+ "msg": {
327
+ "type": "string",
328
+ "title": "Message"
329
+ },
330
+ "type": {
331
+ "type": "string",
332
+ "title": "Error Type"
333
+ }
334
+ },
335
+ "type": "object",
336
+ "required": ["loc", "msg", "type"],
337
+ "title": "ValidationError"
338
+ }
339
+ }
340
+ }
341
+ }
50
342
 
51
343
  def _add_commands_to_schema(self, schema: Dict[str, Any]) -> None:
52
344
  """
@@ -0,0 +1,114 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Base Schema",
4
+ "description": "Basic schema for validating commands and results",
5
+ "definitions": {
6
+ "command": {
7
+ "type": "object",
8
+ "properties": {
9
+ "jsonrpc": {
10
+ "type": "string",
11
+ "enum": ["2.0"],
12
+ "description": "JSON-RPC version"
13
+ },
14
+ "method": {
15
+ "type": "string",
16
+ "description": "Command name"
17
+ },
18
+ "params": {
19
+ "type": "object",
20
+ "description": "Command parameters"
21
+ },
22
+ "id": {
23
+ "oneOf": [
24
+ {"type": "string"},
25
+ {"type": "integer"},
26
+ {"type": "null"}
27
+ ],
28
+ "description": "Request ID"
29
+ }
30
+ },
31
+ "required": ["jsonrpc", "method"]
32
+ },
33
+ "success_response": {
34
+ "type": "object",
35
+ "properties": {
36
+ "jsonrpc": {
37
+ "type": "string",
38
+ "enum": ["2.0"],
39
+ "description": "JSON-RPC version"
40
+ },
41
+ "result": {
42
+ "type": "object",
43
+ "properties": {
44
+ "success": {
45
+ "type": "boolean",
46
+ "enum": [true],
47
+ "description": "Success flag"
48
+ },
49
+ "data": {
50
+ "type": "object",
51
+ "description": "Response data"
52
+ },
53
+ "message": {
54
+ "type": "string",
55
+ "description": "Response message"
56
+ }
57
+ },
58
+ "required": ["success"]
59
+ },
60
+ "id": {
61
+ "oneOf": [
62
+ {"type": "string"},
63
+ {"type": "integer"},
64
+ {"type": "null"}
65
+ ],
66
+ "description": "Request ID"
67
+ }
68
+ },
69
+ "required": ["jsonrpc", "result"]
70
+ },
71
+ "error_response": {
72
+ "type": "object",
73
+ "properties": {
74
+ "jsonrpc": {
75
+ "type": "string",
76
+ "enum": ["2.0"],
77
+ "description": "JSON-RPC version"
78
+ },
79
+ "error": {
80
+ "type": "object",
81
+ "properties": {
82
+ "code": {
83
+ "type": "integer",
84
+ "description": "Error code"
85
+ },
86
+ "message": {
87
+ "type": "string",
88
+ "description": "Error message"
89
+ },
90
+ "details": {
91
+ "type": "object",
92
+ "description": "Detailed error information"
93
+ }
94
+ },
95
+ "required": ["code", "message"]
96
+ },
97
+ "id": {
98
+ "oneOf": [
99
+ {"type": "string"},
100
+ {"type": "integer"},
101
+ {"type": "null"}
102
+ ],
103
+ "description": "Request ID"
104
+ }
105
+ },
106
+ "required": ["jsonrpc", "error"]
107
+ }
108
+ },
109
+ "oneOf": [
110
+ {"$ref": "#/definitions/command"},
111
+ {"$ref": "#/definitions/success_response"},
112
+ {"$ref": "#/definitions/error_response"}
113
+ ]
114
+ }