Skip to main content
Glama

KRDS UI/UX MCP Server

by re-rank
component-search.ts1.74 kB
import type { KRDSComponent } from '../types/krds.js'; import type { KRDSLoader } from '../services/krds-loader.js'; /** * 컴포넌트 검색 도구 */ export async function searchComponents( loader: KRDSLoader, query?: string, category?: string ): Promise<KRDSComponent[]> { const allComponents = await loader.loadComponents(); let results = allComponents; // 카테고리 필터 if (category) { results = results.filter(c => c.category.toLowerCase() === category.toLowerCase() ); } // 검색어 필터 if (query) { const lowerQuery = query.toLowerCase(); results = results.filter(c => c.name.toLowerCase().includes(lowerQuery) || c.category.toLowerCase().includes(lowerQuery) || (c.description && c.description.toLowerCase().includes(lowerQuery)) ); } return results; } /** * 특정 컴포넌트 코드 가져오기 */ export async function getComponentCode( loader: KRDSLoader, componentName: string ): Promise<KRDSComponent | null> { const allComponents = await loader.loadComponents(); return allComponents.find(c => c.name === componentName || c.name === componentName.replace(/_/g, '-') ) || null; } /** * 모든 카테고리 목록 가져오기 */ export async function listCategories(loader: KRDSLoader): Promise<string[]> { const allComponents = await loader.loadComponents(); const categories = new Set(allComponents.map(c => c.category)); return Array.from(categories).sort(); } /** * 컴포넌트 목록 (이름만) */ export async function listComponentNames(loader: KRDSLoader): Promise<string[]> { const allComponents = await loader.loadComponents(); return allComponents.map(c => c.name).sort(); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/re-rank/UIUX-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server