# Model Context Protocol (MCP) in Copilot Studio

**Last updated:** 2026-02
**Status:** Generally Available (GA)
**Category:** Copilot Extensibility & Integration

---

## Introduksjon

Model Context Protocol (MCP) er en åpen standard som lar AI-agenter kommunisere med eksterne verktøy og datakilder på en konsistent måte. I Microsoft Copilot Studio fungerer MCP som en universell bro mellom agenten din og eksterne tjenester, uten at du trenger å bygge egne integrasjoner for hver enkelt datakilde.

MCP ble opprinnelig utviklet av Anthropic og har blitt raskt adoptert som industristandardprotokoll for agent-til-verktøy-kommunikasjon. Microsoft har integrert MCP i hele AI-stakken sin, fra Copilot Studio til Azure AI Foundry, Power Platform, og M365 Copilot.

**Kjerneverdien med MCP i Copilot Studio:**
- En enkelt MCP-server kan eksponere flere tools og resources som blir automatisk tilgjengelig for agenten
- Tools og resources oppdateres dynamisk — endringer på serveren reflekteres automatisk i Copilot Studio uten republisering
- Standardisert kontekstlevering sikrer at AI-modellen får konsistent informasjon uavhengig av datakilde

**Forskjell fra Power Platform Connectors:**
| Aspekt | MCP | Power Platform Connectors |
|--------|-----|---------------------------|
| **Konfigurasjon** | Sentral definisjon på server-siden | Må beskrives per agent |
| **Oppdatering** | Automatisk ved endring på server | Krever manuell oppdatering |
| **Bruksområde** | API-er som endres ofte, multi-agent-løsninger | Stabile API-er, enkle integrasjoner |
| **Vedlikehold** | Ett sted (MCP-server) | Per agent/connector |

---

## Kjernekomponenter

### MCP-arkitektur i Copilot Studio

```
┌─────────────────────────────────────────┐
│   Copilot Studio Agent                  │
│   (Generative Orchestration påkrevd)    │
└──────────────┬──────────────────────────┘
               │
               │ MCP Protocol (Streamable HTTP)
               ▼
┌─────────────────────────────────────────┐
│   MCP Server                             │
│   ┌───────────────────────────────────┐ │
│   │ Tools (functions)                 │ │
│   │ - create_task, get_accounts, etc. │ │
│   └───────────────────────────────────┘ │
│   ┌───────────────────────────────────┐ │
│   │ Resources (data sources)          │ │
│   │ - file contents, API responses    │ │
│   └───────────────────────────────────┘ │
│   ┌───────────────────────────────────┐ │
│   │ Prompts (templates) [kommende]    │ │
│   └───────────────────────────────────┘ │
└─────────────────────────────────────────┘
```

**Konfidensmarkering:** Verified (MCP-dokumentasjon fra Microsoft Learn, feb 2026)

### Tre MCP-komponenter

| Komponent | Beskrivelse | Support i Copilot Studio |
|-----------|-------------|--------------------------|
| **Tools** | Funksjoner som language model kan kalle for å utføre handlinger (f.eks. "create_task", "get_accounts") | ✅ GA |
| **Resources** | Filliknende data som agenten kan lese for kontekst (f.eks. API-responser, filinnhold) | ✅ GA |
| **Prompts** | Predefinerte prompt-templates for spesifikke oppgaver | ⏳ Planlagt støtte |

### Støttede transporter

Copilot Studio støtter **Streamable HTTP transport** for MCP-kommunikasjon.

> **Viktig:** SSE (Server-Sent Events) transport ble deprecated i MCP-spesifikasjonen og er ikke lenger støttet i Copilot Studio etter august 2025.

**Transport-eksempel (OpenAPI YAML):**
```yaml
swagger: '2.0'
info:
  title: Contoso Lead Management
  description: MCP Server for lead management
  version: 1.0.0
host: contoso.com
basePath: /
schemes:
  - https
paths:
  /mcp:
    post:
      summary: Contoso Lead Management Server
      x-ms-agentic-protocol: mcp-streamable-1.0
      operationId: InvokeMCP
      responses:
        '200':
          description: Success
```

