mcp-proxy-adapter 4.1.0__tar.gz → 6.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. {mcp_proxy_adapter-4.1.0/mcp_proxy_adapter.egg-info → mcp_proxy_adapter-6.0.0}/PKG-INFO +2 -1
  2. mcp_proxy_adapter-6.0.0/docs/API.md +449 -0
  3. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/LOGGING_SYSTEM.md +36 -9
  4. mcp_proxy_adapter-6.0.0/docs/EN/commands/dependency_management.md +297 -0
  5. mcp_proxy_adapter-6.0.0/docs/EN/commands/load_command.md +222 -0
  6. mcp_proxy_adapter-6.0.0/docs/EN/commands/plugins_command.md +125 -0
  7. mcp_proxy_adapter-6.0.0/docs/EN/commands/protocol_management_command.md +301 -0
  8. mcp_proxy_adapter-6.0.0/docs/EN/commands/unload_command.md +209 -0
  9. mcp_proxy_adapter-6.0.0/docs/EN/development/PROXY_REGISTRATION.md +350 -0
  10. mcp_proxy_adapter-6.0.0/docs/EN/development/TRANSPORT_SYSTEM_REFACTORING.md +484 -0
  11. mcp_proxy_adapter-6.0.0/docs/EN/development/TRANSPORT_TODO.md +74 -0
  12. mcp_proxy_adapter-6.0.0/docs/EN/user/configuration.md +128 -0
  13. mcp_proxy_adapter-6.0.0/docs/EXAMPLES.md +631 -0
  14. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/LOGGING_SYSTEM.md +36 -9
  15. mcp_proxy_adapter-6.0.0/docs/RU/commands/dependency_management.md +297 -0
  16. mcp_proxy_adapter-6.0.0/docs/RU/commands/load_command.md +222 -0
  17. mcp_proxy_adapter-6.0.0/docs/RU/commands/plugins_command.md +125 -0
  18. mcp_proxy_adapter-6.0.0/docs/RU/commands/protocol_management_command.md +301 -0
  19. mcp_proxy_adapter-6.0.0/docs/RU/commands/unload_command.md +209 -0
  20. mcp_proxy_adapter-6.0.0/docs/RU/development/PROXY_REGISTRATION.md +350 -0
  21. mcp_proxy_adapter-6.0.0/docs/RU/development/TRANSPORT_SYSTEM_REFACTORING.md +484 -0
  22. mcp_proxy_adapter-6.0.0/docs/RU/development/TRANSPORT_TODO.md +74 -0
  23. mcp_proxy_adapter-6.0.0/docs/RU/user/configuration.md +128 -0
  24. mcp_proxy_adapter-6.0.0/examples/basic_server/config_token_auth.json +66 -0
  25. mcp_proxy_adapter-6.0.0/examples/basic_server/tokens.json +49 -0
  26. mcp_proxy_adapter-6.0.0/examples/protocol_configs/README.md +253 -0
  27. mcp_proxy_adapter-6.0.0/examples/protocol_configs/http_only_config.json +36 -0
  28. mcp_proxy_adapter-6.0.0/examples/protocol_configs/https_only_config.json +41 -0
  29. mcp_proxy_adapter-6.0.0/examples/protocol_configs/mtls_only_config.json +42 -0
  30. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/__main__.py +12 -0
  31. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/app.py +138 -11
  32. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/handlers.py +16 -1
  33. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/__init__.py +50 -0
  34. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/auth_adapter.py +235 -0
  35. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/middleware/error_handling.py +9 -0
  36. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/factory.py +219 -0
  37. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/middleware/logging.py +32 -6
  38. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/mtls_adapter.py +305 -0
  39. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/mtls_middleware.py +296 -0
  40. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/protocol_middleware.py +135 -0
  41. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/rate_limit_adapter.py +241 -0
  42. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/roles_adapter.py +365 -0
  43. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/roles_middleware.py +381 -0
  44. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/security.py +376 -0
  45. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/token_auth_middleware.py +261 -0
  46. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/api/middleware/transport_middleware.py +122 -0
  47. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/__init__.py +31 -0
  48. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/auth_validation_command.py +408 -0
  49. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/commands/base.py +61 -30
  50. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/builtin_commands.py +89 -0
  51. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/catalog_manager.py +838 -0
  52. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/cert_monitor_command.py +620 -0
  53. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/certificate_management_command.py +608 -0
  54. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/command_registry.py +915 -0
  55. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/dependency_manager.py +245 -0
  56. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/commands/health_command.py +7 -0
  57. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/hooks.py +293 -0
  58. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/key_management_command.py +506 -0
  59. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/load_command.py +176 -0
  60. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/plugins_command.py +235 -0
  61. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/protocol_management_command.py +232 -0
  62. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/proxy_registration_command.py +268 -0
  63. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/commands/reload_command.py +48 -50
  64. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/commands/result.py +1 -0
  65. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/roles_management_command.py +697 -0
  66. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/ssl_setup_command.py +483 -0
  67. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/token_management_command.py +529 -0
  68. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/transport_management_command.py +144 -0
  69. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/commands/unload_command.py +158 -0
  70. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/config.py +99 -2
  71. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/auth_validator.py +606 -0
  72. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/certificate_utils.py +827 -0
  73. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/config_converter.py +405 -0
  74. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/config_validator.py +218 -0
  75. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/core/logging.py +11 -0
  76. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/protocol_manager.py +226 -0
  77. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/proxy_registration.py +270 -0
  78. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/role_utils.py +426 -0
  79. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/security_adapter.py +373 -0
  80. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/security_factory.py +239 -0
  81. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/core/settings.py +1 -0
  82. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/ssl_utils.py +233 -0
  83. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/core/transport_manager.py +292 -0
  84. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/custom_openapi.py +22 -11
  85. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/basic_server/config.json +70 -0
  86. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/basic_server/config_all_protocols.json +54 -0
  87. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/basic_server/config_http.json +70 -0
  88. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/basic_server/config_http_only.json +52 -0
  89. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/basic_server/config_https.json +58 -0
  90. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/basic_server/config_mtls.json +58 -0
  91. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/basic_server/config_ssl.json +46 -0
  92. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/basic_server/server.py +17 -1
  93. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/__init__.py +1 -1
  94. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/advanced_hooks.py +566 -0
  95. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/auto_commands/test_command.py +105 -0
  96. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/catalog/commands/test_command.py +129 -0
  97. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/config.json +118 -0
  98. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/config_all_protocols.json +46 -0
  99. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/config_https_only.json +46 -0
  100. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/config_https_transport.json +33 -0
  101. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/config_mtls_only.json +46 -0
  102. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/config_mtls_transport.json +33 -0
  103. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/config_single_transport.json +33 -0
  104. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/full_help_response.json +1 -0
  105. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/generated_openapi.json +629 -0
  106. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/get_openapi.py +103 -0
  107. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/loadable_commands/test_ignored.py +129 -0
  108. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/proxy_connection_manager.py +278 -0
  109. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/server.py +92 -63
  110. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/simple_openapi_server.py +75 -0
  111. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/start_server_with_proxy_manager.py +299 -0
  112. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/start_server_with_registration.py +278 -0
  113. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/test_openapi.py +27 -0
  114. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/test_registry.py +23 -0
  115. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_commands/test_simple.py +19 -0
  116. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_project_example/README.md +103 -0
  117. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/custom_project_example/README_EN.md +103 -0
  118. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/simple_custom_commands/README.md +149 -0
  119. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/examples/simple_custom_commands/README_EN.md +149 -0
  120. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/main.py +175 -0
  121. mcp_proxy_adapter-6.0.0/mcp_proxy_adapter/schemas/roles_schema.json +162 -0
  122. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/unit/test_config.py +53 -0
  123. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/version.py +1 -1
  124. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0/mcp_proxy_adapter.egg-info}/PKG-INFO +2 -1
  125. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter.egg-info/SOURCES.txt +151 -8
  126. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter.egg-info/requires.txt +1 -0
  127. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/pyproject.toml +2 -1
  128. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/requirements.txt +2 -0
  129. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/setup.py +1 -1
  130. mcp_proxy_adapter-6.0.0/tests/__init__.py +7 -0
  131. mcp_proxy_adapter-6.0.0/tests/api/middleware/test_middleware_init.py +385 -0
  132. mcp_proxy_adapter-6.0.0/tests/api/middleware/test_mtls_middleware.py +723 -0
  133. mcp_proxy_adapter-6.0.0/tests/api/middleware/test_protocol_middleware.py +158 -0
  134. mcp_proxy_adapter-6.0.0/tests/api/middleware/test_roles_middleware.py +493 -0
  135. mcp_proxy_adapter-6.0.0/tests/api/middleware/test_token_auth_middleware.py +450 -0
  136. mcp_proxy_adapter-6.0.0/tests/api/middleware/test_transport_middleware.py +266 -0
  137. mcp_proxy_adapter-6.0.0/tests/api/test_app_ssl_coverage.py +405 -0
  138. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_handlers_extended.py +5 -5
  139. mcp_proxy_adapter-6.0.0/tests/api/test_middleware_logging.py +165 -0
  140. mcp_proxy_adapter-6.0.0/tests/api/test_schemas_coverage.py +417 -0
  141. mcp_proxy_adapter-6.0.0/tests/commands/test_auth_validation_command.py +403 -0
  142. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_base_command_final.py +17 -18
  143. mcp_proxy_adapter-6.0.0/tests/commands/test_builtin_commands_coverage.py +75 -0
  144. mcp_proxy_adapter-6.0.0/tests/commands/test_catalog_manager.py +1095 -0
  145. mcp_proxy_adapter-6.0.0/tests/commands/test_catalog_manager_coverage.py +319 -0
  146. mcp_proxy_adapter-6.0.0/tests/commands/test_catalog_manager_coverage_fixed.py +246 -0
  147. mcp_proxy_adapter-6.0.0/tests/commands/test_catalog_manager_fixed.py +149 -0
  148. mcp_proxy_adapter-6.0.0/tests/commands/test_catalog_manager_simple.py +149 -0
  149. mcp_proxy_adapter-6.0.0/tests/commands/test_cert_monitor_command.py +763 -0
  150. mcp_proxy_adapter-6.0.0/tests/commands/test_certificate_management_command.py +594 -0
  151. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_command_di.py +12 -9
  152. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_command_metadata.py +3 -2
  153. mcp_proxy_adapter-6.0.0/tests/commands/test_command_priorities.py +233 -0
  154. mcp_proxy_adapter-6.0.0/tests/commands/test_command_registry_coverage.py +280 -0
  155. mcp_proxy_adapter-6.0.0/tests/commands/test_command_registry_extended.py +816 -0
  156. mcp_proxy_adapter-6.0.0/tests/commands/test_dependency_manager.py +346 -0
  157. mcp_proxy_adapter-6.0.0/tests/commands/test_help_command_coverage.py +78 -0
  158. mcp_proxy_adapter-6.0.0/tests/commands/test_hooks.py +207 -0
  159. mcp_proxy_adapter-6.0.0/tests/commands/test_hooks_coverage.py +245 -0
  160. mcp_proxy_adapter-6.0.0/tests/commands/test_key_management_command.py +602 -0
  161. mcp_proxy_adapter-6.0.0/tests/commands/test_load_command.py +204 -0
  162. mcp_proxy_adapter-6.0.0/tests/commands/test_new_catalog_format.py +267 -0
  163. mcp_proxy_adapter-6.0.0/tests/commands/test_plugins_command.py +284 -0
  164. mcp_proxy_adapter-6.0.0/tests/commands/test_protocol_management_command.py +294 -0
  165. mcp_proxy_adapter-6.0.0/tests/commands/test_reload_command.py +182 -0
  166. mcp_proxy_adapter-6.0.0/tests/commands/test_roles_management_command.py +630 -0
  167. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_settings_command_extended.py +16 -16
  168. mcp_proxy_adapter-6.0.0/tests/commands/test_ssl_setup_command.py +422 -0
  169. mcp_proxy_adapter-6.0.0/tests/commands/test_token_management_command.py +442 -0
  170. mcp_proxy_adapter-6.0.0/tests/commands/test_transport_management_command.py +192 -0
  171. mcp_proxy_adapter-6.0.0/tests/commands/test_unload_command.py +120 -0
  172. mcp_proxy_adapter-6.0.0/tests/conftest.py +388 -0
  173. mcp_proxy_adapter-6.0.0/tests/core/test_auth_validator.py +541 -0
  174. mcp_proxy_adapter-6.0.0/tests/core/test_auth_validator_coverage.py +469 -0
  175. mcp_proxy_adapter-6.0.0/tests/core/test_certificate_utils.py +344 -0
  176. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/core/test_config.py +3 -1
  177. mcp_proxy_adapter-6.0.0/tests/core/test_protocol_manager.py +240 -0
  178. mcp_proxy_adapter-6.0.0/tests/core/test_proxy_registration.py +217 -0
  179. mcp_proxy_adapter-6.0.0/tests/core/test_role_utils.py +460 -0
  180. mcp_proxy_adapter-6.0.0/tests/core/test_ssl_utils.py +349 -0
  181. mcp_proxy_adapter-6.0.0/tests/core/test_transport_manager.py +338 -0
  182. mcp_proxy_adapter-6.0.0/tests/examples/test_advanced_hooks.py +791 -0
  183. mcp_proxy_adapter-6.0.0/tests/examples/test_server.py +719 -0
  184. mcp_proxy_adapter-6.0.0/tests/integration/test_integration.py +506 -0
  185. mcp_proxy_adapter-6.0.0/tests/integration/test_transport_integration.py +362 -0
  186. mcp_proxy_adapter-6.0.0/tests/scripts/test_cert_obtain.py +439 -0
  187. mcp_proxy_adapter-6.0.0/tests/scripts/test_generate_test_certs.py +360 -0
  188. mcp_proxy_adapter-6.0.0/tests/test_middleware_adapters.py +462 -0
  189. mcp_proxy_adapter-6.0.0/tests/test_security_components.py +316 -0
  190. mcp_proxy_adapter-6.0.0/tests/test_security_middleware.py +396 -0
  191. mcp_proxy_adapter-6.0.0/tests/unit/__init__.py +5 -0
  192. mcp_proxy_adapter-6.0.0/tests/unit/test_basic.py +26 -0
  193. mcp_proxy_adapter-6.0.0/tests/unit/test_certificate_manager.py +378 -0
  194. mcp_proxy_adapter-6.0.0/tests/unit/test_config.py +334 -0
  195. mcp_proxy_adapter-6.0.0/tests/unit/test_middleware.py +581 -0
  196. mcp_proxy_adapter-6.0.0/tests/unit/test_models.py +352 -0
  197. mcp_proxy_adapter-6.0.0/tests/unit/test_permission_validator.py +376 -0
  198. mcp_proxy_adapter-6.0.0/tests/unit/test_serialization.py +419 -0
  199. mcp_proxy_adapter-4.1.0/docs/EN/user/configuration.md +0 -67
  200. mcp_proxy_adapter-4.1.0/docs/RU/user/configuration.md +0 -67
  201. mcp_proxy_adapter-4.1.0/mcp_proxy_adapter/api/middleware/__init__.py +0 -49
  202. mcp_proxy_adapter-4.1.0/mcp_proxy_adapter/commands/__init__.py +0 -22
  203. mcp_proxy_adapter-4.1.0/mcp_proxy_adapter/commands/command_registry.py +0 -555
  204. mcp_proxy_adapter-4.1.0/mcp_proxy_adapter/commands/hooks.py +0 -260
  205. mcp_proxy_adapter-4.1.0/mcp_proxy_adapter/commands/reload_settings_command.py +0 -125
  206. mcp_proxy_adapter-4.1.0/mcp_proxy_adapter/examples/basic_server/config.json +0 -35
  207. mcp_proxy_adapter-4.1.0/mcp_proxy_adapter/examples/custom_commands/advanced_hooks.py +0 -250
  208. mcp_proxy_adapter-4.1.0/mcp_proxy_adapter/examples/custom_commands/config.json +0 -62
  209. mcp_proxy_adapter-4.1.0/tests/__init__.py +0 -3
  210. mcp_proxy_adapter-4.1.0/tests/api/test_handler_dependency_injection.py +0 -131
  211. mcp_proxy_adapter-4.1.0/tests/api/test_middleware_logging.py +0 -338
  212. mcp_proxy_adapter-4.1.0/tests/api/test_tool_description.py +0 -240
  213. mcp_proxy_adapter-4.1.0/tests/commands/test_base_command_extended.py +0 -490
  214. mcp_proxy_adapter-4.1.0/tests/commands/test_command_registry_extended.py +0 -527
  215. mcp_proxy_adapter-4.1.0/tests/commands/test_hooks.py +0 -422
  216. mcp_proxy_adapter-4.1.0/tests/commands/test_priority_commands.py +0 -219
  217. mcp_proxy_adapter-4.1.0/tests/commands/test_reload_commands_extended.py +0 -453
  218. mcp_proxy_adapter-4.1.0/tests/conftest.py +0 -50
  219. mcp_proxy_adapter-4.1.0/tests/examples/test_advanced_hooks.py +0 -297
  220. mcp_proxy_adapter-4.1.0/tests/examples/test_custom_commands_server.py +0 -268
  221. mcp_proxy_adapter-4.1.0/tests/integration/test_di_integration.py +0 -226
  222. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/LICENSE +0 -0
  223. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/MANIFEST.in +0 -0
  224. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/README.md +0 -0
  225. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/API_SCHEMA.md +0 -0
  226. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/AUTOMATED_PUBLISHING.md +0 -0
  227. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/BASIC_ARCHITECTURE.md +0 -0
  228. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/COMMAND_CHECKLIST.md +0 -0
  229. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/COMMAND_RESULTS.md +0 -0
  230. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/COMMAND_TEMPLATE.md +0 -0
  231. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/CONFIGURATION_PRINCIPLES.md +0 -0
  232. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/DOCUMENTATION_MAP.md +0 -0
  233. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/DOCUMENTATION_STANDARDS.md +0 -0
  234. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/ERROR_HANDLING.md +0 -0
  235. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/EXAMPLES_COMMAND_CLASSES.md +0 -0
  236. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/GLOSSARY.md +0 -0
  237. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/NAMING_STANDARDS.md +0 -0
  238. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/OPENAPI_SCHEMA.md +0 -0
  239. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/PROJECT_EXTENSION_GUIDE.md +0 -0
  240. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/PROJECT_IDEOLOGY.md +0 -0
  241. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/PROJECT_RULES.md +0 -0
  242. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/PROJECT_STRUCTURE.md +0 -0
  243. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/PUBLISHING_TO_PYPI.md +0 -0
  244. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/README.md +0 -0
  245. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/api/cmd_endpoint.md +0 -0
  246. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/api/errors.md +0 -0
  247. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/api/intro.md +0 -0
  248. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/api/requests.md +0 -0
  249. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/api/responses.md +0 -0
  250. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/commands/get_date_command.md +0 -0
  251. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/commands/help_command.md +0 -0
  252. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/commands/index.md +0 -0
  253. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/commands/new_uuid4_command.md +0 -0
  254. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/commands/reload_settings_command.md +0 -0
  255. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/commands/settings_command.md +0 -0
  256. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/COMMAND_METADATA_ENHANCEMENT.md +0 -0
  257. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/DEPENDENCY_INJECTION.md +0 -0
  258. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/HOOK_SYSTEM.md +0 -0
  259. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/METADATA_COMMANDS.md +0 -0
  260. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/OPENAPI_CUSTOMIZATION.md +0 -0
  261. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/REMOVE_COMMAND_GUIDE.md +0 -0
  262. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/TOOL_INTEGRATION.md +0 -0
  263. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/architecture.md +0 -0
  264. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/command_auto_discovery.md +0 -0
  265. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/development/settings_management.md +0 -0
  266. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/examples/README.md +0 -0
  267. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/examples/anti_patterns.md +0 -0
  268. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/examples/basic_example.md +0 -0
  269. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/examples/complete_example.md +0 -0
  270. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/examples/minimal_example.md +0 -0
  271. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/testing/README.md +0 -0
  272. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/user/basic_usage.md +0 -0
  273. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/user/deployment.md +0 -0
  274. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/user/examples.md +0 -0
  275. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/EN/user/installation.md +0 -0
  276. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/API_SCHEMA.md +0 -0
  277. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/AUTOMATED_PUBLISHING.md +0 -0
  278. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/BASIC_ARCHITECTURE.md +0 -0
  279. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/COMMAND_CHECKLIST.md +0 -0
  280. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/COMMAND_RESULTS.md +0 -0
  281. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/COMMAND_TEMPLATE.md +0 -0
  282. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/CONFIGURATION_PRINCIPLES.md +0 -0
  283. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/DOCUMENTATION_MAP.md +0 -0
  284. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/DOCUMENTATION_STANDARDS.md +0 -0
  285. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/ERROR_HANDLING.md +0 -0
  286. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/EXAMPLES_COMMAND_CLASSES.md +0 -0
  287. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/GLOSSARY.md +0 -0
  288. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/NAMING_STANDARDS.md +0 -0
  289. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/OPENAPI_SCHEMA.md +0 -0
  290. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/PROJECT_EXTENSION_GUIDE.md +0 -0
  291. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/PROJECT_IDEOLOGY.md +0 -0
  292. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/PROJECT_RULES.md +0 -0
  293. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/PROJECT_STRUCTURE.md +0 -0
  294. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/PUBLISHING_TO_PYPI.md +0 -0
  295. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/README.md +0 -0
  296. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/api/cmd_endpoint.md +0 -0
  297. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/api/errors.md +0 -0
  298. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/api/intro.md +0 -0
  299. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/api/requests.md +0 -0
  300. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/api/responses.md +0 -0
  301. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/commands/get_date_command.md +0 -0
  302. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/commands/help_command.md +0 -0
  303. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/commands/index.md +0 -0
  304. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/commands/new_uuid4_command.md +0 -0
  305. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/commands/reload_settings_command.md +0 -0
  306. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/commands/settings_command.md +0 -0
  307. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/COMMAND_METADATA_ENHANCEMENT.md +0 -0
  308. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/DEPENDENCY_INJECTION.md +0 -0
  309. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/HOOK_SYSTEM.md +0 -0
  310. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/METADATA_COMMANDS.md +0 -0
  311. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/OPENAPI_CUSTOMIZATION.md +0 -0
  312. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/PLAN_REALIZACII_METADATA.md +0 -0
  313. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/REMOVE_COMMAND_GUIDE.md +0 -0
  314. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/TOOL_INTEGRATION.md +0 -0
  315. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/architecture.md +0 -0
  316. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/command_auto_discovery.md +0 -0
  317. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/development/settings_management.md +0 -0
  318. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/examples/README.md +0 -0
  319. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/examples/anti_patterns.md +0 -0
  320. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/examples/basic_example.md +0 -0
  321. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/examples/complete_example.md +0 -0
  322. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/examples/minimal_example.md +0 -0
  323. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/testing/README.md +0 -0
  324. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/user/basic_usage.md +0 -0
  325. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/user/deployment.md +0 -0
  326. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/user/examples.md +0 -0
  327. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/docs/RU/user/installation.md +0 -0
  328. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/__init__.py +0 -0
  329. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/__init__.py +0 -0
  330. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/middleware/auth.py +0 -0
  331. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/middleware/base.py +0 -0
  332. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
  333. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/middleware/rate_limit.py +0 -0
  334. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/schemas.py +0 -0
  335. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/tool_integration.py +0 -0
  336. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/api/tools.py +0 -0
  337. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/commands/config_command.py +0 -0
  338. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
  339. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/commands/help_command.py +0 -0
  340. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/commands/settings_command.py +0 -0
  341. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/core/__init__.py +0 -0
  342. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/core/errors.py +0 -0
  343. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/core/utils.py +0 -0
  344. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/README.md +0 -0
  345. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/__init__.py +0 -0
  346. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/basic_server/README.md +0 -0
  347. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/basic_server/__init__.py +0 -0
  348. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/basic_server/basic_custom_settings.json +0 -0
  349. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/basic_server/custom_settings_example.py +0 -0
  350. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/README.md +0 -0
  351. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/auto_commands/__init__.py +0 -0
  352. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/auto_commands/auto_echo_command.py +0 -0
  353. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/auto_commands/auto_info_command.py +0 -0
  354. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/custom_health_command.py +0 -0
  355. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/custom_help_command.py +0 -0
  356. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/custom_openapi_generator.py +0 -0
  357. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/custom_settings.json +0 -0
  358. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/custom_settings_manager.py +0 -0
  359. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/data_transform_command.py +0 -0
  360. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/echo_command.py +0 -0
  361. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/hooks.py +0 -0
  362. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/intercept_command.py +0 -0
  363. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/manual_echo_command.py +0 -0
  364. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/custom_commands/test_hooks.py +0 -0
  365. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/deployment/README.md +0 -0
  366. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/deployment/__init__.py +0 -0
  367. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/deployment/config.development.json +0 -0
  368. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/deployment/config.json +0 -0
  369. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/deployment/config.production.json +0 -0
  370. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/deployment/config.staging.json +0 -0
  371. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/deployment/docker-compose.yml +0 -0
  372. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/deployment/run.sh +0 -0
  373. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/examples/deployment/run_docker.sh +0 -0
  374. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/openapi.py +0 -0
  375. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/schemas/base_schema.json +0 -0
  376. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/schemas/openapi_schema.json +0 -0
  377. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/__init__.py +0 -0
  378. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/api/__init__.py +0 -0
  379. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/api/test_cmd_endpoint.py +0 -0
  380. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/api/test_custom_openapi.py +0 -0
  381. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/api/test_handlers.py +0 -0
  382. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/api/test_middleware.py +0 -0
  383. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/api/test_schemas.py +0 -0
  384. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/api/test_tool_integration.py +0 -0
  385. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/commands/__init__.py +0 -0
  386. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/commands/test_config_command.py +0 -0
  387. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/commands/test_echo_command.py +0 -0
  388. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/commands/test_help_command.py +0 -0
  389. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/conftest.py +0 -0
  390. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/functional/__init__.py +0 -0
  391. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/functional/test_api.py +0 -0
  392. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/integration/__init__.py +0 -0
  393. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/integration/test_cmd_integration.py +0 -0
  394. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/integration/test_integration.py +0 -0
  395. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/performance/__init__.py +0 -0
  396. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/performance/test_performance.py +0 -0
  397. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/stubs/__init__.py +0 -0
  398. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/stubs/echo_command.py +0 -0
  399. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/test_api_endpoints.py +0 -0
  400. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/test_api_handlers.py +0 -0
  401. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/test_base_command.py +0 -0
  402. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/test_batch_requests.py +0 -0
  403. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/test_command_registry.py +0 -0
  404. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/test_config.py +0 -0
  405. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/test_utils.py +0 -0
  406. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/unit/__init__.py +0 -0
  407. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter/tests/unit/test_base_command.py +0 -0
  408. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter.egg-info/dependency_links.txt +0 -0
  409. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/mcp_proxy_adapter.egg-info/top_level.txt +0 -0
  410. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/setup.cfg +0 -0
  411. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/__init__.py +0 -0
  412. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_app.py +0 -0
  413. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_app_extended.py +0 -0
  414. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_auth.py +0 -0
  415. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_error_handling.py +0 -0
  416. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_middleware_base.py +0 -0
  417. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_middleware_performance.py +0 -0
  418. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_openapi.py +0 -0
  419. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_rate_limit.py +0 -0
  420. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_schemas_extended.py +0 -0
  421. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_schemas_final.py +0 -0
  422. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_tool_integration.py +0 -0
  423. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/api/test_tools.py +0 -0
  424. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/__init__.py +0 -0
  425. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_config_command_extended.py +0 -0
  426. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_dependency_container.py +0 -0
  427. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_echo_command_di.py +0 -0
  428. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_health_command_extended.py +0 -0
  429. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_help_command.py +0 -0
  430. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/commands/test_result.py +0 -0
  431. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/core/test_errors.py +0 -0
  432. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/core/test_logging.py +0 -0
  433. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/core/test_settings_extended.py +0 -0
  434. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/core/test_utils.py +0 -0
  435. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_auto_echo_command.py +0 -0
  436. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_auto_info_command.py +0 -0
  437. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_basic_server.py +0 -0
  438. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_custom_commands.py +0 -0
  439. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_custom_commands_hooks.py +0 -0
  440. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_custom_health_command.py +0 -0
  441. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_custom_help_command.py +0 -0
  442. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_custom_openapi_generator.py +0 -0
  443. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_custom_settings_manager.py +0 -0
  444. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_data_transform_command.py +0 -0
  445. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_echo_command.py +0 -0
  446. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_intercept_command.py +0 -0
  447. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/examples/test_manual_echo_command.py +0 -0
  448. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/integration/__init__.py +0 -0
  449. {mcp_proxy_adapter-4.1.0 → mcp_proxy_adapter-6.0.0}/tests/test_custom_openapi_extended.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-proxy-adapter
