diff --git a/marimo/_mcp/server/main.py b/marimo/_mcp/server/main.py index 656fbbb1e69..25cf946854f 100644 --- a/marimo/_mcp/server/main.py +++ b/marimo/_mcp/server/main.py @@ -12,6 +12,7 @@ from marimo._ai._tools.base import ToolContext from marimo._ai._tools.tools_registry import SUPPORTED_BACKEND_AND_MCP_TOOLS +from marimo._dependencies.dependencies import DependencyManager from marimo._loggers import marimo_logger LOGGER = marimo_logger() @@ -33,6 +34,12 @@ def setup_mcp_server(app: Starlette) -> None: Returns: StreamableHTTPSessionManager: MCP session manager """ + if not DependencyManager.mcp.has(): + from click import ClickException + + msg = "MCP dependencies not available. Install with `pip install marimo[mcp]` or `uv add marimo[mcp]`" + raise ClickException(msg) + from mcp.server.fastmcp import FastMCP from starlette.middleware.base import BaseHTTPMiddleware from starlette.responses import JSONResponse