**Konfidensmarkering:** Verified (Microsoft Learn code sample, feb 2026)

### Autentisering

Copilot Studio MCP onboarding wizard støtter tre autentiseringstyper:

| Type | Bruksområde | Kompleksitet |
|------|-------------|--------------|
| **None** | Åpne API-er, interne tjenester uten sikkerhetskrav | Lav |
| **API Key** | Enkle API-er med key-basert autentisering (header eller query param) | Middels |
| **OAuth 2.0** | Tjenester som krever brukersamtykke og token-basert tilgang | Høy |

**OAuth 2.0-varianter:**
- **Dynamic discovery** — automatisk registrering med identity provider (enklest)
- **Dynamic** — dynamisk registrering, men manuelle endpoint-konfigurasjoner
- **Manual** — full manuell konfigurasjon (client ID, secret, auth URL, token URL, refresh URL)

---

## Arkitekturmønstre

### Mønster 1: Microsoft-managed MCP Servers (anbefalt for standard-tjenester)

**Bruk:** Når du trenger integrasjon med Microsoft-tjenester som Dataverse, Dynamics 365, Outlook, GitHub.

**Fordeler:**
- Ferdigkonfigurerte servere fra Microsoft (Dataverse MCP Server, Dynamics 365 Sales MCP Server, Mail MCP Server, etc.)
- Automatisk oppdatering og vedlikehold
- Bygget inn i Power Platform-økosystemet
- Ingen infrastruktur å administrere

**Ulemper:**
- Begrenset til Microsoft-tjenester og utvalgte partnere
- Mindre fleksibilitet i tilpasning

**Eksempel:**
```
Agent: "Hvor mange accounts har jeg i Dataverse?"
   ↓
MCP Client (Copilot Studio)
   ↓
Dataverse MCP Server → list_tables, describe_table, query_records
   ↓
Svar: "Du har 247 accounts."
```

**Konfidensmarkering:** Verified (Microsoft Dataverse MCP-dokumentasjon)

---

### Mønster 2: Custom MCP Server (anbefalt for egne tjenester)

**Bruk:** Når du trenger å eksponere interne API-er, line-of-business-systemer, eller tredjepartstjenester som ikke har en ferdig MCP-server.

**Fordeler:**
- Full kontroll over tools og resources
- Kan eksponere eksisterende REST API-er uten omskriving
- Sentral styring av verktøy-beskrivelser
- Kan gjenbrukes på tvers av flere agenter

**Ulemper:**
- Krever utvikling og hosting av MCP-server
- Må vedlikeholde OpenAPI-spesifikasjon (YAML)
- Infrastrukturansvar (hosting, sikkerhet, skalering)

**Implementasjonsalternativer:**
| Plattform | Språk | Bruksområde |
|-----------|-------|-------------|
| **Azure App Service** | Node.js, Python, .NET | Enterprise-skala hosting |
| **Azure Container Apps** | Docker | Managed identity-integrasjon |
| **MCP SDK** | TypeScript, Python | Rask prototyping |

**Konfidensmarkering:** Verified (Azure App Service MCP-dokumentasjon)

---

### Mønster 3: Multi-Agent MCP-økosystem

**Bruk:** Når flere agenter (på tvers av Copilot Studio, M365 Copilot, GitHub Copilot) skal dele samme MCP-server.

**Fordeler:**
- "Write once, run anywhere" — én MCP-server, mange klienter
- Konsistent oppførsel på tvers av agenter
- Redusert duplisering av integrasjonskode

**Ulemper:**
- Høyere kompleksitet i orkestreringslogikk
- Må håndtere ulike agent-kontekster

**Eksempel:**
```
┌─────────────────┐       ┌─────────────────┐
│ Copilot Studio  │       │ M365 Copilot    │
│ (Sales Agent)   │       │ (Support Agent) │
└────────┬────────┘       └────────┬────────┘
         │                         │
         │    MCP Protocol         │
         ├─────────────┬───────────┤
                       │
                ┌──────▼──────┐
                │  Custom MCP │
                │  Server     │
                │  (CRM API)  │
                └─────────────┘
```

