-
+
{displayName}
diff --git a/mlflow/server/js/src/mcp-registry/pages/MCPRegistryPage.tsx b/mlflow/server/js/src/mcp-registry/pages/MCPRegistryPage.tsx
index d5fd476f98ced..d68307e0d56e1 100644
--- a/mlflow/server/js/src/mcp-registry/pages/MCPRegistryPage.tsx
+++ b/mlflow/server/js/src/mcp-registry/pages/MCPRegistryPage.tsx
@@ -9,7 +9,7 @@ import {
PlusIcon,
SegmentedControlButton,
SegmentedControlGroup,
- WrenchIcon,
+ McpIcon,
Spacer,
TableFilterInput,
TableFilterLayout,
@@ -36,7 +36,6 @@ import type { MCPAccessBinding } from '../types';
import { MCPAccessBindingCardGrid } from '../components/MCPAccessBindingCardGrid';
import { MCPAccessBindingListTable } from '../components/MCPAccessBindingListTable';
import { AccessBindingModal } from '../components/AccessBindingModal';
-import type { MCPServer } from '../types';
import { useDebounce } from 'use-debounce';
type ViewMode = 'list' | 'grid';
@@ -168,7 +167,7 @@ const MCPRegistryPage = () => {
padding: theme.spacing.sm,
}}
>
-
+
diff --git a/mlflow/server/js/src/mcp-registry/pages/MCPServerDetailPage.test.tsx b/mlflow/server/js/src/mcp-registry/pages/MCPServerDetailPage.test.tsx
index e18b63902dd5b..7797d9b471ac4 100644
--- a/mlflow/server/js/src/mcp-registry/pages/MCPServerDetailPage.test.tsx
+++ b/mlflow/server/js/src/mcp-registry/pages/MCPServerDetailPage.test.tsx
@@ -528,5 +528,5 @@ describe('MCPServerDetailPage', () => {
},
{ timeout: 10000 },
);
- });
+ }, 15000);
});
diff --git a/mlflow/server/js/src/mcp-registry/types.ts b/mlflow/server/js/src/mcp-registry/types.ts
index fde0779cff51c..20e697aefe7f8 100644
--- a/mlflow/server/js/src/mcp-registry/types.ts
+++ b/mlflow/server/js/src/mcp-registry/types.ts
@@ -8,10 +8,10 @@ export interface MCPTool {
name: string;
title?: string;
description?: string;
+ icons?: MCPIcon[];
inputSchema?: Record;
outputSchema?: Record;
annotations?: Record;
- icons?: MCPIcon[];
execution?: Record;
}
@@ -124,6 +124,7 @@ export interface ServerJSONPayload {
version: string;
title?: string;
description?: string;
+ icons?: MCPIcon[];
packages?: ServerJSONPackage[];
remotes?: ServerJSONTransport[];
repository?: ServerJSONRepository;
diff --git a/mlflow/server/js/src/mcp-registry/utils.ts b/mlflow/server/js/src/mcp-registry/utils.ts
index b86c2243434ad..9c44430405bb3 100644
--- a/mlflow/server/js/src/mcp-registry/utils.ts
+++ b/mlflow/server/js/src/mcp-registry/utils.ts
@@ -1,5 +1,5 @@
import type { TagProps } from '@databricks/design-system';
-import type { MCPRemoteTransportType, MCPStatus, MCPTool, ServerJSONPayload } from './types';
+import type { MCPIcon, MCPRemoteTransportType, MCPStatus, MCPTool, ServerJSONPayload } from './types';
export const STATUS_TAG_COLOR: Record = {
draft: 'charcoal',
@@ -85,6 +85,10 @@ export const buildSearchFilterClause = (searchFilter: string | undefined, field:
return `${field} LIKE '%${searchFilter.replace(/'/g, "''")}%'`;
};
+export const resolveIconSrc = (icons: MCPIcon[] | undefined): string | undefined => {
+ return icons?.[0]?.src;
+};
+
export const isValidEndpointUrl = (url: string): boolean => {
const trimmed = url.trim();
if (!/^https?:\/\//.test(trimmed)) return false;