Back to Blog
May 30, 2026

Building Secure Microsoft 365 Copilot Cowork Plugins Powered by MCP and Entra ID

Share

Building Secure Microsoft 365 Copilot Cowork Plugins Powered by MCP and Entra ID

Date: 2026-05-30

Discover how to build secure Microsoft 365 Copilot Cowork Plugins leveraging custom MCP Servers secured with Microsoft Entra ID for seamless business system integrations.

Tags: ["Microsoft 365 Copilot", "MCP", "Entra ID", "Cowork Plugins", "Azure"]

Building Secure Microsoft 365 Copilot Cowork Plugins Powered by MCP and Entra ID

Microsoft 365 Copilot Cowork brings a powerful evolution in agent-based productivity by enabling multiple tasks to run simultaneously, augmented by a rich set of skills that can access core Microsoft 365 data such as email, calendar, and SharePoint. However, until recently, Cowork's skills were individually managed and lacked a mechanism for central management or integration with custom business systems.

Enter Cowork Plugins — a game-changing concept allowing organizations to centrally deploy, update, and version agent skills, backed by secure custom MCP (Microsoft Copilot Protocol) servers. This approach unlocks the ability to tightly integrate Copilot with business systems, securely and scalably.

In this post, I share my hands-on experience building secure MCP-powered Microsoft 365 Copilot Cowork Plugins using Entra ID for authentication. You will learn why Cowork Plugins matter, how to build and secure your MCP Server, configure authentication with Entra ID, and package your plugin for deployment. I will also highlight key gotchas and tips to help you get up and running smoothly with this exciting new capability.

Architecture Overview

┌────────────────────────────────────────────┐
│Architecture                                │
├────────────────────────────────────────────┤
│• Enterprise data sources                   │
│• Foundry platform                          │
│• AI applications                           │
└────────────────────────────────────────────┘

Key Technical Observations

  • Centralized Skill Distribution Through Plugins — Cowork Plugins solve the previous limitation of skills being unmanaged silos. Plugins enable versioning, deployment, and updates through a central manifest and packaging approach much like Teams apps, which is key for enterprise governance.

  • Custom MCP Servers Extend Business System Access — By implementing a secure MCP Server, organizations can expose proprietary or third-party systems (e.g., Toggl timesheets) as callable APIs to Copilot agents, vastly expanding automation possibilities.

  • Entra ID Secures Both MCP Server and Clients — Leveraging Microsoft Entra ID for OAuth authentication ensures secure, auditable access. Multi-tenant app registrations with appropriate scopes and identifier URIs are critical for seamless token issuance and validation in cloud environments.

  • Manifest-Driven Plugin Model Mirrors Other Microsoft 365 Deployments — Plugins are zip packages containing a manifest.json defining agent skills, connectors, icons, and MCP configuration details. This declarative model aligns with existing Microsoft 365 extensibility patterns.

  • Current Preview State Requires Workarounds — Plugin management UI is incomplete; for example, deletion and seamless upgrading are rough edges. Deployment via the Microsoft 365 Admin Center can be opaque, and enabling plugins requires additional steps in Teams Developer Portal.

  • GitHub Copilot Significantly Accelerates Development — The use of AI-assisted code completion to scaffold plugin structures and reusable packaging scripts exemplifies modern dev workflows boosting productivity.

How It Works: Building a Secure Cowork Plugin Step-by-Step

1. Define Your Plugin Use Case

Start with a clear task. For example, automating timesheet filling using calendar events with Toggl. This provides the skill's purpose and scope.

2. Set Up a Secure MCP Server

You need an MCP server API as the backend connector for your plugin. This server should be secured via Microsoft Entra ID OAuth to protect access.

  • Use the sample template blog Building a Secure Custom MCP Server secured by Microsoft Entra ID to create your service.
  • Register the MCP Server as an Entra ID app with multi-tenant support.
  • Add proper Application ID URIs to the manifest for scopes.
  • Configure permissions to allow Microsoft Enterprise Token Store app access.

3. Register the MCP Client Application

  • Also register an MCP Client app in Entra ID.
  • Enable multiple tenants support and add the Teams OAuth Consent Redirect URL:
    https://teams.microsoft.com/api/platform/v1.0/oAuthConsentRedirect

