From ad50f73bdcada9fdf3f8c7d074ff42a4e510c8bb Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Tue, 30 Dec 2025 19:20:21 -0500 Subject: [PATCH] Lazy import DiskStore to avoid sqlite3 dependency on import (#2784) --- src/fastmcp/server/auth/oauth_proxy.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/fastmcp/server/auth/oauth_proxy.py b/src/fastmcp/server/auth/oauth_proxy.py index 21b2d09cd..3617d9d7d 100644 --- a/src/fastmcp/server/auth/oauth_proxy.py +++ b/src/fastmcp/server/auth/oauth_proxy.py @@ -34,7 +34,6 @@ from authlib.integrations.httpx_client import AsyncOAuth2Client from cryptography.fernet import Fernet from key_value.aio.adapters.pydantic import PydanticAdapter from key_value.aio.protocols import AsyncKeyValue -from key_value.aio.stores.disk import DiskStore from key_value.aio.wrappers.encryption import FernetEncryptionWrapper from mcp.server.auth.provider import ( AccessToken, @@ -812,6 +811,9 @@ class OAuthProxy(OAuthProvider): # If the user does not provide a store, we will provide an encrypted disk store if client_storage is None: + # Import lazily to avoid sqlite3 dependency when not using OAuthProxy + from key_value.aio.stores.disk import DiskStore + storage_encryption_key = derive_jwt_key( high_entropy_material=jwt_signing_key.decode(), salt="fastmcp-storage-encryption-key",