From adbc4c277f1a99f4e03d24b8d3d2f648d1482e33 Mon Sep 17 00:00:00 2001 From: mateo-berri <277851410+mateo-berri@users.noreply.github.com> Date: Tue, 19 May 2026 06:43:22 +0000 Subject: [PATCH] fix(lint): widen user_fields helpers to accept LiteLLM_MCPServerTable The helpers use getattr(server, 'user_fields', None) and work with any server-shaped object. Widen the type so the management endpoint callers that pass LiteLLM_MCPServerTable type-check cleanly. --- .../proxy/_experimental/mcp_server/user_fields.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/litellm/proxy/_experimental/mcp_server/user_fields.py b/litellm/proxy/_experimental/mcp_server/user_fields.py index a3c910fbe73..9f47126e54f 100644 --- a/litellm/proxy/_experimental/mcp_server/user_fields.py +++ b/litellm/proxy/_experimental/mcp_server/user_fields.py @@ -13,13 +13,20 @@ resolution / injection logic. from __future__ import annotations -from typing import Any, Dict, List, Optional +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union from litellm._logging import verbose_logger from litellm.types.mcp_server.mcp_server_manager import MCPServer +if TYPE_CHECKING: + from litellm.proxy._types import LiteLLM_MCPServerTable -def coerce_user_fields(server: MCPServer) -> List[Dict[str, Any]]: + UserFieldServer = Union[MCPServer, LiteLLM_MCPServerTable] +else: + UserFieldServer = MCPServer + + +def coerce_user_fields(server: UserFieldServer) -> List[Dict[str, Any]]: """Return the server's declared user fields as a list of plain dicts. The column is stored as JSONB but Prisma sometimes hands it back as a @@ -44,13 +51,13 @@ def coerce_user_fields(server: MCPServer) -> List[Dict[str, Any]]: return [] -def server_has_user_fields(server: MCPServer) -> bool: +def server_has_user_fields(server: UserFieldServer) -> bool: """True iff the server declares any user fields at all.""" return bool(coerce_user_fields(server)) def compute_missing_user_fields( - server: MCPServer, stored_values: Optional[Dict[str, str]] + server: UserFieldServer, stored_values: Optional[Dict[str, str]] ) -> List[Dict[str, Any]]: """Return the declared field definitions the user has yet to fill in.