Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
[Dette emne er til dokumentationen til den foreløbige udgivelse. Der kan forekomme ændringer.]
I denne artikel forklares det, hvordan du bruger værktøjer til oprettelse af AI-kode, f.eks. GitHub Copilot CLI eller Claude Code, til at generere MCP-apps (Interactive Model Context Protocol) til dine modeldrevne Power Apps MCP-værktøjer. MCP-apps er selvstændige HTML-filer, der gengiver et værktøjs JSON-output visuelt som kort, diagrammer, dashboards eller kort i en hvilken som helst MCP Apps-kompatibel vært, herunder Microsoft 365 Copilot, Claude og Visual Studio Code.
Hvis du har et MCP-værktøj, der returnerer JSON-data, kan færdigheden generate-mcp-app-ui producere en poleret, temaorienteret widget, der viser disse data i et kompakt visuelt format direkte i en chatsamtale.
Vigtig
- Dette er en forhåndsversionsfunktion.
- Forhåndsversionsfunktionerne er ikke beregnet til produktionsformål og kan have begrænset funktionalitet. Disse funktioner er tilgængelige før en officiel udgivelse, så kunderne kan få tidlig adgang og give feedback.
- Understøttelse af MCP-apps i Microsoft 365 Copilot Chat er offentlig tilgængelig fra marts 2026. Power Apps-understøttelse af MCP-apps i deklarative agenter er i øjeblikket en offentlig prøveversion. Du kan se hele meddelelsen under MCP-apps, der nu er tilgængelige i Copilot Chat.
Hvad du kan gøre med færdigheden generate-mcp-app-ui
- Opret visuelle widgets til et hvilket som helst MCP-værktøj ved at beskrive, hvad du vil, og indsætte værktøjets JSON-output.
- Vælg den rette visualisering til dine data, f.eks. diagrammer til numeriske tendenser, kort til strukturerede poster, tabeller til sammenligninger, kort for koordinater osv.
- Understøtter automatisk lyse og mørke temaer via Fluent UI-designtokens.
- Tilføj interaktivitet, så widgets kan kalde dit værktøj igen på kørselstidspunktet (f.eks. en opdateringsknap).
- Afgræns UX'en iterativt ved at beskrive ændringer i naturligt sprog. "Gør galleriet kompakt", "tilføj et diagram" eller "brug et kortlayout".
Forudsætninger
Softwarekrav
| Komponent | Minimumsversion | Flere oplysninger |
|---|---|---|
| GitHub Copilot CLI, Claude Code eller et andet værktøj til generering af kode | Latest | Claude Code, GitHub Copilot CLI |
| En moderne browser | Alle | Til visning af genererede widgets lokalt |
Yderligere krav
- Et MCP-værktøj, der returnerer JSON-output. Outputtypen for værktøjet skal være angivet til JSON.
- En fungerende internetforbindelse. Widgets indlæser Fluent UI og andre biblioteker fra CDN (Content Delivery Network) på kørselstidspunktet.
Installér plug-in'en
Kør følgende installationskommando fra GitHub Copilot CLI eller Claude Code. Installationsprogrammet registrerer automatisk tilgængelige værktøjer og installerer alle Power Platform-plug-ins, herunder generate-mcp-app-ui.
/plugin marketplace add microsoft/power-platform-skills
Sådan installerer du kun MCP App-widgetten:
/plugin install mcp-apps@power-platform-skills
Tip!
Slå automatisk opdatering til for automatisk at modtage kompetenceopdateringer. Brug kommandoen /plugin , naviger til Marketplaces, vælg markedspladsen, og slå automatisk opdatering til.
Oversigt over færdigheder
| Færdighed | Kommando | Beskrivende tekst |
|---|---|---|
| WIDGETgenerator til MCP Apps | /generate-mcp-app-ui |
Generér en selvstændig MCP-appwidget (HTML-fil) til et MCP-værktøjs JSON-output |
Færdighederne udløses også af udtryk på naturligt sprog, f.eks. "opret en widget", "byg en widget til mit værktøj" eller "opret en MCP-app".
Generér en widget
Følg disse trin for at oprette en ny widget til et MCP-værktøj.
Opret og test et brugerdefineret værktøj fra modeldrevne appdesignere, og kopiér det fulde JSON-output. Sørg for, at værktøjets outputtype er angivet til JSON. Flere oplysninger: Opret brugerdefinerede værktøjer
Aktivér færdigheden , og beskriv, hvad du vil have vist, ved at indsætte JSON-outputtet i samtalen:
/generate-mcp-app-ui Visualizes flights using an animated arc map for routes and a synchronized Gantt timeline for departure and arrival schedules, enabling quick understanding of flight coverage, timing, and overlaps. Here's an example of the tool's output: {"flight_records":[{"Departure Time":"2024-07-02T05:00:00Z","Arrival Time":"2024-07-02T07:30:00Z","Flight Name":"Zava 1001","Status":"Active","Airport":"Seattle-Tacoma","Airport1":"Los Angeles Intl"},{"Departure Time":"2024-07-02T03:00:00Z","Arrival Time":"2024-07-02T10:00:00Z","Flight Name":"Zava 103","Status":"Active","Airport":"Seattle-Tacoma","Airport1":"Hartsfield-Jackson"}]}Gennemse den genererede HTML-fil. Færdigheden skriver en selvstændig HTML-fil, f.eks. ,
flight-map.htmltil arbejdsmappen.Eksempelvisning i en browser. Åbn HTML-filen lokalt, da widgetten har reserveindstillingen til test. Du kan bede chatagenten om at tilføje en separat HTML-prøveversion, hvis den mangler.
Iterere. Beskriv eventuelle ændringer direkte i chatten:
- "Gør kortet større"
- "Tilføj værktøjstip til diagrammet"
- "Formindsk højden, og tilpas til 250 pixel med dynamisk layout og ingen rullepaneler"
Note
Færdighederne kræver faktisk JSON fra dit værktøj – ikke eksempeldata eller modelleringsdata. Datafiguren styrer oprettelsen af widgetten. Hvis du indsætter mockdata, fungerer den genererede widget muligvis ikke korrekt, når den er forbundet til det rigtige værktøj.
Udrul widgeten
Når din widget er klar, skal du kopiere HTML-filen til UX-inputtet for det tilsvarende værktøj, så returneres den som værktøjets svar på brugergrænsefladen. Du kan finde flere oplysninger i dokumentationen til oprettelse af brugerdefinerede værktøjer .
Tilføj interaktivitet med callServerTool
Hvis du også angiver dit værktøjs navn, når du aktiverer færdigheden, kan den genererede widget omfatte interaktiv integration af værktøjskald. Dette gør det muligt for widgetten at kalde værktøjet igen på kørselstidspunktet. En opdateringsknap på værktøjet UX kan f.eks. kalde sig selv.
/generate-mcp-app-ui Show the current weather conditions with a refresh button. Tool name: get_weather. Tool output: {"city":"Seattle","temp_f":54,"condition":"Overcast","humidity":78,"forecast":[...]}
Funktionen konfigureres app.callServerTool i widgetten, så når brugerne vælger Opdater, henter widgetten opdaterede data direkte fra dit værktøj.
Hvis du ikke angiver et værktøjsnavn, er widgetten skrivebeskyttet og gengiver kun de data, der leveres via tilbagekaldet ontoolresult .
- Microsoft 365 Copilot-chat: Se MCP-apps i Copilot Chat for udrulningsstier, herunder sideloading til test, installation via Microsoft 365 Administration til organisationsbrug og publicering til Microsoft 365-agentlageret.
- Power Apps-deklarative agenter: Se dokumentation til Power Apps MCP-deklarativ agent for at få mere at vide om, hvordan du forbinder MCP-værktøjer med modeldrevne apps.
- Andre MCP-værter: Se din værts dokumentation for at få oplysninger om registreringsprocessen for MCP-appswidget.
Tekniske detaljer om widget
MCP-apps-protokol
Widgets kommunikerer med chatværten App ved hjælp af klassen fra @modelcontextprotocol/ext-apps pakken. Protokollen administrerer disse tilbagekald og metoder.
| Tilbagekald/metode | Beskrivende tekst |
|---|---|
app.ontoolresult |
Udløses, når værten leverer værktøjsdata.
Dine data er altid på result.structuredContent– ikke result.data eller result sig selv. |
app.onhostcontextchanged |
Udløses, når værtskonteksten ændres, herunder tema (ctx.theme er 'light' eller 'dark'). |
app.onteardown |
Udløses, når widgetten fjernes fra samtalen. |
app.connect() |
Etablerer kommunikation med værten. Alle hændelseshandlere skal registreres , før du kalder connect(). |
app.getHostContext() |
Returnerer den aktuelle værtskontekst (herunder det indledende tema), når connect() den er fuldført. |
app.callServerTool({ name, arguments }) |
Kalder et værktøj interaktivt. Returnerer result.isError og result.structuredContent. |
CDN-import
Widgets indlæser alle afhængigheder fra CDN. Der kræves ingen buildtrin eller lokal installation. Afhængigheder findes i to formater:
ECMAScript-moduler (ESM) – importeret inde
<script type="module">ved hjælp af en URL-adresse, der slutter med/+esmUMD (Universal Module Definition) – indlæses via et almindeligt
<script src>mærke. Registrerer sig globalt som en bivirkningBibliotek Formater URL Formål @modelcontextprotocol/ext-appsESM cdn.jsdelivr.net/npm/@modelcontextprotocol/ext-apps/+esmMCP-apps-klasse App@fluentui/tokensESM cdn.jsdelivr.net/npm/@fluentui/tokens/+esmwebLightTheme/webDarkThemetokensæt@fluentui/web-components@betaUMD unpkg.com/@fluentui/web-components@beta/dist/web-components.min.jsBrugerdefinerede elementer i flydende brugergrænseflade
Visuelle tilstande
Hver widget håndterer tre tilstande:
| Stat/område | Vejledning |
|---|---|
| Loading | Vis en <fluent-spinner> med en kontekstafhængig meddelelse ("Find attraktioner..." ikke kun "Indlæse..."). |
| Indlæst | Gengiv indholdet kompakt. Brug den fulde tilgængelige bredde. |
| Fejl | Vis en brugervenlig meddelelse og knappen "Prøv igen". Hvis widgetten bruger callServerTool, aktiverer knappen værktøjet igen. |
Flydende brugergrænsefladekomponenter
Følgende Fluent UI-webkomponenter er tilgængelige i widgets:
<fluent-card>, , <fluent-button><fluent-text-input>, <fluent-textarea>, <fluent-dropdown>, <fluent-listbox>, <fluent-option>, <fluent-checkbox>, <fluent-spinner><fluent-divider>, <fluent-badge>, , <fluent-switch><fluent-tooltip>
Understøttelse af tema
Widgets understøtter lyse og mørke temaer via Fluent UI-designtokens. Widgetten anvender de korrekte tokenværdier, når værtens tema ændres via onhostcontextchanged. Brug altid tokenvariabler, f.eks. , var(--colorNeutralForeground1)i stedet for hardcodede farveværdier for at sikre korrekt gengivelse i begge temaer.
Farvetokens
| Anvendelse | Token |
|---|---|
| Primær tekst | var(--colorNeutralForeground1) |
| Sekundær tekst | var(--colorNeutralForeground2) |
| Primær baggrund | var(--colorNeutralBackground1) |
| Kort/pegefølsom baggrund | var(--colorNeutralBackground2) |
| Mærke/fremhævningsfarve | var(--colorBrandBackground) |
| Tekst på mærkeoverfladen | var(--colorNeutralForegroundOnBrand) |
| Grænser | var(--colorNeutralStroke1) |
| Fejltekst | var(--colorStatusDangerForeground1) |
| Succes tekst | var(--colorStatusSuccessForeground1) |
Brug aldrig hardcoded hexidecimal- eller RGB-værdier. Opfind ikke tokennavne, der ikke er angivet her.
Bedste praksis
- Angiv reelle testdata. Færdigheden analyserer den faktiske JSON-struktur for at vælge den rette visualisering. Mock data producerer widgets, der afbrydes, når de er forbundet til det rigtige værktøj.
- Vær specifik for visualiseringen. Beskriv det ønskede format, f.eks kort, diagram, tabel eller kortlayout. Vage beskrivelser fører til generiske resultater.
- Start med én visning. Widgets er kompakte samtalekort, ikke komplette programmer. Ingen faner, sidenavigation eller søgelinjer, der duplikerer chatinputtet.
- Test med begge temaer. Eksempelvisning i lys og mørk tilstand for at bekræfte kontrast og læsbarhed.
- Tilpas visualiseringen til dataene. Kort for koordinater, diagrammer til numeriske data eller tendensdata, kort til strukturerede poster, tabeller til sammenligninger.
Begrænsninger
- Widgets skal indlæse alle eksterne biblioteker fra CDN. Der kræves en internetforbindelse på kørselstidspunktet.
- Fuldskærmsvisning kræver yderligere implementering ud over det, færdighederne genererer.
- Færdighederne håndterer ikke MCP-serverregistrering eller -installation i Microsoft 365 Administration. Du skal fuldføre disse trin separat.
- Godkendelse (OAuth 2.1, Microsoft Entra SSO) håndteres af MCP-værtsmiljøet og ikke selve widgetens HTML.
Relateret dokumentation
Dokumentation til Microsoft 365-udviklere
Dokumentation til Power Platform
- Opret og rediger generative sider med værktøjer til oprettelse af AI-kode
- CLI-reference til Power Platform