Dev & Engineering ✓ Microsoft · Official mcp-servercopilot-chatopenai-apps-sdkmcp-appsreactfluent-uidevtunnelsstructured-content

Copilot MCP Widget Builder

Build interactive React widgets and MCP servers for Microsoft 365 Copilot Chat.

FollowSkills review · FSRS-2.0
Not recommended
49/ 100 5-point scale 2.5 / 5
Trust13 / 25 · 2.6/5

The documentation promotes caller-supplied data, origin allowlisting, path-traversal guards, React escaping, and non-destructive tool annotations, and it discloses DevTunnel and CSP data flows. However, its RemoteMCPServer example uses auth None, the DevTunnel guidance includes anonymous access, and the automation guidance does not sufficiently define authentication, sensitive-data handling, user confirmation, isolation, or rollback. Points are deducted for those gaps.

Reliability7 / 20 · 1.8/5

The skill covers MCP sessions, resource registration, structured output, partial-data normalization, and unknown-tool handling, making the happy path plausible. However, the main server example does not include the asset route until a later add-on snippet, while JSON parsing, dependency failures, authentication failures, network errors, and process cleanup have limited diagnostic handling. Static-review limits also require a conservative score.

Adaptability9 / 15 · 3.0/5

Triggers, audience, scenarios, OAI Apps versus MCP Apps routing, and the boundary against general agent development are reasonably clear. Evidence is limited for language variations, client differences, offline use, and mainland-China network reachability; the core workflow depends on external DevTunnel, npm, and Copilot services. Points are deducted for those environment uncertainties.

Convention10 / 15 · 3.3/5

The material has strong layered documentation with path selection, architecture, protocol guidance, examples, troubleshooting, dependencies, version bumping, license metadata, and official repository provenance. Maintenance ownership, changelog practice, compatibility matrices, dependency version policy, and security-update paths remain incomplete, and requirements are distributed across several references. Points are deducted accordingly.

Effectiveness6 / 15 · 2.0/5

The skill supplies reusable patterns for MCP servers, React/Fluent UI widgets, resource-tool binding, and local tunneling, so the core task value is clear. However, there are no committed executed outputs or execution results for this skill, and the TypeScript examples still require integration and environment-specific correction. The static calibration therefore limits the score.

Verifiability4 / 10 · 2.0/5

The files contain concrete protocol shapes, commands, checklists, reference implementations, and auditable repository CI/test signals. They do not contain executed results, committed key-path tests, or independent reproduction records for this skill, and the CI evidence does not establish coverage of the selected path. The score is therefore kept within the static-review ceiling.

Evidence confidence:Low Reviewed Jul 20, 2026 Reviewed revision 9ccaf7c3704a
Before you use it
  • Do not use auth None or anonymous DevTunnels by default in production; define authentication, least privilege, sensitive-data boundaries, user confirmation, and revocation or rollback.
  • The primary server example and the later asset-serving snippet must be integrated and validated; no executed evidence is provided for the skill's key paths.
  • The OAI Apps description claims ChatGPT support, while the protocol examples primarily allowlist m365.cloud.microsoft origins; client-specific origins should be added and verified.
  • The workflow depends on npm, DevTunnels, remote Copilot services, and external plugin installation; mainland-China network, proxy, and offline compatibility is unverified.
Review evidence [1][2][3][4][5][6][7][8][9]
See the full review method →

What it does & when to use it

This skill guides development of MCP servers and rendered widgets for Microsoft 365 Copilot Chat using the OpenAI Apps SDK or MCP Apps Extension. It covers Streamable HTTP, structured content, MCP resources, CSP metadata, Fluent UI widgets, devtunnels, and mcpPlugin.json configuration. Widgets are required to use React and Fluent UI, with MCP resources connecting tool output to rendered UI. The skill does not cover general agent development, agent scaffolding, manifest lifecycle, or deployment design.

It guides creation or adaptation of MCP servers in TypeScript, Python, C#, or other MCP-capable languages; implementation of /mcp, /health, /widgets, and /assets routes; responses containing content, structuredContent, and widget metadata; registration of ui://widget/<name>.html resources; React and Fluent UI widget development using FluentProvider and window.openai.toolOutput; RemoteMCPServer configuration; MCP Inspector-based tool-definition extraction and end-to-end verification; and devtunnel setup for exposing a local server.

  1. A developer adding an MCP server and interactive widgets to an existing Microsoft 365 Copilot declarative agent.
  2. A team adapting an existing MCP server for Copilot Chat widget rendering.
  3. A frontend engineer building structured-data views with React and Fluent UI inside Copilot Chat.
  4. A developer exposing a localhost MCP server through a devtunnel for Copilot testing.
  5. A team keeping mcpPlugin.json tool definitions synchronized with a running MCP server through MCP Inspector.

Pros & cons

Pros
  • Covers the full integration path from MCP server and resources to tool metadata, React widgets, and Copilot testing.
  • Provides explicit requirements for Fluent UI, structuredContent, MCP Inspector, and end-to-end verification.
  • Supports TypeScript, Python, C#, and other languages that implement MCP.
  • Documents local devtunnel testing and the conditions for reprovisioning an agent.
Limitations
  • Scoped to MCP server and Copilot widget development rather than general agent scaffolding or deployment.
  • Requires React, React DOM, and Fluent UI by default, so it is not aimed at raw HTML widgets.
  • Requires shell access, the Node.js ecosystem, devtunnel, MCP Inspector, and network connectivity.
  • The README identifies the repository as under active development; the supplied material does not provide test coverage for this individual skill.