**Konfidensmarkering:** Baseline (arkitekturmønster basert på MCP-spesifikasjonen)

---

## Beslutningsveiledning

### Velg riktig integrasjonsmetode

```
Trenger du integrasjon med Microsoft-tjenester (Dataverse, Dynamics, Outlook)?
   ↓ JA
   → Bruk Microsoft-managed MCP Server (f.eks. Dataverse MCP Server)

   ↓ NEI
Har du en eksisterende REST API som endres ofte?
   ↓ JA
   → Bygg Custom MCP Server

   ↓ NEI
Er API-en stabil, og brukes kun i én agent?
   ↓ JA
   → Vurder Power Platform Connector (enklere for enkle scenarioer)

   ↓ NEI
Trenger du "write once, run anywhere" for flere agenter?
   ↓ JA
   → Bygg Custom MCP Server
```

### Vanlige feil

| Feil | Konsekvens | Løsning |
|------|-----------|---------|
| **Generative Orchestration ikke aktivert** | MCP-tools blir ikke tilgjengelig | Aktiver Generative Orchestration i agent-settings |
| **SSE transport brukt etter aug 2025** | Serveren fungerer ikke | Oppgrader til Streamable HTTP transport |
| **Dårlig tool-beskrivelse** | Agenten kaller aldri tool'et | Skriv tydelig, kontekstuell beskrivelse som orchestrator kan forstå |
| **Manglende OAuth callback URL** | Autentisering feiler | Registrer callback URL fra Copilot Studio i identity provider |

### Røde flagg

⚠️ **Ikke bruk MCP hvis:**
- Du bare trenger én enkel API-kobling i én agent → bruk Power Platform Connector
- Du trenger klassisk conversation flow control (topics) → MCP fungerer ikke i topics, kun i generative agenter
- Du prototyper raskt uten infrastruktur → bruk direkte API-kall først, bygg MCP-server senere

---

## Integrasjon med Microsoft-stakken

### Copilot Studio

**MCP-integrasjon:**
- Tools og resources legges til via "Add a tool" → "Model Context Protocol"
- MCP onboarding wizard hjelper med server-konfigurasjon og autentisering
- Tools kan aktiveres/deaktiveres per agent

**Krav:**
- Generative Orchestration må være aktivert
- Power Platform-miljø med Copilot Studio-tilgang

### Power Platform

**Dataverse MCP Server:**
- Forhåndsbygd MCP-server for Dataverse
- Gir agenter read/write-tilgang til Dataverse-tabeller
- Kan konfigureres for å tillate CRUD-operasjoner

**Power Automate:**
- Kan kalle MCP-servere indirekte via Copilot Studio-agenter
- Planlagt støtte for direkte MCP-integrasjon (roadmap 2026)

### M365 Copilot

**Declarative Agents med MCP:**
- Kan koble MCP-servere til declarative agents i M365
- Krever Microsoft 365 Agents Toolkit (v6.3+)
- MCP-server eksponeres som plugin for M365 Copilot

**Eksempel:**
```json
{
  "servers": {
    "contoso-crm": {
      "url": "https://contoso.com/mcp",
      "type": "http"
    }
  }
}
```

**Konfidensmarkering:** Verified (M365 Copilot extensibility-dokumentasjon)

### Azure AI Foundry

**Azure MCP Server:**
- Kan deploye MCP-servere til Azure Container Apps med managed identity
- Støtte for Azure Developer CLI (azd) for deployment
- Integrasjon med Azure OpenAI via IChatClient og MCP SDK

**Konfidensmarkering:** Verified (Azure Developer MCP-dokumentasjon)

---

## Offentlig sektor (Norge)

### GDPR og datasuverenitet

**MCP og personopplysninger:**
- MCP-servere kan potensielt eksponere personopplysninger via tools og resources
- Databehandleravtale må inngås hvis MCP-server driftes av tredjepart
- **Risikoområde:** MCP-servere som hoster utenfor EØS må følge Schrems II-krav

