You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ar...@apache.org on 2026/03/10 08:48:46 UTC
(superset) branch master updated: feat(mcp): register GlobalErrorHandlerMiddleware and LoggingMiddleware (#38523)
This is an automated email from the ASF dual-hosted git repository.
arivero pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new 0533ca9941e feat(mcp): register GlobalErrorHandlerMiddleware and LoggingMiddleware (#38523)
0533ca9941e is described below
commit 0533ca9941e9d3535a6647613e8832e094b49777
Author: Amin Ghadersohi <am...@gmail.com>
AuthorDate: Tue Mar 10 09:48:38 2026 +0100
feat(mcp): register GlobalErrorHandlerMiddleware and LoggingMiddleware (#38523)
Co-authored-by: Claude Opus 4.6 <no...@anthropic.com>
---
superset/mcp_service/server.py | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/superset/mcp_service/server.py b/superset/mcp_service/server.py
index f2ee1d69a0d..5435a66e68b 100644
--- a/superset/mcp_service/server.py
+++ b/superset/mcp_service/server.py
@@ -30,7 +30,11 @@ import uvicorn
from superset.mcp_service.app import create_mcp_app, init_fastmcp_server
from superset.mcp_service.mcp_config import get_mcp_factory_config, MCP_STORE_CONFIG
-from superset.mcp_service.middleware import create_response_size_guard_middleware
+from superset.mcp_service.middleware import (
+ create_response_size_guard_middleware,
+ GlobalErrorHandlerMiddleware,
+ LoggingMiddleware,
+)
from superset.mcp_service.storage import _create_redis_store
logger = logging.getLogger(__name__)
@@ -224,16 +228,24 @@ def run_server(
auth_provider = _create_auth_provider(flask_app)
# Build middleware list
+ # FastMCP wraps handlers so that the LAST-added middleware is
+ # outermost. Order here is innermost → outermost.
middleware_list = []
+ # Add caching middleware (innermost – runs closest to the tool)
+ caching_middleware = create_response_caching_middleware()
+ if caching_middleware:
+ middleware_list.append(caching_middleware)
+
# Add response size guard (protects LLM clients from huge responses)
if size_guard_middleware := create_response_size_guard_middleware():
middleware_list.append(size_guard_middleware)
- # Add caching middleware
- caching_middleware = create_response_caching_middleware()
- if caching_middleware:
- middleware_list.append(caching_middleware)
+ # Add logging middleware (logs all tool calls with duration tracking)
+ middleware_list.append(LoggingMiddleware())
+
+ # Add global error handler (outermost – catches all exceptions)
+ middleware_list.append(GlobalErrorHandlerMiddleware())
mcp_instance = init_fastmcp_server(
auth=auth_provider,