feat: add fluentui-blazor plugin bundling the skill and the official MCP server - #2675
feat: add fluentui-blazor plugin bundling the skill and the official MCP server#2675AClerbois wants to merge 3 commits into
Conversation
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.
🔒 PR Risk Scan ResultsScanned 5 changed file(s).
|
|
🟡 Contributor Reputation Check: MEDIUM risk
Maintainers: please review this contributor before merging. |
There was a problem hiding this comment.
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.
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).
There was a problem hiding this comment.
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.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
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.jsonpins 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.
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:skills/fluentui-blazor/skill — referenced, not copied.skills/fluentui-blazor/is untouched by this PR.Microsoft.FluentUI.AspNetCore.McpServer(MIT, maintained in microsoft/fluentui-blazor), declared as a stdio server launched throughdnx.Result: one command gets a working Fluent UI Blazor setup.
Why bundle them
The skill and the MCP server cover different failure modes, and each is noticeably weaker alone:
ServiceLifetime.Transientthrowing,FluentSelectnot behaving likeInputSelect, design tokens needingOnAfterRenderAsync. That's judgement, not lookup.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
plugins/fluentui-blazor/plugin.json./.mcp.jsonunderextensions["com.github.awesome-copilot"]plugins/fluentui-blazor/.mcp.jsonplugins/awesome-copilot/.mcp.json)plugins/fluentui-blazor/README.md.github/plugin/marketplace.jsonnpm run builddocs/README.plugins.mdnpm run buildNote on the
dnxargs--prereleaseis required today: the package currently publishes only5.0.0-rc.*versions, anddnxdefaults to stable-only, so it would otherwise fail to resolve. We'll drop the flag in a follow-up once5.0.0GA 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.jsonand 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
main(notstaged); PR targetsmainplugin.jsonnameextensions["com.github.awesome-copilot"]; no materialized files or symlinks inplugins/skills/fluentui-blazor/SKILL.md)$schema,name,description,version,keywords,author,repository,licensenpm run plugin:validatepasses — All 94 plugins and the external catalog are validnpm run buildrun; regeneratedmarketplace.jsonanddocs/README.plugins.mdare includedplugins/external.jsonnot modifiedskills/fluentui-blazor/not modified