Inscrire des serveurs MCP en tant que connecteurs d’agent pour Microsoft 365

Les agents dans Microsoft 365 peuvent se connecter à des systèmes externes via des connecteurs d’agent déclarés dans le manifeste de l’application. Cet article explique comment inscrire votre serveur MCP (Model Context Protocol) distant dans le manifeste de l’application Microsoft 365, ce qui permet aux agents Microsoft 365 de découvrir, sélectionner et appeler en toute sécurité les outils MCP exposés par votre serveur.

Les agents Microsoft 365 utilisent des connecteurs d’agent pour communiquer avec des systèmes externes. Pour les serveurs MCP, le connecteur fournit :

  • Point de terminaison réseau de votre serveur MCP
  • Configuration de l’authentification et de l’autorisation
  • Définitions d’outils
  • Métadonnées facultatives qui aident les agents à orchestrer l’outil approprié pendant les interactions utilisateur

Une fois inscrit, votre serveur MCP devient disponible pour tout agent Microsoft 365 capable d’utiliser MCP.

Configuration requise

Avant de commencer, vérifiez que vous disposez des points suivants :

  • Un locataire de test pour valider votre intégration MCP
  • Un serveur MCP opérationnel avec un point de terminaison public sécurisé
  • Informations d’identification d’authentification (configuration OAuth ou clé API)

Ajouter le connecteur d’agent à votre manifeste

Tout d’abord, déclarez votre serveur MCP dans le tableau agentConnectors au niveau racine du manifeste de votre application.

  1. Ouvrez votre fichier manifeste d’application Microsoft 365 (manifest.json).

  2. Recherchez ou créez le tableau de niveau agentConnectors racine.

  3. Ajoutez un nouvel objet connecteur avec un unique id, displayName, et description:

{
  "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.27/MicrosoftTeams.schema.json",
  "manifestVersion": "1.27",
  ...
  "agentConnectors": [
    {
      "id": "my-mcp-server",
      "displayName": "My Automation Server",
      "description": "Provides workflow automation and task management tools.",
      "toolSource": {
        "remoteMcpServer": {
          "mcpServerUrl": "https://mcp.example.com"
        }
      }
    }
  ]
}

Chaque connecteur doit avoir un unique id qui le distingue des autres connecteurs de votre manifeste.

Configurer le point de terminaison de serveur MCP distant

Définissez la façon dont Microsoft 365 se connecte à votre serveur MCP à l’aide de l’objet remoteMcpServer .

  1. Dans la ressource toolSource de votre connecteur, spécifiez le point de remoteMcpServer terminaison :

    "toolSource": {
      "remoteMcpServer": {
        "mcpServerUrl": "https://mcp.example.com"
      }
    }
    
  2. Vérifiez que votre point de terminaison utilise HTTPS (pour les connexions HTTP) ou WSS (pour les connexions WebSocket).

Le point de terminaison doit être accessible publiquement et répondre aux messages de liaison du protocole MCP. Les agents Microsoft 365 établissent des connexions de longue durée à ce point de terminaison.

Configuration de l’authentification

Spécifiez comment Microsoft 365 récupère les informations d’identification lors de l’appel de votre serveur MCP. Les valeurs suivantes sont actuellement prises en charge pour l’authentification du serveur MCP :

  • Aucun : aucune authentification requise
  • OAuthPluginVault : jetons OAuth 2.0 stockés dans le coffre sécurisé de Microsoft
  • ApiKeyPluginVault : clé API stockée dans un coffre et référencée par ID
  • DynamicClientRegistration : inscription dynamique du client OAuth
  • AzureKeyVault : secrets stockés dans votre propre Azure Key Vault instance

Utiliser l’authentification OAuth

Pour les jetons OAuth 2.0 stockés dans le coffre sécurisé de Microsoft, spécifiez le type OAuthPluginVault d’autorisation dans votre configuration :

"remoteMcpServer": {
  "mcpServerUrl": "https://mcp.example.com",
  "authorization": {
    "type": "OAuthPluginVault",
    "referenceId": "my-oauth-config"
  }
}

Pointe referenceId vers une configuration OAuth sécurisée que vous inscrivez dans le Portail des développeurs. Pour plus d’informations, consultez Configurer OAuth dans le portail des développeurs.

Lorsque vous configurez votre application OAuth avec un fournisseur d’authentification tiers, veillez à ajouter https://teams.microsoft.com/api/platform/v1.0/oAuthRedirect à la liste des points de terminaison de redirection autorisés.

Utiliser l’authentification par clé API

Pour les clés API stockées dans un coffre, configurez le type d’autorisation comme ApiKeyPluginVaultsuit :

"authorization": {
  "type": "ApiKeyPluginVault",
  "referenceId": "my-apikey"
}

pointe referenceId vers une clé API que vous inscrivez dans le Portail des développeurs. Pour plus d’informations, consultez Authentification par clé API.

Utiliser l’inscription dynamique du client

L’inscription dynamique du client permet à Microsoft 365 de s’inscrire en tant que client OAuth auprès de votre serveur MCP au moment de l’exécution à l’aide du protocole RFC 7591 . Cette approche est utile lorsque votre serveur prend en charge les flux OAuth dynamiques et que vous ne souhaitez pas préinscrire les informations d’identification du client.

Configurez le type d’autorisation comme DynamicClientRegistration avec :referenceId

"authorization": {
  "type": "DynamicClientRegistration",
  "referenceId": "my-dcr-config"
}

Pointe referenceId vers une configuration d’inscription de client dynamique que vous inscrivez dans le Portail des développeurs. Cette configuration fournit les valeurs d’autorisation nécessaires que Microsoft 365 utilise lors de la négociation des informations d’identification du client avec le point de terminaison d’inscription OAuth de votre serveur MCP.

Votre serveur doit :

  • Exposez un point de terminaison d’inscription client conforme À la norme RFC 7591 .
  • Retourne un client_id et client_secret que Microsoft 365 peut utiliser pour obtenir des jetons d’accès.
  • Prise en charge de l’actualisation des jetons pour les sessions de longue durée.

Utiliser l’authentification Azure Key Vault

Azure Key Vault’authentification vous permet de stocker et de gérer vos informations d’identification de serveur MCP dans votre propre Azure Key Vault instance. Cela vous donne un contrôle total sur la gestion du cycle de vie des secrets, y compris la rotation, les stratégies d’accès et la journalisation d’audit.

Configurez le type d’autorisation comme AzureKeyVaultsuit :

"authorization": {
  "type": "AzureKeyVault",
  "referenceId": "my-keyvault-secret"
}

Pointe referenceId vers un identificateur de secret inscrit dans le portail des développeurs qui mappe à votre secret Azure Key Vault.

Pour configurer l’authentification Azure Key Vault :

  1. Stockez vos informations d’identification de serveur MCP (clé API ou clé secrète client) en tant que secret dans votre Azure Key Vault.
  2. Accordez au principal de service Microsoft 365 l’accès pour lire le secret en configurant une stratégie d’accès ou Azure rôle RBAC sur votre coffre.
  3. Inscrivez la référence du secret dans le portail des développeurs et notez l’ID d’inscription.
  4. Utilisez l’ID d’inscription comme referenceId dans votre manifeste.

Utiliser aucune authentification

Si votre serveur ne nécessite pas d’authentification (non recommandé pour la production), définissez le type None d’autorisation sur ou omettez entièrement l’objet authorization .

Pour les scénarios d’entreprise, préférez OAuth aux clés API pour vous aligner sur les meilleures pratiques de sécurité et les attentes de l’administrateur.

Définir la découverte d’outils

Configurez la façon dont les agents Microsoft 365 découvrent les outils que votre serveur MCP fournit. Utilisez des définitions d’outils inline statiques lorsque votre ensemble d’outils est stable, ou activez la découverte dynamique des outils lorsque votre ensemble d’outils change fréquemment.

Utiliser des définitions d’outils statiques

Pour les ensembles d’outils statiques qui ne changent pas fréquemment, ajoutez un objet avec vos définitions d’outils mcpToolDescription :

"remoteMcpServer": {
  "mcpServerUrl": "https://mcp.example.com",
  "authorization": {
    "type": "ApiKeyPluginVault",
    "referenceId": "my-apikey"
  },
  "mcpToolDescription": {
    "description": {
      "file": "toolDescription.json"
    }
  }
}

L’objet description doit correspondre au schéma retourné par la réponse de tools/list votre serveur MCP.

Utiliser la découverte d’outils dynamiques

La découverte dynamique des outils permet aux agents Microsoft 365 d’extraire votre liste d’outils au moment de l’exécution en appelant la méthode de tools/list votre serveur. Cette approche est recommandée lorsque votre ensemble d’outils change fréquemment, car elle élimine la nécessité de republier votre application chaque fois que des outils sont ajoutés, mis à jour ou supprimés.

