From 950210790b529216bb75dfcbfa09f2f89769c8fe Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Fri, 3 Oct 2025 18:12:31 -0700 Subject: [PATCH] feat(create_mcp_server.tsx): initial ui component for adding extra headers, allowed tools, disallowed tools to litellm ui Closes LIT-1183 --- .../mcp_tools/MCPPermissionManagement.tsx | 139 ++++++++++++++++++ .../mcp_tools/create_mcp_server.tsx | 35 ++--- 2 files changed, 149 insertions(+), 25 deletions(-) create mode 100644 ui/litellm-dashboard/src/components/mcp_tools/MCPPermissionManagement.tsx diff --git a/ui/litellm-dashboard/src/components/mcp_tools/MCPPermissionManagement.tsx b/ui/litellm-dashboard/src/components/mcp_tools/MCPPermissionManagement.tsx new file mode 100644 index 0000000000..b66f095006 --- /dev/null +++ b/ui/litellm-dashboard/src/components/mcp_tools/MCPPermissionManagement.tsx @@ -0,0 +1,139 @@ +import React, { useState } from "react" +import { Form, Select, Tooltip, Collapse } from "antd" +import { InfoCircleOutlined } from "@ant-design/icons" + +const { Panel } = Collapse + +interface MCPPermissionManagementProps { + availableAccessGroups: string[] + searchValue: string + setSearchValue: (value: string) => void + getAccessGroupOptions: () => Array<{ + value: string + label: React.ReactNode + }> +} + +const MCPPermissionManagement: React.FC = ({ + availableAccessGroups, + searchValue, + setSearchValue, + getAccessGroupOptions, +}) => { + return ( + + +
+
+

Permission Management / Access Control

+
+

+ Configure access permissions and security settings (Optional) +

+ + } + key="permissions" + className="border-0" + > +
+ + MCP Access Groups + + + + + } + name="mcp_access_groups" + className="mb-4" + > + + + + + Allowed Tools + + + + + } + name="allowed_tools" + > + + +
+
+
+ ) +} + +export default MCPPermissionManagement diff --git a/ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.tsx b/ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.tsx index d2ba0fbfca..c088108860 100644 --- a/ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.tsx +++ b/ui/litellm-dashboard/src/components/mcp_tools/create_mcp_server.tsx @@ -8,6 +8,7 @@ import MCPServerCostConfig from "./mcp_server_cost_config" import MCPConnectionStatus from "./mcp_connection_status" import MCPToolConfiguration from "./mcp_tool_configuration" import StdioConfiguration from "./StdioConfiguration" +import MCPPermissionManagement from "./MCPPermissionManagement" import { isAdminRole } from "@/utils/roles" import { validateMCPServerUrl, validateMCPServerName } from "./utils" import NotificationsManager from "../molecules/notifications_manager" @@ -381,32 +382,16 @@ const CreateMCPServer: React.FC = ({ {/* Stdio Configuration - only show for stdio transport */} + - - MCP Access Groups - - - - - } - name="mcp_access_groups" - className="mb-4" - > -