Users/aclerbois/dev v5/support icon#4520
Open
AClerbois wants to merge 3 commits intomicrosoft:dev-v5from
Open
Conversation
…ymService, and IconTools - Implemented tests for IconPrompts to validate FindIcon and UseIcon prompts. - Created tests for IconResources to ensure correct catalog and variant retrieval. - Added comprehensive tests for IconService covering icon retrieval, searching, and variant handling. - Developed tests for IconSynonymService to verify synonym functionality and coverage. - Established tests for IconTools to validate search, details retrieval, usage examples, and listing icons.
89dc45c to
dc06f18
Compare
…ving full icon catalog
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request introduces comprehensive icon discovery and usage features for the Fluent UI Blazor MCP Server. The implementation adds services, tools, resources, and prompts to enable AI-assisted icon selection and code generation for Fluent UI Blazor applications.
Changes:
- Adds
IconModel,IconService, andIconSynonymServiceto support icon catalog management and synonym-based search - Implements MCP tools (
IconTools) for searching icons, getting details, and generating usage examples - Provides MCP resources (
IconResources) for icon catalog browsing and variant information - Includes AI prompts (
IconPrompts) for finding and using icons in different contexts - Embeds icon catalog (
all-icons.json) as a resource for runtime access - Comprehensive test coverage across all new components (6 test files with 1,417 lines of tests)
Reviewed changes
Copilot reviewed 14 out of 15 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/Tools/McpServer/Models/IconModel.cs | Record type representing an icon with its variants and sizes, including helper methods for querying availability |
| src/Tools/McpServer/Services/IconSynonymService.cs | Service mapping common keywords (e.g., "trash", "bell") to icon names for improved discoverability |
| src/Tools/McpServer/Services/IconService.cs | Core service for loading, searching, and querying the icon catalog from embedded JSON |
| src/Tools/McpServer/Tools/IconTools.cs | MCP tools exposing SearchIcons, GetIconDetails, GetIconUsage, and ListAllIconNames functionality |
| src/Tools/McpServer/Resources/IconResources.cs | MCP resources providing icon catalog overview, variant details, and individual icon information |
| src/Tools/McpServer/Prompts/IconPrompts.cs | AI prompts for finding the best icon and generating context-specific usage code |
| src/Tools/McpServer/Extensions/ServiceCollectionExtensions.cs | Registers IconSynonymService and IconService as singletons in DI |
| src/Tools/McpServer/Microsoft.FluentUI.AspNetCore.McpServer.csproj | Embeds all-icons.json as a resource |
| tests/Tools/McpServer.Tests/* | Comprehensive test coverage for all new components (312 + 159 + 521 + 180 + 270 + 175 lines) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
📖 Description
This pull request introduces a new icon discovery and usage feature for Fluent UI Blazor in the
McpServertool. The main changes include adding new services for icon catalog and synonym lookup, embedding the icon catalog as a resource, and implementing prompt logic for icon-related AI workflows. These updates enable users and AI to search, recommend, and generate code for Fluent UI icons with detailed guidance.Icon catalog and services:
Registered
IconSynonymServiceandIconServiceas singletons in the dependency injection setup to support icon search and synonym mapping.Embedded the
all-icons.jsonicon catalog as a resource in the project for runtime access by icon services.Icon model and prompt logic:
Added the
IconModelrecord to represent Fluent UI icons, their variants, and sizes, with methods for querying variant/size availability.Introduced the
IconPromptsclass, which provides AI prompt logic for finding the best icon for a purpose and generating Blazor code for icon usage, including accessibility and context-specific guidance.👩💻 Reviewer Notes
Only contains support for icon and not emoji
📑 Test Plan
✅ Checklist
General
Component-specific
⏭ Next Steps