Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Another way to extend your agent with tools is via Model Context Protocol (MCP).
What is Model Context Protocol?
Model Context Protocol (MCP) allows users to connect with existing knowledge servers and data sources directly within Copilot Studio. Connecting to an MCP server gives you access to:
- Resources: File-like data that client applications can read (like API responses or file contents)
- Tools: Functions a language model can call
- Prompts: Predefined prompt templates to accomplish specific tasks
Note
Copilot Studio currently only supports tools.
How does MCP work?
Each tool published by the MCP server is automatically added as a tool in Copilot Studio. Name, description, inputs, and outputs are inherited from the server. As tools are updated or removed on the MCP server, Copilot Studio dynamically reflects these changes, ensuring users always have the latest versions and that obsolete tools are removed. A single MCP server can integrate and manage multiple tools, each accessible as a tool within Copilot Studio.
When you connect to a Non-Microsoft Product, including an external MCP server, you are responsible for the tools and data you access from within Copilot Studio.
Note
Generative Orchestration must be enabled to use MCP.
What is the process to extend an agent using MCP in Copilot Studio?
To integrate MCP in Copilot Studio:
- Create an MCP server.
- Create a custom MCP connector based on the YAML schema template provided below.
- Consume via Copilot Studio by adding tools from an existing MCP connector to an agent.
- (Optional) Publish your MCP connector to allow the connector to be used across tenants.
Create an MCP server
You can use MCP software development kits (SDKs) to set up an MCP server in one of the supported languages.
Create a custom MCP connector
Supported transports
In MCP, transports are the foundation for client-server communication. Transports handle the mechanics of sending and receiving messages. Currently, Copilot Studio supports the following transport types:
- Streamable - Recommended (generally available)
- Server-Sent Events (SSE) (public preview)
Note
Given that SSE transport is being deprecated, SSE transport support in MCS remains in public preview. Copilot Studio will no longer support SSE for MCP starting August 2025.
Configure a custom connector
With your MCP server set up, you must configure a custom connector (via Power Apps or Power Automate) for your MCP server. To carry out this procedure, you need a schema file for your MCP server. The schema file is an OpenAPI specification YAML file that describes the API of your MCP server.
For guidance on what the specification file should look like, check out some of the provided MCP server schema examples.
Select Agents in the left navigation.
Select your agent from the list of agents.
Go to the Tools page for your agent.
Select Add a tool.
Select New tool.
Select Custom connector. You're taken to Power Apps to create a new custom connector.
Select New custom connector.
Select Import OpenAPI file.
Navigate to your schema file and select Import to import the file.
Select Continue to complete the setup in Power Apps. You can read more about the setup process in the Power Apps documentation at Import the OpenAPI definition.
MCP server schema examples
Here are two sample OpenAPI schema files for MCP servers using fictional data, in YAML format. The samples demonstrate each of the supported transports. You need to fill in the details for your own MCP server.
Here is an example YAML for Streamable (Recommended):
swagger: '2.0'
info:
title: Contoso
description: MCP Test Specification, YAML for streamable MCP support in Copilot Studio
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
Here is an example YAML for SSE:
swagger: '2.0'
info:
title: Contoso
description: MCP Test Specification, YAML for SSE MCP support in Copilot Studio
version: 1.0.0
host: contoso.com
basePath: /
schemes:
- https
paths:
/mcp/sse:
get:
summary: Contoso Lead Management Server
x-ms-agentic-protocol: mcp-sse-1.0
operationId: InvokeMCP
responses:
'200':
description: Success
Microsoft MCP connectors available in Copilot Studio
Microsoft provides a number of prebuilt MCP connectors to connect to Microsoft services in Copilot Studio. The following are Microsoft MCP connectors available in Copilot Studio:
- Dataverse
- Dynamics 365
- Sales
- Finance
- Supply Chain
- Service
- Fabric
Add tools from an existing MCP connector to an agent
You can connect to existing MCP servers directly from within Copilot Studio. The process to add tools is the same, whether for prebuilt Microsoft MCP connectors or for MCP connectors you create yourself.
To add an existing MCP connector to an agent, follow these steps:
Select Agents in the left navigation.
Select your agent from the list.
Go to the Tools page for your agent.
Select Add a tool.
Select Model Context Protocol. A list of MCP connectors is displayed.
Select the desired MCP connector from the list.
Authorize the connection, entering any information that is needed.
When you're done, select Add to agent or Add and configure to proceed.
The first option simply adds the MCP connector and its tools to the agent, while the second adds the connector and its tools while also giving you an opportunity to configure details for the connector.
The MCP tool is added to your agent under Tools.
View the list of tools that come with the MCP connector
To view the list of tools that come with the MCP server added to the agent:
Go to the Tools tab for your agent.
Select the MCP connector from the list of tools.
A setings page for the MCP connector appears.
Go to the Tools section to see a list of the tools supported by the MCP server.
Known Issues & Planned Improvements
The following are identified issues the product team is aware of and working on:
Issues | Resolution/Workaround |
---|---|
Currently, the endpoint returned in the Open SSE connection call must be a full URI. | Not applicable |