**Anbefalinger:**
- Host kritiske MCP-servere i Azure Norway East/West for datasuverenitet
- Bruk managed identity for autentisering (unngå API keys i konfigurasjon)
- Loggfør alle MCP tool calls for revisjonsformål

### AI Act-relevans

**MCP som "AI-komponent":**
- MCP-servere kan klassifiseres som "AI-komponent" hvis de bruker ML-modeller for tool-seleksjon
- Transparenskrav gjelder: dokumenter hvilke tools som er tilgjengelig og hva de gjør

**Anbefalinger:**
- Oppretthold oversikt over hvilke MCP-servere som brukes i produksjonsagenter
- Dokumenter tool-beskrivelser på norsk for brukertransparens

### Forvaltningsloven og automatiserte beslutninger

**MCP i saksbehandling:**
- Hvis MCP tools brukes til å hente data for automatiserte beslutninger, må forvaltningslovens krav følges
- **Eksempel:** MCP tool "approve_application" må logges som beslutningsgrunnlag

**Anbefalinger:**
- Implementer audit logging for MCP tool calls
- Sikre at menneske-i-løkken er involvert for kritiske beslutninger

**Konfidensmarkering:** Baseline (juridisk tolkning basert på standard GDPR/AI Act-krav)

---

## Kostnad og lisensiering

### Lisenser

| Komponent | Lisenskrav |
|-----------|-----------|
| **Copilot Studio** | Inkludert i M365 Copilot-abonnement eller standalone Copilot Studio-lisens |
| **MCP-integrasjon** | Ingen ekstra kostnad for MCP-funksjonalitet |
| **Power Platform Connectors (premium)** | Krever premium connector-lisens hvis MCP kaller premium connectors |

### Kostnadsmodell

**MCP-server hosting:**
| Plattform | Estimert kostnad (NOK/måned) | Bruksområde |
|-----------|-------------------------------|-------------|
| **Azure App Service (Basic B1)** | ~500 NOK | Lav trafikk, dev/test |
| **Azure Container Apps (consumption)** | ~1000-5000 NOK | Variabel trafikk, produksjon |
| **On-premises hosting** | Infrastrukturkostnad | Datasuverenitetskrav |

**MCP tool calls:**
- Ingen direkte kostnad per tool call
- Indirekte kostnader: AI-modellbruk (GPT-4 tokens) for orchestration
- **Estimat:** ~0.02-0.05 NOK per agent-interaksjon med MCP tool (avhengig av token-forbruk)

### Optimaliseringstips

✅ **Reduser kostnader:**
- Bruk caching i MCP-server for ofte-forespurte data
- Avgrens tool-beskrivelser for å redusere orchestration-kompleksitet
- Deaktiver ubrukte tools for å redusere token-forbruk i orchestration

**Konfidensmarkering:** Baseline (priser hentet fra Azure-kalkulatoren, feb 2026)

---

## For arkitekten (Cosmo)

### Spørsmål å stille i rådgivningen

1. **Omfang:** "Hvor mange agenter skal bruke denne MCP-serveren? Hvis svaret er 'én', vurder Power Platform Connector i stedet."
2. **API-stabilitet:** "Endres API-et ofte (ukentlig/månedlig)? Hvis ja, er MCP riktig valg for sentralisert vedlikehold."
3. **Sikkerhet:** "Hvilke data eksponeres via MCP-serveren? Kreves datasuverenitet eller GDPR-overholdelse?"
4. **Autentisering:** "Trenger brukeren å samtykke til tilgang (OAuth 2.0), eller holder det med API key?"
5. **Infrastruktur:** "Hvem skal drifte MCP-serveren? Har dere kapasitet til å hoste på Azure, eller trenger dere managed løsning?"
6. **Multi-agent:** "Skal samme tools brukes i Copilot Studio, M365 Copilot, og GitHub Copilot? Da er MCP den beste integrasjonsmetoden."
7. **Tool-kompleksitet:** "Hvor mange tools trenger agenten? Hvis > 10, vurder om MCP-serveren skal splittes opp."
8. **Compliance:** "Håndterer MCP-serveren personopplysninger? Må det logges for revisjonsformål?"

### Fallgruver å unngå

