diff --git a/ui/litellm-dashboard/src/components/mcp_tools/MCPSubmissionsTab.tsx b/ui/litellm-dashboard/src/components/mcp_tools/MCPSubmissionsTab.tsx
index 85875b620bb..4c443a257f1 100644
--- a/ui/litellm-dashboard/src/components/mcp_tools/MCPSubmissionsTab.tsx
+++ b/ui/litellm-dashboard/src/components/mcp_tools/MCPSubmissionsTab.tsx
@@ -322,24 +322,35 @@ function MCPServerCard({ server, onApprove, onReject, requiredFields }: MCPServe
)}
{/* Approve/Reject when no checks panel (no rules configured) */}
- {checks.length === 0 && (approvalStatus === "pending_review" || approvalStatus === "rejected") && (
+ {checks.length === 0 && approvalStatus !== "rejected" && (
+
+ {approvalStatus !== "active" && (
+
+ )}
+
+
+ )}
+ {checks.length === 0 && approvalStatus === "rejected" && (
- {approvalStatus === "pending_review" && (
-
- )}
)}
@@ -377,8 +388,8 @@ function MCPServerCard({ server, onApprove, onReject, requiredFields }: MCPServe
{/* Approve / Reject in header */}
- {(approvalStatus === "pending_review" || approvalStatus === "rejected") && (
-
+
+ {approvalStatus !== "active" && approvalStatus !== "rejected" && (
- {approvalStatus === "pending_review" && (
-
- )}
-
- )}
+ )}
+ {approvalStatus === "rejected" && (
+
+ )}
+ {approvalStatus !== "rejected" && (
+
+ )}
+
{/* Individual check rows */}
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 ae57b10b21e..c9dca035206 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
@@ -373,7 +373,6 @@ const CreateMCPServer: React.FC = ({
console.log(`Payload: ${JSON.stringify(payload)}`);
if (accessToken != null) {
- const isAdmin = isAdminRole(userRole);
const response = isAdmin
? await createMCPServer(accessToken, payload)
: await registerMCPServer(accessToken, payload);
@@ -468,11 +467,9 @@ const CreateMCPServer: React.FC = ({
}
}, [isModalVisible]);
- // rendering
- if (!isAdminRole(userRole)) {
- return null;
- }
+ const isAdmin = isAdminRole(userRole);
+ // rendering
return (
= ({
objectFit: "contain",
}}
/>
- Add New MCP Server
+
+ {isAdmin ? "Add New MCP Server" : "Submit MCP Server for Review"}
+
}
open={isModalVisible}
@@ -517,6 +516,12 @@ const CreateMCPServer: React.FC = ({
layout="vertical"
className="space-y-6"
>
+ {!isAdmin && (
+
+ Your submission will be sent for admin review before it becomes active.
+ {" "}Note: the request must be made with a team-scoped API key.
+
+ )}