3
- Version: 4.1.0
3
+ Version: 6.0.0
4
4
  Summary: Reliable microservice with unified JSON-RPC endpoint
5
5
  Home-page: https://github.com/maverikod/mcp-proxy-adapter
6
6
  Author: Vasiliy Zdanovskiy
@@ -45,6 +45,7 @@ Requires-Dist: docstring-parser<1.0.0,>=0.15
45
45
  Requires-Dist: typing-extensions<5.0.0,>=4.5.0
46
46
  Requires-Dist: jsonrpc>=1.2.0
47
47
  Requires-Dist: psutil>=5.9.0
48
+ Requires-Dist: mcp_security_framework>=0.1.0
48
49
  Dynamic: author
49
50
  Dynamic: home-page
50
51
  Dynamic: license-file
@@ -0,0 +1,449 @@
1
+ # MCP Security Framework API Documentation
2
+
3
+ **Версия:** 1.0.0
4
+ **Дата:** 17 августа 2025
5
+
6
+ ## 📚 Обзор
7
+
8
+ MCP Security Framework предоставляет комплексный API для управления безопасностью в MCP приложениях. API включает в себя модели данных, валидаторы, middleware и утилиты.
9
+
10
+ ## 🏗️ Архитектура API
11
+
12
+ ### Основные компоненты:
13
+
14
+ 1. **Schemas** - Pydantic модели для конфигурации и данных
15
+ 2. **Core** - Основные валидаторы и утилиты
16
+ 3. **Middleware** - FastAPI middleware компоненты
17
+ 4. **Utils** - Вспомогательные функции и утилиты
18
+ 5. **Commands** - CLI команды
19
+
20
+ ## 📋 Schemas API
21
+
22
+ ### Models
23
+
24
+ #### Permission
25
+ ```python
26
+ class Permission(BaseModel):
27
+ description: str
28
+ level: int # 1-10
29
+ ```
30
+
31
+ **Поля:**
32
+ - `description` (str): Описание разрешения
33
+ - `level` (int): Уровень разрешения (1-10)
34
+
35
+ **Валидация:**
36
+ - `level` должен быть в диапазоне 1-10
37
+
38
+ #### Role
39
+ ```python
40
+ class Role(BaseModel):
41
+ description: str
42
+ allowed_servers: List[str] = ["*"]
43
+ allowed_clients: List[str] = ["*"]
44
+ permissions: List[str]
45
+ priority: int # 1-1000
46
+ ```
47
+
48
+ **Поля:**
49
+ - `description` (str): Описание роли
50
+ - `allowed_servers` (List[str]): Разрешенные серверы
51
+ - `allowed_clients` (List[str]): Разрешенные клиенты
52
+ - `permissions` (List[str]): Список разрешений
53
+ - `priority` (int): Приоритет роли (1-1000)
54
+
55
+ **Валидация:**
56
+ - `priority` должен быть в диапазоне 1-1000
57
+ - `allowed_servers` и `allowed_clients` не могут быть пустыми
58
+
59
+ #### RolesSchema
60
+ ```python
61
+ class RolesSchema(BaseModel):
62
+ roles: Dict[str, Role]
63
+ permissions: Dict[str, Permission]
64
+ role_hierarchy: RoleHierarchy
65
+ default_policy: DefaultPolicy
66
+ server_roles: Dict[str, Dict[str, Any]] = {}
67
+ ```
68
+
69
+ **Методы:**
70
+ - `get_role(role_name: str) -> Optional[Role]`
71
+ - `get_permission(permission_name: str) -> Optional[Permission]`
72
+ - `has_role(role_name: str) -> bool`
73
+ - `has_permission(permission_name: str) -> bool`
74
+
75
+ #### SecurityConfig
76
+ ```python
77
+ class SecurityConfig(BaseModel):
78
+ auth: AuthConfig = Field(default_factory=AuthConfig)
79
+ ssl: SSLConfig = Field(default_factory=SSLConfig)
80
+ roles: RoleConfig = Field(default_factory=RoleConfig)
81
+ rate_limit: RateLimitConfig = Field(default_factory=RateLimitConfig)
82
+ ```
83
+
84
+ **Методы:**
85
+ - `to_dict() -> Dict[str, Any]`
86
+ - `from_dict(data: Dict[str, Any]) -> SecurityConfig`
87
+
88
+ ## 🔧 Core API
89
+
90
+ ### AuthValidator
91
+
92
+ ```python
93
+ class AuthValidator:
94
+ def __init__(self, config: Optional[Dict[str, Any]] = None)
95
+
96
+ def validate_auth(
97
+ self,
98
+ auth_data: Dict[str, Any],
99
+ auth_type: str = "auto"
100
+ ) -> AuthValidationResult
101
+
102
+ def validate_certificate(
103
+ self,
104
+ cert_path: Optional[str],
105
+ cert_type: str = "server"
106
+ ) -> AuthValidationResult
107
+
108
+ def validate_token(
109
+ self,
110
+ token: Optional[str],
111
+ token_type: str = "jwt"
112
+ ) -> AuthValidationResult
113
+ ```
114
+
115
+ **Методы:**
116
+ - `validate_auth()` - Универсальная валидация аутентификации
117
+ - `validate_certificate()` - Валидация сертификатов
118
+ - `validate_token()` - Валидация токенов
119
+
120
+ ### CertificateUtils
121
+
122
+ ```python
123
+ class CertificateUtils:
124
+ @staticmethod
125
+ def create_ca_certificate(
126
+ common_name: str,
127
+ output_dir: str,
128
+ validity_days: int = 365,
129
+ key_size: int = 2048
130
+ ) -> Dict[str, str]
131
+
132
+ @staticmethod
133
+ def create_server_certificate(
134
+ common_name: str,
135
+ ca_cert_path: str,
136
+ ca_key_path: str,
137
+ output_dir: str,
138
+ validity_days: int = 365
139
+ ) -> Dict[str, str]
140
+
141
+ @staticmethod
142
+ def extract_roles_from_certificate_object(
143
+ cert: x509.Certificate
144
+ ) -> List[str]
145
+ ```
146
+
147
+ ### RoleUtils
148
+
149
+ ```python
150
+ class RoleUtils:
151
+ def __init__(self, roles_schema: Optional[Dict[str, Any]] = None)
152
+
153
+ def validate_role_access(
154
+ self,
155
+ user_roles: List[str],
156
+ required_role: str
157
+ ) -> bool
158
+
159
+ def get_role_hierarchy(self, role: str) -> List[str]
160
+
161
+ def compare_roles(
162
+ self,
163
+ role1: str,
164
+ role2: str,
165
+ case_sensitive: bool = False
166
+ ) -> bool
167
+ ```
168
+
169
+ ## 🛡️ Middleware API
170
+
171
+ ### SecurityMiddleware
172
+
173
+ ```python
174
+ class SecurityMiddleware:
175
+ def __init__(self, app: FastAPI, config: Dict[str, Any])
176
+
177
+ @classmethod
178
+ def setup(cls, app: FastAPI, config: Dict[str, Any]) -> None
179
+ ```
180
+
181
+ **Использование:**
182
+ ```python
183
+ from fastapi import FastAPI
184
+ from mcp_security.middleware import SecurityMiddleware
185
+
186
+ app = FastAPI()
187
+
188
+ # Настройка безопасности
189
+ SecurityMiddleware.setup(app, {
190
+ "auth_enabled": True,
191
+ "ssl": {"enabled": True, "mode": "https_only"},
192
+ "roles": {"enabled": True, "config_file": "roles_schema.json"}
193
+ })
194
+ ```
195
+
196
+ ### AuthMiddleware
197
+
198
+ ```python
199
+ class AuthMiddleware(BaseHTTPMiddleware):
200
+ def __init__(
201
+ self,
202
+ app,
203
+ api_keys: Dict[str, str] = None,
204
+ public_paths: List[str] = None,
205
+ auth_enabled: bool = True
206
+ )
207
+ ```
208
+
209
+ ### MTLSMiddleware
210
+
211
+ ```python
212
+ class MTLSMiddleware(BaseMiddleware):
213
+ def __init__(self, app, mtls_config: Dict[str, Any])
214
+
215
+ async def before_request(self, request: Request) -> None
216
+ ```
217
+
218
+ ### RolesMiddleware
219
+
220
+ ```python
221
+ class RolesMiddleware(BaseHTTPMiddleware):
222
+ def __init__(self, app, roles_config_path: str)
223
+
224
+ async def dispatch(self, request: Request, call_next)
225
+ ```
226
+
227
+ ## 🛠️ Utils API
228
+
229
+ ### SchemaLoader
230
+
231
+ ```python
232
+ class SchemaLoader:
233
+ @staticmethod
234
+ def load_roles_schema(file_path: Union[str, Path]) -> Optional[RolesSchema]
235
+
236
+ @staticmethod
237
+ def save_roles_schema(schema: RolesSchema, file_path: Union[str, Path]) -> bool
238
+
239
+ @staticmethod
240
+ def load_security_config(file_path: Union[str, Path]) -> Optional[SecurityConfig]
241
+
242
+ @staticmethod
243
+ def save_security_config(config: SecurityConfig, file_path: Union[str, Path]) -> bool
244
+
245
+ @staticmethod
246
+ def create_default_roles_schema() -> RolesSchema
247
+ ```
248
+
249
+ ### PermissionValidator
250
+
251
+ ```python
252
+ class PermissionValidator:
253
+ def __init__(self, roles_schema: RolesSchema)
254
+
255
+ def validate_access(
256
+ self,
257
+ user_roles: List[str],
258
+ required_permissions: List[str],
259
+ server_role: str = None
260
+ ) -> ValidationResult
261
+
262
+ def check_role_hierarchy(self, user_role: str, required_role: str) -> bool
263
+
264
+ def get_effective_permissions(self, roles: List[str]) -> Set[str]
265
+ ```
266
+
267
+ ### SecuritySerializer
268
+
269
+ ```python
270
+ class SecuritySerializer:
271
+ @staticmethod
272
+ def serialize_roles_schema(schema: RolesSchema) -> str
273
+
274
+ @staticmethod
275
+ def deserialize_roles_schema(data: str) -> RolesSchema
276
+
277
+ @staticmethod
278
+ def serialize_security_config(config: SecurityConfig) -> str
279
+
280
+ @staticmethod
281
+ def deserialize_security_config(data: str) -> SecurityConfig
282
+ ```
283
+
284
+ ## 🚀 Commands API
285
+
286
+ ### CLI Commands
287
+
288
+ ```bash
289
+ # Валидация схемы ролей
290
+ mcp-security validate-schema roles_schema.json
291
+
292
+ # Создание схемы по умолчанию
293
+ mcp-security create-default-schema --output roles.json
294
+
295
+ # Валидация разрешений
296
+ mcp-security validate-permissions --user admin --permission read
297
+
298
+ # Генерация сертификатов
299
+ mcp-security generate-certificates --ca --server --client
300
+
301
+ # Проверка конфигурации
302
+ mcp-security validate-config security_config.json
303
+ ```
304
+
305
+ ## 📊 Error Codes
306
+
307
+ ### JSON-RPC Error Codes
308
+
309
+ ```python
310
+ # Общие ошибки
311
+ -32600: "Invalid Request"
312
+ -32601: "Method not found"
313
+ -32602: "Invalid params"
314
+ -32603: "Internal error"
315
+
316
+ # Ошибки аутентификации
317
+ -32001: "Authentication disabled"
318
+ -32002: "Invalid configuration"
319
+ -32003: "Certificate validation failed"
320
+ -32004: "Token validation failed"
321
+ -32005: "MTLS validation failed"
322
+ -32006: "SSL validation failed"
323
+ -32007: "Role validation failed"
324
+ -32008: "Certificate expired"
325
+ -32009: "Certificate not found"
326
+ -32010: "Token expired"
327
+ -32011: "Token not found"
328
+ ```
329
+
330
+ ## 🔍 Примеры использования
331
+
332
+ ### Базовый пример
333
+
334
+ ```python
335
+ from mcp_security import SecurityConfig, RolesSchema, PermissionValidator
336
+ from mcp_security.utils import SchemaLoader
337
+
338
+ # Загрузка конфигурации
339
+ config = SchemaLoader.load_security_config("security_config.json")
340
+ roles_schema = SchemaLoader.load_roles_schema("roles_schema.json")
341
+
342
+ # Создание валидатора
343
+ validator = PermissionValidator(roles_schema)
344
+
345
+ # Проверка доступа
346
+ result = validator.validate_access(
347
+ user_roles=["admin"],
348
+ required_permissions=["read", "write"],
349
+ server_role="kubernetes_manager"
350
+ )
351
+
352
+ if result.is_valid:
353
+ print("Access granted")
354
+ else:
355
+ print(f"Access denied: {result.error_message}")
356
+ ```
357
+
358
+ ### FastAPI интеграция
359
+
360
+ ```python
361
+ from fastapi import FastAPI
362
+ from mcp_security.middleware import SecurityMiddleware
363
+
364
+ app = FastAPI()
365
+
366
+ # Настройка безопасности
367
+ security_config = {
368
+ "auth_enabled": True,
369
+ "ssl": {
370
+ "enabled": True,
371
+ "mode": "mtls",
372
+ "cert_file": "./certs/server.crt",
373
+ "key_file": "./certs/server.key",
374
+ "ca_cert": "./certs/ca.crt"
375
+ },
376
+ "roles": {
377
+ "enabled": True,
378
+ "config_file": "schemas/roles_schema.json"
379
+ },
380
+ "rate_limit": {
381
+ "enabled": True,
382
+ "requests_per_minute": 100
383
+ }
384
+ }
385
+
386
+ SecurityMiddleware.setup(app, security_config)
387
+
388
+ @app.get("/secure-endpoint")
389
+ async def secure_endpoint():
390
+ return {"message": "This is a secure endpoint"}
391
+ ```
392
+
393
+ ## 📝 Конфигурация
394
+
395
+ ### Пример конфигурации безопасности
396
+
397
+ ```json
398
+ {
399
+ "auth_enabled": true,
400
+ "ssl": {
401
+ "enabled": true,
402
+ "mode": "mtls",
403
+ "cert_file": "./certs/server.crt",
404
+ "key_file": "./certs/server.key",
405
+ "ca_cert": "./certs/ca.crt",
406
+ "verify_client": true,
407
+ "client_cert_required": true
408
+ },
409
+ "roles": {
410
+ "enabled": true,
411
+ "config_file": "schemas/roles_schema.json",
412
+ "default_policy": {
413
+ "deny_by_default": true,
414
+ "require_role_match": true,
415
+ "case_sensitive": false,
416
+ "allow_wildcard": true
417
+ }
418
+ },
419
+ "rate_limit": {
420
+ "enabled": true,
421
+ "requests_per_minute": 100,
422
+ "time_window": 60,
423
+ "by_ip": true,
424
+ "by_user": true
425
+ }
426
+ }
427
+ ```
428
+
429
+ ## 🔒 Безопасность
430
+
431
+ ### Рекомендации по безопасности
432
+
433
+ 1. **Сертификаты**: Используйте сильные ключи (2048+ бит)
434
+ 2. **Токены**: Используйте длинные секретные ключи (32+ символов)
435
+ 3. **Роли**: Применяйте принцип наименьших привилегий
436
+ 4. **Rate Limiting**: Настройте разумные лимиты
437
+ 5. **Логирование**: Ведите аудит доступа
438
+
439
+ ### Аудит безопасности
440
+
441
+ ```python
442
+ from mcp_security.utils import SecurityAuditor
443
+
444
+ auditor = SecurityAuditor(config)
445
+ audit_report = auditor.run_security_audit()
446
+
447
+ print(f"Security score: {audit_report.score}")
448
+ print(f"Vulnerabilities: {audit_report.vulnerabilities}")
449
+ ```
@@ -145,15 +145,42 @@ app.log.2023-05-03
145
145
 