| Fallgruve | Hvorfor det er problematisk | Løsning |
|-----------|----------------------------|---------|
| **MCP uten Generative Orchestration** | Tools blir ikke tilgjengelig | Sjekk at Generative Orchestration er aktivert før MCP-integrasjon |
| **Vage tool-beskrivelser** | Orchestrator kaller aldri tool'et | Skriv kontekstuelle beskrivelser: "Use this tool when user asks about customer accounts" |
| **MCP for enkle, statiske API-er** | Unødvendig kompleksitet | Bruk Power Platform Connector for enkle scenarioer |
| **Manglende audit logging** | Compliance-brudd i offentlig sektor | Implementer logging av alle tool calls med bruker-ID og timestamp |
| **Hardkodede secrets i OpenAPI** | Sikkerhetssårbarhet | Bruk Azure Key Vault eller managed identity |

### Anbefalinger per modenhetsnivå

#### Nivå 1: Grunnleggende (kunde har aldri brukt MCP)
- **Start med:** Microsoft-managed MCP Server (Dataverse eller Dynamics 365)
- **Lær:** Bygg forståelse for tool discovery og orchestration
- **Unngå:** Custom MCP-server før kunde forstår grunnprinsippene

#### Nivå 2: Middels (kunde har brukt Power Platform Connectors)
- **Start med:** Prototype custom MCP-server med Azure App Service
- **Lær:** OpenAPI-spesifikasjon og tool-beskrivelser
- **Unngå:** Kompleks OAuth 2.0 før API key-autentisering er testet

#### Nivå 3: Avansert (kunde har flere agenter på tvers av plattformer)
- **Start med:** Multi-agent MCP-arkitektur med Azure Container Apps
- **Lær:** Managed identity, audit logging, og versjonering av tools
- **Unngå:** Én stor MCP-server for alle tools — splitt i domener (CRM, ERP, HR)

---

## Kilder og verifisering

**Microsoft Learn-dokumentasjon (Verified):**
1. [Extend your agent with Model Context Protocol](https://learn.microsoft.com/en-us/microsoft-copilot-studio/agent-extend-action-mcp) — hovedartikkel om MCP i Copilot Studio
2. [Connect your agent to an existing MCP server](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-add-existing-server-to-agent) — onboarding wizard og autentisering
3. [Add tools and resources from MCP server](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-add-components-to-agent) — tool-konfigurasjon
4. [Connect to Dataverse with MCP](https://learn.microsoft.com/en-us/power-apps/maker/data-platform/data-platform-mcp-copilot-studio) — Dataverse MCP Server
5. [Build plugins from MCP server for M365 Copilot](https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/build-mcp-plugins) — M365-integrasjon
6. [App Service as MCP servers](https://learn.microsoft.com/en-us/azure/app-service/scenario-ai-model-context-protocol-server) — Azure hosting
7. [Use agent tools to extend agents](https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/agent-tools) — når bruke MCP vs. connectors

**Offisiell MCP-spesifikasjon (Baseline for protokolldetaljer):**
- [Model Context Protocol Introduction](https://modelcontextprotocol.io/introduction) — Anthropic-spesifikasjon

**Konfidensnivå per seksjon:**
| Seksjon | Nivå | Kilde |
|---------|------|-------|
| Kjernekomponenter | Verified | Microsoft Learn MCP-artikler (1-3) |
| Støttede transporter | Verified | Microsoft Learn MCP-artikkel (2) |
| Autentisering | Verified | Microsoft Learn MCP-artikkel (2) |
| Arkitekturmønstre | Verified (mønster 1-2), Baseline (mønster 3) | Microsoft Learn (1, 4, 6) + arkitekturprinsipp |
| Integrasjon med Microsoft-stakken | Verified | Microsoft Learn (4, 5, 6) |
| Offentlig sektor | Baseline | Juridisk tolkning (GDPR/AI Act) |
| Kostnad | Baseline | Azure-priskalkulator (feb 2026) |

---

**Sist oppdatert:** 2026-02-04
**Neste review:** 2026-05 (ved nye MCP-features i Copilot Studio)
