From a0286f109e787f0e675f112341b24814251021ed Mon Sep 17 00:00:00 2001 From: Adrien Clerbois Date: Sat, 15 Aug 2026 10:54:25 +0200 Subject: [PATCH 1/3] feat(plugins): add fluentui-blazor plugin bundling skill and MCP server Bundle the existing skills/fluentui-blazor skill with the official Fluent UI Blazor MCP server (NuGet: Microsoft.FluentUI.AspNetCore.McpServer, launched via dnx) so users get usage guidance plus live component, enum, icon, documentation, and v4-to-v5 migration lookup from a single plugin install. The skill is referenced, not copied; skills/fluentui-blazor/ is unchanged. Regenerated marketplace.json and docs/README.plugins.md via npm run build. --- .github/plugin/marketplace.json | 6 +++ docs/README.plugins.md | 1 + plugins/fluentui-blazor/.mcp.json | 13 ++++++ plugins/fluentui-blazor/README.md | 71 +++++++++++++++++++++++++++++ plugins/fluentui-blazor/plugin.json | 33 ++++++++++++++ 5 files changed, 124 insertions(+) create mode 100644 plugins/fluentui-blazor/.mcp.json create mode 100644 plugins/fluentui-blazor/README.md create mode 100644 plugins/fluentui-blazor/plugin.json diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json index b5458c93e..03b758314 100644 --- a/.github/plugin/marketplace.json +++ b/.github/plugin/marketplace.json @@ -691,6 +691,12 @@ "description": "Give your AI agent full visibility into Power Automate cloud flows via the FlowStudio MCP server. Connect, debug, build, monitor health, and govern flows at scale — action-level inputs and outputs, not just status codes.", "version": "2.0.0" }, + { + "name": "fluentui-blazor", + "source": "plugins/fluentui-blazor", + "description": "Build Blazor apps with the Microsoft Fluent UI Blazor library. Bundles the fluentui-blazor skill for correct usage patterns (providers, service registration, icons, dialogs, data grid, theming) with the official Fluent UI Blazor MCP server for live lookup of components, parameters, enums, icons, and documentation, plus v4-to-v5 migration guidance.", + "version": "1.0.0" + }, { "name": "foundation-models", "description": "Helps coding agents write and review Apple Foundation Models code for iOS, macOS, visionOS, and watchOS using the SDK installed on the developer's Mac. It verifies real API signatures and availability, then type-checks the result instead of relying on model memory.", diff --git a/docs/README.plugins.md b/docs/README.plugins.md index 3e9089d74..1c4aa39c3 100644 --- a/docs/README.plugins.md +++ b/docs/README.plugins.md @@ -62,6 +62,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t | [feedback-themes](../plugins/feedback-themes/README.md) | Explore grouped customer feedback signals by impact and drill into a theme to guide product next steps. | 1 items | customer-feedback, impact-prioritization, product-insights, signal-grouping, theme-analysis, trend-discovery | | [flight-map-canvas](../plugins/flight-map-canvas/README.md) | A GitHub Copilot canvas that generates a view where Google Maps can be explored using 3D controls, as if a flight simulator. Agents can send the flight anywhere and report what they are working on. | 1 items | copilot-canvas, flight-simulator, geography, google-maps, interactive-canvas, session-breaks, threejs | | [flowstudio-power-automate](../plugins/flowstudio-power-automate/README.md) | Give your AI agent full visibility into Power Automate cloud flows via the FlowStudio MCP server. Connect, debug, build, monitor health, and govern flows at scale — action-level inputs and outputs, not just status codes. | 5 items | power-automate, power-platform, flowstudio, mcp, model-context-protocol, cloud-flows, workflow-automation, monitoring, governance | +| [fluentui-blazor](../plugins/fluentui-blazor/README.md) | Build Blazor apps with the Microsoft Fluent UI Blazor library. Bundles the fluentui-blazor skill for correct usage patterns (providers, service registration, icons, dialogs, data grid, theming) with the official Fluent UI Blazor MCP server for live lookup of components, parameters, enums, icons, and documentation, plus v4-to-v5 migration guidance. | 1 items | fluentui, blazor, dotnet, components, aspnetcore, mcp, model-context-protocol, migration, icons, theming | | [frontend-web-dev](../plugins/frontend-web-dev/README.md) | Essential prompts, instructions, and chat modes for modern frontend web development including React, Angular, Vue, TypeScript, and CSS frameworks. | 4 items | frontend, web, react, typescript, javascript, css, html, angular, vue | | [gem-team](../plugins/gem-team/README.md) | Self-Learning Multi-agent orchestration framework for spec-driven development and automated verification. With smarter tool calling and leaner context. | 16 items | multi-agent, orchestration, tdd, testing, e2e, devops, security-audit, code-review, prd, mobile | | [gesture-review](../plugins/gesture-review/README.md) | Review pull requests with a live camera feed and approve or reject using thumbs-up/thumbs-down gestures. | 1 items | camera-input, gesture-control, github-prs, hands-free, mediapipe, pull-request-review | diff --git a/plugins/fluentui-blazor/.mcp.json b/plugins/fluentui-blazor/.mcp.json new file mode 100644 index 000000000..efc2777cd --- /dev/null +++ b/plugins/fluentui-blazor/.mcp.json @@ -0,0 +1,13 @@ +{ + "mcpServers": { + "fluent-ui-blazor": { + "type": "stdio", + "command": "dnx", + "args": [ + "Microsoft.FluentUI.AspNetCore.McpServer", + "--yes", + "--prerelease" + ] + } + } +} diff --git a/plugins/fluentui-blazor/README.md b/plugins/fluentui-blazor/README.md new file mode 100644 index 000000000..9f17586c8 --- /dev/null +++ b/plugins/fluentui-blazor/README.md @@ -0,0 +1,71 @@ +# Fluent UI Blazor Plugin + +Everything you need to build Blazor applications with the [Microsoft Fluent UI Blazor](https://www.fluentui-blazor.net) component library, in one install: the `fluentui-blazor` skill for correct usage patterns, and the official Fluent UI Blazor MCP server for live, version-accurate lookup of components, enums, icons, and documentation. + +## Installation + +```bash +copilot plugin install fluentui-blazor@awesome-copilot +``` + +## Prerequisites + +- The [.NET 10 SDK](https://dotnet.microsoft.com/download) or later must be installed and `dnx` available on your `PATH`. +- The plugin starts its bundled MCP server by running `dnx Microsoft.FluentUI.AspNetCore.McpServer`. The first launch downloads the package from nuget.org. +- The MCP server and the component library are published with the same version number, and the server documents the version it was built against. If your project references a different version, ask the agent to run `check_project_version` — mismatched versions produce documentation that does not match your code. + +## What's Included + +### Skills + +| Skill | Description | +|-------|-------------| +| `fluentui-blazor` | Guide for using the `Microsoft.FluentUI.AspNetCore.Components` package: mandatory providers, service registration and lifetimes, strongly-typed icons, the `Items`/`OptionText`/`OptionValue` list binding model, the `IDialogService` pattern, toasts, design tokens and theming, and form components. Includes reference files on setup, layout and navigation, data grid, and theming. | + +### MCP server + +This plugin includes the `fluent-ui-blazor` MCP server configured in [`./.mcp.json`](./.mcp.json), published on NuGet as [`Microsoft.FluentUI.AspNetCore.McpServer`](https://www.nuget.org/packages/Microsoft.FluentUI.AspNetCore.McpServer). If the .NET SDK is unavailable, MCP startup will fail. + +It gives the agent authoritative, version-aware answers instead of guesses: + +| Capability | Tools | +|------------|-------| +| Components | `list_components`, `search_components`, `get_component_details`, `list_categories` | +| Enums | `list_enums`, `get_enum_values`, `get_component_enums` | +| Icons | `search_icons`, `list_all_icon_names`, `get_icon_details`, `get_icon_usage` | +| Documentation | `list_documentation`, `search_documentation`, `get_documentation_topic` | +| Versions | `get_version_info`, `check_project_version` | +| v4 → v5 migration | `get_migration_overview`, `get_migration_guide`, `list_component_migrations`, `get_component_migration` | + +### Why the skill and the MCP server together + +They cover different failure modes, and each is weaker alone: + +- The **skill** encodes the patterns that models get wrong from training data — the provider components that fail silently when missing, `ServiceLifetime.Transient` throwing, `FluentSelect` not behaving like `InputSelect`, design tokens needing `OnAfterRenderAsync`. This is judgement, not lookup. +- The **MCP server** supplies the facts that go stale — exact parameter names, enum values, the 142+ component surface, and the icon catalog — read from the library version in use rather than recalled. + +Installing them as one plugin means a single `copilot plugin install` gets a working Fluent UI Blazor setup, instead of a skill that names components the agent then has to invent parameters for. + +## Example prompts + +```text +Add a FluentDataGrid of orders with sorting and pagination to my Blazor app. +``` + +```text +Which Fluent icon should I use for a "save draft" button, and how do I reference it? +``` + +```text +Check what my project is on today, then walk me through migrating this page from Fluent UI Blazor v4 to v5. +``` + +## Source + +This plugin is part of [Awesome Copilot](https://github.com/github/awesome-copilot), a community-driven collection of GitHub Copilot extensions. + +The bundled MCP server is maintained in [microsoft/fluentui-blazor](https://github.com/microsoft/fluentui-blazor). + +## License + +MIT diff --git a/plugins/fluentui-blazor/plugin.json b/plugins/fluentui-blazor/plugin.json new file mode 100644 index 000000000..0f6478a7e --- /dev/null +++ b/plugins/fluentui-blazor/plugin.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", + "name": "fluentui-blazor", + "description": "Build Blazor apps with the Microsoft Fluent UI Blazor library. Bundles the fluentui-blazor skill for correct usage patterns (providers, service registration, icons, dialogs, data grid, theming) with the official Fluent UI Blazor MCP server for live lookup of components, parameters, enums, icons, and documentation, plus v4-to-v5 migration guidance.", + "version": "1.0.0", + "keywords": [ + "fluentui", + "blazor", + "dotnet", + "components", + "aspnetcore", + "mcp", + "model-context-protocol", + "migration", + "icons", + "theming" + ], + "author": { + "name": "Adrien Clerbois", + "url": "https://github.com/AClerbois" + }, + "homepage": "https://www.fluentui-blazor.net", + "repository": "https://github.com/github/awesome-copilot", + "license": "MIT", + "extensions": { + "com.github.awesome-copilot": { + "mcpServers": "./.mcp.json", + "skills": [ + "./skills/fluentui-blazor/" + ] + } + } +} From 6e46fbfb47f7f36a5a78702eddd829e0eec3531d Mon Sep 17 00:00:00 2001 From: Adrien Clerbois Date: Sat, 15 Aug 2026 11:18:31 +0200 Subject: [PATCH 2/3] fix(eng): count MCP servers in README plugin item totals update-readme.mjs summed agents, skills and extensions but ignored composition.mcpServers, while generate-website-data.mjs already counted MCP entries. The README and website catalogs therefore disagreed for any plugin declaring an MCP server. Mirror the website generator logic, including the .mcp.json path form and multi-server files, so both catalogs report the same totals. Affects awesome-copilot (4 to 5 items) and fluentui-blazor (1 to 2 items). --- docs/README.plugins.md | 4 ++-- eng/update-readme.mjs | 30 +++++++++++++++++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/docs/README.plugins.md b/docs/README.plugins.md index 1c4aa39c3..2b2210ea2 100644 --- a/docs/README.plugins.md +++ b/docs/README.plugins.md @@ -35,7 +35,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t | [arch](../plugins/arch/README.md) | Architecture and modernization toolkit: produce a cited architecture document for a locally-cloned repo, and generate a phased modernization plan that auto-runs Documentation mode when needed. | 1 items | architecture, modernization, documentation, migration, onboarding | | [arize-ax](../plugins/arize-ax/README.md) | Arize AX platform skills for LLM observability, evaluation, and optimization. Includes trace export, instrumentation, datasets, experiments, evaluators, AI provider integrations, annotations, prompt optimization, and deep linking to the Arize UI. | 9 items | arize, llm, observability, tracing, evaluation, instrumentation, datasets, experiments, prompt-optimization | | [automate-this](../plugins/automate-this/README.md) | Record your screen doing a manual process, drop the video on your Desktop, and let Copilot CLI analyze it frame-by-frame to build working automation scripts. Supports narrated recordings with audio transcription. | 1 items | automation, screen-recording, workflow, video-analysis, process-automation, scripting, productivity, copilot-cli | -| [awesome-copilot](../plugins/awesome-copilot/README.md) | Meta prompts that help you discover and generate curated GitHub Copilot agents, instructions, prompts, and skills. | 4 items | github-copilot, discovery, meta, prompt-engineering, agents | +| [awesome-copilot](../plugins/awesome-copilot/README.md) | Meta prompts that help you discover and generate curated GitHub Copilot agents, instructions, prompts, and skills. | 5 items | github-copilot, discovery, meta, prompt-engineering, agents | | [aws-cloud-development](../plugins/aws-cloud-development/README.md) | Comprehensive AWS cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications. | 8 items | aws, cloud, infrastructure, cloudformation, terraform, serverless, architecture, devops, cdk | | [azure-cloud-development](../plugins/azure-cloud-development/README.md) | Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications. | 11 items | azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops | | [backlog-swipe-triage](../plugins/backlog-swipe-triage/README.md) | Quickly swipe through backlog issues to triage decisions like assign, needs-info, defer, close, or ignore. | 1 items | agent-assignment, backlog-triage, github-issues, issue-prioritization, swipe-interface, workflow-automation | @@ -62,7 +62,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t | [feedback-themes](../plugins/feedback-themes/README.md) | Explore grouped customer feedback signals by impact and drill into a theme to guide product next steps. | 1 items | customer-feedback, impact-prioritization, product-insights, signal-grouping, theme-analysis, trend-discovery | | [flight-map-canvas](../plugins/flight-map-canvas/README.md) | A GitHub Copilot canvas that generates a view where Google Maps can be explored using 3D controls, as if a flight simulator. Agents can send the flight anywhere and report what they are working on. | 1 items | copilot-canvas, flight-simulator, geography, google-maps, interactive-canvas, session-breaks, threejs | | [flowstudio-power-automate](../plugins/flowstudio-power-automate/README.md) | Give your AI agent full visibility into Power Automate cloud flows via the FlowStudio MCP server. Connect, debug, build, monitor health, and govern flows at scale — action-level inputs and outputs, not just status codes. | 5 items | power-automate, power-platform, flowstudio, mcp, model-context-protocol, cloud-flows, workflow-automation, monitoring, governance | -| [fluentui-blazor](../plugins/fluentui-blazor/README.md) | Build Blazor apps with the Microsoft Fluent UI Blazor library. Bundles the fluentui-blazor skill for correct usage patterns (providers, service registration, icons, dialogs, data grid, theming) with the official Fluent UI Blazor MCP server for live lookup of components, parameters, enums, icons, and documentation, plus v4-to-v5 migration guidance. | 1 items | fluentui, blazor, dotnet, components, aspnetcore, mcp, model-context-protocol, migration, icons, theming | +| [fluentui-blazor](../plugins/fluentui-blazor/README.md) | Build Blazor apps with the Microsoft Fluent UI Blazor library. Bundles the fluentui-blazor skill for correct usage patterns (providers, service registration, icons, dialogs, data grid, theming) with the official Fluent UI Blazor MCP server for live lookup of components, parameters, enums, icons, and documentation, plus v4-to-v5 migration guidance. | 2 items | fluentui, blazor, dotnet, components, aspnetcore, mcp, model-context-protocol, migration, icons, theming | | [frontend-web-dev](../plugins/frontend-web-dev/README.md) | Essential prompts, instructions, and chat modes for modern frontend web development including React, Angular, Vue, TypeScript, and CSS frameworks. | 4 items | frontend, web, react, typescript, javascript, css, html, angular, vue | | [gem-team](../plugins/gem-team/README.md) | Self-Learning Multi-agent orchestration framework for spec-driven development and automated verification. With smarter tool calling and leaner context. | 16 items | multi-agent, orchestration, tdd, testing, e2e, devops, security-audit, code-review, prd, mobile | | [gesture-review](../plugins/gesture-review/README.md) | Review pull requests with a live camera feed and approve or reject using thumbs-up/thumbs-down gestures. | 1 items | camera-input, gesture-control, github-prs, hands-free, mediapipe, pull-request-review | diff --git a/eng/update-readme.mjs b/eng/update-readme.mjs index 821364c58..17b255778 100644 --- a/eng/update-readme.mjs +++ b/eng/update-readme.mjs @@ -779,6 +779,33 @@ function generatePluginsSection(pluginsDir) { return ""; } + // Count configured MCP servers, mirroring generate-website-data.mjs so the + // README and website catalogs report the same item count. + // Supports a path to a .mcp.json file or an inline object. + const countMcpServers = (composition, pluginDir) => { + const configured = composition.mcpServers; + if (!configured) { + return 0; + } + + let mcpServersObj = null; + if (typeof configured === "string") { + const mcpJsonPath = path.join(pluginDir, configured.replace(/^\.\//, "")); + if (fs.existsSync(mcpJsonPath)) { + try { + const mcpJson = JSON.parse(fs.readFileSync(mcpJsonPath, "utf-8")); + mcpServersObj = mcpJson.mcpServers || mcpJson; + } catch { + // ignore parse errors + } + } + } else if (typeof configured === "object") { + mcpServersObj = configured; + } + + return mcpServersObj ? Object.keys(mcpServersObj).length : 0; + }; + // Create table header let pluginsContent = "| Name | Description | Items | Tags |\n| ---- | ----------- | ----- | ---- |\n"; @@ -802,7 +829,8 @@ function generatePluginsSection(pluginsDir) { (composition.agents || []).length + (composition.skills || []).length + extensionReferences + - implicitExtension; + implicitExtension + + countMcpServers(composition, entry.pluginDir); const keywords = plugin.keywords ? plugin.keywords.join(", ") : ""; const link = `../plugins/${dir}/README.md`; From 563bb28ae22b085b18bbc295fef150bbd405b927 Mon Sep 17 00:00:00 2001 From: Adrien Clerbois <50712277+AClerbois@users.noreply.github.com> Date: Sat, 15 Aug 2026 11:23:09 +0200 Subject: [PATCH 3/3] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- plugins/fluentui-blazor/.mcp.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/fluentui-blazor/.mcp.json b/plugins/fluentui-blazor/.mcp.json index efc2777cd..280eff04a 100644 --- a/plugins/fluentui-blazor/.mcp.json +++ b/plugins/fluentui-blazor/.mcp.json @@ -4,9 +4,8 @@ "type": "stdio", "command": "dnx", "args": [ - "Microsoft.FluentUI.AspNetCore.McpServer", - "--yes", - "--prerelease" + "Microsoft.FluentUI.AspNetCore.McpServer@5.0.0-rc.5-26219.1", + "--yes" ] } }