Skip to content

Commit c051f03

Browse files
committed
feat: MCP Library — world-class marketplace view for MCP servers
Dedicated MCP Library view replacing Settings-embedded MCP: - Browse 10+ curated MCP servers (Postgres, GitHub, Brave, Slack, etc.) - Category pills: All, Installed, Featured, Databases, APIs, Developer - Real-time search filtering - Beautiful card grid with icons, descriptions, status dots - Configuration modal with command, env vars, arguments - Install/configure/remove/toggle servers - Empty state for Installed filter - Premium dark UI: true black, squircle cards (24px radius), animations - Responsive: 1-col mobile → 4-col desktop - Hidden on mobile (like skills) - Registered as 'mcp' view with ⌘6 shortcut - MCP tab removed from Settings panel New files: components/mcp-library.tsx (714 lines), views/mcp-library-view.tsx
1 parent 88fd2ad commit c051f03

7 files changed

Lines changed: 739 additions & 13 deletions

File tree

app/page.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ const VIEW_ICONS: Record<string, { icon: string; label: string }> = {
9090
diff: { icon: 'lucide:git-compare', label: 'Diff' },
9191
git: { icon: 'lucide:git-branch', label: 'Git' },
9292
skills: { icon: 'lucide:sparkles', label: 'Skills' },
93+
mcp: { icon: 'lucide:plug', label: 'MCP' },
9394
settings: { icon: 'lucide:settings', label: 'Settings' },
9495
terminal: { icon: 'lucide:terminal', label: 'Terminal' },
9596
}
@@ -134,7 +135,7 @@ export default function EditorLayout() {
134135
const terminalStartupCommand = useCenteredTerminal ? 'openclaw tui' : undefined
135136
const mobileViewTabs = useMemo(() => {
136137
// On mobile, curate tabs to useful views + always include settings
137-
const mobile = visibleViews.filter((v) => !['preview', 'diff', 'skills'].includes(v))
138+
const mobile = visibleViews.filter((v) => !['preview', 'diff', 'skills', 'mcp'].includes(v))
138139
if (!mobile.includes('terminal')) mobile.push('terminal')
139140
return mobile.slice(0, 5)
140141
}, [visibleViews])

0 commit comments

Comments
 (0)