From 2d0578568ef88ecebc1a067214ce6408ab6df233 Mon Sep 17 00:00:00 2001 From: SirajShaik-MSFT Date: Tue, 14 Apr 2026 09:47:31 +0530 Subject: [PATCH 1/7] Update agent-connectors.md --- .../m365-apps/agent-connectors.md | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/msteams-platform/m365-apps/agent-connectors.md b/msteams-platform/m365-apps/agent-connectors.md index 27c14f5e750..d33a3f3975e 100644 --- a/msteams-platform/m365-apps/agent-connectors.md +++ b/msteams-platform/m365-apps/agent-connectors.md @@ -7,13 +7,14 @@ ms.topic: how-to ms.subservice: m365apps --- -# Register MCP servers as agent connectors for Microsoft 365 (preview) +# Register MCP servers as agent connectors for Microsoft 365 Agents in Microsoft 365, such as [Channel Agent](/microsoftteams/set-up-channel-agent-teams) in Microsoft Teams, can connect to external systems through *agent connectors* declared in the app manifest. This article shows you how to register your remote Model Context Protocol (MCP) server in the Microsoft 365 app manifest, enabling Microsoft 365 agents to securely discover, select, and invoke MCP tools that your server exposes. - + Microsoft 365 agents use agent connectors to communicate with external systems. For MCP servers, the connector provides: @@ -28,7 +29,7 @@ Once registered, your MCP server becomes available to any Microsoft 365 agent ca Before you begin, ensure you have: -- A test tenant [enabled with Teams public preview](/microsoftteams/public-preview-doc-updates) features (for testing your MCP integration with Teams Channel Agent) + - A working MCP server with a secure public endpoint - Authentication credentials (OAuth configuration or API key) @@ -40,12 +41,12 @@ First, declare your MCP server in the [agentConnectors](/microsoft-365/extensibi 2. Locate or create the root-level `agentConnectors` array. -3. Add a new connector object with a unique `id`, display name, and description: +3. Add a new connector object with a unique `id`, `displayName`, and `description`: ````json { - "$schema": "https://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.schema.json", - "manifestVersion": "devPreview", + "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.27/MicrosoftTeams.schema.json", + "manifestVersion": "1.27", ... "agentConnectors": [ { @@ -91,10 +92,8 @@ Specify how Microsoft 365 retrieves credentials when calling your MCP server. Th - **None**: No authentication required - **OAuthPluginVault**: OAuth 2.0 tokens stored inside Microsoft’s secure vault - ### Use OAuth authentication @@ -114,7 +113,6 @@ The `referenceId` points to a secure [OAuth configuration that you register in D When setting up your OAuth app with a third-party authentication provider, ensure that you add `https://teams.microsoft.com/api/platform/v1.0/oAuthRedirect` to the list of allowed redirect endpoints. - ### Use no authentication @@ -139,8 +136,7 @@ For enterprise scenarios, prefer OAuth over API keys to align with security best Choose how Microsoft 365 agents discover the tools your MCP server provides. Currently only inline tool definitions are supported. -You can use inline definitions if your toolset is static, or dynamic discovery if your toolset changes frequently. - +You can use inline definitions if your toolset is static or dynamic discovery if your toolset changes frequently. ### Enable dynamic tool discovery @@ -150,8 +146,6 @@ You can enable dynamic tool discovery by omitting the [mcpToolDescription](/micr When enabled, agents call your server's `tools/list` method to retrieve available tools. This approach eliminates the need to republish your app when tools change. ---> - ### Use inline tool definitions For static toolsets that don't change frequently, add an `mcpToolDescription` object with your tool definitions: @@ -179,8 +173,8 @@ The following is an example of a complete agent connector configuration, using * ```json { - "$schema": "https://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.schema.json", - "manifestVersion": "devPreview", + "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.27/MicrosoftTeams.schema.json", + "manifestVersion": "1.27", ... "agentConnectors": [ { From ffd2c8b32d963e168e56e68bc4832cb26d720917 Mon Sep 17 00:00:00 2001 From: SirajShaik-MSFT Date: Tue, 14 Apr 2026 10:51:17 +0530 Subject: [PATCH 2/7] Update agent-connectors.md --- .../m365-apps/agent-connectors.md | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/msteams-platform/m365-apps/agent-connectors.md b/msteams-platform/m365-apps/agent-connectors.md index d33a3f3975e..a60e16a4611 100644 --- a/msteams-platform/m365-apps/agent-connectors.md +++ b/msteams-platform/m365-apps/agent-connectors.md @@ -29,9 +29,9 @@ Once registered, your MCP server becomes available to any Microsoft 365 agent ca Before you begin, ensure you have: - +- A test tenant [enabled with Teams public preview](/microsoftteams/public-preview-doc-updates) features (for testing your MCP integration with Teams Channel Agent) - A working MCP server with a secure public endpoint -- Authentication credentials (OAuth configuration or API key) +- Authentication credentials ([OAuth configuration](../messaging-extensions/api-based-oauth.md#configure-oauth-in-developer-portal) or [API key](../messaging-extensions/api-based-secret-service-auth.md#api-key-authentication)) ## Add the agent connector to your manifest @@ -74,13 +74,13 @@ Define how Microsoft 365 connects to your MCP server using the `remoteMcpServer` 1. Within your connector's [toolSource](/microsoft-365/extensibility/schema/root-agent-connectors-tool-source?view=m365-app-prev&preserve-view=true), specify the `remoteMcpServer` endpoint: -````json -"toolSource": { - "remoteMcpServer": { - "mcpServerUrl": "https://mcp.mycompany.com" - } -} -```` + ````json + "toolSource": { + "remoteMcpServer": { + "mcpServerUrl": "https://mcp.mycompany.com" + } + } + ```` 2. Ensure your endpoint uses HTTPS (for HTTP connections) or WSS (for WebSocket connections). @@ -93,7 +93,7 @@ Specify how Microsoft 365 retrieves credentials when calling your MCP server. Th - **None**: No authentication required - **OAuthPluginVault**: OAuth 2.0 tokens stored inside Microsoft’s secure vault - **ApiKeyPluginVault**: API key stored in a vault and referenced by ID -- **DynamicClientRegistration**: Dynamic OAuth client creation + ### Use OAuth authentication @@ -134,10 +134,8 @@ For enterprise scenarios, prefer OAuth over API keys to align with security best ## Define tool discovery -Choose how Microsoft 365 agents discover the tools your MCP server provides. Currently only inline tool definitions are supported. - -You can use inline definitions if your toolset is static or dynamic discovery if your toolset changes frequently. - +Configure how Microsoft 365 agents discover the tools your MCP server provides. Currently only inline tool definitions are supported. Use inline definitions if your toolset is static. + ### Use inline tool definitions For static toolsets that don't change frequently, add an `mcpToolDescription` object with your tool definitions: @@ -228,11 +226,11 @@ This configuration is sufficient for Microsoft 365 agents, including the Channel ## Validate your configuration -Before deploying your app, verify that your manifest and MCP server are correctly configured. +Before deploying your agent or app, verify that your manifest and MCP server are correctly configured. 1. Use the [Microsoft 365 app package validation](https://dev.teams.microsoft.com/tools/store-validation) tool in Developer Portal to check your manifest for errors. -2. Verify your MCP server responds correctly to handshake messages by testing the connection manually. +2. Verify if your MCP server responds correctly to handshake messages by testing the connection manually. 3. Confirm that your `tools/list` endpoint returns schema-compliant tool definitions: @@ -254,7 +252,7 @@ Before deploying your app, verify that your manifest and MCP server are correctl Validate your integration by testing with actual Microsoft 365 agents. -1. Deploy your app to a test environment. +1. Deploy your agent or app to a test environment. 2. Open a [Channel Agent](/microsoftteams/set-up-channel-agent-teams) in Microsoft Teams or another Microsoft 365 agent that supports MCP. From 90909c5534263b4e2019dca2bc42060ddd0cd9e1 Mon Sep 17 00:00:00 2001 From: SirajShaik-MSFT Date: Tue, 21 Apr 2026 17:04:09 +0530 Subject: [PATCH 3/7] Update agent-connectors.md --- .../m365-apps/agent-connectors.md | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/msteams-platform/m365-apps/agent-connectors.md b/msteams-platform/m365-apps/agent-connectors.md index a60e16a4611..a604094dea4 100644 --- a/msteams-platform/m365-apps/agent-connectors.md +++ b/msteams-platform/m365-apps/agent-connectors.md @@ -9,7 +9,7 @@ ms.subservice: m365apps # Register MCP servers as agent connectors for Microsoft 365 -Agents in Microsoft 365, such as [Channel Agent](/microsoftteams/set-up-channel-agent-teams) in Microsoft Teams, can connect to external systems through *agent connectors* declared in the app manifest. This article shows you how to register your remote Model Context Protocol (MCP) server in the Microsoft 365 app manifest, enabling Microsoft 365 agents to securely discover, select, and invoke MCP tools that your server exposes. +Agents in Microsoft 365 can connect to external systems through *agent connectors* declared in the app manifest. This article shows you how to register your remote Model Context Protocol (MCP) server in the Microsoft 365 app manifest, enabling Microsoft 365 agents to securely discover, select, and invoke MCP tools that your server exposes. ## Prerequisites Before you begin, ensure you have: -- A test tenant [enabled with Teams public preview](/microsoftteams/public-preview-doc-updates) features (for testing your MCP integration with Teams Channel Agent) +- A test tenant to validate your MCP integration - A working MCP server with a secure public endpoint - Authentication credentials ([OAuth configuration](../messaging-extensions/api-based-oauth.md#configure-oauth-in-developer-portal) or [API key](../messaging-extensions/api-based-secret-service-auth.md#api-key-authentication)) ## Add the agent connector to your manifest -First, declare your MCP server in the [agentConnectors](/microsoft-365/extensibility/schema/root-agent-connectors?view=m365-app-prev&preserve-view=true) array at the root level of your app manifest. +First, declare your MCP server in the [agentConnectors](/microsoft-365/extensibility/schema/root-agent-connectors?view=m365-app-1.27&preserve-view=true) array at the root level of your app manifest. 1. Open your Microsoft 365 app manifest (`manifest.json`) file. @@ -48,19 +48,18 @@ First, declare your MCP server in the [agentConnectors](/microsoft-365/extensibi "$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.mycompany.com" - } + "agentConnectors": [ + { + "id": "my-mcp-server", + "displayName": "My Automation Server", + "description": "Provides workflow automation and task management tools.", + "toolSource": { + "remoteMcpServer": { + "mcpServerUrl": "https://mcp.mycompany.com" } } - ] - } + } + ] } ```` @@ -72,7 +71,7 @@ For MCP servers, use **remoteMcpServer** unless your server runs locally within Define how Microsoft 365 connects to your MCP server using the `remoteMcpServer` object. -1. Within your connector's [toolSource](/microsoft-365/extensibility/schema/root-agent-connectors-tool-source?view=m365-app-prev&preserve-view=true), specify the `remoteMcpServer` endpoint: +1. Within your connector's [toolSource](/microsoft-365/extensibility/schema/root-agent-connectors-tool-source?view=m365-app-1.27&preserve-view=true), specify the `remoteMcpServer` endpoint: ````json "toolSource": { @@ -222,7 +221,7 @@ The following is an example of a complete agent connector configuration, using * } ``` -This configuration is sufficient for Microsoft 365 agents, including the Channel Agent in Teams, to establish a connection and discover tools from your MCP server. +This configuration is sufficient for Microsoft 365 agents to establish a connection and discover tools from your MCP server. ## Validate your configuration @@ -254,7 +253,7 @@ Validate your integration by testing with actual Microsoft 365 agents. 1. Deploy your agent or app to a test environment. -2. Open a [Channel Agent](/microsoftteams/set-up-channel-agent-teams) in Microsoft Teams or another Microsoft 365 agent that supports MCP. +2. Open a Microsoft 365 agent that supports MCP. 3. Test natural language commands that should trigger your tools: - "Create a task in my project management system" From 95b77efc4e1b52741b675b253e755f8b22b602ae Mon Sep 17 00:00:00 2001 From: SirajShaik-MSFT Date: Wed, 22 Apr 2026 14:56:51 +0530 Subject: [PATCH 4/7] Update agent-connectors.md --- msteams-platform/m365-apps/agent-connectors.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/msteams-platform/m365-apps/agent-connectors.md b/msteams-platform/m365-apps/agent-connectors.md index a604094dea4..2cce41f5b36 100644 --- a/msteams-platform/m365-apps/agent-connectors.md +++ b/msteams-platform/m365-apps/agent-connectors.md @@ -1,8 +1,8 @@ --- title: Register MCP Servers as Agent Connectors for Microsoft 365 -description: Register your MCP server in the Microsoft 365 app manifest to enable access to your tools from agents like the Channel Agent in Teams. +description: Register your MCP server in the Microsoft 365 app manifest to enable access to your tools from agents in Teams. #customer intent: As a developer, I want to register my MCP server as an agent connector so that Microsoft 365 agents can access my external tools and services. -ms.date: 01/28/2026 +ms.date: 04/27/2026 ms.topic: how-to ms.subservice: m365apps --- @@ -20,7 +20,7 @@ Microsoft 365 agents use agent connectors to communicate with external systems. - The network endpoint of your MCP server - Authentication and authorization configuration -- Tool definitions (inline or dynamically discovered) +- Tool definitions - Optional metadata that helps agents orchestrate the right tool during user interactions Once registered, your MCP server becomes available to any Microsoft 365 agent capable of using MCP. @@ -35,7 +35,7 @@ Before you begin, ensure you have: ## Add the agent connector to your manifest -First, declare your MCP server in the [agentConnectors](/microsoft-365/extensibility/schema/root-agent-connectors?view=m365-app-1.27&preserve-view=true) array at the root level of your app manifest. +First, declare your MCP server in the [agentConnectors](/microsoft-365/extensibility/schema/root-agent-connectors) array at the root level of your app manifest. 1. Open your Microsoft 365 app manifest (`manifest.json`) file. @@ -55,7 +55,7 @@ First, declare your MCP server in the [agentConnectors](/microsoft-365/extensibi "description": "Provides workflow automation and task management tools.", "toolSource": { "remoteMcpServer": { - "mcpServerUrl": "https://mcp.mycompany.com" + "mcpServerUrl": "https://mcp.example.com" } } } @@ -71,12 +71,12 @@ For MCP servers, use **remoteMcpServer** unless your server runs locally within Define how Microsoft 365 connects to your MCP server using the `remoteMcpServer` object. -1. Within your connector's [toolSource](/microsoft-365/extensibility/schema/root-agent-connectors-tool-source?view=m365-app-1.27&preserve-view=true), specify the `remoteMcpServer` endpoint: +1. Within your connector's [toolSource](/microsoft-365/extensibility/schema/root-agent-connectors-tool-source), specify the `remoteMcpServer` endpoint: ````json "toolSource": { "remoteMcpServer": { - "mcpServerUrl": "https://mcp.mycompany.com" + "mcpServerUrl": "https://mcp.example.com" } } ```` @@ -100,7 +100,7 @@ For OAuth 2.0 tokens stored in Microsoft's secure vault, specify authorization t ````json "remoteMcpServer": { - "mcpServerUrl": "https://mcp.mycompany.com", + "mcpServerUrl": "https://mcp.example.com", "authorization": { "type": "OAuthPluginVault", "referenceId": "my-oauth-config" @@ -149,7 +149,7 @@ For static toolsets that don't change frequently, add an `mcpToolDescription` ob ````json "remoteMcpServer": { - "mcpServerUrl": "https://mcp.mycompany.com", + "mcpServerUrl": "https://mcp.example.com", "authorization": { "type": "ApiKeyPluginVault", "referenceId": "my-apikey" From e8cbc677e3c1d3ee0c8ce1716d692743df90552b Mon Sep 17 00:00:00 2001 From: SirajShaik-MSFT Date: Fri, 24 Apr 2026 22:25:41 +0530 Subject: [PATCH 5/7] Update agent-connectors.md --- msteams-platform/m365-apps/agent-connectors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msteams-platform/m365-apps/agent-connectors.md b/msteams-platform/m365-apps/agent-connectors.md index 2cce41f5b36..5a439e1a78a 100644 --- a/msteams-platform/m365-apps/agent-connectors.md +++ b/msteams-platform/m365-apps/agent-connectors.md @@ -2,7 +2,7 @@ title: Register MCP Servers as Agent Connectors for Microsoft 365 description: Register your MCP server in the Microsoft 365 app manifest to enable access to your tools from agents in Teams. #customer intent: As a developer, I want to register my MCP server as an agent connector so that Microsoft 365 agents can access my external tools and services. -ms.date: 04/27/2026 +ms.date: 04/24/2026 ms.topic: how-to ms.subservice: m365apps --- From 9772350f8f1cbe4401f88364c3cc3640a14feb9d Mon Sep 17 00:00:00 2001 From: SirajShaik-MSFT Date: Fri, 24 Apr 2026 22:46:08 +0530 Subject: [PATCH 6/7] Update agent-connectors.md --- msteams-platform/m365-apps/agent-connectors.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/msteams-platform/m365-apps/agent-connectors.md b/msteams-platform/m365-apps/agent-connectors.md index 5a439e1a78a..1eb977629e8 100644 --- a/msteams-platform/m365-apps/agent-connectors.md +++ b/msteams-platform/m365-apps/agent-connectors.md @@ -63,9 +63,7 @@ First, declare your MCP server in the [agentConnectors](/microsoft-365/extensibi } ```` -Each connector must have a unique `id` that distinguishes it from other connectors in your manifest. The `toolSource` object must include exactly one of `remoteMcpServer`, `localMcpServer`, or `plugin`. - -For MCP servers, use **remoteMcpServer** unless your server runs locally within the Teams client environment (advanced scenarios). +Each connector must have a unique `id` that distinguishes it from other connectors in your manifest. ## Configure the remote MCP server endpoint @@ -92,7 +90,7 @@ Specify how Microsoft 365 retrieves credentials when calling your MCP server. Th - **None**: No authentication required - **OAuthPluginVault**: OAuth 2.0 tokens stored inside Microsoft’s secure vault - **ApiKeyPluginVault**: API key stored in a vault and referenced by ID - +- **DynamicClientRegistration**: Dynamic OAuth client creation ### Use OAuth authentication @@ -156,7 +154,7 @@ For static toolsets that don't change frequently, add an `mcpToolDescription` ob }, "mcpToolDescription": { "description": { - // Tool definitions following MCP protocol schema + "file": "toolDescription.json" } } } @@ -164,7 +162,7 @@ For static toolsets that don't change frequently, add an `mcpToolDescription` ob The `description` object must match the schema returned by your MCP server's `tools/list` response. -## Example schema + to establish a connection and discover tools from your MCP server. +This configuration is sufficient for Microsoft 365 agents ## Validate your configuration From 2255c10afd17662402eaa3d226e2a087e6fcdd1d Mon Sep 17 00:00:00 2001 From: SirajShaik-MSFT Date: Fri, 24 Apr 2026 22:58:45 +0530 Subject: [PATCH 7/7] Update agent-connectors.md --- msteams-platform/m365-apps/agent-connectors.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/msteams-platform/m365-apps/agent-connectors.md b/msteams-platform/m365-apps/agent-connectors.md index 1eb977629e8..93e15acc854 100644 --- a/msteams-platform/m365-apps/agent-connectors.md +++ b/msteams-platform/m365-apps/agent-connectors.md @@ -90,7 +90,7 @@ Specify how Microsoft 365 retrieves credentials when calling your MCP server. Th - **None**: No authentication required - **OAuthPluginVault**: OAuth 2.0 tokens stored inside Microsoft’s secure vault - **ApiKeyPluginVault**: API key stored in a vault and referenced by ID -- **DynamicClientRegistration**: Dynamic OAuth client creation +- **DynamicClientRegistration**: Dynamic OAuth client registration ### Use OAuth authentication @@ -131,7 +131,7 @@ For enterprise scenarios, prefer OAuth over API keys to align with security best ## Define tool discovery -Configure how Microsoft 365 agents discover the tools your MCP server provides. Currently only inline tool definitions are supported. Use inline definitions if your toolset is static. +Configure how Microsoft 365 agents discover the tools your MCP server provides. -### Use inline tool definitions For static toolsets that don't change frequently, add an `mcpToolDescription` object with your tool definitions: