Skip to content

feat: add fluentui-blazor plugin bundling the skill and the official MCP server - #2675

Open
AClerbois wants to merge 11 commits into
github:mainfrom
AClerbois:feature/fluentui-blazor-plugin
Open

feat: add fluentui-blazor plugin bundling the skill and the official MCP server#2675
AClerbois wants to merge 11 commits into
github:mainfrom
AClerbois:feature/fluentui-blazor-plugin

Conversation

@AClerbois

Copy link
Copy Markdown
Contributor

What this adds

A new curated plugin, fluentui-blazor, that bundles two things this repo already relates to but that users currently have to find and wire up separately:

  1. The existing skills/fluentui-blazor/ skill — referenced, not copied. skills/fluentui-blazor/ is untouched by this PR.
  2. The official Fluent UI Blazor MCP server — published on NuGet as Microsoft.FluentUI.AspNetCore.McpServer (MIT, maintained in microsoft/fluentui-blazor), declared as a stdio server launched through dnx.

Result: one command gets a working Fluent UI Blazor setup.

copilot plugin install fluentui-blazor@awesome-copilot

Why bundle them

The skill and the MCP server cover different failure modes, and each is noticeably weaker alone:

  • The skill encodes the patterns models get wrong from training data — provider components that fail silently when missing, ServiceLifetime.Transient throwing, FluentSelect not behaving like InputSelect, design tokens needing OnAfterRenderAsync. That's judgement, not lookup.
  • The MCP server supplies the facts that go stale — exact parameter names, enum values, the 142+ component surface, the icon catalog, and v4→v5 migration guidance — read from the library version actually in use rather than recalled.

Installed separately, a user typically ends up with a skill that names components the agent then invents parameters for. Bundled, the agent has both the "how to use this library correctly" guidance and a way to check itself.

MCP tools the server contributes: list_components, search_components, get_component_details, list_categories, list_enums, get_enum_values, get_component_enums, search_icons, list_all_icon_names, get_icon_details, get_icon_usage, list_documentation, search_documentation, get_documentation_topic, get_version_info, check_project_version, get_migration_overview, get_migration_guide, list_component_migrations, get_component_migration.

Files

File Purpose
plugins/fluentui-blazor/plugin.json Manifest; references the skill and ./.mcp.json under extensions["com.github.awesome-copilot"]
plugins/fluentui-blazor/.mcp.json stdio MCP server declaration (same shape as plugins/awesome-copilot/.mcp.json)
plugins/fluentui-blazor/README.md Plugin docs, prerequisites, example prompts
.github/plugin/marketplace.json Regenerated by npm run build
docs/README.plugins.md Regenerated by npm run build

Note on the dnx args

"args": ["Microsoft.FluentUI.AspNetCore.McpServer", "--yes", "--prerelease"]

--prerelease is required today: the package currently publishes only 5.0.0-rc.* versions, and dnx defaults to stable-only, so it would otherwise fail to resolve. We'll drop the flag in a follow-up once 5.0.0 GA ships — happy to do that on request instead if maintainers prefer to hold the plugin until GA.

Alternative: external plugin

As Fluent UI Blazor maintainers we're equally happy to host this as an external plugin via plugins/external.json and the issue-based review workflow, if that's the better fit for a vendor-maintained MCP server. Just say the word and we'll withdraw this PR and open a submission issue instead.

Contributing checklist

  • Read CONTRIBUTING.md and docs/README.plugins.md
  • Branch created from main (not staged); PR targets main
  • Plugin folder name is lowercase with hyphens and matches plugin.json name
  • Content declared declaratively under extensions["com.github.awesome-copilot"]; no materialized files or symlinks in plugins/
  • All referenced paths point to existing sources (skills/fluentui-blazor/SKILL.md)
  • Required metadata present: $schema, name, description, version, keywords, author, repository, license
  • npm run plugin:validate passes — All 94 plugins and the external catalog are valid
  • npm run build run; regenerated marketplace.json and docs/README.plugins.md are included
  • plugins/external.json not modified
  • skills/fluentui-blazor/ not modified
  • All content in English
  • Content is MIT-licensed and follows the repo's content and Responsible AI policies

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.
@AClerbois
AClerbois requested a review from aaronpowell as a code owner August 15, 2026 09:08
Copilot AI balanced review requested due to automatic review settings August 15, 2026 09:08
@github-actions github-actions Bot added the plugin PR touches plugins label Aug 15, 2026
@github-actions

github-actions Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

🔒 PR Risk Scan Results

Scanned 4 changed file(s).

Severity Count
🔴 High 0
🟠 Medium 0
ℹ️ Info 0

✅ No matching risk patterns were detected in changed files.

This is an automated soft-gate report. Findings indicate review targets and do not block merge by themselves.

@github-actions github-actions Bot added the needs-review:MEDIUM Contributor reputation check flagged MEDIUM risk label Aug 15, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a curated Fluent UI Blazor plugin combining the existing skill with the official MCP server.

Changes:

  • Adds plugin metadata, documentation, and MCP configuration.
  • Registers the plugin in generated catalogs.
  • Provides component, icon, documentation, and migration tooling.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
plugins/fluentui-blazor/README.md Documents installation and usage.
plugins/fluentui-blazor/plugin.json Defines bundled resources and metadata.
plugins/fluentui-blazor/.mcp.json Configures the NuGet MCP server.
docs/README.plugins.md Adds the plugin catalog entry.
.github/plugin/marketplace.json Registers the marketplace package.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/README.plugins.md
Comment thread plugins/fluentui-blazor/plugin.json
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).
Copilot AI review requested due to automatic review settings August 15, 2026 09:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Suppressed comments (1)

plugins/fluentui-blazor/README.md:45

  • This claims the server reads documentation from the project's library version, but line 15 correctly explains that it serves the version it was built against and can mismatch the project. Reword this so users do not expect the server to adapt automatically to their referenced package.
- 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.

Comment thread plugins/fluentui-blazor/.mcp.json Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 15, 2026 09:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

Suppressed comments (3)

plugins/fluentui-blazor/README.md:45

  • The server does not read documentation from the library version in the user's project. Its documentation is generated at package build time and embedded in the pinned MCP package, which is why line 15 warns that mismatched project versions are inaccurate. Reword this claim so users do not infer that the server adapts automatically to their installed library.
- 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.

plugins/fluentui-blazor/.mcp.json:7

  • This pins a v5 release candidate while the bundled skill explicitly targets version 4 (skills/fluentui-blazor/SKILL.md:15) and includes v4 API examples such as the constructor-free icon syntax at line 64. Installing the plugin therefore gives the agent conflicting instructions for ordinary v5 development. The skill needs to be updated or made version-aware before it is bundled with this v5-only server.
        "Microsoft.FluentUI.AspNetCore.McpServer@5.0.0-rc.5-26219.1",

plugins/fluentui-blazor/README.md:14

  • This does not describe the command that the plugin actually launches: .mcp.json pins an exact prerelease and adds --yes. With no stable package available, manually running the documented unversioned command may not resolve and cannot reproduce the plugin setup. Refer readers to the pinned configuration instead of presenting a different command.

This issue also appears on line 45 of the same file.

- The plugin starts its bundled MCP server by running `dnx Microsoft.FluentUI.AspNetCore.McpServer`. The first launch downloads the package from nuget.org.

Comment thread plugins/fluentui-blazor/mcp.json
Comment thread plugins/fluentui-blazor/plugin.json Outdated
…ugin 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.
Copilot AI review requested due to automatic review settings August 18, 2026 15:17
@github-actions github-actions Bot removed the needs-review:MEDIUM Contributor reputation check flagged MEDIUM risk label Aug 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

Suppressed comments (1)