4. Create Your Plugin Manifest and Skill Files

  • Create a folder structure:
    /plugin-root /skills /toggl SKILL.md manifest.json color.png (192x192) outline.png (32x32)
  • manifest.json includes fields for version, ID, package name, description, and crucially agentSkills & agentConnectors.
  • agentConnectors defines the MCP Server URL and authentication parameters including OAuth Plugin Vault Reference ID.

5. Obtain Your OAuth Plugin Vault Reference ID

  • Via the Teams Developer Portal (https://dev.teams.microsoft.com), register a new Entra SSO client.
  • Provide your MCP Server URL as the base URL.
  • Supply appropriate scopes, e.g. https://ithink365.co.uk/mcp-toggl/mcp.tools.
  • Copy the resulting registration ID and update manifest.json for the connector's referenceId.

6. Package the Plugin

  • Use the reusable PowerShell script to zip the plugin folder:
    powershell ./package-cowork-plugins.ps1 -PluginsPath "projects"
  • This creates a .zip file ready for upload.

7. Upload and Install the Plugin in Microsoft 365 Admin Center

  • Navigate to https://admin.cloud.microsoft
  • Go to Agents → All agents → Add agent
  • Upload your plugin zip
  • Assign visibility and deployment groups cautiously to avoid upgrade issues

8. Enable and Connect the Plugin in Copilot Cowork

  • In the Microsoft 365 Copilot App or https://m365.cloud.microsoft, go to Agents → Cowork (Frontier) → Manage Plugins → Browse plugins.
  • Add your plugin, then connect it by authenticating via the configured OAuth.

9. Use the Plugin

  • Trigger tasks in Cowork like:
    "Please add today’s work tasks from my calendar into Toggl"
  • The plugin reads calendar events, resolves corresponding projects in Toggl via MCP Server calls, and fills timesheets.
  • It prompts for clarifications when project mappings are ambiguous.

Quick Tips & Tricks

  1. Keep Icon Sizes Exact — Ensure color.png is 192x192 and outline.png 32x32 pixels. Icon size mismatches silently break plugin upgrades.

  2. Increment Version Numbers on Each Upgrade — Both in manifest.json and SKILL.md to avoid deployment errors.

  3. Use Multi-Tenant Entra ID Registrations Carefully — Set identifier URIs correctly, using valid domain or api://[clientid] format, then restrict access by tenant ID for security.

  4. Leverage GitHub Copilot for Scaffolding — AI-assisted coding accelerates creating skill documents and packaging scripts.

  5. Test Your OAuth Setup Early — If "Connect" does nothing, verify your Teams Developer Portal SSO client registration and MCP Server app permissions.

  6. Avoid Auto-Deployment Until Confident — Upgrading auto-deployed plugins is currently fragile.

Conclusion

Microsoft 365 Copilot Cowork Plugins open exciting doors to extend agent skills beyond standard Microsoft 365 capabilities — bringing custom business system integration within reach. Securing your MCP Server with Entra ID not only protects your data but also leverages familiar Azure AD tooling for authentication.

Though still in public preview with some rough edges, the platform rapidly evolves to streamline plugin lifecycle management and deployment. Tools like GitHub Copilot and Microsoft’s declarative plugin format make building sophisticated skills surprisingly accessible.

Explore the sample Toggl plugin repository here to jumpstart your own integrations. With Microsoft's firm commitment to innovation in this space, now is the perfect time to experiment and shape the future of intelligent workplace automation.

References

  1. My experiences Building Secure MCP Powered Microsoft Cowork Plugins — original blog post by Simon Doy
  2. Building a Secure Custom MCP Server secured by Microsoft Entra ID — detailed MCP server setup guide
  3. Microsoft 365 Copilot Cowork Plugin Development — official Microsoft documentation
  4. Microsoft Teams Developer Portal — for plugin and app registrations
  5. Microsoft Entra (Azure AD) App Registrations — manage app scopes and redirect URIs
  6. GitHub Repo: Cowork Toggl Plugin Example — sample source code