mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-13 23:11:40 +00:00
A key's object_permission.mcp_servers was a non-nullable String[], so an empty list and an unset value both collapsed to [], and the resolver read either one as "inherit the team's full MCP server list". That made it impossible to give a key zero servers under a team that has servers, which pushed keys past provider tool caps. The column is now nullable JSON where null inherits the team, [] means no servers, and a list means exactly those, and the resolver honors the distinction. A data-preserving migration converts the column in place and backfills existing [] to null, so every current key and team keeps inheriting and no live row changes behavior. The dashboard key create and edit forms gain an explicit Inherit / No access / Specific control so the new zero state is reachable without the API |
||
|---|---|---|
| .. | ||
| test_configs | ||
| conftest.py | ||
| mcp_server.py | ||
| test_aresponses_api_with_mcp.py | ||
| test_mcp_auth_header_extraction.py | ||
| test_mcp_auth_priority.py | ||
| test_mcp_chat_completions.py | ||
| test_mcp_client_unit.py | ||
| test_mcp_guardrails.py | ||
| test_mcp_hooks.py | ||
| test_mcp_litellm_client.py | ||
| test_mcp_logging.py | ||
| test_mcp_server.py | ||
| test_oauth2_mcp_config.yaml | ||
| test_openapi_spec_path_url.py | ||
| test_per_user_oauth_cache.py | ||
| test_proxy_mcp_e2e.py | ||
| test_semantic_tool_filter_e2e.py | ||