146
146
  ## Logging Levels
147
147
 
148
- The system supports standard Python logging levels:
149
-
150
- | Level | Value | Description |
151
- |-------|-------|-------------|
152
- | DEBUG | 10 | Detailed information for debugging |
153
- | INFO | 20 | Confirmation of normal operations |
154
- | WARNING | 30 | Indication of a potential problem |
155
- | ERROR | 40 | Error that prevents a function from working |
156
- | CRITICAL | 50 | Critical error threatening the entire system |
148
+ The system supports standard logging levels:
149
+
150
+ - **DEBUG** - Detailed information for debugging
151
+ - **INFO** - General information about application operation
152
+ - **WARNING** - Warning messages about potential issues
153
+ - **ERROR** - Error messages about problems that occurred
154
+ - **CRITICAL** - Critical errors that may cause application failure
155
+
156
+ ### Special Logging Rules
157
+
158
+ #### OpenAPI Schema Requests
159
+
160
+ Requests to `/openapi.json` are automatically logged at **DEBUG** level instead of **INFO** to reduce log noise:
161
+
162
+ ```
163
+ # Before (INFO level - noisy)
164
+ 2025-08-12 20:15:17 [ INFO] Request started: GET http://192.168.252.17:8060/openapi.json | Client: 192.168.252.17
165
+
166
+ # After (DEBUG level - quiet)
167
+ 2025-08-12 20:15:17 [ DEBUG] Request started: GET http://192.168.252.17:8060/openapi.json | Client: 192.168.252.17
168
+ ```
169
+
170
+ This applies to:
171
+ - Request start logging
172
+ - Request completion logging
173
+ - Request error logging
174
+
175
+ To see these logs, set the logging level to DEBUG:
176
+
177
+ ```json
178
+ {
179
+ "logging": {
180
+ "level": "DEBUG"
181
+ }
182
+ }
183
+ ```
157
184
 
158
185
  ## Context Logging
159
186