Files
Adrien Clerbois 8e03e6abeb feat: add fluentui-blazor plugin bundling the skill and the official MCP server (#2675)
* 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.

* 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).

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* refactor(plugins): align fluentui-blazor MCP config with the Agent Plugin spec

Rename .mcp.json to mcp.json at the plugin root and add the
https://agent-plugins.org/schemas/1.0.0/mcp.schema.json reference, matching the
Agent Plugin MCP server specification. Drop the manifest mcpServers reference,
since clients discover mcp.json without it.

Also correct a README claim that the server reads the library version in use.
Its documentation is generated at package build time and serves the version it
was built against, which is what the Prerequisites section already stated.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* chore: regenerate plugins README after restoring the mcpServers manifest reference

Re-adding extensions[com.github.awesome-copilot].mcpServers to plugin.json makes
the item counter include the bundled MCP server, so the fluentui-blazor row goes
from 1 to 2 items. The generated file was not refreshed at the time, which failed
the validate-readme check.

* refactor(plugins): drop the mcpServers manifest reference for fluentui-blazor

Clients discover the plugin-root mcp.json on their own, and the
com.github.awesome-copilot namespace is stripped from the served manifest by
materialize-plugins.mjs, so the field had no effect on the published plugin.

Regenerate docs/README.plugins.md in the same commit: the item counter keys off
the manifest field, so the row goes back from 2 to 1 item and validate-readme
would otherwise fail.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* refactor(plugins): scope the fluentui-blazor PR to the plugin itself

Drop extensions[com.github.awesome-copilot].mcpServers from plugin.json as
requested in review: clients discover the plugin-root mcp.json on their own, and
materialize-plugins.mjs strips this namespace from the served manifest, so the
field never reached clients.

Revert the item-counter change to eng/update-readme.mjs and regenerate. Counting
MCP servers is a repo-wide concern and now lives in its own pull request, so this
one only adds the plugin.

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-24 10:31:08 +10:00

4.0 KiB

Fluent UI Blazor Plugin

Everything you need to build Blazor applications with the Microsoft Fluent UI Blazor 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

copilot plugin install fluentui-blazor@awesome-copilot

Prerequisites

  • The .NET 10 SDK 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, published on NuGet as 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 — looked up in documentation generated at package build time rather than recalled from training data. It serves the library version it was built against, which is why matching versions matters (see Prerequisites).

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

Add a FluentDataGrid of orders with sorting and pagination to my Blazor app.
Which Fluent icon should I use for a "save draft" button, and how do I reference it?
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, a community-driven collection of GitHub Copilot extensions.

The bundled MCP server is maintained in microsoft/fluentui-blazor.

License

MIT