How to install

In Copilot CLI, run:

  1. npx skills add microsoft/skills
  2. Select ui-widget-developer in the installation wizard.

The repository also supports installing the broader collection through the plugin marketplace with /plugin marketplace add microsoft/skills and the relevant plugin command. The source does not provide a dedicated installation command for this individual skill.

How to use

Use a trigger such as Build an MCP server for Copilot with a React widget, Add a Copilot widget to my MCP server, or Configure structuredContent for widget rendering. Before implementation, choose between OAI Apps and the MCP Apps Extension: OAI Apps are described as battle-tested for ChatGPT and Microsoft 365 Copilot, while MCP Apps is the newer official MCP standard targeting Microsoft 365 Copilot, ChatGPT, VS Code, and more. For MCP Apps, the source gives these commands: /plugin marketplace add modelcontextprotocol/ext-apps and /plugin install mcp-apps@mcp-apps.

Compared to similar skills

The skill explicitly compares OAI Apps with the MCP Apps Extension. OAI Apps are OpenAI-specific, described as production-ready, and work in ChatGPT and Microsoft 365 Copilot. MCP Apps is described as a newer official MCP standard intended to work across Microsoft 365 Copilot, ChatGPT, VS Code, and more.

FAQ

Does this skill create a complete declarative agent?
No. It focuses on MCP servers, widgets, mcpPlugin.json, and devtunnels. Agent scaffolding, manifests, and lifecycle work should be handled by declarative-agent-developer.
Is React required?
Yes. The source requires React, react-dom, and @fluentui/react-components for widgets. A self-contained HTML-only widget is allowed only when the user explicitly requests a non-React prototype.
Does local testing require an externally reachable endpoint?
Yes. The source uses devtunnels to expose a localhost MCP server to Microsoft 365 Copilot during local testing and describes DevTunnels as intended for development and testing.
When must the agent be reprovisioned?
Only when the agent manifest changes, such as mcpPlugin.json, the MCP server URL, or declarativeAgent.json. MCP server and React widget code changes alone generally do not require reprovisioning.

More skills from this repository

All from microsoft/agent-skills

Dev & Engineering ✓ Microsoft · Official

Azure Identity for Python

A practical skill for securing Python Azure applications with Microsoft Entra ID credentials.

Dev & Engineering ✓ Microsoft · Official

Azure Event Hubs Java Skill

Build production-oriented Java event streaming applications on Azure Event Hubs.

Dev & Engineering ✓ Microsoft · Official

Azure Tables for Python

A practical guide to building authenticated Azure Tables applications with Python entity CRUD, queries, and partition-scoped batch operations.

Dev & Engineering ✓ Microsoft · Official

Azure Identity for TypeScript

Configure secure, flexible Microsoft Entra ID authentication for TypeScript Azure applications.

Automation & Ops ✓ Microsoft · Official

Azure Reliability Advisor

Assess and improve reliability for Azure Functions and App Service.

Dev & Engineering ✓ Microsoft · Official

Azure Cloud Architect

Guides coding agents through production-grade Azure architecture design and review using Azure Architecture Center practices.

Dev & Engineering ✓ Microsoft · Official

Azure AI Text Analytics for Python

Guides Python developers through Azure-powered text analysis and NLP workflows.

Automation & Ops ✓ Microsoft · Official

Azure Resource Architecture Visualizer

Analyze Azure resource groups and turn their dependencies into detailed Mermaid architecture diagrams.

Dev & Engineering ✓ Microsoft · Official

Azure Maps for .NET

Build .NET location features for search, routing, maps, geolocation, and weather.

Dev & Engineering ✓ Microsoft · Official

Azure AI Vision Image Analysis

Guides Python coding agents in implementing Azure AI Vision image understanding.

Dev & Engineering ✓ Microsoft · Official

Azure Blob Storage for Python

Guides secure, production-minded Blob Storage operations in Python.

Dev & Engineering ✓ Microsoft · Official

Azure Queue Storage for Python

Gives coding agents reliable Python patterns for secure Azure Queue Storage messaging and asynchronous task processing.

Automation & Ops ✓ Microsoft · Official

Azure AI Gateway Governance

Use Azure API Management to govern traffic across AI models, MCP tools, and agents.

Automation & Ops ✓ Microsoft · Official

AKS Automatic Readiness

Assess Kubernetes workloads for AKS Automatic compatibility and identify migration blockers before you switch.

Dev & Engineering ✓ Microsoft · Official

Azure Cosmos DB ARM for .NET

Provision and manage Azure Cosmos DB resources from .NET through ARM.

Dev & Engineering ✓ Microsoft · Official

Azure Playwright Workspace Manager

Provision and manage Microsoft Playwright Testing workspaces with .NET and Azure Resource Manager.

Dev & Engineering ✓ Microsoft · Official

Azure Cosmos DB for Python

A practical guide for building reliable Python applications on Azure Cosmos DB’s NoSQL API.

Dev & Engineering ✓ Microsoft · Official

Azure Key Vault SDK for Python

Gives Python coding agents practical guidance for securely managing Azure Key Vault secrets, keys, and certificates.

Dev & Engineering ✓ Microsoft · Official

Azure API Management for Python

Gives coding agents practical Python SDK patterns for managing Azure API Management services, APIs, products, subscriptions, and policies.

Dev & Engineering ✓ Microsoft · Official

Azure Monitor Query for Python

Generate Python code for querying Azure Monitor logs and metrics.

Related skills