* fix(mcp): clear allowed_tools and tool overrides on MCP server edit
Send empty arrays/objects from the dashboard instead of null, coerce legacy
null payloads before Prisma, and stop auto-selecting all tools when the
stored allowlist is empty.
Co-authored-by: Cursor <cursoragent@cursor.com>
* style(mcp): simplify CRUD panel value ternary per review
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(mcp): enforce empty tool allowlist when cleared in dashboard
Set mcp_info.tool_allowlist_enforced on UI save so [] blocks all tools
while legacy servers with default [] remain unrestricted.
Co-authored-by: Cursor <cursoragent@cursor.com>
* Fix legacy MCP tool allowlist edit state
* test(mcp): pin allowlist fields on mock server in tools test
MagicMock auto-attributes are truthy and trigger server_applies_tool_allowlist
after the empty-allowlist enforcement change.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(mcp): avoid locking legacy servers on quick edit save
Only set tool_allowlist_enforced when already enforced or the user
selected tools; skip allowlist fields on save for unrestricted servers;
do not auto-select all tools when editing legacy servers before load.
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(mcp): type mcp_info base for allowlist flag read
Co-authored-by: Cursor <cursoragent@cursor.com>
* fix(mcp): use MCPInfo type for tool_allowlist_enforced in edit save
Co-authored-by: Cursor <cursoragent@cursor.com>
* Update ui/litellm-dashboard/src/components/mcp_tools/mcp_server_edit.tsx
Co-authored-by: veria-ai[bot] <224490171+veria-ai[bot]@users.noreply.github.com>
* Remove unused MCP allowlist variable
* Fix MCP legacy tool state display
* Fix legacy MCP tool allowlist saves
* fix(mcp): enforce allowlist when create flow deselects all tools
Track explicit allowlist interaction in the create form so deselecting
every tool persists tool_allowlist_enforced=true. Previously an empty
selection sent the flag as false with allowed_tools=[], which the proxy
treats as allow-all, contradicting the UI's 0 tools enabled state. This
mirrors the existing edit-flow handling.
* fix(mcp): enforce disallowed_tools on REST listing and keep restored tool selection on legacy edit
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: veria-ai[bot] <224490171+veria-ai[bot]@users.noreply.github.com>
Co-authored-by: mateo-berri <277851410+mateo-berri@users.noreply.github.com>