> ## Documentation Index
> Fetch the complete documentation index at: https://docs.variable.global/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Copilot Studio

> Use Variable from Microsoft 365 Copilot and Teams through a Copilot Studio agent.

Microsoft 365 Copilot doesn't connect to MCP servers directly. Instead, you build an **agent** in [Copilot Studio](https://copilotstudio.microsoft.com) — Microsoft's tool for making custom Copilot assistants — give it Variable as a tool, and publish it to Microsoft 365 Copilot and Teams. Your team then talks to Variable through that agent.

## Before you start

* **MCP is enabled for your Variable account.** Check the **MCP URL** row in [Company settings](https://app.variable.global/company). If it shows **Not enabled**, [email us](mailto:hello@variable.co?subject=MCP%20Access).
* **You can create agents in Copilot Studio.** You need a Copilot Studio license and access to an environment. Your organization's data policies must also allow custom connectors — Copilot Studio runs MCP servers through Power Platform connectors, so a policy that blocks them blocks Variable too.
* **Someone can approve Teams apps** if you want to share the agent beyond yourself. Making an agent available to your organization needs a Microsoft 365 admin's approval.

## Set up the agent

**1. Create an agent**

In [Copilot Studio](https://copilotstudio.microsoft.com), create a new agent. Give it a name and instructions that say what it's for — for example, *"Answer questions about our product carbon footprints using Variable."* See Microsoft's [quickstart](https://learn.microsoft.com/en-us/microsoft-copilot-studio/fundamentals-get-started) for the basics.

**2. Add Variable as an MCP tool**

Open the agent's **Tools** page, select **Add a tool** -> **New tool** -> **Model Context Protocol**, and fill in:

| Field | Value |
| - | - |
| **Server name** | `Variable` |
| **Server description** | `Product carbon footprints, LCA models, materials, datasets, suppliers, activities, and transport from Variable.` |
| **Server URL** | `https://app.variable.global/mcp` |
| **Authentication** | **OAuth 2.0** |
| **Type** | **Dynamic discovery** |

The agent reads the description to decide when to call Variable, so keep it specific. Select **Create**, then **Next**.

**3. Connect your Variable account**

In the **Add tool** dialog, select **Create a new connection**. A Variable sign-in window opens: sign in, pick the account to connect, and select **Allow**. Then select **Add to agent**.

**4. Test it**

In the agent's test pane, ask *"list my Variable accounts"*. The agent should reply with the accounts you belong to and which one is active.

**5. Publish to Microsoft 365 Copilot and Teams**

Select **Publish**. Then go to **Channels**, open **Teams and Microsoft Copilot**, keep **Make agent available in Microsoft Copilot** selected, and select **Add channel**. **See agent in Teams** installs it for you; **Availability options** shares it with colleagues or submits it for admin approval. Microsoft's [Teams and Microsoft Copilot channel guide](https://learn.microsoft.com/en-us/microsoft-copilot-studio/publication-add-bot-to-microsoft-teams) covers the sharing options.

## Why "Dynamic discovery"

Copilot Studio offers three OAuth 2.0 types. Variable needs **Dynamic discovery**:

* **Dynamic discovery** — Copilot Studio reads Variable's OAuth metadata, registers itself as a client, and finds the sign-in and token endpoints on its own. This is called *dynamic client registration* (DCR), and it's how every Variable MCP client connects.
* **Dynamic** and **Manual** — both ask you to type in endpoints, and **Manual** also asks for a client ID and secret. Variable doesn't issue client secrets, so leave these alone.

> [!NOTE]
>
> Microsoft has a separate page on dynamic client registration for Microsoft 365 *declarative agents and plugins*, built with the Agents Toolkit. You don't need it for a Copilot Studio agent — selecting **Dynamic discovery** is the whole setup.

## How sign-in works for your team

Each person signs in to Variable with their own account the first time the agent calls a Variable tool for them. Copilot shows a sign-in card; after **Allow**, the agent acts with that person's permissions, in the account they picked. Someone who isn't a member of your Variable account can't read its data through the agent.

To work in a different account, ask the agent — e.g. *"switch my Variable account to ACME Furniture"*. The choice is remembered for that person in this agent.

## Troubleshooting

| Symptom | Likely cause |
| - | - |
| `MCP access is not enabled for this account…` on every tool call | MCP is off for the active Variable account. Ask the agent to list your Variable accounts to find one where it's on, or [email us](mailto:hello@variable.co?subject=MCP%20Access). |
| Sign-in fails or Copilot Studio can't create the connection | Check the authentication type is **OAuth 2.0** with **Dynamic discovery**, and the server URL is exactly `https://app.variable.global/mcp`. |
| The tool is blocked or greyed out | A Power Platform data policy is blocking custom connectors. Ask your Power Platform admin. |
| Colleagues can install the agent but can't chat with it | The agent isn't shared with them. Share it from Copilot Studio, or submit it for admin approval. |
| The agent answers without using Variable | Make the **Server description** and the agent's instructions name the things you ask about — products, footprints, materials. |

For anything else, see the general [troubleshooting table](https://docs.variable.global/mcp/configuration#troubleshooting).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.