Overview
This help article will show you how to utilize iTwin IoT's MCP server with Microsoft Copilot.
As of today, we do not recommend the Federated connector offered by Microsoft; that connector only offers read-only tools.
The best way to set up the MCP server connection for Microsoft Copilot is via a Custom Connector.
For reference, please read through Microsoft's documentation on configuring MCP Connect clients: https://learn.microsoft.com/en-us/power-pages/configure/mcp-connect-clients
Bentley IMS doesn't support OAuth 2.0 Dynamic Client Registration (DCR), so Copilot Studio's Dynamic discovery / Dynamic OAuth options don't work with our MCP server. Use Manual OAuth 2.0 instead — each client self-registers their own confidential IMS client, no shared secret needed.
Creating/editing an agent in Copilot Studio requires a Copilot Studio license (or consumed Copilot Studio credits/capacity) for the user or tenant. Once the agent is set up with the MCP tool, it must be published before it's actually usable (e.g. surfaced in Microsoft 365 Copilot / Teams / a shared channel) — testing it in the Copilot Studio authoring canvas alone isn't enough for end users to reach it.
So the flow is always:
- create (or open) an agent first
- add the MCP server as a tool to that agent
- If you don't already have an agent, you must create one (even an empty/minimal one) before you can do the MCP setup below.
- Register a Web Application type client at developer.bentley.com (or IMS Wizard /wizard/api).
- Redirect URI: https://global.consent.azure-apim.net/redirect (fixed Power Platform / Copilot Studio callback — same for every registration, known upfront, no need to come back and update it after creating the tool).
- Scopes: itwin-platform — the only scope offered for Web Application registration on developer.bentley.com.
- Copy the new Client ID + Client secret and save it for setting up Microsoft Copilot
- Send us the Client ID, then we request the IMS team to adjust the scopes (to itwiniot-ai:mcp) for you.
In an existing (or newly created) Copilot Studio agent: Tools → Add a tool → New tool → Model Context Protocol, then OAuth 2.0 → Manual:
| Field | Value |
|---|---|
| Server URL | https://itwiniotai-mcp.bentley.com/mcp |
| Authorization URL | https://ims.bentley.com/connect/authorize |
| Token URL template | https://ims.bentley.com/connect/token |
| Refresh URL | Same as Token URL |
| Client ID / Client secret | from step 1.4 above |
| Scopes | itwiniot-ai:mcp offline_access itwiniot-ai:mcp-tool-search |
Coming soon.
sub claim), the tool name, the duration of the call, and the outcome (success/error code). We do not log the contents of conversation messages or the raw parameter values you pass to tools. The data is kept for only 30 days and is used solely for monitoring, troubleshooting, and abuse prevention.To protect the iTwin IoT backend, the connector applies per-user sliding-window rate limits:
delete_*, cancel_*, mutating ML-job operations).When you hit the limit, the connector returns a structured rate_limited error and the agent will wait and retry, or surface the limit to you to decide.