search-design-tokens
Find design tokens by name or value to access Visa's Product Design System resources for consistent UI implementation.
Instructions
Search design tokens by name or value
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for token names or values |
Implementation Reference
- Core implementation of the search-design-tokens tool. Filters design tokens from cache by matching query against name, value, description, usage, and aliases (case-insensitive).
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; }); } - src/mcp-server.ts:368-392 (handler)MCP server wrapper handler for search-design-tokens tool. Validates input query and delegates to DesignTokenService.searchTokens, formats response as JSON.
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) } ] }; } - src/mcp-server.ts:133-146 (registration)Tool registration in MCP server's getToolDefinitions(). Defines name, description, and input schema requiring 'query' string.
{ 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'] } }, - src/mcp-server.ts:139-146 (schema)Input schema for search-design-tokens tool: requires 'query' string parameter.
query: { type: 'string', description: 'Search query for token names or values' } }, required: ['query'] } }, - src/mcp-server.ts:292-293 (registration)Switch case in handleToolCall that routes 'search-design-tokens' calls to the handler.
case 'search-design-tokens': return await this.handleSearchDesignTokens(args);