Microsoft Copilot Studio is Microsoft’s platform to build, extend, and publish AI agents. It can connect agents to external MCP servers and use their tools. 🧩

MCP features supported: Tools, Resources

📖 For general Copilot Studio MCP docs, see the official guide to adding an MCP server to your agent.

Before you start

Copilot Studio uses a manual OAuth configuration instead of automatic client registration, so the setup has a few more steps than the other clients. It should be carried out by someone from your IT team.

You will need:

  • A configured and working Copilot Studio agent (this guide only covers adding the connector to it) and a Wonderboard account to log in with.
  • The client secret, authorization URL, and token URL provided by Wonderflow. In the steps below they appear as placeholders such as <CLIENT_SECRET>.
  • Python 3, to install Microsoft’s paconn CLI.

The MCP Connector is a paid feature. Once it is enabled for your account, Wonderflow shares the parameters above.

Setup

1

🧰 Add the MCP tool

In your agent, click + next to Tools → + Add (top-right of the Add a tool dialog) → Model Context Protocol, and fill in the form:

  • Server name: Wonderflow Catalog
  • Server description: Query your Wonderflow catalog: topics, feedback analytics, prices, votes, products, and reviews. (a clear description helps your agent decide when to use the tools)
  • Server URL: https://catalog-mcp.wonderflow.ai/mcp
  • Authentication: OAuth 2.0
  • Configuration type: Manual (not Dynamic or Dynamic discovery)
  • Client ID: lyLq7SwG6IcGDc9zY52xqTyRcLkUKIo8
  • Client secret: <CLIENT_SECRET> (provided by Wonderflow)
  • Authorization URL: <AUTHORIZATION_URL> (provided by Wonderflow)
  • Token URL: <TOKEN_URL> (provided by Wonderflow)
  • Refresh URL: <TOKEN_URL> (the same value as the token URL)
  • Scopes (optional): leave empty

Do not add ?audience= to the Authorization URL. It breaks the request with “Missing required parameter: client_id”. The audience is added in step 3.

2

📨 Send us the Redirect URL

Click Create. Copilot Studio shows a Redirect URL like https://global.consent.azure-apim.net/redirect/<connector-id>.

Copy it and send it to dev@wonderflow.ai. We add it to the allowed callback URLs of our authentication application.

Do not create the connection yet. It fails until step 3 is done and until we confirm that your Redirect URL has been added on our side. Every connector instance gets its own Redirect URL, so this step is required for every new setup.

3

🛠️ Add the audience with paconn

Install the CLI, log in with the same account you use for Copilot Studio (device code at microsoft.com/devicelogin), and download the connector created in step 1. When asked, choose your agent’s environment and the Wonderflow Catalog connector:

pip3 install paconn
paconn login
mkdir ~/wf-connector
cd ~/wf-connector
paconn download

On Windows, use pip instead of pip3 if pip3 is not recognized.

This creates a folder shared_<connector-id> with the files apiDefinition.swagger.json, apiProperties.json, and settings.json.

Replace the content of apiProperties.json with the following. Replace <REDIRECT_URL> with the redirectUrl value found in the downloaded file (the same URL from step 2), and <AUTHORIZATION_URL> and <TOKEN_URL> with the values provided by Wonderflow:

{
  "properties": {
    "connectionParameters": {
      "token": {
        "type": "oauthSetting",
        "oAuthSettings": {
          "identityProvider": "oauth2generic",
          "clientId": "lyLq7SwG6IcGDc9zY52xqTyRcLkUKIo8",
          "scopes": ["openid", "profile", "email", "offline_access"],
          "redirectMode": "GlobalPerConnector",
          "redirectUrl": "<REDIRECT_URL>",
          "properties": {
            "IsFirstParty": "False",
            "IsOnbehalfofLoginSupported": false
          },
          "customParameters": {
            "authorizationUrlTemplate": {
              "value": "<AUTHORIZATION_URL>"
            },
            "authorizationUrlQueryStringTemplate": {
              "value": "?audience=https%3A%2F%2Fcatalog-mcp.wonderflow.ai%2Fmcp&client_id={ClientId}&response_type=code&redirect_uri={RedirectUrl}&scope={Scopes}&state={State}&code_challenge={CodeChallenge}&code_challenge_method=S256"
            },
            "tokenUrlTemplate": {
              "value": "<TOKEN_URL>"
            },
            "tokenBodyTemplate": {
              "value": "grant_type=authorization_code&client_id={ClientId}&code={Code}&redirect_uri={RedirectUrl}&code_verifier={CodeVerifier}"
            },
            "refreshUrlTemplate": {
              "value": "<TOKEN_URL>"
            },
            "refreshBodyTemplate": {
              "value": "grant_type=refresh_token&client_id={ClientId}&refresh_token={RefreshToken}"
            }
          }
        },
        "uiDefinition": {
          "displayName": "OAuth Connection",
          "description": "OAuth Connection",
          "constraints": {
            "required": "true",
            "hidden": false
          }
        }
      }
    },
    "iconBrandColor": "#007ee5",
    "capabilities": ["actions"],
    "policyTemplateInstances": []
  }
}

Then upload the change from inside the connector folder. It should answer <connector> updated successfully.

cd shared_<connector-id>
paconn update -s settings.json
4

🔑 Connect and authenticate

Once step 3 is done and we have confirmed your Redirect URL, refresh Copilot Studio and open your agent.

On the Wonderflow Catalog tool choose Create new connection → Create, and log in with your Wonderboard credentials. Then click Add to agent. ✅

5

🧪 Test it works

Open a chat with your agent and ask: “Which categories are configured in my Wonderflow catalog?”

The agent should call the Wonderflow tools and return data from your catalog. 🎉

Troubleshooting

ErrorCause and fix
The userinfo audience is not allowed for this clientStep 3 was not completed, or Dynamic / Dynamic discovery was selected instead of Manual (the client_id in the error URL starts with tpc_).
Missing required parameter: client_idQuery parameters were added to the Authorization URL in the form. Remove them and use step 3 instead.
Callback URL mismatchThe Redirect URL from step 2 has not been added on our side yet. Send it to dev@wonderflow.ai and wait for our confirmation.