Model Context Protocol und Microsoft Copilot
8. September 2025
Microsoft Copilot bietet eine Vielzahl von KI-Integrationen in Microsoft 365 und Bing. Insbesondere gibt es das kostenlose M365 Copilot Chat und eine M365 Copilot Variante, die über die Features der Chat-Version hinaus gehen. Letztere ermöglicht insbesondere die Definition und Konfiguration von Agenten, die zum Beispiel Wissen per Graph Konnektoren nutzen können, sowie auch Skills und Tools nutzen können. Und bei Tools kommt seit neuestem das Model Context Protocol (MCP) ins Spiel.
In Copilot Studio können Sie einen Agenten konfigurieren, der spezielle Use Cases bedienen kann. Der Prozess is hierbei ähnlich zum Governance-Ansatz von Microsoft Teams oder PowerAutomate. Nämlich, dass jeder seine eigenen Agenten erstellen und teilen kann.
Skill- und Tool-Integrationen nutzen dabei in der Regel PowerAutomate-Konnektoren. Hiermit können Tasks in Cloud Systemen erledigt werden, oder auch on-premises (siehe hierzu beispielsweise unseren Blogpost zu Jira-Integrationen). Werden Konnektoren eingebunden, dann leben diese auch wieder in den PowerAutomate-Subscriptions der jeweiligen Owner.

Wozu dient MCP in Copilot?
Zu den zahlreichen Integrationen, die Copilot via bspw. PowerAutomate unterstützt, gehören nun auch solche über MCP. Der Vorteil der Integrationen von MCP Servern besteht darin, dass sie allgemeine Servicebeschreibungen liefern, anstelle starrer APIs. Sprich, als KI-zu-KI-Kommunikationsprotokoll ist MCP sehr lose (ähnlich der Mensch-zu-Mensch-Kommunikation).
Copilot geht nun so vor, dass sobald der Intent (die Absicht) einer Interaktion erkannt wird, wird sich beispielsweise dafür entschieden einen MCP-Server aufzurufen. Der empfangende MCP-Server erhält als Eingabe Teile des aktuellen Chatverlaufs und muss dann selbst entscheiden (auch per KI oder deterministisch), wie es weiter geht. Als Teil der eigenen Berechnung kommuniziert der MCP Server möglicherweise sogar selbst mit anderen MCP-Servern und liefert dann ein Ergebnis zurück. Man muss aber bedenken, dass der Server nicht unendlich lange hierfür Zeit hat.
Wie einfach ist die MCP-Integration in Copilot?
Die Integration von MCP in Copilot ist eigentlich recht unkompliziert. Remote-MCP-Server werden über benutzerdefinierte PowerAutomate-Konnektoren und hier über YAML konfiguriert. Auch die Server-zu-Server-Authentifizierung wird vom Protokoll her und von PowerAutomate unterstützt. Sobald ein Custom-Konnektor definiert wurde, kann er in einer Vielzahl von Agenten eingebunden werden. Er muss lediglich in den Einstellungen jedes Agenten verknüpft (connected) werden.
Aus Governance-Sicht haben solche Custom-Konnektoren analog zu anderen PowerAutomate-Applikationen jeweils mindestens einen Eigentümer. Dies ist per se der Benutzer, der den Konnektor definiert hat. Der Konnektor befindet sich zudem im Abonnement dieses Benutzers. Daher ist es beim Offboarding notwendig, dass solche Konnektoren, genauso wie Teams oder Flows, neuen Eigentümern zugewiesen werden.
Was ist bei der MCP Integration in Copilot zu Bedenken?
Es gibt mindestens zwei kleinere Fallstricke, die wir hier aufführen möchten.
Einerseits definiert die YAML-Datei bei der Konfiguration des Custom-Konnektors das verwendete MCP-Protokoll. Wie bereits in unseren vorherigen Blogbeiträgen erwähnt, empfehlen wir die Verwendung von MCP per Streamable HTTP. Daher muss die YAML-Datei Folgendes enthalten:
x-ms-agentic-protocol: mcp-streamable-1.0
Aber, man kann hier auch ein falsches Protokoll (bspw. SSE) definieren. Die YAML-Verifizierung kann dann dennoch abgeschlossen werden (indem Sie den Endpunkt bei der Definition nicht testen und etwaige Warnungen ignorieren). Dann treten aber Probleme auf sobald Sie die MCP Integration in Copilot testen möchten.
Auch benutzerdefinierte HTTP-Header können Probleme bereiten. Es ist regelmäßig der Fall, dass beispielsweise Ihr MCP- oder ein Proxy-Server (z.B. ngrok) zusätzliche Parameter in Form von HTTP-Headern erforder. Nun müssen Sie entscheiden, ob ein Benutzer einen solchen Parameter interaktiv während der Interaktion mit Copilot angeben soll oder dieser statisch per Konfiguration gesetzt wird.