Pour activer la découverte dynamique des outils, omettez mcpToolDescription de votre configuration remoteMcpServer :

"remoteMcpServer": {
  "mcpServerUrl": "https://mcp.example.com",
  "authorization": {
    "type": "OAuthPluginVault",
    "referenceId": "my-oauth-config"
  }
}

Quand mcpToolDescription est omis, Microsoft 365 agents :

  • Connectez-vous au point de terminaison de votre serveur MCP.
  • Appelez la tools/list méthode pour récupérer les outils disponibles au moment de l’exécution.
  • Mettez à jour la liste d’outils disponible sans nécessiter de republiation de manifeste.

Votre serveur MCP doit retourner une réponse valide tools/list qui inclut le nom, la description et le schéma d’entrée de chaque outil.

Valider votre configuration

Avant de déployer votre agent ou votre application, vérifiez que votre manifeste et votre serveur MCP sont correctement configurés.

  1. Utilisez l’outil de validation de package d’application Microsoft 365 dans le Portail des développeurs pour case activée votre manifeste en cas d’erreurs.

  2. Vérifiez si votre serveur MCP répond correctement aux messages d’établissement d’une liaison en testant la connexion manuellement.

  3. Vérifiez que votre tools/list point de terminaison retourne des définitions d’outils conformes au schéma :

    • Chaque outil a un nom et une description uniques
    • Les schémas d’entrée sont des schémas JSON valides
    • Les paramètres obligatoires et facultatifs sont clairement définis
  4. Testez votre configuration d’autorisation :

    • Vérifier que pointe referenceId vers un secret valide
    • Vérifier que les jetons ou les clés sont correctement récupérés
    • Tester l’actualisation du jeton si vous utilisez OAuth
  5. Vérifiez que votre point de terminaison prend en charge TLS 1.2 ou version ultérieure.

  6. Vérifiez les messages d’erreur et réessayez la sémantique pour les appels d’outils ayant échoué.

Tester avec les agents Microsoft 365

Validez votre intégration en testant avec des agents Microsoft 365 réels.

  1. Déployez votre agent ou votre application dans un environnement de test.

  2. Ouvrez un agent Microsoft 365 qui prend en charge MCP.

  3. Testez les commandes en langage naturel qui doivent déclencher vos outils :

    • « Créer une tâche dans mon système de gestion de projet »
    • « Mettre à jour le status du numéro de ticket 123 »
    • « Rechercher les problèmes ouverts qui m’ont été attribués »
  4. Vérifiez que :

    • Les outils apparaissent dans les actions disponibles de l’agent
    • Les invites de consentement de l’utilisateur s’affichent si nécessaire
    • Les appels d’outils s’exécutent correctement
    • Les réponses sont traitées correctement
    • Les conditions d’erreur sont gérées correctement
  5. Testez sur plusieurs locataires si votre scénario nécessite une prise en charge multilocataire.

Résoudre les problèmes courants

Si votre serveur MCP ne fonctionne pas comme prévu, case activée ces problèmes courants :

L’agent ne peut pas se connecter à votre serveur

  • Vérifier que votre point de terminaison est accessible publiquement
  • Vérifiez que votre point de terminaison utilise HTTPS ou WSS
  • Vérifier les paramètres de sécurité réseau et de pare-feu
  • Vérifier que votre serveur répond aux messages d’établissement d’une liaison MCP

Les outils n’apparaissent pas dans les agents

  • Vérifier que tools/list retourne des définitions d’outils valides
  • Vérifier que les descriptions des outils sont claires et complètes
  • Pour les définitions statiques, validez le schéma JSON de vos définitions d’outils inline
  • Pour la découverte dynamique, vérifiez que mcpToolDescription est omis et que votre serveur répond correctement à au moment de l’exécution tools/list

Échecs d’authentification

  • Vérifiez que correspond à referenceId votre configuration de secret stocké
  • Tester que les jetons OAuth sont valides et n’ont pas expiré
  • Vérifier que les clés API disposent des autorisations nécessaires
  • Vérifier le format d’en-tête d’autorisation dans les demandes sortantes

Les appels d’outils échouent ou expirent

  • Vérifier les erreurs dans les journaux de votre serveur
  • Vérifier que la validation des paramètres d’entrée fonctionne correctement
  • Vérifier que les réponses suivent le format de protocole MCP
  • Vérifier que votre serveur gère les demandes simultanées

Étapes suivantes

Lorsque vous êtes prêt, soumettez votre application pour la certification et la publication des partenaires.