> For the complete documentation index, see [llms.txt](https://www.cakewalk.security/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.cakewalk.security/docs/ai-agent-access/connections-and-integrations/agent-platforms/microsoft-365-copilot.md).

# Microsoft 365 Copilot

Make Cakewalk available inside Microsoft 365 Copilot by building a Copilot Studio agent on Cakewalk's MCP Gateway and publishing it to your company.

Microsoft 365 Copilot does not connect to a remote MCP server on its own. To bring Cakewalk into Microsoft 365 Copilot for your employees, you build a small agent in Copilot Studio on Cakewalk's MCP Gateway and publish that agent to the Microsoft 365 Copilot and Microsoft Teams channels. Copilot Studio is only the build tool here. The product your employees use is Microsoft 365 Copilot.

Each employee signs in to Cakewalk with their own account the first time they use the agent, so every tool call runs with that person's own access. Cakewalk's gateway supports OAuth 2.0 Dynamic discovery, which registers Copilot Studio automatically through Dynamic Client Registration. There is no Client ID or Client Secret to paste.

{% hint style="info" %}
If you only want to add Cakewalk to an agent you build and use inside Copilot Studio, without publishing it to Microsoft 365 Copilot, follow [Microsoft Copilot Studio](https://github.com/this-thing-about-cakes/agent-access-docs/blob/main/connections-and-integrations/agent-platforms/microsoft-copilot-studio.md) instead.
{% endhint %}

## Requirements

* A Copilot Studio license, with permission to create tools and agents in your Power Platform environment.
* A Microsoft 365 Copilot license, required to make the agent available to employees inside Microsoft 365 Copilot.
* A Power Platform environment where MCP connections are not blocked by a data policy.

## Install Method

Custom form in Copilot Studio, published to the Microsoft 365 Copilot and Microsoft Teams channels. Each employee creates their own connection and signs in to Cakewalk through the OAuth consent flow when they first use the agent.

{% hint style="info" %}
If you see a **New Copilot Studio experience** banner with a **Try now** button, stay on the current experience for now. The newer experience is still being completed and may hide the **Tools** and **New tool** options this guide uses. If those options are missing, switch to the previous Copilot Studio experience when the system offers the legacy option, then continue.
{% endhint %}

## Step 1: Create the Cakewalk MCP tool

1. Go to [Copilot Studio](https://copilotstudio.microsoft.com/).
2. Open **Tools** and select **+ New tool**.
3. Select **Model Context Protocol**.
4. Fill in the fields:
   * **Server name:** Cakewalk MCP
   * **Server description** (minimum 30 characters):

     ```
     MCP Gateway to access to all the tools accepted by your company
     ```
   * **Server URL:**

     ```
     https://mcp-gateway.getcakewalk.io/mcp/meta
     ```
   * **Authentication:** OAuth 2.0
   * **Type:** Dynamic discovery
5. Select **Create**.

Copilot Studio warns that the MCP server must support OAuth 2.0 Dynamic Client Registration and expose a valid `registration_endpoint`. Cakewalk's gateway supports this, so you can proceed on Dynamic discovery. Do not use Manual, which needs a Client ID and Client Secret that Cakewalk does not issue on a self serve basis today.

## Step 2: Create an agent

1. Go to **Agents**.
2. Select **+ Create blank agent** (top right).
3. In **Name your agent**, enter a name, for example Cakewalk MCP Agent, and select **Create**. You do not need to open Agent settings yet.

## Step 3: Add the agent instructions

Open the agent's **Instructions** and paste the following, then select **Save**:

```
You are an internal company agent that helps employees use third party apps through the Cakewalk MCP Gateway.

Use Cakewalk tools only when they are relevant to the user's request.

For each message received from the user, generate a unique UUID and a short summary of the user's request. Pass them to the __cwPromptId and __cwPromptDescription parameters on the Cakewalk MCP Gateway tools.

Never claim that an action succeeded unless the Cakewalk tool result confirms it.

If a tool is unavailable, tell the user they may not have permission or the tool may not be enabled for them.
```

{% hint style="info" %}
`__cwPromptId` and `__cwPromptDescription` are two parameters the Cakewalk gateway adds to every tool. They let Cakewalk group all of an agent's tool calls back to the single employee request that triggered them in its audit log. The gateway strips both values before forwarding the call, so no prompt text reaches the third party app. The instructions above remind Microsoft 365 Copilot's model to fill them in.
{% endhint %}

## Step 4: Add the Cakewalk tool to the agent

1. Open the agent's **Tools** tab.
2. Select **+ Add a tool**.
3. Select **Model Context Protocol**, then search for the name you gave the tool (Cakewalk MCP) and select it.
4. Select **Not connected**, then **Create new connection**, then **Create**.
5. Sign in with your Cakewalk account to authorize the connection.
6. Select **Add**.

{% hint style="info" %}
This connection is only to verify the agent works for you. It is not shared with other employees. Each person who uses the published agent creates their own connection and signs in to Cakewalk with their own account, so every tool call runs with that person's own access.
{% endhint %}

## Step 5: Add the Microsoft channels

1. Open the **Channels** tab.
2. Select **Microsoft 365 and Microsoft Teams**.
3. In the panel, confirm **Make agent available in Microsoft 365 Copilot** is checked.
4. Select **Add channel**.

## Step 6: Share the agent with your company

1. Select the three dots button next to **Settings** and **Share**.
2. Select **Everyone in organization** and **End user access**.

At this point the agent works from inside Copilot Studio.

## Step 7: Publish the agent

1. Select **Publish**.
2. Leave **Force newest version** checked so employees on persistent channels like Microsoft Teams receive the latest version right away.
3. Select **Publish**.

{% hint style="warning" %}
Publishing does not put the agent in front of your employees. Publishing, adding the channel and sharing the agent are three separate things. Sharing grants permission to use the agent. It does not make the agent findable. Steps 8 and 9 are what put it in Microsoft 365 Copilot.
{% endhint %}

## Step 8: Add the agent to your own Microsoft 365 Copilot

Install it for yourself first, so you can test it in the real surface before your company sees it.

1. Open the **Channels** tab and select **Microsoft 365 and Microsoft Teams**.
2. At the bottom of the panel, under **Agent preview**, select **See agent in Microsoft 365**.
3. Select **Add**.

The agent now appears under **Your agents** in Microsoft 365 Copilot. Because the Microsoft 365 checkbox is on, this one action installs it in both Microsoft 365 Copilot and Microsoft Teams.

## Step 9: Submit the agent for admin approval

Employees can only find the agent in the Agent Store after a Microsoft 365 admin approves it.

1. Open the **Channels** tab and select **Microsoft 365 and Microsoft Teams**.
2. Select **Availability options**.
3. Check whether the agent is listed for teammates and shared users. If you see a green **Added to Teams** label, remove that listing first. Leaving it on can list the agent twice.
4. Select **Show to everyone in my org**.
5. Review the submission requirements, select **Submit for admin approval**, then select **Yes**.
6. Select **Refresh** to check the status. It changes to **Approved** once your admin approves it.

Your Microsoft 365 admin then opens the Microsoft 365 admin center, goes to **Agents** > **All agents** > **Requests**, opens the pending request and selects **Publish**. The agent then appears under **Built by your org** in the Microsoft 365 Copilot Agent Store.

{% hint style="info" %}
Only one person can hold a submission at a time. Until your admin approves or rejects it, nobody else can resubmit the same agent. Content changes do not need a new approval, but changes to the agent's name, icon or description do.
{% endhint %}

## Making a Copilot Studio agent visible to users (as of Sep 2026)

An agent is NOT visible to end users after Studio publish + sharing alone. Three stages are required:

1. **Copilot Studio:** Publish the agent (global publish), enable the "Microsoft 365 and Teams" channel, and share the agent with the target users/groups.
2. **Admin approval:** Go to admin.cloud.microsoft → **Agents → Overview** → select the agent → **Publish**. Before this step the agent shows "Waiting for approval" and remains invisible to all users. (Note: this management surface moved — it is no longer only under Settings → Integrated Apps in the M365 Admin Center.)
3. **Propagation:** After admin approval, allow 1–4 hours (officially up to 24 h) until the agent appears for users at m365copilot.com → Agents → "Built by your org" (Teams: Apps → "Built for your org"). Immediate workaround: the Teams deep link from the channel dialog ("Copy link") works instantly for shared users, no propagation needed.

## Verify it works

In the agent's chat, ask a Cakewalk shaped question, for example "Show me my pending access requests in Cakewalk." Confirm the agent calls a Cakewalk tool and returns the expected result.

In Cakewalk, the Microsoft 365 Copilot card on **My Agents** flips to **Connected** after the first call.

## For your employees

After your admin approves the agent, your employees use Cakewalk by chatting with that agent inside Microsoft 365 Copilot. They do not build or connect anything in Copilot themselves. Share these steps with them:

1. In Microsoft 365 Copilot, open the **Agent Store**, find the Cakewalk agent under **Built by your org** and add it. Do not use the normal Copilot chat. Cakewalk works only inside its own agent.
2. Type your request in the agent's chat, for example "Which tools can I use through Cakewalk?"
3. The first time, a login prompt opens. Sign in to Cakewalk to authorize access. After that the agent runs your requests without asking again.
4. Open **My Connections** in Cakewalk and connect the apps you want the agent to use. Every request runs with your own access, so an app you have not connected is not available to the agent.

{% hint style="info" %}
If your request lands in the normal Copilot chat or a built in agent like the analyst or researcher, Cakewalk will not be there. Always open the Cakewalk agent first.
{% endhint %}

## Data policies

Power Platform data policies regulate MCP connections in Copilot Studio. If a data policy restricts the connector category that MCP traffic uses, the connection to Cakewalk is blocked even after the OAuth flow completes. Confirm with your Power Platform admin that MCP connections are allowed in the target environment.

## Troubleshooting

* **The agent does not appear in Microsoft 365 Copilot after publishing:** publishing and sharing are not enough on their own. Add it for yourself with **See agent in Microsoft 365** (Step 8), and submit it through **Availability options** for your employees (Step 9).
* **The agent is approved but still missing from the Agent Store:** Microsoft 365 Copilot and Teams cache the agent list. Refresh the browser, or sign out of the desktop app and back in.
* **Employees can add the agent but cannot chat with it:** the agent's access setting is narrower than everyone in the organization. Open **Share** and confirm the whole organization has **End user access**. An organization group with no permission level assigned produces this exact failure.
* **Tools or New tool do not appear:** you are likely on the newer Microsoft 365 Copilot UI. Switch to the previous Copilot Studio experience (the legacy option) and try again.
* **Dynamic discovery option does not appear:** confirm Copilot Studio is on a release that supports OAuth 2.0 Dynamic Client Registration with discovery. Contact Cakewalk support if you need to fall back to a manual configuration.
* **OAuth flow returns an error:** confirm the user has a Cakewalk account with at least the User role and that their Power Platform environment permits MCP connections.
* **Cakewalk tools do not surface in the agent:** confirm the tool was added on the agent's Tools tab. Reload the agent if the tool list looks stale.
* **The agent says an action succeeded but nothing changed:** the instructions in Step 3 tell the agent never to claim success without a confirming tool result. Confirm the instructions were saved.

## Learn more

* [Connect your agent to an existing MCP server](https://learn.microsoft.com/en-us/microsoft-copilot-studio/mcp-add-existing-server-to-agent) from Microsoft.
* [Connect and configure an agent for Teams and Microsoft 365 Copilot](https://learn.microsoft.com/en-us/microsoft-copilot-studio/publication-add-bot-to-microsoft-teams) from Microsoft, covering availability options and admin approval.
* [Manage requested Copilot Studio agents](https://learn.microsoft.com/en-us/copilot/microsoft-365/agent-essentials/agent-lifecycle/agent-copilot-studio-requested) from Microsoft, for the admin side of the approval.
* [Configure a data policy in the Power Platform admin center](https://learn.microsoft.com/en-us/microsoft-copilot-studio/admin-data-loss-prevention) from Microsoft.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://www.cakewalk.security/docs/ai-agent-access/connections-and-integrations/agent-platforms/microsoft-365-copilot.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
