mcp-proxy-adapter 6.4.5__tar.gz → 6.4.8__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 (151) hide show
  1. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/PKG-INFO +1 -2
  2. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/app_factory.py +21 -18
  3. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/basic_framework/main.py +3 -2
  4. mcp_proxy_adapter-6.4.8/mcp_proxy_adapter/examples/examples/full_application/main.py +61 -0
  5. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/version.py +1 -1
  6. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/pyproject.toml +1 -2
  7. mcp_proxy_adapter-6.4.5/mcp_proxy_adapter/examples/examples/full_application/main.py +0 -198
  8. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/MANIFEST.in +0 -0
  9. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/README.md +0 -0
  10. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/__init__.py +0 -0
  11. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/__main__.py +0 -0
  12. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/__init__.py +0 -0
  13. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/app.py +0 -0
  14. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/handlers.py +0 -0
  15. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/__init__.py +0 -0
  16. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/base.py +0 -0
  17. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/command_permission_middleware.py +0 -0
  18. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/error_handling.py +0 -0
  19. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/factory.py +0 -0
  20. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/logging.py +0 -0
  21. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
  22. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/protocol_middleware.py +0 -0
  23. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/transport_middleware.py +0 -0
  24. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/unified_security.py +0 -0
  25. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/middleware/user_info_middleware.py +0 -0
  26. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/schemas.py +0 -0
  27. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/tool_integration.py +0 -0
  28. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/api/tools.py +0 -0
  29. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/__init__.py +0 -0
  30. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/auth_validation_command.py +0 -0
  31. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/base.py +0 -0
  32. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/builtin_commands.py +0 -0
  33. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/catalog_manager.py +0 -0
  34. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/cert_monitor_command.py +0 -0
  35. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/certificate_management_command.py +0 -0
  36. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/command_registry.py +0 -0
  37. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/config_command.py +0 -0
  38. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
  39. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/dependency_manager.py +0 -0
  40. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/echo_command.py +0 -0
  41. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/health_command.py +0 -0
  42. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/help_command.py +0 -0
  43. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/hooks.py +0 -0
  44. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/key_management_command.py +0 -0
  45. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/load_command.py +0 -0
  46. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/plugins_command.py +0 -0
  47. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/protocol_management_command.py +0 -0
  48. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/proxy_registration_command.py +0 -0
  49. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/reload_command.py +0 -0
  50. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/result.py +0 -0
  51. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/role_test_command.py +0 -0
  52. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/roles_management_command.py +0 -0
  53. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/security_command.py +0 -0
  54. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/settings_command.py +0 -0
  55. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/ssl_setup_command.py +0 -0
  56. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/token_management_command.py +0 -0
  57. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/transport_management_command.py +0 -0
  58. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/commands/unload_command.py +0 -0
  59. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/config.py +0 -0
  60. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/__init__.py +0 -0
  61. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/app_runner.py +0 -0
  62. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/auth_validator.py +0 -0
  63. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/certificate_utils.py +0 -0
  64. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/client.py +0 -0
  65. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/client_manager.py +0 -0
  66. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/client_security.py +0 -0
  67. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/config_converter.py +0 -0
  68. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/config_validator.py +0 -0
  69. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/crl_utils.py +0 -0
  70. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/errors.py +0 -0
  71. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/logging.py +0 -0
  72. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/mtls_asgi.py +0 -0
  73. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/mtls_asgi_app.py +0 -0
  74. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/protocol_manager.py +0 -0
  75. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/proxy_client.py +0 -0
  76. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/proxy_registration.py +0 -0
  77. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/role_utils.py +0 -0
  78. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/security_adapter.py +0 -0
  79. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/security_factory.py +0 -0
  80. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/security_integration.py +0 -0
  81. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/server_adapter.py +0 -0
  82. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/server_engine.py +0 -0
  83. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/settings.py +0 -0
  84. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/ssl_utils.py +0 -0
  85. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/transport_manager.py +0 -0
  86. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/unified_config_adapter.py +0 -0
  87. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/core/utils.py +0 -0
  88. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/custom_openapi.py +0 -0
  89. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/__init__.py +0 -0
  90. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/basic_framework/__init__.py +0 -0
  91. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +0 -0
  92. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +0 -0
  93. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/basic_framework/main.py +0 -0
  94. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/basic_framework/roles.json +0 -0
  95. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/commands/__init__.py +0 -0
  96. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/create_certificates_simple.py +0 -0
  97. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/debug_request_state.py +0 -0
  98. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/debug_role_chain.py +0 -0
  99. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/demo_client.py +0 -0
  100. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/basic_framework/__init__.py +0 -0
  101. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/basic_framework/commands/__init__.py +0 -0
  102. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/basic_framework/hooks/__init__.py +0 -0
  103. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/full_application/__init__.py +0 -0
  104. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/full_application/commands/__init__.py +0 -0
  105. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/full_application/commands/custom_echo_command.py +0 -0
  106. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/full_application/commands/dynamic_calculator_command.py +0 -0
  107. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/full_application/hooks/__init__.py +0 -0
  108. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/full_application/hooks/application_hooks.py +0 -0
  109. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/full_application/hooks/builtin_command_hooks.py +0 -0
  110. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/examples/full_application/proxy_endpoints.py +0 -0
  111. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/__init__.py +0 -0
  112. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/commands/__init__.py +0 -0
  113. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -0
  114. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -0
  115. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/hooks/__init__.py +0 -0
  116. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -0
  117. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -0
  118. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/main.py +0 -0
  119. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +0 -0
  120. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/full_application/roles.json +0 -0
  121. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/generate_all_certificates.py +0 -0
  122. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/generate_certificates.py +0 -0
  123. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/generate_certificates_and_tokens.py +0 -0
  124. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/generate_comprehensive_config.py +0 -0
  125. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/generate_test_configs.py +0 -0
  126. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/proxy_registration_example.py +0 -0
  127. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/run_example.py +0 -0
  128. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/run_full_test_suite.py +0 -0
  129. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/run_proxy_server.py +0 -0
  130. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/run_security_tests.py +0 -0
  131. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -0
  132. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/scripts/config_generator.py +0 -0
  133. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/scripts/create_certificates_simple.py +0 -0
  134. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/scripts/generate_certificates_and_tokens.py +0 -0
  135. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/security_test_client.py +0 -0
  136. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/setup_test_environment.py +0 -0
  137. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/test_config.py +0 -0
  138. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/test_config_generator.py +0 -0
  139. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/test_examples.py +0 -0
  140. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/test_mcp_adapter.py +0 -0
  141. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/examples/universal_client.py +0 -0
  142. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/main.py +0 -0
  143. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/openapi.py +0 -0
  144. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/schemas/base_schema.json +0 -0
  145. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/schemas/openapi_schema.json +0 -0
  146. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter/utils/config_generator.py +0 -0
  147. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter.egg-info/SOURCES.txt +0 -0
  148. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/mcp_proxy_adapter_issue_package/demonstrate_issue.py +0 -0
  149. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/requirements.txt +0 -0
  150. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/setup.cfg +0 -0
  151. {mcp_proxy_adapter-6.4.5 → mcp_proxy_adapter-6.4.8}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-proxy-adapter