plugins/fluentui-blazor/plugin.json:29

  • The manifest only declares the skill, so mcp.json is not part of the plugin composition. Installation will therefore expose no MCP server despite the plugin description/README, and the generated catalog correctly remains at 1 items. Add "mcpServers": "./mcp.json" in this namespace and regenerate the catalog outputs.
      "skills": [
        "./skills/fluentui-blazor/"
      ]

Copilot AI review requested due to automatic review settings August 18, 2026 15:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Comment thread plugins/fluentui-blazor/plugin.json
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 18, 2026 15:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

Suppressed comments (2)

plugins/fluentui-blazor/README.md:14

  • This prerequisite shows an invocation that does not match the bundled configuration. Because the package is currently prerelease-only, the unversioned command shown here can fail to resolve, while mcp.json pins the RC package and passes --yes. Document the exact command users will actually run so troubleshooting instructions remain reproducible.
- The plugin starts its bundled MCP server by running `dnx Microsoft.FluentUI.AspNetCore.McpServer`. The first launch downloads the package from nuget.org.

docs/README.plugins.md:65

  • This generated row is still stale: the manifest now contributes one skill and one MCP server, and the updated generator computes 2. Commit the output from the updated build so the checked-in catalog agrees with the manifest and website data.
| [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 |

…est 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.
Copilot AI review requested due to automatic review settings August 18, 2026 15:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

Suppressed comments (1)

plugins/fluentui-blazor/README.md:14

  • This prerequisite documents an unversioned launch command, but the bundled configuration actually runs the package pinned to 5.0.0-rc.5-26219.1. That distinction affects reproducibility and which component-library documentation users receive, so show the exact command configured by the plugin.
- The plugin starts its bundled MCP server by running `dnx Microsoft.FluentUI.AspNetCore.McpServer`. The first launch downloads the package from nuget.org.

…i-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.
Copilot AI review requested due to automatic review settings August 18, 2026 16:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Comment thread plugins/fluentui-blazor/plugin.json
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 18, 2026 17:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

Suppressed comments (2)

docs/README.plugins.md:65

  • The regenerated row is still stale: the new countMcpServers logic counts this plugin's one skill plus its one MCP server, so running the updated generator produces 2 items, not 1 items. Commit the regenerated output so the checked-in catalog matches the build result.
| [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 |

plugins/fluentui-blazor/mcp.json:9

  • This pins one specific RC, which contradicts the PR description's documented dnx Microsoft.FluentUI.AspNetCore.McpServer --yes --prerelease behavior and its plan to remove --prerelease at GA. A pin will not pick up later RC or GA releases, while the documented command will. Please decide which update policy is intended and align the manifest and PR documentation.
        "Microsoft.FluentUI.AspNetCore.McpServer@5.0.0-rc.5-26219.1",
        "--yes"

Comment thread plugins/fluentui-blazor/plugin.json Outdated
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.
Copilot AI review requested due to automatic review settings August 19, 2026 08:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.

Suppressed comments (3)

plugins/fluentui-blazor/plugin.json:28

  • This bundles a skill that explicitly targets Fluent UI Blazor v4 (skills/fluentui-blazor/SKILL.md:15) with a server pinned to 5.0.0-rc.5. Users therefore receive version-conflicting guidance despite the plugin advertising correct, version-aware usage. Update the skill for v5 or make it version-aware before shipping this bundle.
        "./skills/fluentui-blazor/"

plugins/fluentui-blazor/plugin.json:27

  • The composition declares only the skill, so the installer does not bundle mcp.json even though the plugin description and README promise the MCP server. Declare the MCP configuration here, as the existing awesome-copilot plugin does.
      "skills": [

docs/README.plugins.md:65

  • After the MCP configuration is declared, this generated count must be 2, but eng/update-readme.mjs:801-805 currently omits composition.mcpServers, so rebuilding will continue to emit 1 while website data counts both resources. Count configured MCP servers in the generator and regenerate this row.
| [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 |

@AClerbois
AClerbois requested a review from aaronpowell August 19, 2026 12:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

plugin PR touches plugins

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants