mcp-proxy-adapter 6.3.17__py3-none-any.whl → 6.3.20__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 +13 -0
- mcp_proxy_adapter/api/middleware/base.py +11 -1
- mcp_proxy_adapter/api/middleware/error_handling.py +5 -1
- mcp_proxy_adapter/api/middleware/logging.py +5 -0
- mcp_proxy_adapter/api/middleware/user_info_middleware.py +10 -1
- mcp_proxy_adapter/main.py +9 -1
- mcp_proxy_adapter/version.py +1 -1
- {mcp_proxy_adapter-6.3.17.dist-info → mcp_proxy_adapter-6.3.20.dist-info}/METADATA +1 -1
- {mcp_proxy_adapter-6.3.17.dist-info → mcp_proxy_adapter-6.3.20.dist-info}/RECORD +12 -12
- {mcp_proxy_adapter-6.3.17.dist-info → mcp_proxy_adapter-6.3.20.dist-info}/WHEEL +0 -0
- {mcp_proxy_adapter-6.3.17.dist-info → mcp_proxy_adapter-6.3.20.dist-info}/entry_points.txt +0 -0
- {mcp_proxy_adapter-6.3.17.dist-info → mcp_proxy_adapter-6.3.20.dist-info}/top_level.txt +0 -0
mcp_proxy_adapter/api/app.py
CHANGED
@@ -420,6 +420,19 @@ def create_app(
|
|
420
420
|
allow_headers=["*"],
|
421
421
|
)
|
422
422
|
|
423
|
+
# Add request logging middleware for debugging
|
424
|
+
@app.middleware("http")
|
425
|
+
async def debug_request_middleware(request: Request, call_next):
|
426
|
+
logger.debug(f"🔍 FastAPI Request START: {request.method} {request.url.path}")
|
427
|
+
logger.debug(f"🔍 FastAPI Request Headers: {dict(request.headers)}")
|
428
|
+
try:
|
429
|
+
response = await call_next(request)
|
430
|
+
logger.debug(f"🔍 FastAPI Request COMPLETED: {response.status_code}")
|
431
|
+
return response
|
432
|
+
except Exception as e:
|
433
|
+
logger.error(f"🔍 FastAPI Request ERROR: {e}", exc_info=True)
|
434
|
+
raise
|
435
|
+
|
423
436
|
# Setup middleware using the new middleware package
|
424
437
|
setup_middleware(app, current_config)
|
425
438
|
|
@@ -29,19 +29,29 @@ class BaseMiddleware(BaseHTTPMiddleware):
|
|
29
29
|
Returns:
|
30
30
|
Response.
|
31
31
|
"""
|
32
|
+
middleware_name = self.__class__.__name__
|
33
|
+
logger.debug(f"🔍 {middleware_name}.dispatch START - {request.method} {request.url.path}")
|
34
|
+
|
32
35
|
try:
|
33
36
|
# Process request before calling the main handler
|
37
|
+
logger.debug(f"🔍 {middleware_name}.before_request START")
|
34
38
|
await self.before_request(request)
|
39
|
+
logger.debug(f"🔍 {middleware_name}.before_request COMPLETED")
|
35
40
|
|
36
41
|
# Call the next middleware or main handler
|
42
|
+
logger.debug(f"🔍 {middleware_name}.call_next START")
|
37
43
|
response = await call_next(request)
|
44
|
+
logger.debug(f"🔍 {middleware_name}.call_next COMPLETED - Status: {response.status_code}")
|
38
45
|
|
39
46
|
# Process response after calling the main handler
|
47
|
+
logger.debug(f"🔍 {middleware_name}.after_response START")
|
40
48
|
response = await self.after_response(request, response)
|
49
|
+
logger.debug(f"🔍 {middleware_name}.after_response COMPLETED")
|
41
50
|
|
51
|
+
logger.debug(f"🔍 {middleware_name}.dispatch COMPLETED SUCCESSFULLY")
|
42
52
|
return response
|
43
53
|
except Exception as e:
|
44
|
-
logger.
|
54
|
+
logger.error(f"❌ {middleware_name}.dispatch ERROR: {str(e)}", exc_info=True)
|
45
55
|
# If an error occurred, call the error handler
|
46
56
|
return await self.handle_error(request, e)
|
47
57
|
|
@@ -44,9 +44,13 @@ class ErrorHandlingMiddleware(BaseMiddleware):
|
|
44
44
|
Returns:
|
45
45
|
Response.
|
46
46
|
"""
|
47
|
+
logger.debug(f"🔍 ErrorHandlingMiddleware.dispatch START - {request.method} {request.url.path}")
|
47
48
|
try:
|
48
49
|
# Call the next middleware or main handler
|
49
|
-
|
50
|
+
logger.debug(f"🔍 ErrorHandlingMiddleware - About to call next handler")
|
51
|
+
response = await call_next(request)
|
52
|
+
logger.debug(f"🔍 ErrorHandlingMiddleware - Next handler completed with status: {response.status_code}")
|
53
|
+
return response
|
50
54
|
|
51
55
|
except CommandError as e:
|
52
56
|
# Command error
|
@@ -42,9 +42,12 @@ class LoggingMiddleware(BaseMiddleware):
|
|
42
42
|
Returns:
|
43
43
|
Response.
|
44
44
|
"""
|
45
|
+
logger.debug(f"🔍 LoggingMiddleware.dispatch START - {request.method} {request.url.path}")
|
46
|
+
|
45
47
|
# Generate unique ID for request
|
46
48
|
request_id = str(uuid.uuid4())
|
47
49
|
request.state.request_id = request_id
|
50
|
+
logger.debug(f"🔍 LoggingMiddleware - Generated request ID: {request_id}")
|
48
51
|
|
49
52
|
# Create context logger for this request
|
50
53
|
req_logger = RequestLogger("mcp_proxy_adapter.api.middleware", request_id)
|
@@ -98,7 +101,9 @@ class LoggingMiddleware(BaseMiddleware):
|
|
98
101
|
|
99
102
|
# Call the next middleware or main handler
|
100
103
|
try:
|
104
|
+
logger.debug(f"🔍 LoggingMiddleware - About to call next handler")
|
101
105
|
response = await call_next(request)
|
106
|
+
logger.debug(f"🔍 LoggingMiddleware - Next handler completed with status: {response.status_code}")
|
102
107
|
|
103
108
|
# Log request completion
|
104
109
|
process_time = time.time() - start_time
|
@@ -140,8 +140,14 @@ class UserInfoMiddleware(BaseHTTPMiddleware):
|
|
140
140
|
Returns:
|
141
141
|
Response object
|
142
142
|
"""
|
143
|
+
logger.debug(f"🔍 UserInfoMiddleware.dispatch START - {request.method} {request.url.path}")
|
144
|
+
logger.debug(f"🔍 UserInfoMiddleware - Headers: {dict(request.headers)}")
|
145
|
+
logger.debug(f"🔍 UserInfoMiddleware - AuthManager available: {self.auth_manager is not None}")
|
146
|
+
logger.debug(f"🔍 UserInfoMiddleware - Security available: {self._security_available}")
|
147
|
+
|
143
148
|
# Extract API key from headers
|
144
149
|
api_key = request.headers.get("X-API-Key")
|
150
|
+
logger.debug(f"🔍 UserInfoMiddleware - API Key: {api_key[:8] + '...' if api_key else 'None'}")
|
145
151
|
if api_key:
|
146
152
|
if self.auth_manager and self._security_available:
|
147
153
|
try:
|
@@ -230,4 +236,7 @@ class UserInfoMiddleware(BaseHTTPMiddleware):
|
|
230
236
|
}
|
231
237
|
logger.debug("ℹ️ No API key provided, using guest access")
|
232
238
|
|
233
|
-
|
239
|
+
logger.debug(f"🔍 UserInfoMiddleware - About to call next handler")
|
240
|
+
response = await call_next(request)
|
241
|
+
logger.debug(f"🔍 UserInfoMiddleware - Next handler completed with status: {response.status_code}")
|
242
|
+
return response
|
mcp_proxy_adapter/main.py
CHANGED
@@ -57,8 +57,16 @@ def main():
|
|
57
57
|
ssl_enabled = config.get("ssl.enabled", False)
|
58
58
|
ssl_cert_file = config.get("ssl.cert_file")
|
59
59
|
ssl_key_file = config.get("ssl.key_file")
|
60
|
-
ssl_ca_cert = config.get("ssl.
|
60
|
+
ssl_ca_cert = config.get("ssl.ca_cert_file")
|
61
61
|
verify_client = config.get("ssl.verify_client", False)
|
62
|
+
|
63
|
+
# Debug SSL configuration
|
64
|
+
print(f"🔍 Debug SSL config:")
|
65
|
+
print(f" ssl_enabled: {ssl_enabled}")
|
66
|
+
print(f" ssl_cert_file: {ssl_cert_file}")
|
67
|
+
print(f" ssl_key_file: {ssl_key_file}")
|
68
|
+
print(f" ssl_ca_cert: {ssl_ca_cert}")
|
69
|
+
print(f" verify_client: {verify_client}")
|
62
70
|
|
63
71
|
print(f"🚀 Starting MCP Proxy Adapter")
|
64
72
|
print(f"🌐 Server: {host}:{port}")
|
mcp_proxy_adapter/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-proxy-adapter
|
3
|
-
Version: 6.3.
|
3
|
+
Version: 6.3.20
|
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
|
@@ -2,26 +2,26 @@ mcp_proxy_adapter/__init__.py,sha256=iH0EBBsRj_cfZJpAIsgN_8tTdfefhnl6uUKHjLHhWDQ
|
|
2
2
|
mcp_proxy_adapter/__main__.py,sha256=sq3tANRuTd18euamt0Bmn1sJeAyzXENZ5VvsMwbrDFA,579
|
3
3
|
mcp_proxy_adapter/config.py,sha256=-7iVS0mUWWKNeao7nqTAFlUD6FcMwRlDkchN7OwYsr0,21662
|
4
4
|
mcp_proxy_adapter/custom_openapi.py,sha256=yLle4CntYK9wpivgn9NflZyJhy-YNrmWjJzt0ai5nP0,14672
|
5
|
-
mcp_proxy_adapter/main.py,sha256=
|
5
|
+
mcp_proxy_adapter/main.py,sha256=DyfMp0d5FtkzgFQUOPWr8D5UDolL1uVElePJq_OX7qI,3708
|
6
6
|
mcp_proxy_adapter/openapi.py,sha256=2UZOI09ZDRJuBYBjKbMyb2U4uASszoCMD5o_4ktRpvg,13480
|
7
|
-
mcp_proxy_adapter/version.py,sha256=
|
7
|
+
mcp_proxy_adapter/version.py,sha256=kS2VERR830jpWKHeVXHcbSrNXgIJlqvppAiikaEOt_I,75
|
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=Ayvk_WsWuDkjYkKCzUB1ImCVINYnxzkGIgKE50UkqRY,29215
|
10
10
|
mcp_proxy_adapter/api/handlers.py,sha256=iyFGoEuUS1wxbV1ELA0zmaxIyQR7j4zw-4MrD-uIO6E,8294
|
11
11
|
mcp_proxy_adapter/api/schemas.py,sha256=mevUvQnYgWQfkJAs3-vq3HalBzh6-Saa-Au1VVf0peE,12377
|
12
12
|
mcp_proxy_adapter/api/tool_integration.py,sha256=AeUyvJVN-c3FrX5fHdagHL51saRH5d1ZKqc2YEx0rTE,10147
|
13
13
|
mcp_proxy_adapter/api/tools.py,sha256=nDQkxwgn11e1tR7kNfdYWsLAUogKmkEv8cVOYUtOq9U,8025
|
14
14
|
mcp_proxy_adapter/api/middleware/__init__.py,sha256=0E3gJ8kRWdlSIbtkuG68pInE-FsOnLj67hTcvN9jJqE,2168
|
15
|
-
mcp_proxy_adapter/api/middleware/base.py,sha256=
|
15
|
+
mcp_proxy_adapter/api/middleware/base.py,sha256=x5vaekh0grLkgSOCQWSytS47Nyagl-Powvb0uk_bKqg,2922
|
16
16
|
mcp_proxy_adapter/api/middleware/command_permission_middleware.py,sha256=dIzcvUDaO3etAM8xXVKza4tiakplppe8fTKuV36NaXU,4936
|
17
|
-
mcp_proxy_adapter/api/middleware/error_handling.py,sha256=
|
17
|
+
mcp_proxy_adapter/api/middleware/error_handling.py,sha256=bXui9rUn4Gem3PoXuxldSBUpaCoXtCH6gUPD6Th94BY,6867
|
18
18
|
mcp_proxy_adapter/api/middleware/factory.py,sha256=r0BXntUOxF6DiCVqqmAUb3JjargdR28aj2d9X5z-zX4,7987
|
19
|
-
mcp_proxy_adapter/api/middleware/logging.py,sha256=
|
19
|
+
mcp_proxy_adapter/api/middleware/logging.py,sha256=iME87hrbvyTjI-RJro5Cwao7VlHUIuWubpVUabv-s1M,5229
|
20
20
|
mcp_proxy_adapter/api/middleware/performance.py,sha256=-EvA7YIcTlxn8RuxlWlScJvX2EIoeEp3P5dKVWZHYRY,2357
|
21
21
|
mcp_proxy_adapter/api/middleware/protocol_middleware.py,sha256=zm-Q0KnCzbAB3ue8dwnEkb-OyCuIbqu01s2_GE2rtH0,11094
|
22
22
|
mcp_proxy_adapter/api/middleware/transport_middleware.py,sha256=VG1rWyuh-O2pdc0kQ3SADFvyh286o5Wrnkt8OFQ0WQw,4274
|
23
23
|
mcp_proxy_adapter/api/middleware/unified_security.py,sha256=PMbJxVzGNlb-IPAqvIeEo1st-jykYX9Mns6lXIfdtAE,7764
|
24
|
-
mcp_proxy_adapter/api/middleware/user_info_middleware.py,sha256=
|
24
|
+
mcp_proxy_adapter/api/middleware/user_info_middleware.py,sha256=94oItW3uyNhLvp6p1Sl7EhY_gC4MqrbR9KyAJWreTwk,10326
|
25
25
|
mcp_proxy_adapter/commands/__init__.py,sha256=eStfu2UrLfMvMTY6x20GD8sMPmPB1so-0QZQYV53nqo,1565
|
26
26
|
mcp_proxy_adapter/commands/auth_validation_command.py,sha256=p4UrAaHyoCxMy98G1BUUlFJWjoelEJzX3OAWIiQaGls,14593
|
27
27
|
mcp_proxy_adapter/commands/base.py,sha256=0_hu8t89-2vWBPFpEMokr27A-IifKI32rkQwZfc2Grk,15162
|
@@ -137,8 +137,8 @@ mcp_proxy_adapter/schemas/base_schema.json,sha256=v9G9cGMd4dRhCZsOQ_FMqOi5VFyVbI
|
|
137
137
|
mcp_proxy_adapter/schemas/openapi_schema.json,sha256=C3yLkwmDsvnLW9B5gnKKdBGl4zxkeU-rEmjTrNVsQU0,8405
|
138
138
|
mcp_proxy_adapter/utils/config_generator.py,sha256=UXxuxxAyKTesAS3DOofQ26e20v771inA7EfBV8PZD1c,47543
|
139
139
|
mcp_proxy_adapter_issue_package/demonstrate_issue.py,sha256=O54fwWQvUAjEGiHhQGm1JLnARkhVCwAqjBk_89HyRbY,7894
|
140
|
-
mcp_proxy_adapter-6.3.
|
141
|
-
mcp_proxy_adapter-6.3.
|
142
|
-
mcp_proxy_adapter-6.3.
|
143
|
-
mcp_proxy_adapter-6.3.
|
144
|
-
mcp_proxy_adapter-6.3.
|
140
|
+
mcp_proxy_adapter-6.3.20.dist-info/METADATA,sha256=98WueqD3BEPL6YFOf3K5-2yIHa6M5xvQbqSvDVIm4QI,22266
|
141
|
+
mcp_proxy_adapter-6.3.20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
142
|
+
mcp_proxy_adapter-6.3.20.dist-info/entry_points.txt,sha256=J3eV6ID0lt_VSp4lIdIgBFTqLCThgObNNxRCbyfiMHw,70
|
143
|
+
mcp_proxy_adapter-6.3.20.dist-info/top_level.txt,sha256=CHk-Mc-AxjO-tRheegA2qLiQnU4vZRnxuTF81So6SAc,50
|
144
|
+
mcp_proxy_adapter-6.3.20.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|