From 7f5033d8a60f1ad3bbfa4600aa23fe85c1bb0f89 Mon Sep 17 00:00:00 2001 From: Cole McIntosh <82463175+colesmcintosh@users.noreply.github.com> Date: Sat, 12 Jul 2025 16:23:12 -0600 Subject: [PATCH] fix: handle missing 'env' attribute in MCP server Prisma model (#12560) - Use getattr() with default value when accessing mcp_server.env - Prevents AttributeError when Prisma doesn't include the field - Fixes startup error: 'LiteLLM_MCPServerTable' object has no attribute 'env' The issue occurs when Prisma fetches records and doesn't include null/undefined fields in the returned object. --- litellm/proxy/_experimental/mcp_server/mcp_server_manager.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py index 3b4d6abf57..1458381c02 100644 --- a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py +++ b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py @@ -160,7 +160,9 @@ class MCPServerManager: _mcp_info: MCPInfo = mcp_server.mcp_info or {} # Use helper to deserialize environment dictionary - env_dict = _deserialize_env_dict(mcp_server.env) + # Safely access env field which may not exist on Prisma model objects + env_data = getattr(mcp_server, 'env', None) + env_dict = _deserialize_env_dict(env_data) new_server = MCPServer( server_id=mcp_server.server_id,