3
- Version: 6.4.5
3
+ Version: 6.4.8
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
@@ -30,7 +30,6 @@ Description-Content-Type: text/markdown
30
30
  Requires-Dist: fastapi<1.0.0,>=0.95.0
31
31
  Requires-Dist: pydantic>=2.0.0
32
32
  Requires-Dist: hypercorn<1.0.0,>=0.15.0
33
- Requires-Dist: uvicorn<1.0.0,>=0.22.0
34
33
  Requires-Dist: docstring-parser<1.0.0,>=0.15
35
34
  Requires-Dist: typing-extensions<5.0.0,>=4.5.0
36
35
  Requires-Dist: jsonrpc>=1.2.0
@@ -340,38 +340,41 @@ async def create_and_run_server(
340
340
  print(" Use Ctrl+C to stop the server")
341
341
  print("=" * 60)
342
342
 
343
- # Use uvicorn for better FastAPI compatibility
344
- import uvicorn
343
+ # Use hypercorn directly
344
+ import hypercorn.asyncio
345
+ import hypercorn.config
345
346
  import asyncio
346
347
 
347
- # Configure uvicorn
348
- uvicorn_config = uvicorn.Config(
349
- app=app,
350
- host=server_config["host"],
351
- port=server_config["port"],
352
- log_level=server_config.get("log_level", "info"),
353
- reload=False,
354
- )
348
+ # Configure hypercorn
349
+ config_hypercorn = hypercorn.config.Config()
350
+ config_hypercorn.bind = [f"{server_config['host']}:{server_config['port']}"]
351
+ config_hypercorn.loglevel = server_config.get("log_level", "info")
355
352
 
356
353
  # Add SSL configuration if present
357
354
  if "certfile" in server_config:
358
- uvicorn_config.ssl_certfile = server_config["certfile"]
355
+ config_hypercorn.certfile = server_config["certfile"]
359
356
  if "keyfile" in server_config:
360
- uvicorn_config.ssl_keyfile = server_config["keyfile"]
357
+ config_hypercorn.keyfile = server_config["keyfile"]
361
358
  if "ca_certs" in server_config:
362
- uvicorn_config.ssl_ca_certs = server_config["ca_certs"]
359
+ config_hypercorn.ca_certs = server_config["ca_certs"]
360
+ if "verify_mode" in server_config:
361
+ import ssl
362
+ # Use the verify_mode from configuration, default to CERT_NONE
363
+ verify_mode = getattr(ssl, server_config["verify_mode"], ssl.CERT_NONE)
364
+ config_hypercorn.verify_mode = verify_mode
363
365
 
364
366
  # Determine if SSL is enabled
365
367
  ssl_enabled = any(key in server_config for key in ["certfile", "keyfile"])
366
368
 
367
369
  if ssl_enabled:
368
- print(f"🔐 Starting HTTPS server with uvicorn...")
370
+ print(f"🔐 Starting HTTPS server with hypercorn...")
369
371
  else:
370
- print(f"🌐 Starting HTTP server with uvicorn...")
372
+ print(f"🌐 Starting HTTP server with hypercorn...")
371
373
 
372
- # Create and run uvicorn server
373
- server = uvicorn.Server(uvicorn_config)
374
- await server.serve()
374
+ # Run the server
375
+ # hypercorn.asyncio.serve() should be run with asyncio.run(), not awaited
376
+ # The function is designed to be the main entry point, not a coroutine to await
377
+ await hypercorn.asyncio.serve(app, config_hypercorn)
375
378
 
376
379
  except KeyboardInterrupt:
377
380
  print("\n🛑 Server stopped by user")
@@ -8,6 +8,7 @@ email: vasilyvz@gmail.com
8
8
  """
9
9
  import sys
10
10
  import argparse
11
+ import asyncio
11
12
  from pathlib import Path
12
13
 
13
14
  # Add the framework to the path
@@ -37,14 +38,14 @@ def main():
37
38
  print(f"📋 Configuration: {args.config}")
38
39
  print("=" * 50)
39
40
  # Use the factory method to create and run the server
40
- create_and_run_server(
41
+ asyncio.run(create_and_run_server(
41
42
  config_path=args.config,
42
43
  title="Basic Framework Example",
43
44
  description="Basic MCP Proxy Adapter with minimal configuration",
44
45
  version="1.0.0",
45
46
  host=config_overrides.get("host", "0.0.0.0"),
46
47
  log_level="debug" if config_overrides.get("debug", False) else "info",
47
- )
48
+ ))
48
49
 
49
50
 
50
51
  if __name__ == "__main__":
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Full Application Example
4
+ This is a complete application that demonstrates all features of MCP Proxy Adapter framework:
5
+ - Built-in commands
6
+ - Custom commands
7
+ - Dynamically loaded commands
8
+ - Built-in command hooks
9
+ - Application hooks
10
+ Author: Vasiliy Zdanovskiy
11
+ email: vasilyvz@gmail.com
12
+ """
13
+ import sys
14
+ import argparse
15
+ import asyncio
16
+ import logging
17
+ from pathlib import Path
18
+
19
+ # Add the framework to the path
20
+ sys.path.insert(0, str(Path(__file__).parent.parent.parent))
21
+ from mcp_proxy_adapter.core.app_factory import create_and_run_server
22
+
23
+
24
+ def main():
25
+ """Main entry point for the full application example."""
26
+ parser = argparse.ArgumentParser(description="Full Application Example")
27
+ parser.add_argument(
28
+ "--config", "-c", required=True, help="Path to configuration file"
29
+ )
30
+ parser.add_argument("--host", help="Server host")
31
+ parser.add_argument("--port", type=int, help="Server port")
32
+ parser.add_argument("--debug", action="store_true", help="Enable debug mode")
33
+ args = parser.parse_args()
34
+
35
+ # Override configuration if specified
36
+ config_overrides = {}
37
+ if args.host:
38
+ config_overrides["host"] = args.host
39
+ if args.port:
40
+ config_overrides["port"] = args.port
41
+ if args.debug:
42
+ config_overrides["debug"] = True
43
+
44
+ print(f"🚀 Starting Full Application Example")
45
+ print(f"📋 Configuration: {args.config}")
46
+ print(f"🔧 Features: Built-in commands, Custom commands, Dynamic commands, Hooks, Proxy endpoints")
47
+ print("=" * 60)
48
+
49
+ # Use the factory method to create and run the server
50
+ asyncio.run(create_and_run_server(
51
+ config_path=args.config,
52
+ title="Full Application Example",
53
+ description="Complete MCP Proxy Adapter with all features",
54
+ version="1.0.0",
55
+ host=config_overrides.get("host", "0.0.0.0"),
56
+ log_level="debug" if config_overrides.get("debug", False) else "info",
57
+ ))
58
+
59
+
60
+ if __name__ == "__main__":
61
+ main()
@@ -2,4 +2,4 @@
2
2
  Version information for MCP Proxy Adapter.
3
3
  """
4
4
 
5
- __version__ = "6.4.5"
5
+ __version__ = "6.4.8"
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mcp-proxy-adapter"
7
- version = "6.4.5"
7
+ version = "6.4.8"
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"}
@@ -47,7 +47,6 @@ dependencies = [
47
47
  "fastapi>=0.95.0,<1.0.0",
48
48
  "pydantic>=2.0.0",
49
49
  "hypercorn>=0.15.0,<1.0.0",
50
- "uvicorn>=0.22.0,<1.0.0",
51
50
  "docstring-parser>=0.15,<1.0.0",
52
51
  "typing-extensions>=4.5.0,<5.0.0",
53
52
  "jsonrpc>=1.2.0",
@@ -1,198 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Full Application Example
4
- This is a complete application that demonstrates all features of MCP Proxy Adapter framework:
5
- - Built-in commands
6
- - Custom commands
7
- - Dynamically loaded commands
8
- - Built-in command hooks
9
- - Application hooks
10
- Author: Vasiliy Zdanovskiy
11
- email: vasilyvz@gmail.com
12
- """
13
- import sys
14
- import argparse
15
- import logging
16
- from pathlib import Path
17
-
18
- # Add the framework to the path
19
- sys.path.insert(0, str(Path(__file__).parent.parent.parent))
20
- from mcp_proxy_adapter.core.app_factory import create_and_run_server
21
- from mcp_proxy_adapter.api.app import create_app
22
- from mcp_proxy_adapter.config import Config
23
- from mcp_proxy_adapter.commands.command_registry import CommandRegistry
24
-
25
-
26
- class FullApplication:
27
- """Full application example with all framework features."""
28
-
29
- def __init__(self, config_path: str):
30
- self.config_path = config_path
31
- self.config = Config(config_path)
32
- self.app = None
33
- self.command_registry = None
34
- # Setup logging
35
- logging.basicConfig(level=logging.INFO)
36
- self.logger = logging.getLogger(__name__)
37
-
38
- def setup_hooks(self):
39
- """Setup application hooks."""
40
- try:
41
- # Import hooks
42
- from hooks.application_hooks import ApplicationHooks
43
- from hooks.builtin_command_hooks import BuiltinCommandHooks
44
-
45
- # Register application hooks
46
- self.logger.info("🔧 Setting up application hooks...")
47
- # Register built-in command hooks
48
- self.logger.info("🔧 Setting up built-in command hooks...")
49
- # Note: In a real implementation, these hooks would be registered
50
- # with the framework's hook system
51
- self.logger.info("✅ Hooks setup completed")
52
- except ImportError as e:
53
- self.logger.warning(f"⚠️ Could not import hooks: {e}")
54
-
55
- def setup_custom_commands(self):
56
- """Setup custom commands."""
57
- try:
58
- self.logger.info("🔧 Setting up custom commands...")
59
- # Import custom commands
60
- from commands.custom_echo_command import CustomEchoCommand
61
- from commands.dynamic_calculator_command import DynamicCalculatorCommand
62
-
63
- # Register custom commands
64
- # Note: In a real implementation, these would be registered
65
- # with the framework's command registry
66
- self.logger.info("✅ Custom commands setup completed")
67
- except ImportError as e:
68
- self.logger.warning(f"⚠️ Could not import custom commands: {e}")
69
-
70
- def setup_proxy_endpoints(self):
71
- """Setup proxy registration endpoints."""
72
- try:
73
- self.logger.info("🔧 Setting up proxy endpoints...")
74
- # Import proxy endpoints
75
- from proxy_endpoints import router as proxy_router
76
-
77
- # Add proxy router to the application
78
- self.app.include_router(proxy_router)
79
- self.logger.info("✅ Proxy endpoints setup completed")
80
- except ImportError as e:
81
- self.logger.warning(f"⚠️ Could not import proxy endpoints: {e}")
82
-
83
- def create_application(self):
84
- """Create the FastAPI application."""
85
- self.logger.info("🔧 Creating application...")
86
- # Setup hooks and commands before creating app
87
- self.setup_hooks()
88
- self.setup_custom_commands()
89
- # Create application with configuration
90
- self.app = create_app(app_config=self.config)
91
- # Setup proxy endpoints after app creation
92
- self.setup_proxy_endpoints()
93
- self.logger.info("✅ Application created successfully")
94
-
95
- def run(self, host: str = None, port: int = None, debug: bool = False):
96
- """Run the application using the factory method."""
97
- # Override configuration if specified
98
- config_overrides = {}
99
- if host:
100
- config_overrides["host"] = host
101
- if port:
102
- config_overrides["port"] = port
103
- if debug:
104
- config_overrides["debug"] = True
105
- print(f"🚀 Starting Full Application Example")
106
- print(f"📋 Configuration: {self.config_path}")
107
- print(
108
- f"🔧 Features: Built-in commands, Custom commands, Dynamic commands, Hooks, Proxy endpoints"
109
- )
110
- print("=" * 60)
111
- # Create application with configuration
112
- self.create_application()
113
- # Get server configuration
114
- server_host = self.config.get("server.host", "0.0.0.0")
115
- server_port = self.config.get("server.port", 8000)
116
- server_debug = self.config.get("server.debug", False)
117
- # Get SSL configuration
118
- ssl_enabled = self.config.get("ssl.enabled", False)
119
- ssl_cert_file = self.config.get("ssl.cert_file")
120
- ssl_key_file = self.config.get("ssl.key_file")
121
- ssl_ca_cert = self.config.get("ssl.ca_cert")
122
- verify_client = self.config.get("ssl.verify_client", False)
123
- print(f"🌐 Server: {server_host}:{server_port}")
124
- print(f"🔧 Debug: {server_debug}")
125
- if ssl_enabled:
126
- print(f"🔐 SSL: Enabled")
127
- print(f" Certificate: {ssl_cert_file}")
128
- print(f" Key: {ssl_key_file}")
129
- if ssl_ca_cert:
130
- print(f" CA: {ssl_ca_cert}")
131
- print(f" Client verification: {verify_client}")
132
- print("=" * 60)
133
- # Use hypercorn directly to run the application with proxy endpoints
134
- try:
135
- import hypercorn.asyncio
136
- import hypercorn.config
137
- import asyncio
138
-
139
- # Configure hypercorn
140
- config_hypercorn = hypercorn.config.Config()
141
- config_hypercorn.bind = [f"{server_host}:{server_port}"]
142
- config_hypercorn.loglevel = "debug" if server_debug else "info"
143
- if ssl_enabled and ssl_cert_file and ssl_key_file:
144
- config_hypercorn.certfile = ssl_cert_file
145
- config_hypercorn.keyfile = ssl_key_file
146
- if ssl_ca_cert:
147
- config_hypercorn.ca_certs = ssl_ca_cert
148
- if verify_client:
149
- import ssl
150
-
151
- config_hypercorn.verify_mode = ssl.CERT_REQUIRED
152
- print(f"🔐 Starting HTTPS server with hypercorn...")
153
- else:
154
- print(f"🌐 Starting HTTP server with hypercorn...")
155
- # Run the server
156
- asyncio.run(hypercorn.asyncio.serve(self.app, config_hypercorn))
157
- except ImportError:
158
- print("❌ hypercorn not installed. Installing...")
159
- import subprocess
160
-
161
- subprocess.run([sys.executable, "-m", "pip", "install", "hypercorn"])
162
- print("✅ hypercorn installed. Please restart the application.")
163
- return
164
-
165
-
166
- def main():
167
- """Main entry point for the full application example."""
168
- parser = argparse.ArgumentParser(description="Full Application Example")
169
- parser.add_argument(
170
- "--config", "-c", required=True, help="Path to configuration file"
171
- )
172
- parser.add_argument("--host", help="Server host")
173
- parser.add_argument("--port", type=int, help="Server port")
174
- parser.add_argument("--debug", action="store_true", help="Enable debug mode")
175
- args = parser.parse_args()
176
- # Create and run application
177
- app = FullApplication(args.config)
178
- app.run(host=args.host, port=args.port, debug=args.debug)
179
-
180
-
181
- # Create global app instance for import
182
- app = None
183
-
184
-
185
- def get_app():
186
- """Get the FastAPI application instance."""
187
- global app
188
- if app is None:
189
- # Create a default configuration for import
190
- config = Config("configs/mtls_with_roles.json") # Default config
191
- app_instance = FullApplication("configs/mtls_with_roles.json")
192
- app_instance.create_application()
193
- app = app_instance.app
194
- return app
195
-
196
-
197
- if __name__ == "__main__":
198
- main()