mcp-proxy-adapter 6.2.24__py3-none-any.whl → 6.2.26__py3-none-any.whl
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/api/app.py +0 -3
- mcp_proxy_adapter/api/middleware/protocol_middleware.py +10 -10
- mcp_proxy_adapter/commands/health_command.py +1 -1
- mcp_proxy_adapter/config.py +234 -23
- mcp_proxy_adapter/core/protocol_manager.py +9 -9
- mcp_proxy_adapter/examples/create_certificates_simple.py +7 -17
- mcp_proxy_adapter/examples/examples/basic_framework/__init__.py +9 -0
- mcp_proxy_adapter/examples/examples/basic_framework/commands/__init__.py +4 -0
- mcp_proxy_adapter/examples/examples/basic_framework/hooks/__init__.py +4 -0
- mcp_proxy_adapter/examples/examples/basic_framework/main.py +44 -0
- mcp_proxy_adapter/examples/examples/full_application/__init__.py +12 -0
- mcp_proxy_adapter/examples/examples/full_application/commands/__init__.py +7 -0
- mcp_proxy_adapter/examples/examples/full_application/commands/custom_echo_command.py +80 -0
- mcp_proxy_adapter/examples/examples/full_application/commands/dynamic_calculator_command.py +90 -0
- mcp_proxy_adapter/examples/examples/full_application/hooks/__init__.py +7 -0
- mcp_proxy_adapter/examples/examples/full_application/hooks/application_hooks.py +75 -0
- mcp_proxy_adapter/examples/examples/full_application/hooks/builtin_command_hooks.py +71 -0
- mcp_proxy_adapter/examples/examples/full_application/main.py +173 -0
- mcp_proxy_adapter/examples/examples/full_application/proxy_endpoints.py +154 -0
- mcp_proxy_adapter/examples/generate_test_configs.py +70 -33
- mcp_proxy_adapter/examples/run_full_test_suite.py +302 -109
- mcp_proxy_adapter/examples/run_security_tests.py +14 -5
- mcp_proxy_adapter/examples/scripts/config_generator.py +740 -0
- mcp_proxy_adapter/examples/scripts/create_certificates_simple.py +560 -0
- mcp_proxy_adapter/examples/scripts/generate_certificates_and_tokens.py +369 -0
- mcp_proxy_adapter/main.py +0 -2
- mcp_proxy_adapter/utils/config_generator.py +275 -7
- {mcp_proxy_adapter-6.2.24.dist-info → mcp_proxy_adapter-6.2.26.dist-info}/METADATA +1 -1
- {mcp_proxy_adapter-6.2.24.dist-info → mcp_proxy_adapter-6.2.26.dist-info}/RECORD +33 -17
- {mcp_proxy_adapter-6.2.24.dist-info → mcp_proxy_adapter-6.2.26.dist-info}/WHEEL +0 -0
- {mcp_proxy_adapter-6.2.24.dist-info → mcp_proxy_adapter-6.2.26.dist-info}/entry_points.txt +0 -0
- {mcp_proxy_adapter-6.2.24.dist-info → mcp_proxy_adapter-6.2.26.dist-info}/licenses/LICENSE +0 -0
- {mcp_proxy_adapter-6.2.24.dist-info → mcp_proxy_adapter-6.2.26.dist-info}/top_level.txt +0 -0
@@ -262,7 +262,11 @@ class ConfigGenerator:
|
|
262
262
|
- "https": HTTPS configuration
|
263
263
|
- "https_token": HTTPS with token authentication
|
264
264
|
- "mtls": mTLS configuration
|
265
|
-
|
265
|
+
- "optional_ssl": Configuration with optional SSL
|
266
|
+
- "optional_auth": Configuration with optional authentication
|
267
|
+
- "optional_proxy_reg": Configuration with optional proxy registration
|
268
|
+
- "custom": Custom configuration with specified features
|
269
|
+
|
266
270
|
Returns:
|
267
271
|
JSON configuration string with comments
|
268
272
|
"""
|
@@ -300,6 +304,14 @@ class ConfigGenerator:
|
|
300
304
|
return self._get_mtls_config(base_config)
|
301
305
|
elif config_type == "mtls_no_protocol_middleware":
|
302
306
|
return self._get_mtls_no_protocol_middleware_config(base_config)
|
307
|
+
elif config_type == "optional_ssl":
|
308
|
+
return self._get_optional_ssl_config(base_config)
|
309
|
+
elif config_type == "optional_auth":
|
310
|
+
return self._get_optional_auth_config(base_config)
|
311
|
+
elif config_type == "optional_proxy_reg":
|
312
|
+
return self._get_optional_proxy_reg_config(base_config)
|
313
|
+
elif config_type == "custom":
|
314
|
+
return self._get_custom_config(base_config)
|
303
315
|
else: # full
|
304
316
|
return base_config
|
305
317
|
|
@@ -543,6 +555,245 @@ class ConfigGenerator:
|
|
543
555
|
|
544
556
|
return config
|
545
557
|
|
558
|
+
def _get_optional_ssl_config(self, base_config: Dict[str, Any]) -> Dict[str, Any]:
|
559
|
+
"""Get configuration with optional SSL support."""
|
560
|
+
config = base_config.copy()
|
561
|
+
|
562
|
+
# Server configuration
|
563
|
+
config["server"]["port"] = 8000
|
564
|
+
|
565
|
+
# SSL configuration - can be enabled/disabled via environment or config
|
566
|
+
config["ssl"]["enabled"] = False # Default disabled, can be enabled
|
567
|
+
config["ssl"]["cert_file"] = "mcp_proxy_adapter/examples/certs/server_cert.pem"
|
568
|
+
config["ssl"]["key_file"] = "mcp_proxy_adapter/examples/certs/server_key.pem"
|
569
|
+
config["ssl"]["ca_cert"] = "mcp_proxy_adapter/examples/certs/ca_cert.pem"
|
570
|
+
config["ssl"]["verify_client"] = False # Can be enabled for mTLS
|
571
|
+
|
572
|
+
# Security framework SSL - mirrors main SSL config
|
573
|
+
config["security"]["ssl"]["enabled"] = False # Default disabled
|
574
|
+
config["security"]["ssl"]["cert_file"] = "mcp_proxy_adapter/examples/certs/server_cert.pem"
|
575
|
+
config["security"]["ssl"]["key_file"] = "mcp_proxy_adapter/examples/certs/server_key.pem"
|
576
|
+
config["security"]["ssl"]["ca_cert_file"] = "mcp_proxy_adapter/examples/certs/ca_cert.pem"
|
577
|
+
config["security"]["ssl"]["client_cert_file"] = "mcp_proxy_adapter/examples/certs/client_cert.pem"
|
578
|
+
config["security"]["ssl"]["client_key_file"] = "mcp_proxy_adapter/examples/certs/client_key.key"
|
579
|
+
|
580
|
+
# Protocols support both HTTP and HTTPS
|
581
|
+
config["protocols"]["enabled"] = True
|
582
|
+
config["protocols"]["allowed_protocols"] = ["http", "https"]
|
583
|
+
config["protocols"]["default_protocol"] = "http"
|
584
|
+
|
585
|
+
# Enable proxy registration with token auth
|
586
|
+
config["registration"]["enabled"] = True
|
587
|
+
config["registration"]["auth_method"] = "token"
|
588
|
+
config["registration"]["token"]["enabled"] = True
|
589
|
+
config["registration"]["token"]["token"] = "proxy_registration_token_123"
|
590
|
+
config["registration"]["server_url"] = "http://127.0.0.1:3004/proxy"
|
591
|
+
|
592
|
+
return config
|
593
|
+
|
594
|
+
def _get_optional_auth_config(self, base_config: Dict[str, Any]) -> Dict[str, Any]:
|
595
|
+
"""Get configuration with optional authentication support."""
|
596
|
+
config = base_config.copy()
|
597
|
+
|
598
|
+
# Server configuration
|
599
|
+
config["server"]["port"] = 8001
|
600
|
+
|
601
|
+
# SSL disabled by default
|
602
|
+
config["ssl"]["enabled"] = False
|
603
|
+
config["security"]["ssl"]["enabled"] = False
|
604
|
+
|
605
|
+
# Authentication configuration - can be enabled/disabled
|
606
|
+
config["security"]["auth"]["enabled"] = False # Default disabled
|
607
|
+
config["security"]["auth"]["methods"] = ["api_key", "jwt"] # Available methods
|
608
|
+
|
609
|
+
# API keys configuration
|
610
|
+
config["security"]["auth"]["api_keys"] = {
|
611
|
+
"admin-token": {
|
612
|
+
"roles": ["admin"],
|
613
|
+
"permissions": ["*"],
|
614
|
+
"expires": None
|
615
|
+
},
|
616
|
+
"user-token": {
|
617
|
+
"roles": ["user"],
|
618
|
+
"permissions": ["read", "execute"],
|
619
|
+
"expires": None
|
620
|
+
},
|
621
|
+
"guest-token": {
|
622
|
+
"roles": ["guest"],
|
623
|
+
"permissions": ["read"],
|
624
|
+
"expires": None
|
625
|
+
}
|
626
|
+
}
|
627
|
+
|
628
|
+
# JWT configuration
|
629
|
+
config["security"]["auth"]["jwt_secret"] = "your_jwt_secret_here"
|
630
|
+
config["security"]["auth"]["jwt_algorithm"] = "HS256"
|
631
|
+
config["security"]["auth"]["jwt_expiry_hours"] = 24
|
632
|
+
|
633
|
+
# User roles mapping
|
634
|
+
config["security"]["auth"]["user_roles"] = {
|
635
|
+
"admin": ["admin"],
|
636
|
+
"user": ["user"],
|
637
|
+
"guest": ["guest"]
|
638
|
+
}
|
639
|
+
|
640
|
+
# Permissions configuration - can be enabled/disabled
|
641
|
+
config["security"]["permissions"]["enabled"] = False # Default disabled
|
642
|
+
config["security"]["permissions"]["roles_file"] = "mcp_proxy_adapter/examples/server_configs/roles.json"
|
643
|
+
config["security"]["permissions"]["default_role"] = "guest"
|
644
|
+
config["security"]["permissions"]["admin_role"] = "admin"
|
645
|
+
|
646
|
+
# Protocols
|
647
|
+
config["protocols"]["enabled"] = True
|
648
|
+
config["protocols"]["allowed_protocols"] = ["http"]
|
649
|
+
config["protocols"]["default_protocol"] = "http"
|
650
|
+
|
651
|
+
# Enable proxy registration
|
652
|
+
config["registration"]["enabled"] = True
|
653
|
+
config["registration"]["auth_method"] = "token"
|
654
|
+
config["registration"]["token"]["enabled"] = True
|
655
|
+
config["registration"]["token"]["token"] = "proxy_registration_token_123"
|
656
|
+
|
657
|
+
return config
|
658
|
+
|
659
|
+
def _get_optional_proxy_reg_config(self, base_config: Dict[str, Any]) -> Dict[str, Any]:
|
660
|
+
"""Get configuration with optional proxy registration support."""
|
661
|
+
config = base_config.copy()
|
662
|
+
|
663
|
+
# Server configuration
|
664
|
+
config["server"]["port"] = 8002
|
665
|
+
|
666
|
+
# SSL disabled by default
|
667
|
+
config["ssl"]["enabled"] = False
|
668
|
+
config["security"]["ssl"]["enabled"] = False
|
669
|
+
|
670
|
+
# Authentication disabled by default
|
671
|
+
config["security"]["auth"]["enabled"] = False
|
672
|
+
config["security"]["permissions"]["enabled"] = False
|
673
|
+
|
674
|
+
# Proxy registration configuration - can be enabled/disabled
|
675
|
+
config["registration"]["enabled"] = False # Default disabled
|
676
|
+
config["registration"]["server_url"] = "http://127.0.0.1:3004/proxy"
|
677
|
+
config["registration"]["server_id"] = "mcp_proxy_adapter"
|
678
|
+
config["registration"]["server_name"] = "MCP Proxy Adapter"
|
679
|
+
config["registration"]["description"] = "JSON-RPC API for interacting with MCP Proxy"
|
680
|
+
|
681
|
+
# Multiple authentication methods for proxy registration
|
682
|
+
config["registration"]["auth_method"] = "token" # Default method
|
683
|
+
|
684
|
+
# Token authentication
|
685
|
+
config["registration"]["token"]["enabled"] = True
|
686
|
+
config["registration"]["token"]["token"] = "proxy_registration_token_123"
|
687
|
+
config["registration"]["token"]["token_type"] = "bearer"
|
688
|
+
config["registration"]["token"]["refresh_interval"] = 3600
|
689
|
+
|
690
|
+
# Certificate authentication
|
691
|
+
config["registration"]["certificate"]["enabled"] = False
|
692
|
+
config["registration"]["certificate"]["cert_file"] = "mcp_proxy_adapter/examples/certs/proxy_client.crt"
|
693
|
+
config["registration"]["certificate"]["key_file"] = "mcp_proxy_adapter/examples/keys/proxy_client.key"
|
694
|
+
config["registration"]["certificate"]["ca_cert_file"] = "mcp_proxy_adapter/examples/certs/ca.crt"
|
695
|
+
config["registration"]["certificate"]["verify_server"] = True
|
696
|
+
|
697
|
+
# API key authentication
|
698
|
+
config["registration"]["api_key"]["enabled"] = False
|
699
|
+
config["registration"]["api_key"]["key"] = "proxy_api_key_456"
|
700
|
+
config["registration"]["api_key"]["key_header"] = "X-Proxy-API-Key"
|
701
|
+
|
702
|
+
# Proxy information
|
703
|
+
config["registration"]["proxy_info"]["name"] = "mcp_proxy_adapter"
|
704
|
+
config["registration"]["proxy_info"]["version"] = "1.0.0"
|
705
|
+
config["registration"]["proxy_info"]["description"] = "MCP Proxy Adapter with optional features"
|
706
|
+
config["registration"]["proxy_info"]["capabilities"] = ["jsonrpc", "rest", "optional_features"]
|
707
|
+
config["registration"]["proxy_info"]["endpoints"] = {
|
708
|
+
"jsonrpc": "/api/jsonrpc",
|
709
|
+
"rest": "/cmd",
|
710
|
+
"health": "/health"
|
711
|
+
}
|
712
|
+
|
713
|
+
# Heartbeat configuration
|
714
|
+
config["registration"]["heartbeat"]["enabled"] = True
|
715
|
+
config["registration"]["heartbeat"]["interval"] = 300
|
716
|
+
config["registration"]["heartbeat"]["timeout"] = 30
|
717
|
+
config["registration"]["heartbeat"]["retry_attempts"] = 3
|
718
|
+
config["registration"]["heartbeat"]["retry_delay"] = 60
|
719
|
+
|
720
|
+
# Auto-discovery
|
721
|
+
config["registration"]["auto_discovery"]["enabled"] = False
|
722
|
+
config["registration"]["auto_discovery"]["discovery_urls"] = []
|
723
|
+
config["registration"]["auto_discovery"]["discovery_interval"] = 3600
|
724
|
+
config["registration"]["auto_discovery"]["register_on_discovery"] = True
|
725
|
+
|
726
|
+
# Protocols
|
727
|
+
config["protocols"]["enabled"] = True
|
728
|
+
config["protocols"]["allowed_protocols"] = ["http"]
|
729
|
+
config["protocols"]["default_protocol"] = "http"
|
730
|
+
|
731
|
+
return config
|
732
|
+
|
733
|
+
def _get_custom_config(self, base_config: Dict[str, Any]) -> Dict[str, Any]:
|
734
|
+
"""Get custom configuration with configurable features."""
|
735
|
+
config = base_config.copy()
|
736
|
+
|
737
|
+
# Server configuration
|
738
|
+
config["server"]["port"] = 8003
|
739
|
+
|
740
|
+
# SSL configuration - configurable
|
741
|
+
config["ssl"]["enabled"] = False # Can be enabled via config
|
742
|
+
config["ssl"]["cert_file"] = "mcp_proxy_adapter/examples/certs/server_cert.pem"
|
743
|
+
config["ssl"]["key_file"] = "mcp_proxy_adapter/examples/certs/server_key.pem"
|
744
|
+
config["ssl"]["ca_cert"] = "mcp_proxy_adapter/examples/certs/ca_cert.pem"
|
745
|
+
config["ssl"]["verify_client"] = False # Can be enabled for mTLS
|
746
|
+
|
747
|
+
# Security framework - configurable
|
748
|
+
config["security"]["enabled"] = False # Can be enabled via config
|
749
|
+
config["security"]["ssl"]["enabled"] = False # Mirrors main SSL
|
750
|
+
config["security"]["ssl"]["cert_file"] = "mcp_proxy_adapter/examples/certs/server_cert.pem"
|
751
|
+
config["security"]["ssl"]["key_file"] = "mcp_proxy_adapter/examples/certs/server_key.pem"
|
752
|
+
config["security"]["ssl"]["ca_cert_file"] = "mcp_proxy_adapter/examples/certs/ca_cert.pem"
|
753
|
+
|
754
|
+
# Authentication - configurable
|
755
|
+
config["security"]["auth"]["enabled"] = False # Can be enabled via config
|
756
|
+
config["security"]["auth"]["methods"] = ["api_key", "jwt", "certificate"]
|
757
|
+
config["security"]["auth"]["api_keys"] = {
|
758
|
+
"custom-admin": {
|
759
|
+
"roles": ["admin"],
|
760
|
+
"permissions": ["*"],
|
761
|
+
"expires": None
|
762
|
+
},
|
763
|
+
"custom-user": {
|
764
|
+
"roles": ["user"],
|
765
|
+
"permissions": ["read", "execute"],
|
766
|
+
"expires": None
|
767
|
+
}
|
768
|
+
}
|
769
|
+
|
770
|
+
# Permissions - configurable
|
771
|
+
config["security"]["permissions"]["enabled"] = False # Can be enabled via config
|
772
|
+
config["security"]["permissions"]["roles_file"] = "mcp_proxy_adapter/examples/server_configs/roles.json"
|
773
|
+
|
774
|
+
# Rate limiting - configurable
|
775
|
+
config["security"]["rate_limit"]["enabled"] = False # Can be enabled via config
|
776
|
+
config["security"]["rate_limit"]["default_requests_per_minute"] = 60
|
777
|
+
config["security"]["rate_limit"]["default_requests_per_hour"] = 1000
|
778
|
+
|
779
|
+
# Certificates - configurable
|
780
|
+
config["security"]["certificates"]["enabled"] = False # Can be enabled via config
|
781
|
+
config["security"]["certificates"]["cert_storage_path"] = "./certs"
|
782
|
+
config["security"]["certificates"]["key_storage_path"] = "./keys"
|
783
|
+
|
784
|
+
# Proxy registration - configurable
|
785
|
+
config["registration"]["enabled"] = False # Can be enabled via config
|
786
|
+
config["registration"]["auth_method"] = "token"
|
787
|
+
config["registration"]["token"]["enabled"] = True
|
788
|
+
config["registration"]["token"]["token"] = "custom_proxy_token"
|
789
|
+
|
790
|
+
# Protocols
|
791
|
+
config["protocols"]["enabled"] = True
|
792
|
+
config["protocols"]["allowed_protocols"] = ["http", "https"]
|
793
|
+
config["protocols"]["default_protocol"] = "http"
|
794
|
+
|
795
|
+
return config
|
796
|
+
|
546
797
|
def _get_secure_config(self, base_config: Dict[str, Any]) -> Dict[str, Any]:
|
547
798
|
"""Get secure configuration with all security features enabled."""
|
548
799
|
config = base_config.copy()
|
@@ -660,27 +911,42 @@ class ConfigGenerator:
|
|
660
911
|
elif config_type == "mtls_no_protocol_middleware":
|
661
912
|
base_comments["ssl"] = "SSL/TLS configuration (enabled for mTLS without ProtocolMiddleware)"
|
662
913
|
base_comments["security"] = "Security framework configuration (mTLS mode without ProtocolMiddleware)"
|
914
|
+
elif config_type == "optional_ssl":
|
915
|
+
base_comments["ssl"] = "SSL/TLS configuration (optional, can be enabled/disabled)"
|
916
|
+
base_comments["security"] = "Security framework SSL configuration (mirrors main SSL)"
|
917
|
+
elif config_type == "optional_auth":
|
918
|
+
base_comments["ssl"] = "SSL/TLS configuration (disabled for optional auth)"
|
919
|
+
base_comments["security"] = "Security framework authentication configuration (optional, can be enabled/disabled)"
|
920
|
+
elif config_type == "optional_proxy_reg":
|
921
|
+
base_comments["ssl"] = "SSL/TLS configuration (disabled for optional proxy reg)"
|
922
|
+
base_comments["security"] = "Security framework proxy registration configuration (optional, can be enabled/disabled)"
|
923
|
+
elif config_type == "custom":
|
924
|
+
base_comments["ssl"] = "SSL/TLS configuration (configurable)"
|
925
|
+
base_comments["security"] = "Security framework configuration (configurable)"
|
926
|
+
base_comments["registration"] = "Proxy registration configuration (configurable)"
|
927
|
+
base_comments["protocols"] = "Protocol endpoints and settings (configurable)"
|
663
928
|
|
664
929
|
return base_comments
|
665
930
|
|
666
931
|
def generate_config_file(self, output_path: str, config_type: str = "full") -> None:
|
667
932
|
"""
|
668
933
|
Generate configuration file and save to disk.
|
669
|
-
|
934
|
+
|
670
935
|
Args:
|
671
936
|
output_path: Path to save the configuration file
|
672
937
|
config_type: Type of configuration to generate
|
673
938
|
"""
|
674
939
|
try:
|
675
|
-
|
940
|
+
# Get configuration without comments for file generation
|
941
|
+
config = self._get_config_by_type(config_type)
|
676
942
|
|
677
943
|
# Create directory if it doesn't exist
|
678
944
|
output_file = Path(output_path)
|
679
945
|
output_file.parent.mkdir(parents=True, exist_ok=True)
|
680
946
|
|
681
|
-
# Write configuration file
|
947
|
+
# Write configuration file as clean JSON
|
682
948
|
with open(output_file, 'w', encoding='utf-8') as f:
|
683
|
-
|
949
|
+
json.dump(config, f, indent=2, ensure_ascii=False)
|
684
950
|
|
685
951
|
logger.info(f"Configuration file generated: {output_path}")
|
686
952
|
logger.info(f"Configuration type: {config_type}")
|
@@ -699,7 +965,8 @@ class ConfigGenerator:
|
|
699
965
|
config_types = [
|
700
966
|
"minimal", "development", "secure", "full",
|
701
967
|
"basic_http", "http_token", "https", "https_token", "mtls",
|
702
|
-
"https_no_protocol_middleware", "mtls_no_protocol_middleware"
|
968
|
+
"https_no_protocol_middleware", "mtls_no_protocol_middleware",
|
969
|
+
"optional_ssl", "optional_auth", "optional_proxy_reg", "custom"
|
703
970
|
]
|
704
971
|
|
705
972
|
for config_type in config_types:
|
@@ -717,7 +984,8 @@ def main():
|
|
717
984
|
parser.add_argument("--type",
|
718
985
|
choices=["minimal", "development", "secure", "full",
|
719
986
|
"basic_http", "http_token", "https", "https_token", "mtls",
|
720
|
-
"https_no_protocol_middleware", "mtls_no_protocol_middleware"
|
987
|
+
"https_no_protocol_middleware", "mtls_no_protocol_middleware",
|
988
|
+
"optional_ssl", "optional_auth", "optional_proxy_reg", "custom"],
|
721
989
|
default="full", help="Configuration type to generate")
|
722
990
|
parser.add_argument("--output", default="./config.json",
|
723
991
|
help="Output file path")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-proxy-adapter
|
3
|
-
Version: 6.2.
|
3
|
+
Version: 6.2.26
|
4
4
|
Summary: Powerful JSON-RPC microservices framework with built-in security, authentication, and proxy registration
|
5
5
|
Home-page: https://github.com/maverikod/mcp-proxy-adapter
|
6
6
|
Author: Vasiliy Zdanovskiy
|
@@ -1,12 +1,12 @@
|
|
1
1
|
mcp_proxy_adapter/__init__.py,sha256=B7m1YWyv_Wb87-Q-JqVpHQgwajnfIgDyZ_iIxzdTbBY,1021
|
2
2
|
mcp_proxy_adapter/__main__.py,sha256=-Wp1myP9DzJNB9j97mj62C8kFk5YUbCmd0e7Rnwte0A,769
|
3
|
-
mcp_proxy_adapter/config.py,sha256=
|
3
|
+
mcp_proxy_adapter/config.py,sha256=ss6A-7Ef1I7iyZ-h-bzGWGwddB47642wEhN7uwnt5bk,21563
|
4
4
|
mcp_proxy_adapter/custom_openapi.py,sha256=jYUrCy8C1mShh3sjKj-JkzSMLAvxDLTvtzSJFj5HUNg,15023
|
5
|
-
mcp_proxy_adapter/main.py,sha256=
|
5
|
+
mcp_proxy_adapter/main.py,sha256=9qt_pEQdq8roUc73CumfDn6jDWP_NyfdE1lCGEynv5I,2841
|
6
6
|
mcp_proxy_adapter/openapi.py,sha256=36vOEbJjGnVZR6hUhl6mHCD29HYOEFKo2bL0JdGSm-4,13952
|
7
7
|
mcp_proxy_adapter/version.py,sha256=he5ZytTjuzxFCrKQ9AxOJw6hhMuKvgK4oyLQ4ErooZQ,76
|
8
8
|
mcp_proxy_adapter/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
-
mcp_proxy_adapter/api/app.py,sha256=
|
9
|
+
mcp_proxy_adapter/api/app.py,sha256=khl4kaI4mJ6dNbfAK7hR97Ek-eWC9NBeuXHr6GVbLoU,28911
|
10
10
|
mcp_proxy_adapter/api/handlers.py,sha256=DcZT7MVBV33q-0EJ0iFqxE0VgBkFt6d_SqoRkntwyvc,8477
|
11
11
|
mcp_proxy_adapter/api/schemas.py,sha256=xOmiSwHaapY6myEFnLu7o-LWVPM7vwmLYZXFo2c6NfE,12381
|
12
12
|
mcp_proxy_adapter/api/tool_integration.py,sha256=MrtX7vUXCGBBuZuOs3C6EF67R_U_0xMfOmlmsAz-wuE,10245
|
@@ -18,7 +18,7 @@ mcp_proxy_adapter/api/middleware/error_handling.py,sha256=avIZTjXj1sNOT3ekKtLAYJ
|
|
18
18
|
mcp_proxy_adapter/api/middleware/factory.py,sha256=yDo7f4E-YL7qQZgGApyk8HZfLYOnrpsNx-Eh3fJBikE,8404
|
19
19
|
mcp_proxy_adapter/api/middleware/logging.py,sha256=VvUUX7bN4davCzFO6GYbN1O4sgJjOspV-EBLE3xpwpc,4730
|
20
20
|
mcp_proxy_adapter/api/middleware/performance.py,sha256=dHBxTF43LEGXMKHMH3A8ybKmwAWURd_zswqq_oC4xbw,2454
|
21
|
-
mcp_proxy_adapter/api/middleware/protocol_middleware.py,sha256=
|
21
|
+
mcp_proxy_adapter/api/middleware/protocol_middleware.py,sha256=iVjJrTEfKy15ZchQUo-Mu0hBg9kEP6vgzee_3PtWd6M,8115
|
22
22
|
mcp_proxy_adapter/api/middleware/transport_middleware.py,sha256=Esy2gGKpEV5RoUTilr1YKKTDc5jh5RxsomD0VXyR2pE,4396
|
23
23
|
mcp_proxy_adapter/api/middleware/unified_security.py,sha256=fDWUeIuHjYUngVnB8gVR9ES3IQSaY9VP2YPZGXATJlU,7617
|
24
24
|
mcp_proxy_adapter/api/middleware/user_info_middleware.py,sha256=CWZvwUqieNhC8_ArTvncRjFfU3RHusO-dMcUSvRv01A,6311
|
@@ -34,7 +34,7 @@ mcp_proxy_adapter/commands/config_command.py,sha256=-Z6BGaEQTf859l56zZpHYBeZFeIV
|
|
34
34
|
mcp_proxy_adapter/commands/dependency_container.py,sha256=Uz9OPRAUZN7tsVrMVgXgPQcsRD2N-e2Ixg9XarPOlnY,3410
|
35
35
|
mcp_proxy_adapter/commands/dependency_manager.py,sha256=lmY79MBkh-JRIPsYxSkdrUE9XHi4XBCbucaEMT0w6do,7683
|
36
36
|
mcp_proxy_adapter/commands/echo_command.py,sha256=R1oDNEAJSOIuODa4Nk3z4WJXhSxniNzaZtYHADlV310,2390
|
37
|
-
mcp_proxy_adapter/commands/health_command.py,sha256=
|
37
|
+
mcp_proxy_adapter/commands/health_command.py,sha256=cNUfvQI4MAJQK1wKfzv_snCCK-FkL-FulVSErkMA3qw,4585
|
38
38
|
mcp_proxy_adapter/commands/help_command.py,sha256=PuanwvYmVs64DhB71gaI5rBRi_ozJ6x8afr18bRpTk4,13482
|
39
39
|
mcp_proxy_adapter/commands/hooks.py,sha256=Gu5TDSgA9EBHexWMWze8wgT63i6-dMEEwG8edWbrX3U,10060
|
40
40
|
mcp_proxy_adapter/commands/key_management_command.py,sha256=qin-iYXksIXOkZEfmJpclJSOyKaz9qRinj9uVa8hkdk,19339
|
@@ -66,7 +66,7 @@ mcp_proxy_adapter/core/errors.py,sha256=s34OxiIR4NCJu_pYSigKXqrIvRjUUK2OWw0X4dpD
|
|
66
66
|
mcp_proxy_adapter/core/logging.py,sha256=jQlFz52Xwapef6UD4p0acmaGFumD9XuexwW4frDN_ZM,9626
|
67
67
|
mcp_proxy_adapter/core/mtls_asgi.py,sha256=X2lAj3wk3L85amRCp_-10sqvZa5wJf_diXhwrrQReSo,5311
|
68
68
|
mcp_proxy_adapter/core/mtls_asgi_app.py,sha256=VeolP08TTaqYU5fGeaZexj6EBWBDugoVrEGXzJW4PuM,6406
|
69
|
-
mcp_proxy_adapter/core/protocol_manager.py,sha256=
|
69
|
+
mcp_proxy_adapter/core/protocol_manager.py,sha256=ISFRXjUuK4Q3uMbVB8-O_ozQSsDEH0PQA_HAKGeUrrw,14763
|
70
70
|
mcp_proxy_adapter/core/proxy_client.py,sha256=shP373Yelz7Fja22U6XnH0kT9XtPtWEFwOFlYFO97gw,22511
|
71
71
|
mcp_proxy_adapter/core/proxy_registration.py,sha256=87ko1vw61nHJGo0-xrObXiyQhrYK2K6nKr8rXID-j8c,19424
|
72
72
|
mcp_proxy_adapter/core/role_utils.py,sha256=wMoTVz3gF5fM7jozNMwsEwPkp1tui26M-t_KH1Oz8gs,12880
|
@@ -81,19 +81,19 @@ mcp_proxy_adapter/core/transport_manager.py,sha256=ppcgjO-7Ulrk1ovlzlXVM89Iw4VOG
|
|
81
81
|
mcp_proxy_adapter/core/unified_config_adapter.py,sha256=cpN_VrliIFGDH3JsfRkTlFdQvLcmuMYYedq0QEzlb0Y,22857
|
82
82
|
mcp_proxy_adapter/core/utils.py,sha256=ly8Ttg2v1OBukThJLxudRvmttU1hxJFLJUfat4b2dOI,3268
|
83
83
|
mcp_proxy_adapter/examples/__init__.py,sha256=k1F-EotAFbJ3JvK_rNgiH4bUztmxIWtYn0AfbAZ1ZGs,450
|
84
|
-
mcp_proxy_adapter/examples/create_certificates_simple.py,sha256=
|
84
|
+
mcp_proxy_adapter/examples/create_certificates_simple.py,sha256=KhP-J98e3GRfEsueEtPlACyOVNWVVxRwBZWBMged_YA,25743
|
85
85
|
mcp_proxy_adapter/examples/debug_request_state.py,sha256=x_H3NIlkmIS6lZimvEM6kCXxGdpgFw99Sdui8qa_qeU,4347
|
86
86
|
mcp_proxy_adapter/examples/debug_role_chain.py,sha256=33l2Tk5mrcnwPFwqm2NTHcrWaJrXUU2wxW2I6Y4uIg4,8344
|
87
87
|
mcp_proxy_adapter/examples/demo_client.py,sha256=inic-FP5qG8oQXUaCrtEhmhac_PDZ1pcxp-M1cxSzwA,10240
|
88
88
|
mcp_proxy_adapter/examples/generate_all_certificates.py,sha256=rgcwqIkQ1eDfEIRFRXGIOz-jOSS1w0GPBRhYvMl6Vjc,16948
|
89
89
|
mcp_proxy_adapter/examples/generate_certificates.py,sha256=A34OHUEiFvINOHrm3_JiDSbp-WG-eQXIvKCsE8JAeXQ,6616
|
90
90
|
mcp_proxy_adapter/examples/generate_certificates_and_tokens.py,sha256=J0qHm_BMY8RYqfuwf7V7xKsHcsRJx8E7x-8JxmW5sPw,15988
|
91
|
-
mcp_proxy_adapter/examples/generate_test_configs.py,sha256=
|
91
|
+
mcp_proxy_adapter/examples/generate_test_configs.py,sha256=NLhPrA9AfPlQ0WCbOJ1B_V9OC445tanKTmq7aAWKULU,13672
|
92
92
|
mcp_proxy_adapter/examples/proxy_registration_example.py,sha256=g59_QG2D1CCqhIXEvgy2XmgXI3toLmLyH7hL3uHZwC8,12647
|
93
93
|
mcp_proxy_adapter/examples/run_example.py,sha256=o8rcy9Xo0UuZG4MpKdex3pFWYdtAi6uW8dEBQE6Yzbw,2539
|
94
|
-
mcp_proxy_adapter/examples/run_full_test_suite.py,sha256=
|
94
|
+
mcp_proxy_adapter/examples/run_full_test_suite.py,sha256=7Z6qDOvbndGPue1P9v-GcYZxy_XPqoC9voJ7tR8eKQ8,12428
|
95
95
|
mcp_proxy_adapter/examples/run_proxy_server.py,sha256=vkEjqREcOSw2elH_VOBLa0cFjL8gCZp9nkRa8YLsndI,5119
|
96
|
-
mcp_proxy_adapter/examples/run_security_tests.py,sha256=
|
96
|
+
mcp_proxy_adapter/examples/run_security_tests.py,sha256=BFeafoRXOhorJ8ScjjnlmPdRaCG8AaPAxb-PRnSGJTM,22639
|
97
97
|
mcp_proxy_adapter/examples/run_security_tests_fixed.py,sha256=fNQsbALf9548xJ0OGPKYx5Crzg1GbcL8CSh1x_oKu_A,10540
|
98
98
|
mcp_proxy_adapter/examples/security_test_client.py,sha256=0j0-RGg9kppt_IAuYeT8cbXr3N5gqBdzEyPd3RW0bs8,35558
|
99
99
|
mcp_proxy_adapter/examples/setup_test_environment.py,sha256=fAfz1U7qERY-Z9ly15Wld8Zci-5_e9zSrvYJ56Rjowo,11839
|
@@ -106,6 +106,19 @@ mcp_proxy_adapter/examples/basic_framework/main.py,sha256=cDmqeUN1lDBBwuwLjmnP3q
|
|
106
106
|
mcp_proxy_adapter/examples/basic_framework/commands/__init__.py,sha256=_VQNLUEdsxUG-4yt9BZI_vtOxHAdGG0OUSsP6Wj-Vz4,76
|
107
107
|
mcp_proxy_adapter/examples/basic_framework/hooks/__init__.py,sha256=IE_EIXMnkdXuakZn7wLD9kBFyfDF5lYi56ejgiBeb-A,70
|
108
108
|
mcp_proxy_adapter/examples/commands/__init__.py,sha256=46FZSOABSeKPffw91JqIWL_UQD_RLL3nAR-ufgb2hr8,169
|
109
|
+
mcp_proxy_adapter/examples/examples/basic_framework/__init__.py,sha256=4aYD--R6hy9n9CUxj7Osb9HcdVUMJ6_cfpu4ujkbCwI,345
|
110
|
+
mcp_proxy_adapter/examples/examples/basic_framework/main.py,sha256=cDmqeUN1lDBBwuwLjmnP3qIyofCZ3Jr5Ct7Im-qCsUU,1728
|
111
|
+
mcp_proxy_adapter/examples/examples/basic_framework/commands/__init__.py,sha256=_VQNLUEdsxUG-4yt9BZI_vtOxHAdGG0OUSsP6Wj-Vz4,76
|
112
|
+
mcp_proxy_adapter/examples/examples/basic_framework/hooks/__init__.py,sha256=IE_EIXMnkdXuakZn7wLD9kBFyfDF5lYi56ejgiBeb-A,70
|
113
|
+
mcp_proxy_adapter/examples/examples/full_application/__init__.py,sha256=AEqN_gEBzj-swBtTOvRUWqKSdXqJVk1aUtfPghVL-2o,319
|
114
|
+
mcp_proxy_adapter/examples/examples/full_application/main.py,sha256=h2d90G6XMJFbJpo2ht7M1IqITZ9nZPi9QtH6ETeE9DI,7791
|
115
|
+
mcp_proxy_adapter/examples/examples/full_application/proxy_endpoints.py,sha256=-cpb0nIjzp6OltFHoZqrtFvb4wJf1dgT4WvQ2dcY6Bo,6045
|
116
|
+
mcp_proxy_adapter/examples/examples/full_application/commands/__init__.py,sha256=yQHxVSFkAyFLUOdk42QOebUODPlQV9IbydPgF3UKsGM,217
|
117
|
+
mcp_proxy_adapter/examples/examples/full_application/commands/custom_echo_command.py,sha256=u9_XOkoHkiFC-tn9B-yGUXfQi9OL0EDxlVVKSERI1wA,3099
|
118
|
+
mcp_proxy_adapter/examples/examples/full_application/commands/dynamic_calculator_command.py,sha256=fRWtegpUUVt4wWOz3yE3spMG4h1DM_xbSxg_WqlnbF0,3491
|
119
|
+
mcp_proxy_adapter/examples/examples/full_application/hooks/__init__.py,sha256=ORG4cL8cSXEMmZ0CEPz75OVuwg54pdDm2GIBpP4dtcs,200
|
120
|
+
mcp_proxy_adapter/examples/examples/full_application/hooks/application_hooks.py,sha256=TYXuHI-KW_mH5r8mSKgNMJCr3moeEKrqC4Eex0U298k,3457
|
121
|
+
mcp_proxy_adapter/examples/examples/full_application/hooks/builtin_command_hooks.py,sha256=IaskSrckZS6bE3aGxSBL8aTj-iJTSI2ysfsFjhjncyM,2975
|
109
122
|
mcp_proxy_adapter/examples/full_application/__init__.py,sha256=AEqN_gEBzj-swBtTOvRUWqKSdXqJVk1aUtfPghVL-2o,319
|
110
123
|
mcp_proxy_adapter/examples/full_application/main.py,sha256=h2d90G6XMJFbJpo2ht7M1IqITZ9nZPi9QtH6ETeE9DI,7791
|
111
124
|
mcp_proxy_adapter/examples/full_application/proxy_endpoints.py,sha256=-cpb0nIjzp6OltFHoZqrtFvb4wJf1dgT4WvQ2dcY6Bo,6045
|
@@ -115,10 +128,13 @@ mcp_proxy_adapter/examples/full_application/commands/dynamic_calculator_command.
|
|
115
128
|
mcp_proxy_adapter/examples/full_application/hooks/__init__.py,sha256=ORG4cL8cSXEMmZ0CEPz75OVuwg54pdDm2GIBpP4dtcs,200
|
116
129
|
mcp_proxy_adapter/examples/full_application/hooks/application_hooks.py,sha256=TYXuHI-KW_mH5r8mSKgNMJCr3moeEKrqC4Eex0U298k,3457
|
117
130
|
mcp_proxy_adapter/examples/full_application/hooks/builtin_command_hooks.py,sha256=IaskSrckZS6bE3aGxSBL8aTj-iJTSI2ysfsFjhjncyM,2975
|
118
|
-
mcp_proxy_adapter/
|
119
|
-
mcp_proxy_adapter
|
120
|
-
mcp_proxy_adapter
|
121
|
-
mcp_proxy_adapter
|
122
|
-
mcp_proxy_adapter-6.2.
|
123
|
-
mcp_proxy_adapter-6.2.
|
124
|
-
mcp_proxy_adapter-6.2.
|
131
|
+
mcp_proxy_adapter/examples/scripts/config_generator.py,sha256=4qruYxQ2kGLVOukLX2JOW5kslJ06RhkNqTobAgh4rfw,32801
|
132
|
+
mcp_proxy_adapter/examples/scripts/create_certificates_simple.py,sha256=xkIvUYl6hbKlWImQmenG0k_CvIsOsc9ZHICiKY3rtI8,26380
|
133
|
+
mcp_proxy_adapter/examples/scripts/generate_certificates_and_tokens.py,sha256=J0qHm_BMY8RYqfuwf7V7xKsHcsRJx8E7x-8JxmW5sPw,15988
|
134
|
+
mcp_proxy_adapter/utils/config_generator.py,sha256=2dxwBh9k_nUw9kgytZso5TNOQpBqd3c-RpKSTLoHlLE,46465
|
135
|
+
mcp_proxy_adapter-6.2.26.dist-info/licenses/LICENSE,sha256=6KdtUcTwmTRbJrAmYjVn7e6S-V42ubeDJ-AiVEzZ510,1075
|
136
|
+
mcp_proxy_adapter-6.2.26.dist-info/METADATA,sha256=mDyAz2q3ZwP_HqgYHcE5RyhkIYP7i78KwcH_6jniqpg,22348
|
137
|
+
mcp_proxy_adapter-6.2.26.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
138
|
+
mcp_proxy_adapter-6.2.26.dist-info/entry_points.txt,sha256=J3eV6ID0lt_VSp4lIdIgBFTqLCThgObNNxRCbyfiMHw,70
|
139
|
+
mcp_proxy_adapter-6.2.26.dist-info/top_level.txt,sha256=JZT7vPLBYrtroX-ij68JBhJYbjDdghcV-DFySRy-Nnw,18
|
140
|
+
mcp_proxy_adapter-6.2.26.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|