Skip to main content
Glama
MarySuneela

Visa Design System MCP Server

by MarySuneela

search-design-tokens

Search design tokens by name or value within Visa's Product Design System to quickly locate specific resources and streamline design development.

Instructions

Search design tokens by name or value

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for token names or values

Implementation Reference

  • Tool definition and registration in getToolDefinitions(), including schema for input validation
    { name: 'search-design-tokens', description: 'Search design tokens by name or value', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query for token names or values' } }, required: ['query'] } },
  • Handler function that processes the tool call, validates arguments, delegates to DesignTokenService.searchTokens, and returns formatted JSON response
    /** * Handle search-design-tokens tool call */ private async handleSearchDesignTokens(args: Record<string, any>): Promise<CallToolResult> { const { query } = args; if (!query || typeof query !== 'string') { throw new McpError( ErrorCode.InvalidParams, 'Query parameter is required and must be a string' ); } const tokens = await this.designTokenService.searchTokens(query); return { content: [ { type: 'text', text: JSON.stringify({ tokens, count: tokens.length, query }, null, 2) } ] }; }
  • Core implementation of token search logic in DesignTokenService, filtering tokens by query matching name, value, description, usage, or aliases
    /** * Search design tokens by various criteria */ async searchTokens(query: string): Promise<DesignToken[]> { if (!query || typeof query !== 'string') { throw this.createError('INVALID_QUERY', 'Search query must be a non-empty string'); } const cachedData = this.dataManager.getCachedData(); if (!cachedData) { throw this.createError('NO_DATA', 'No design token data available'); } const searchTerm = query.toLowerCase(); return cachedData.designTokens.filter(token => { // Search in name if (token.name.toLowerCase().includes(searchTerm)) { return true; } // Search in value (convert to string for search) if (String(token.value).toLowerCase().includes(searchTerm)) { return true; } // Search in description if (token.description?.toLowerCase().includes(searchTerm)) { return true; } // Search in usage array if (token.usage?.some(usage => usage.toLowerCase().includes(searchTerm) )) { return true; } // Search in aliases if (token.aliases?.some(alias => alias.toLowerCase().includes(searchTerm) )) { return true; } return false; }); }

Latest Blog Posts

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/MarySuneela/mcp-vpds'

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