mcp-proxy-adapter 6.4.10__tar.gz → 6.4.11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mcp_proxy_adapter-6.4.11/PKG-INFO +156 -0
- mcp_proxy_adapter-6.4.11/README.md +97 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/run_full_test_suite.py +122 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/setup_test_environment.py +12 -11
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/version.py +1 -1
- mcp_proxy_adapter-6.4.11/mcp_proxy_adapter.egg-info/PKG-INFO +156 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter.egg-info/SOURCES.txt +8 -11
- mcp_proxy_adapter-6.4.11/mcp_proxy_adapter.egg-info/dependency_links.txt +1 -0
- mcp_proxy_adapter-6.4.11/mcp_proxy_adapter.egg-info/entry_points.txt +2 -0
- mcp_proxy_adapter-6.4.11/mcp_proxy_adapter.egg-info/not-zip-safe +1 -0
- mcp_proxy_adapter-6.4.11/mcp_proxy_adapter.egg-info/requires.txt +27 -0
- mcp_proxy_adapter-6.4.11/mcp_proxy_adapter.egg-info/top_level.txt +1 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/pyproject.toml +2 -6
- mcp_proxy_adapter-6.4.11/setup.py +111 -0
- mcp_proxy_adapter-6.4.10/MANIFEST.in +0 -40
- mcp_proxy_adapter-6.4.10/PKG-INFO +0 -680
- mcp_proxy_adapter-6.4.10/README.md +0 -621
- mcp_proxy_adapter-6.4.10/mcp_proxy_adapter/examples/basic_framework/roles.json +0 -21
- mcp_proxy_adapter-6.4.10/mcp_proxy_adapter/examples/full_application/roles.json +0 -21
- mcp_proxy_adapter-6.4.10/mcp_proxy_adapter/examples/generate_comprehensive_config.py +0 -177
- mcp_proxy_adapter-6.4.10/mcp_proxy_adapter/examples/test_mcp_adapter.py +0 -207
- mcp_proxy_adapter-6.4.10/mcp_proxy_adapter/schemas/base_schema.json +0 -114
- mcp_proxy_adapter-6.4.10/mcp_proxy_adapter/schemas/openapi_schema.json +0 -314
- mcp_proxy_adapter-6.4.10/mcp_proxy_adapter/utils/config_generator.py +0 -1167
- mcp_proxy_adapter-6.4.10/mcp_proxy_adapter_issue_package/demonstrate_issue.py +0 -208
- mcp_proxy_adapter-6.4.10/requirements.txt +0 -8
- mcp_proxy_adapter-6.4.10/setup.py +0 -624
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/__main__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/app.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/handlers.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/base.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/command_permission_middleware.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/error_handling.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/factory.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/logging.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/performance.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/protocol_middleware.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/transport_middleware.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/unified_security.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/middleware/user_info_middleware.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/schemas.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/tool_integration.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/api/tools.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/auth_validation_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/base.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/builtin_commands.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/catalog_manager.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/cert_monitor_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/certificate_management_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/command_registry.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/config_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/dependency_container.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/dependency_manager.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/echo_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/health_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/help_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/hooks.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/key_management_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/load_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/plugins_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/protocol_management_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/proxy_registration_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/reload_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/result.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/role_test_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/roles_management_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/security_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/settings_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/ssl_setup_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/token_management_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/transport_management_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/commands/unload_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/config.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/app_factory.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/app_runner.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/auth_validator.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/certificate_utils.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/client.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/client_manager.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/client_security.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/config_converter.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/config_validator.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/crl_utils.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/errors.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/logging.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/mtls_asgi.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/mtls_asgi_app.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/protocol_manager.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/proxy_client.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/proxy_registration.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/role_utils.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/security_adapter.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/security_factory.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/security_integration.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/server_adapter.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/server_engine.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/settings.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/ssl_utils.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/transport_manager.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/unified_config_adapter.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/core/utils.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/custom_openapi.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/basic_framework/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/basic_framework/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/basic_framework/main.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/create_certificates_simple.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/debug_request_state.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/debug_role_chain.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/demo_client.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/basic_framework/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/basic_framework/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/basic_framework/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/basic_framework/main.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/full_application/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/full_application/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/full_application/commands/custom_echo_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/full_application/commands/dynamic_calculator_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/full_application/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/full_application/hooks/application_hooks.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/full_application/hooks/builtin_command_hooks.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/full_application/main.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/examples/full_application/proxy_endpoints.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/full_application/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/full_application/commands/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/full_application/hooks/__init__.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/full_application/main.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/full_application/proxy_endpoints.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/generate_all_certificates.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/generate_certificates.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/generate_certificates_and_tokens.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/generate_test_configs.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/proxy_registration_example.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/run_example.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/run_proxy_server.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/run_security_tests.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/run_security_tests_fixed.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/scripts/config_generator.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/scripts/create_certificates_simple.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/scripts/generate_certificates_and_tokens.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/security_test_client.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/test_config.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/test_config_generator.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/test_examples.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/examples/universal_client.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/main.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter/openapi.py +0 -0
- {mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/setup.cfg +0 -0
@@ -0,0 +1,156 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: mcp-proxy-adapter
|
3
|
+
Version: 6.4.11
|
4
|
+
Summary: Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration
|
5
|
+
Home-page: https://github.com/maverikod/mcp-proxy-adapter
|
6
|
+
Author: Vasiliy Zdanovskiy
|
7
|
+
Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
8
|
+
Maintainer: Vasiliy Zdanovskiy
|
9
|
+
Maintainer-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
10
|
+
License: MIT
|
11
|
+
Project-URL: Homepage, https://github.com/maverikod/mcp-proxy-adapter
|
12
|
+
Project-URL: Documentation, https://github.com/maverikod/mcp-proxy-adapter#readme
|
13
|
+
Project-URL: Source, https://github.com/maverikod/mcp-proxy-adapter
|
14
|
+
Project-URL: Tracker, https://github.com/maverikod/mcp-proxy-adapter/issues
|
15
|
+
Project-URL: PyPI, https://pypi.org/project/mcp-proxy-adapter/
|
16
|
+
Keywords: json-rpc,microservices,fastapi,security,authentication,authorization,proxy,mcp,mtls,ssl,rest,api
|
17
|
+
Classifier: Development Status :: 4 - Beta
|
18
|
+
Classifier: Intended Audience :: Developers
|
19
|
+
Classifier: Operating System :: OS Independent
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
21
|
+
Classifier: Programming Language :: Python :: 3.9
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
25
|
+
Classifier: Framework :: FastAPI
|
26
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
27
|
+
Classifier: Topic :: Security
|
28
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
29
|
+
Requires-Python: >=3.9
|
30
|
+
Description-Content-Type: text/markdown
|
31
|
+
Requires-Dist: fastapi<1.0.0,>=0.95.0
|
32
|
+
Requires-Dist: pydantic>=2.0.0
|
33
|
+
Requires-Dist: hypercorn<1.0.0,>=0.15.0
|
34
|
+
Requires-Dist: docstring-parser<1.0.0,>=0.15
|
35
|
+
Requires-Dist: typing-extensions<5.0.0,>=4.5.0
|
36
|
+
Requires-Dist: jsonrpc>=1.2.0
|
37
|
+
Requires-Dist: psutil>=5.9.0
|
38
|
+
Requires-Dist: mcp_security_framework>=1.1.2
|
39
|
+
Requires-Dist: packaging>=20.0
|
40
|
+
Requires-Dist: aiohttp<4.0.0,>=3.8.0
|
41
|
+
Requires-Dist: requests<3.0.0,>=2.28.0
|
42
|
+
Provides-Extra: dev
|
43
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
44
|
+
Requires-Dist: pytest-asyncio>=0.20.0; extra == "dev"
|
45
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
46
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
47
|
+
Requires-Dist: isort>=5.12.0; extra == "dev"
|
48
|
+
Provides-Extra: test
|
49
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
50
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
|
51
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
52
|
+
Requires-Dist: httpx>=0.24.0; extra == "test"
|
53
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "test"
|
54
|
+
Provides-Extra: examples
|
55
|
+
Dynamic: author
|
56
|
+
Dynamic: home-page
|
57
|
+
Dynamic: maintainer
|
58
|
+
Dynamic: requires-python
|
59
|
+
|
60
|
+
# MCP Proxy Adapter
|
61
|
+
|
62
|
+
**Author:** Vasiliy Zdanovskiy
|
63
|
+
**Email:** vasilyvz@gmail.com
|
64
|
+
|
65
|
+
## Overview
|
66
|
+
|
67
|
+
MCP Proxy Adapter is a comprehensive framework for building JSON-RPC API servers with built-in security, SSL/TLS support, and proxy registration capabilities. It provides a unified interface for command execution, protocol management, and security enforcement.
|
68
|
+
|
69
|
+
## Features
|
70
|
+
|
71
|
+
- **JSON-RPC API**: Full JSON-RPC 2.0 support with built-in commands
|
72
|
+
- **Security Framework**: Integrated authentication, authorization, and SSL/TLS
|
73
|
+
- **Protocol Management**: HTTP, HTTPS, and mTLS protocol support
|
74
|
+
- **Proxy Registration**: Automatic registration with proxy servers
|
75
|
+
- **Command System**: Extensible command registry with built-in commands
|
76
|
+
- **Configuration Management**: Comprehensive configuration with environment variable overrides
|
77
|
+
|
78
|
+
## Quick Start
|
79
|
+
|
80
|
+
1. **Installation**:
|
81
|
+
```bash
|
82
|
+
pip install mcp-proxy-adapter
|
83
|
+
```
|
84
|
+
|
85
|
+
2. **Basic Configuration**:
|
86
|
+
```bash
|
87
|
+
# Use the comprehensive config with all options disabled by default
|
88
|
+
python -m mcp_proxy_adapter --config config.json
|
89
|
+
```
|
90
|
+
|
91
|
+
3. **Access the API**:
|
92
|
+
- Health check: `GET http://localhost:8000/health`
|
93
|
+
- JSON-RPC: `POST http://localhost:8000/api/jsonrpc`
|
94
|
+
- REST API: `POST http://localhost:8000/cmd`
|
95
|
+
- Documentation: `http://localhost:8000/docs`
|
96
|
+
|
97
|
+
## Configuration
|
98
|
+
|
99
|
+
The adapter uses a comprehensive JSON configuration file (`config.json`) that includes all available options with sensible defaults. All features are disabled by default and can be enabled as needed:
|
100
|
+
|
101
|
+
- **Server settings**: Host, port, debug mode
|
102
|
+
- **Security**: Authentication methods, SSL/TLS, permissions
|
103
|
+
- **Protocols**: HTTP/HTTPS/mTLS configuration
|
104
|
+
- **Proxy registration**: Automatic server registration
|
105
|
+
- **Logging**: Comprehensive logging configuration
|
106
|
+
- **Commands**: Built-in and custom command management
|
107
|
+
|
108
|
+
See `docs/EN/configuration.md` for complete configuration documentation.
|
109
|
+
|
110
|
+
## Built-in Commands
|
111
|
+
|
112
|
+
- `health` - Server health check
|
113
|
+
- `echo` - Echo test command
|
114
|
+
- `config` - Configuration management
|
115
|
+
- `help` - Command help and documentation
|
116
|
+
- `reload` - Configuration reload
|
117
|
+
- `settings` - Settings management
|
118
|
+
- `load`/`unload` - Command loading/unloading
|
119
|
+
- `plugins` - Plugin management
|
120
|
+
- `proxy_registration` - Proxy registration control
|
121
|
+
- `transport_management` - Transport protocol management
|
122
|
+
- `role_test` - Role-based access testing
|
123
|
+
|
124
|
+
## Security Features
|
125
|
+
|
126
|
+
- **Authentication**: API keys, JWT tokens, certificate-based auth
|
127
|
+
- **Authorization**: Role-based permissions with wildcard support
|
128
|
+
- **SSL/TLS**: Full SSL/TLS and mTLS support
|
129
|
+
- **Rate Limiting**: Configurable request rate limiting
|
130
|
+
- **Security Headers**: Automatic security header injection
|
131
|
+
|
132
|
+
## Examples
|
133
|
+
|
134
|
+
The `mcp_proxy_adapter/examples/` directory contains comprehensive examples for different use cases:
|
135
|
+
|
136
|
+
- **Basic Framework**: Simple HTTP server setup
|
137
|
+
- **Full Application**: Complete application with custom commands and hooks
|
138
|
+
- **Security Testing**: Comprehensive security test suite
|
139
|
+
- **Certificate Generation**: SSL/TLS certificate management
|
140
|
+
|
141
|
+
## Development
|
142
|
+
|
143
|
+
The project follows a modular architecture:
|
144
|
+
|
145
|
+
- `mcp_proxy_adapter/api/` - FastAPI application and handlers
|
146
|
+
- `mcp_proxy_adapter/commands/` - Command system and built-in commands
|
147
|
+
- `mcp_proxy_adapter/core/` - Core functionality and utilities
|
148
|
+
- `mcp_proxy_adapter/config.py` - Configuration management
|
149
|
+
|
150
|
+
## License
|
151
|
+
|
152
|
+
This project is licensed under the MIT License.
|
153
|
+
|
154
|
+
## Support
|
155
|
+
|
156
|
+
For issues and questions, please contact vasilyvz@gmail.com.
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# MCP Proxy Adapter
|
2
|
+
|
3
|
+
**Author:** Vasiliy Zdanovskiy
|
4
|
+
**Email:** vasilyvz@gmail.com
|
5
|
+
|
6
|
+
## Overview
|
7
|
+
|
8
|
+
MCP Proxy Adapter is a comprehensive framework for building JSON-RPC API servers with built-in security, SSL/TLS support, and proxy registration capabilities. It provides a unified interface for command execution, protocol management, and security enforcement.
|
9
|
+
|
10
|
+
## Features
|
11
|
+
|
12
|
+
- **JSON-RPC API**: Full JSON-RPC 2.0 support with built-in commands
|
13
|
+
- **Security Framework**: Integrated authentication, authorization, and SSL/TLS
|
14
|
+
- **Protocol Management**: HTTP, HTTPS, and mTLS protocol support
|
15
|
+
- **Proxy Registration**: Automatic registration with proxy servers
|
16
|
+
- **Command System**: Extensible command registry with built-in commands
|
17
|
+
- **Configuration Management**: Comprehensive configuration with environment variable overrides
|
18
|
+
|
19
|
+
## Quick Start
|
20
|
+
|
21
|
+
1. **Installation**:
|
22
|
+
```bash
|
23
|
+
pip install mcp-proxy-adapter
|
24
|
+
```
|
25
|
+
|
26
|
+
2. **Basic Configuration**:
|
27
|
+
```bash
|
28
|
+
# Use the comprehensive config with all options disabled by default
|
29
|
+
python -m mcp_proxy_adapter --config config.json
|
30
|
+
```
|
31
|
+
|
32
|
+
3. **Access the API**:
|
33
|
+
- Health check: `GET http://localhost:8000/health`
|
34
|
+
- JSON-RPC: `POST http://localhost:8000/api/jsonrpc`
|
35
|
+
- REST API: `POST http://localhost:8000/cmd`
|
36
|
+
- Documentation: `http://localhost:8000/docs`
|
37
|
+
|
38
|
+
## Configuration
|
39
|
+
|
40
|
+
The adapter uses a comprehensive JSON configuration file (`config.json`) that includes all available options with sensible defaults. All features are disabled by default and can be enabled as needed:
|
41
|
+
|
42
|
+
- **Server settings**: Host, port, debug mode
|
43
|
+
- **Security**: Authentication methods, SSL/TLS, permissions
|
44
|
+
- **Protocols**: HTTP/HTTPS/mTLS configuration
|
45
|
+
- **Proxy registration**: Automatic server registration
|
46
|
+
- **Logging**: Comprehensive logging configuration
|
47
|
+
- **Commands**: Built-in and custom command management
|
48
|
+
|
49
|
+
See `docs/EN/configuration.md` for complete configuration documentation.
|
50
|
+
|
51
|
+
## Built-in Commands
|
52
|
+
|
53
|
+
- `health` - Server health check
|
54
|
+
- `echo` - Echo test command
|
55
|
+
- `config` - Configuration management
|
56
|
+
- `help` - Command help and documentation
|
57
|
+
- `reload` - Configuration reload
|
58
|
+
- `settings` - Settings management
|
59
|
+
- `load`/`unload` - Command loading/unloading
|
60
|
+
- `plugins` - Plugin management
|
61
|
+
- `proxy_registration` - Proxy registration control
|
62
|
+
- `transport_management` - Transport protocol management
|
63
|
+
- `role_test` - Role-based access testing
|
64
|
+
|
65
|
+
## Security Features
|
66
|
+
|
67
|
+
- **Authentication**: API keys, JWT tokens, certificate-based auth
|
68
|
+
- **Authorization**: Role-based permissions with wildcard support
|
69
|
+
- **SSL/TLS**: Full SSL/TLS and mTLS support
|
70
|
+
- **Rate Limiting**: Configurable request rate limiting
|
71
|
+
- **Security Headers**: Automatic security header injection
|
72
|
+
|
73
|
+
## Examples
|
74
|
+
|
75
|
+
The `mcp_proxy_adapter/examples/` directory contains comprehensive examples for different use cases:
|
76
|
+
|
77
|
+
- **Basic Framework**: Simple HTTP server setup
|
78
|
+
- **Full Application**: Complete application with custom commands and hooks
|
79
|
+
- **Security Testing**: Comprehensive security test suite
|
80
|
+
- **Certificate Generation**: SSL/TLS certificate management
|
81
|
+
|
82
|
+
## Development
|
83
|
+
|
84
|
+
The project follows a modular architecture:
|
85
|
+
|
86
|
+
- `mcp_proxy_adapter/api/` - FastAPI application and handlers
|
87
|
+
- `mcp_proxy_adapter/commands/` - Command system and built-in commands
|
88
|
+
- `mcp_proxy_adapter/core/` - Core functionality and utilities
|
89
|
+
- `mcp_proxy_adapter/config.py` - Configuration management
|
90
|
+
|
91
|
+
## License
|
92
|
+
|
93
|
+
This project is licensed under the MIT License.
|
94
|
+
|
95
|
+
## Support
|
96
|
+
|
97
|
+
For issues and questions, please contact vasilyvz@gmail.com.
|
@@ -235,6 +235,123 @@ class FullTestSuiteRunner:
|
|
235
235
|
self.print_error(f"Failed to run security tests: {e}")
|
236
236
|
return False
|
237
237
|
|
238
|
+
def run_mtls_registration_test(self) -> bool:
|
239
|
+
"""Run mTLS with proxy registration test."""
|
240
|
+
self.print_step("6", "mTLS Proxy Registration Testing")
|
241
|
+
|
242
|
+
try:
|
243
|
+
# Check if test_proxy_registration.py exists
|
244
|
+
test_script = self.working_dir / "test_proxy_registration.py"
|
245
|
+
if not test_script.exists():
|
246
|
+
self.print_error(f"Test script not found: {test_script}")
|
247
|
+
return False
|
248
|
+
|
249
|
+
# Create test_proxy_registration.json config if it doesn't exist
|
250
|
+
test_config = self.configs_dir / "test_proxy_registration.json"
|
251
|
+
if not test_config.exists():
|
252
|
+
self.print_info("Creating test_proxy_registration.json configuration...")
|
253
|
+
test_config_content = {
|
254
|
+
"uuid": "550e8400-e29b-41d4-a716-446655440001",
|
255
|
+
"server": {
|
256
|
+
"host": "127.0.0.1",
|
257
|
+
"port": 20005
|
258
|
+
},
|
259
|
+
"ssl": {
|
260
|
+
"enabled": True,
|
261
|
+
"cert_file": "certs/localhost_server.crt",
|
262
|
+
"key_file": "keys/localhost_server.key",
|
263
|
+
"ca_cert": "certs/mcp_proxy_adapter_ca_ca.crt",
|
264
|
+
"client_cert_file": "certs/admin_cert.pem",
|
265
|
+
"client_key_file": "certs/admin_key.pem",
|
266
|
+
"verify_client": True
|
267
|
+
},
|
268
|
+
"registration": {
|
269
|
+
"enabled": True,
|
270
|
+
"auth_method": "token",
|
271
|
+
"server_url": "http://127.0.0.1:3006/proxy",
|
272
|
+
"token": {
|
273
|
+
"enabled": True,
|
274
|
+
"token": "proxy_registration_token_123"
|
275
|
+
},
|
276
|
+
"proxy_info": {
|
277
|
+
"name": "mcp_test_server",
|
278
|
+
"capabilities": [
|
279
|
+
"jsonrpc",
|
280
|
+
"rest",
|
281
|
+
"security",
|
282
|
+
"proxy_registration"
|
283
|
+
],
|
284
|
+
"endpoints": {
|
285
|
+
"jsonrpc": "/api/jsonrpc",
|
286
|
+
"rest": "/cmd",
|
287
|
+
"health": "/health"
|
288
|
+
}
|
289
|
+
},
|
290
|
+
"heartbeat": {
|
291
|
+
"enabled": True,
|
292
|
+
"interval": 30
|
293
|
+
}
|
294
|
+
},
|
295
|
+
"security": {
|
296
|
+
"enabled": True,
|
297
|
+
"auth": {
|
298
|
+
"enabled": True,
|
299
|
+
"methods": [
|
300
|
+
"certificate"
|
301
|
+
]
|
302
|
+
},
|
303
|
+
"permissions": {
|
304
|
+
"enabled": True,
|
305
|
+
"roles_file": "configs/roles.json"
|
306
|
+
}
|
307
|
+
},
|
308
|
+
"protocols": {
|
309
|
+
"enabled": True,
|
310
|
+
"default_protocol": "mtls",
|
311
|
+
"allowed_protocols": [
|
312
|
+
"https",
|
313
|
+
"mtls"
|
314
|
+
]
|
315
|
+
}
|
316
|
+
}
|
317
|
+
|
318
|
+
import json
|
319
|
+
with open(test_config, 'w', encoding='utf-8') as f:
|
320
|
+
json.dump(test_config_content, f, indent=2)
|
321
|
+
self.print_success(f"Created test configuration: {test_config}")
|
322
|
+
|
323
|
+
self.print_info("Running mTLS proxy registration test...")
|
324
|
+
self.print_info("This test verifies:")
|
325
|
+
self.print_info(" - mTLS server startup with client certificate verification")
|
326
|
+
self.print_info(" - Proxy registration functionality")
|
327
|
+
self.print_info(" - SSL configuration validation")
|
328
|
+
|
329
|
+
# Run the test
|
330
|
+
cmd = [sys.executable, "test_proxy_registration.py"]
|
331
|
+
result = subprocess.run(
|
332
|
+
cmd, capture_output=True, text=True, cwd=self.working_dir
|
333
|
+
)
|
334
|
+
|
335
|
+
if result.returncode == 0:
|
336
|
+
self.print_success("mTLS proxy registration test completed successfully!")
|
337
|
+
if result.stdout:
|
338
|
+
print("Test output:")
|
339
|
+
print(result.stdout)
|
340
|
+
return True
|
341
|
+
else:
|
342
|
+
self.print_error("mTLS proxy registration test failed!")
|
343
|
+
if result.stdout:
|
344
|
+
print("Test output:")
|
345
|
+
print(result.stdout)
|
346
|
+
if result.stderr:
|
347
|
+
print("Error output:")
|
348
|
+
print(result.stderr)
|
349
|
+
return False
|
350
|
+
|
351
|
+
except Exception as e:
|
352
|
+
self.print_error(f"Failed to run mTLS registration test: {e}")
|
353
|
+
return False
|
354
|
+
|
238
355
|
def cleanup(self):
|
239
356
|
"""Clean up temporary files and processes."""
|
240
357
|
self.print_info("Cleaning up...")
|
@@ -305,6 +422,10 @@ class FullTestSuiteRunner:
|
|
305
422
|
if not self.run_security_tests():
|
306
423
|
return False
|
307
424
|
|
425
|
+
# Step 6: mTLS proxy registration testing
|
426
|
+
if not self.run_mtls_registration_test():
|
427
|
+
return False
|
428
|
+
|
308
429
|
# All steps completed successfully
|
309
430
|
print(f"\n{'='*60}")
|
310
431
|
print("🎉 FULL TEST SUITE COMPLETED SUCCESSFULLY!")
|
@@ -315,6 +436,7 @@ class FullTestSuiteRunner:
|
|
315
436
|
print("✅ Certificates generated")
|
316
437
|
print("✅ Configurations generated")
|
317
438
|
print("✅ Security tests passed")
|
439
|
+
print("✅ mTLS proxy registration test passed")
|
318
440
|
print(f"\n📁 Test artifacts created in: {self.working_dir}")
|
319
441
|
print(f"📁 Configurations: {self.configs_dir}")
|
320
442
|
print(f"📁 Certificates: {self.certs_dir}")
|
@@ -420,7 +420,8 @@ import asyncio
|
|
420
420
|
import ssl
|
421
421
|
from fastapi import FastAPI, Request
|
422
422
|
from fastapi.responses import JSONResponse
|
423
|
-
import
|
423
|
+
from hypercorn.asyncio import serve
|
424
|
+
from hypercorn.config import Config
|
424
425
|
|
425
426
|
|
426
427
|
app = FastAPI(title="Test mTLS Proxy Server", version="1.0.0")
|
@@ -472,7 +473,7 @@ async def health_check():
|
|
472
473
|
)
|
473
474
|
|
474
475
|
|
475
|
-
def main():
|
476
|
+
async def main():
|
476
477
|
"""Run the mTLS proxy server."""
|
477
478
|
print("🚀 Starting Test mTLS Proxy Server...")
|
478
479
|
print("📡 Server URL: https://127.0.0.1:3004")
|
@@ -482,19 +483,19 @@ def main():
|
|
482
483
|
print(" GET /health - Health check")
|
483
484
|
print("⚡ Press Ctrl+C to stop\\n")
|
484
485
|
|
486
|
+
# Configure hypercorn
|
487
|
+
config = Config()
|
488
|
+
config.bind = ["127.0.0.1:3004"]
|
489
|
+
config.keyfile = "mtls_certificates/server/mcp-proxy.key"
|
490
|
+
config.certfile = "mtls_certificates/server/mcp-proxy.pem"
|
491
|
+
config.loglevel = "info"
|
492
|
+
|
485
493
|
# Run server with mTLS
|
486
|
-
|
487
|
-
app,
|
488
|
-
host="127.0.0.1",
|
489
|
-
port=3004,
|
490
|
-
ssl_keyfile="mtls_certificates/server/mcp-proxy.key",
|
491
|
-
ssl_certfile="mtls_certificates/server/mcp-proxy.pem",
|
492
|
-
log_level="info"
|
493
|
-
)
|
494
|
+
await serve(app, config)
|
494
495
|
|
495
496
|
|
496
497
|
if __name__ == "__main__":
|
497
|
-
main()
|
498
|
+
asyncio.run(main())
|
498
499
|
'''
|
499
500
|
)
|
500
501
|
|
@@ -0,0 +1,156 @@
|
|
1
|
+
Metadata-Version: 2.4
|
2
|
+
Name: mcp-proxy-adapter
|
3
|
+
Version: 6.4.11
|
4
|
+
Summary: Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration
|
5
|
+
Home-page: https://github.com/maverikod/mcp-proxy-adapter
|
6
|
+
Author: Vasiliy Zdanovskiy
|
7
|
+
Author-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
8
|
+
Maintainer: Vasiliy Zdanovskiy
|
9
|
+
Maintainer-email: Vasiliy Zdanovskiy <vasilyvz@gmail.com>
|
10
|
+
License: MIT
|
11
|
+
Project-URL: Homepage, https://github.com/maverikod/mcp-proxy-adapter
|
12
|
+
Project-URL: Documentation, https://github.com/maverikod/mcp-proxy-adapter#readme
|
13
|
+
Project-URL: Source, https://github.com/maverikod/mcp-proxy-adapter
|
14
|
+
Project-URL: Tracker, https://github.com/maverikod/mcp-proxy-adapter/issues
|
15
|
+
Project-URL: PyPI, https://pypi.org/project/mcp-proxy-adapter/
|
16
|
+
Keywords: json-rpc,microservices,fastapi,security,authentication,authorization,proxy,mcp,mtls,ssl,rest,api
|
17
|
+
Classifier: Development Status :: 4 - Beta
|
18
|
+
Classifier: Intended Audience :: Developers
|
19
|
+
Classifier: Operating System :: OS Independent
|
20
|
+
Classifier: Programming Language :: Python :: 3
|
21
|
+
Classifier: Programming Language :: Python :: 3.9
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
25
|
+
Classifier: Framework :: FastAPI
|
26
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
27
|
+
Classifier: Topic :: Security
|
28
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
29
|
+
Requires-Python: >=3.9
|
30
|
+
Description-Content-Type: text/markdown
|
31
|
+
Requires-Dist: fastapi<1.0.0,>=0.95.0
|
32
|
+
Requires-Dist: pydantic>=2.0.0
|
33
|
+
Requires-Dist: hypercorn<1.0.0,>=0.15.0
|
34
|
+
Requires-Dist: docstring-parser<1.0.0,>=0.15
|
35
|
+
Requires-Dist: typing-extensions<5.0.0,>=4.5.0
|
36
|
+
Requires-Dist: jsonrpc>=1.2.0
|
37
|
+
Requires-Dist: psutil>=5.9.0
|
38
|
+
Requires-Dist: mcp_security_framework>=1.1.2
|
39
|
+
Requires-Dist: packaging>=20.0
|
40
|
+
Requires-Dist: aiohttp<4.0.0,>=3.8.0
|
41
|
+
Requires-Dist: requests<3.0.0,>=2.28.0
|
42
|
+
Provides-Extra: dev
|
43
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
44
|
+
Requires-Dist: pytest-asyncio>=0.20.0; extra == "dev"
|
45
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
46
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
47
|
+
Requires-Dist: isort>=5.12.0; extra == "dev"
|
48
|
+
Provides-Extra: test
|
49
|
+
Requires-Dist: pytest>=7.0.0; extra == "test"
|
50
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
|
51
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
|
52
|
+
Requires-Dist: httpx>=0.24.0; extra == "test"
|
53
|
+
Requires-Dist: pytest-mock>=3.10.0; extra == "test"
|
54
|
+
Provides-Extra: examples
|
55
|
+
Dynamic: author
|
56
|
+
Dynamic: home-page
|
57
|
+
Dynamic: maintainer
|
58
|
+
Dynamic: requires-python
|
59
|
+
|
60
|
+
# MCP Proxy Adapter
|
61
|
+
|
62
|
+
**Author:** Vasiliy Zdanovskiy
|
63
|
+
**Email:** vasilyvz@gmail.com
|
64
|
+
|
65
|
+
## Overview
|
66
|
+
|
67
|
+
MCP Proxy Adapter is a comprehensive framework for building JSON-RPC API servers with built-in security, SSL/TLS support, and proxy registration capabilities. It provides a unified interface for command execution, protocol management, and security enforcement.
|
68
|
+
|
69
|
+
## Features
|
70
|
+
|
71
|
+
- **JSON-RPC API**: Full JSON-RPC 2.0 support with built-in commands
|
72
|
+
- **Security Framework**: Integrated authentication, authorization, and SSL/TLS
|
73
|
+
- **Protocol Management**: HTTP, HTTPS, and mTLS protocol support
|
74
|
+
- **Proxy Registration**: Automatic registration with proxy servers
|
75
|
+
- **Command System**: Extensible command registry with built-in commands
|
76
|
+
- **Configuration Management**: Comprehensive configuration with environment variable overrides
|
77
|
+
|
78
|
+
## Quick Start
|
79
|
+
|
80
|
+
1. **Installation**:
|
81
|
+
```bash
|
82
|
+
pip install mcp-proxy-adapter
|
83
|
+
```
|
84
|
+
|
85
|
+
2. **Basic Configuration**:
|
86
|
+
```bash
|
87
|
+
# Use the comprehensive config with all options disabled by default
|
88
|
+
python -m mcp_proxy_adapter --config config.json
|
89
|
+
```
|
90
|
+
|
91
|
+
3. **Access the API**:
|
92
|
+
- Health check: `GET http://localhost:8000/health`
|
93
|
+
- JSON-RPC: `POST http://localhost:8000/api/jsonrpc`
|
94
|
+
- REST API: `POST http://localhost:8000/cmd`
|
95
|
+
- Documentation: `http://localhost:8000/docs`
|
96
|
+
|
97
|
+
## Configuration
|
98
|
+
|
99
|
+
The adapter uses a comprehensive JSON configuration file (`config.json`) that includes all available options with sensible defaults. All features are disabled by default and can be enabled as needed:
|
100
|
+
|
101
|
+
- **Server settings**: Host, port, debug mode
|
102
|
+
- **Security**: Authentication methods, SSL/TLS, permissions
|
103
|
+
- **Protocols**: HTTP/HTTPS/mTLS configuration
|
104
|
+
- **Proxy registration**: Automatic server registration
|
105
|
+
- **Logging**: Comprehensive logging configuration
|
106
|
+
- **Commands**: Built-in and custom command management
|
107
|
+
|
108
|
+
See `docs/EN/configuration.md` for complete configuration documentation.
|
109
|
+
|
110
|
+
## Built-in Commands
|
111
|
+
|
112
|
+
- `health` - Server health check
|
113
|
+
- `echo` - Echo test command
|
114
|
+
- `config` - Configuration management
|
115
|
+
- `help` - Command help and documentation
|
116
|
+
- `reload` - Configuration reload
|
117
|
+
- `settings` - Settings management
|
118
|
+
- `load`/`unload` - Command loading/unloading
|
119
|
+
- `plugins` - Plugin management
|
120
|
+
- `proxy_registration` - Proxy registration control
|
121
|
+
- `transport_management` - Transport protocol management
|
122
|
+
- `role_test` - Role-based access testing
|
123
|
+
|
124
|
+
## Security Features
|
125
|
+
|
126
|
+
- **Authentication**: API keys, JWT tokens, certificate-based auth
|
127
|
+
- **Authorization**: Role-based permissions with wildcard support
|
128
|
+
- **SSL/TLS**: Full SSL/TLS and mTLS support
|
129
|
+
- **Rate Limiting**: Configurable request rate limiting
|
130
|
+
- **Security Headers**: Automatic security header injection
|
131
|
+
|
132
|
+
## Examples
|
133
|
+
|
134
|
+
The `mcp_proxy_adapter/examples/` directory contains comprehensive examples for different use cases:
|
135
|
+
|
136
|
+
- **Basic Framework**: Simple HTTP server setup
|
137
|
+
- **Full Application**: Complete application with custom commands and hooks
|
138
|
+
- **Security Testing**: Comprehensive security test suite
|
139
|
+
- **Certificate Generation**: SSL/TLS certificate management
|
140
|
+
|
141
|
+
## Development
|
142
|
+
|
143
|
+
The project follows a modular architecture:
|
144
|
+
|
145
|
+
- `mcp_proxy_adapter/api/` - FastAPI application and handlers
|
146
|
+
- `mcp_proxy_adapter/commands/` - Command system and built-in commands
|
147
|
+
- `mcp_proxy_adapter/core/` - Core functionality and utilities
|
148
|
+
- `mcp_proxy_adapter/config.py` - Configuration management
|
149
|
+
|
150
|
+
## License
|
151
|
+
|
152
|
+
This project is licensed under the MIT License.
|
153
|
+
|
154
|
+
## Support
|
155
|
+
|
156
|
+
For issues and questions, please contact vasilyvz@gmail.com.
|
{mcp_proxy_adapter-6.4.10 → mcp_proxy_adapter-6.4.11}/mcp_proxy_adapter.egg-info/SOURCES.txt
RENAMED
@@ -1,7 +1,5 @@
|
|
1
|
-
MANIFEST.in
|
2
1
|
README.md
|
3
2
|
pyproject.toml
|
4
|
-
requirements.txt
|
5
3
|
setup.py
|
6
4
|
mcp_proxy_adapter/__init__.py
|
7
5
|
mcp_proxy_adapter/__main__.py
|
@@ -10,6 +8,13 @@ mcp_proxy_adapter/custom_openapi.py
|
|
10
8
|
mcp_proxy_adapter/main.py
|
11
9
|
mcp_proxy_adapter/openapi.py
|
12
10
|
mcp_proxy_adapter/version.py
|
11
|
+
mcp_proxy_adapter.egg-info/PKG-INFO
|
12
|
+
mcp_proxy_adapter.egg-info/SOURCES.txt
|
13
|
+
mcp_proxy_adapter.egg-info/dependency_links.txt
|
14
|
+
mcp_proxy_adapter.egg-info/entry_points.txt
|
15
|
+
mcp_proxy_adapter.egg-info/not-zip-safe
|
16
|
+
mcp_proxy_adapter.egg-info/requires.txt
|
17
|
+
mcp_proxy_adapter.egg-info/top_level.txt
|
13
18
|
mcp_proxy_adapter/api/__init__.py
|
14
19
|
mcp_proxy_adapter/api/app.py
|
15
20
|
mcp_proxy_adapter/api/handlers.py
|
@@ -94,7 +99,6 @@ mcp_proxy_adapter/examples/demo_client.py
|
|
94
99
|
mcp_proxy_adapter/examples/generate_all_certificates.py
|
95
100
|
mcp_proxy_adapter/examples/generate_certificates.py
|
96
101
|
mcp_proxy_adapter/examples/generate_certificates_and_tokens.py
|
97
|
-
mcp_proxy_adapter/examples/generate_comprehensive_config.py
|
98
102
|
mcp_proxy_adapter/examples/generate_test_configs.py
|
99
103
|
mcp_proxy_adapter/examples/proxy_registration_example.py
|
100
104
|
mcp_proxy_adapter/examples/run_example.py
|
@@ -107,11 +111,9 @@ mcp_proxy_adapter/examples/setup_test_environment.py
|
|
107
111
|
mcp_proxy_adapter/examples/test_config.py
|
108
112
|
mcp_proxy_adapter/examples/test_config_generator.py
|
109
113
|
mcp_proxy_adapter/examples/test_examples.py
|
110
|
-
mcp_proxy_adapter/examples/test_mcp_adapter.py
|
111
114
|
mcp_proxy_adapter/examples/universal_client.py
|
112
115
|
mcp_proxy_adapter/examples/basic_framework/__init__.py
|
113
116
|
mcp_proxy_adapter/examples/basic_framework/main.py
|
114
|
-
mcp_proxy_adapter/examples/basic_framework/roles.json
|
115
117
|
mcp_proxy_adapter/examples/basic_framework/commands/__init__.py
|
116
118
|
mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py
|
117
119
|
mcp_proxy_adapter/examples/commands/__init__.py
|
@@ -131,7 +133,6 @@ mcp_proxy_adapter/examples/examples/full_application/hooks/builtin_command_hooks
|
|
131
133
|
mcp_proxy_adapter/examples/full_application/__init__.py
|
132
134
|
mcp_proxy_adapter/examples/full_application/main.py
|
133
135
|
mcp_proxy_adapter/examples/full_application/proxy_endpoints.py
|
134
|
-
mcp_proxy_adapter/examples/full_application/roles.json
|
135
136
|
mcp_proxy_adapter/examples/full_application/commands/__init__.py
|
136
137
|
mcp_proxy_adapter/examples/full_application/commands/custom_echo_command.py
|
137
138
|
mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.py
|
@@ -140,8 +141,4 @@ mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py
|
|
140
141
|
mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py
|
141
142
|
mcp_proxy_adapter/examples/scripts/config_generator.py
|
142
143
|
mcp_proxy_adapter/examples/scripts/create_certificates_simple.py
|
143
|
-
mcp_proxy_adapter/examples/scripts/generate_certificates_and_tokens.py
|
144
|
-
mcp_proxy_adapter/schemas/base_schema.json
|
145
|
-
mcp_proxy_adapter/schemas/openapi_schema.json
|
146
|
-
mcp_proxy_adapter/utils/config_generator.py
|
147
|
-
mcp_proxy_adapter_issue_package/demonstrate_issue.py
|
144
|
+
mcp_proxy_adapter/examples/scripts/generate_certificates_and_tokens.py
|
@@ -0,0 +1 @@
|
|
1
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
|