diff --git a/nextcloud_mcp_server/auth/provisioning_decorator.py b/nextcloud_mcp_server/auth/provisioning_decorator.py index 9095933..d9d18d1 100644 --- a/nextcloud_mcp_server/auth/provisioning_decorator.py +++ b/nextcloud_mcp_server/auth/provisioning_decorator.py @@ -63,7 +63,20 @@ def require_provisioning(func: Callable) -> Callable: logger.debug("BasicAuth mode detected - skipping provisioning check") return await func(*args, **kwargs) - # OAuth mode - check provisioning + # Check if provisioning is required (opt-in, defaults to false) + # Provisioning is only needed when using Progressive Consent with Flow 2 + import os + + require_provisioning = ( + os.getenv("REQUIRE_PROVISIONING", "false").lower() == "true" + ) + if not require_provisioning: + logger.debug( + "Provisioning not required (REQUIRE_PROVISIONING=false) - skipping check" + ) + return await func(*args, **kwargs) + + # OAuth mode with provisioning required - check provisioning status # Get user_id from authorization token user_id = None if hasattr(ctx, "authorization") and ctx.authorization: