diff --git a/litellm/proxy/_types.py b/litellm/proxy/_types.py index 9a208d48392..337255d826d 100644 --- a/litellm/proxy/_types.py +++ b/litellm/proxy/_types.py @@ -1077,6 +1077,7 @@ class NewMCPServerRequest(LiteLLMPydanticObjectBase): auth_type: Optional[MCPAuthType] = None credentials: Optional[MCPCredentials] = None url: Optional[str] = None + spec_path: Optional[str] = None mcp_info: Optional[MCPInfo] = None mcp_access_groups: List[str] = Field(default_factory=list) allowed_tools: Optional[List[str]] = None @@ -1103,8 +1104,8 @@ class NewMCPServerRequest(LiteLLMPydanticObjectBase): if not values.get("args"): raise ValueError("args is required for stdio transport") elif transport in [MCPTransport.http, MCPTransport.sse]: - if not values.get("url"): - raise ValueError("url is required for HTTP/SSE transport") + if not values.get("url") and not values.get("spec_path"): + raise ValueError("url or spec_path is required for HTTP/SSE transport") return values @model_validator(mode="before") @@ -1139,6 +1140,7 @@ class UpdateMCPServerRequest(LiteLLMPydanticObjectBase): auth_type: Optional[MCPAuthType] = None credentials: Optional[MCPCredentials] = None url: Optional[str] = None + spec_path: Optional[str] = None mcp_info: Optional[MCPInfo] = None mcp_access_groups: List[str] = Field(default_factory=list) allowed_tools: Optional[List[str]] = None @@ -1165,8 +1167,8 @@ class UpdateMCPServerRequest(LiteLLMPydanticObjectBase): if not values.get("args"): raise ValueError("args is required for stdio transport") elif transport in [MCPTransport.http, MCPTransport.sse]: - if not values.get("url"): - raise ValueError("url is required for HTTP/SSE transport") + if not values.get("url") and not values.get("spec_path"): + raise ValueError("url or spec_path is required for HTTP/SSE transport") return values @@ -1178,6 +1180,7 @@ class LiteLLM_MCPServerTable(LiteLLMPydanticObjectBase): alias: Optional[str] = None description: Optional[str] = None url: Optional[str] = None + spec_path: Optional[str] = None transport: MCPTransportType auth_type: Optional[MCPAuthType] = None credentials: Optional[MCPCredentials] = None