Microsoft 365 Copilot doesn't accept a custom MCP server directly. Instead, you add OneIQ as a tool in a Copilot Studio agent, then publish that agent to Microsoft 365 Copilot.
Before you start
A Copilot Studio licence (or an active trial) and maker permissions in your Power Platform environment
A Microsoft 365 Copilot licence, if you want the agent to appear in Copilot chat
Log into copilotstudio.microsoft.com
Create an agent and add the OneIQ MCP server as a tool
Once logged in, click on the ellipsis next to your avatar and switch to the classic experience.
On the Home screen, under Start building from scratch, click Agent.
Enter a name for the agent (e.g. OneIQ) and click Create. Before continuing, wait for the message Your agent has been provisioned to appear.
Once your agent has been provisioned, click Edit and enter a Description for your agent, such as the following below, then click Save:
Ask Copilot about your VMs, hosts, storage, cloud costs and sizing, answered live from your OneIQ data
Click the Tools tab, then + Add a tool, then select Model Context Protocol
Enter a Server name (e.g. "OneIQ") and a short Server description (e.g. This is the OneIQ Model Context Protocol Server)
Enter https://mcp.oneiq.com as the Server URL.
Set Authentication to OAuth 2.0, then choose Dynamic discovery.
Click Create (this can take a few minutes).
On the Add tool dialog, open the drop-down next to Connection and select Create a new connection.
Enter a Display name for the connection, then click Create.
Creating the connection redirects you to OneIQ to log in and authorize access, the same flow as Claude and ChatGPT (see What happens next (all plans)). Click Allow to finish connecting, and keep Maintain access to your account so it can continue working even when you're not using it checked if desired.
Then click Add and configure. You should now be back under the Tools tab.
Under Details, expand Additional details and make sure Credentials to use is set to End user credentials.
Recommended: Configure the agent so it only uses OneIQ and what the user provides in the chat:
Click Settings at the top right of the agent page (next to Publish), then select Generative AI in the left-hand menu. Make the following changes, then click Save:
Use information from the Web (under Knowledge): turn off.
Allow ungrounded responses (under Knowledge): leave on. Turning it off stops the agent from using anything the user pastes or attaches in the chat.
File uploads (under File processing capabilities): leave on, so users can attach files such as trip reports or sales history.
Tenant graph grounding with semantic search (under Search): turn off, if your environment has it.
When Changes saved appears, click the X at the top right of the page to close Settings and return to the agent page.
On the Overview tab, don't add any knowledge sources (SharePoint, OneDrive, Teams or email), and check that Web Search shows Disabled.
Note: The instructions in the next step tell the agent to use only OneIQ and what the user provides in the chat. If the agent can still reach the user's mailbox or files, the instructions alone won't fully stop it from using them. These settings are what actually remove that access.
On the Overview tab, click Edit in the Instructions section, enter the following, and then click Save:
ROLE
You are the OneIQ assistant. You answer infrastructure questions — customer
estates, VMs, hosts, clusters, storage, utilization, sizing, cloud instances,
pricing and FX — using the OneIQ connector attached to this agent.
SOURCES, IN ORDER OF AUTHORITY
1. OneIQ connector. The only source for infrastructure facts: counts, names,
specs, utilization, prices, rates, recommendations. If OneIQ can't answer,
say so. Never fill the gap from memory or another source.
2. Context the user gives you in this conversation: text they paste, or a file
they attach or explicitly name. Examples: a trip report, sales history,
meeting notes, customer goals. Use it to decide what to ask OneIQ and how to
frame results (priorities, timelines, who the stakeholders are).
It never supplies infrastructure numbers. If it states one (e.g. "they run
~400 VMs"), treat it as a claim to check against OneIQ. If the two
disagree, show both and say where each came from.
3. Nothing else. Do not search email, Teams, SharePoint, OneDrive, calendar or
the web on your own initiative, even if something there looks relevant. If
another document would help, ask the user to provide it.
You may explain general terms (what a vCPU or a datastore is), but never use
general knowledge to supply a number, price, spec or estate fact.
WORKING WITH ONEIQ
- Start with list_datasources. Refer to an estate only by the Name it returns,
or a name the user gives. If several exist and the user hasn't said which,
ask.
- Call get_datasource_summary before query_datasource.
- Customer's estate → query_datasource. Reference facts → find_processor,
find_cloud_instance, recommend_cloud_instance, get_instance_price,
get_exchange_rate. Never present reference data as the customer's estate.
- One clearly scoped question per call. Name the statistic, time window and
unit. Check that the returned SQL and window match what you asked.
- If OneIQ refuses, read what the refusal says is queryable and rephrase once.
IDENTIFYING THE DATASOURCE
Users can point you to an estate three ways:
- By name: "the Contoso assessment"
- By GUID: 3f8a2c1e-7b4d-4e9a-a1c6-5d2e8f0b9c47
- By pasting the portal URL that contains it:
https://my.oneiq.com/admin/environments/3f8a2c1e-7b4d-4e9a-a1c6-5d2e8f0b9c47
(pull the GUID out of the URL yourself; don't ask them to)
Whichever they give, confirm it against list_datasources and use the Name it
returns.
Don't explain this up front. Explain it only when:
- a name matches nothing or matches more than one estate, or
- the user asks how to pick an estate.
Then say, briefly: "You can also paste the estate's URL from the OneIQ portal,
or just the long ID at the end of it (it looks like
3f8a2c1e-7b4d-4e9a-a1c6-5d2e8f0b9c47). That pins it exactly."
If several names match, list them with their names and ask which one.
ATTRIBUTION
When an answer mixes sources, keep them visibly separate: estate figures come
from OneIQ; background comes from the document the user provided (name it).
Never blend a user-supplied number into a OneIQ figure.
PROBLEM REPORTING
Follow the report_problem tool's own rules for when to file. In addition:
- File silently. Don't mention it unless the user asks, and keep helping with
what the data does hold.
- In "response", include the complete generated SQL exactly as returned —
never abridged — followed by a summary of the rows.
- "question" and each attempt's question must be verbatim as sent.
- "expected" must say how you know. If the evidence is the user's document,
write e.g. "user-provided notes state ~400 VMs". Do not paste the document's
contents, customer names from it, sales figures or any other user-provided
context into a report.
- Don't file for refusals that told you what to fix and then worked.
STYLE
Concise and professional. Lead with the answer. Ask a clarifying question only
when OneIQ needs a missing input (which datasource, a time window). If OneIQ
errors or returns nothing, say what happened and what to try next. For access
or actions OneIQ doesn't expose, direct users to OneIQ Support.
EXAMPLES
- User pastes a trip report and asks "what should we pitch them?" → Pull the
customer's priorities from the report, query OneIQ for the matching estate
facts, and present the facts as OneIQ's and the priorities as the report's.
- User asks "what's in their CRM history?" with nothing attached → Ask them to
paste or attach it. Don't go looking.
- Report says 400 VMs; OneIQ returns 312 → Show both, attribute each, and
suggest the report may predate the collection or count a different scope.
Optionally, under Suggested prompts on the Overview tab, add one or more starter prompts. Each one needs a Title (the button label, up to 30 characters) and a Prompt (the message sent when the user clicks it). For example:
Title: List my estates
Prompt: Which OneIQ estates can I access?Title: Summarize an estate
Prompt: Give me a summary of the VMs, hosts, clusters and storage in my OneIQ estate.Title: Cloud sizing
Prompt: Recommend cloud instance sizes for the VMs in my OneIQ estate.
Then click Save.
Publish to Microsoft 365 Copilot
Click on Publish in the top right corner. In the Publish this agent window, make sure Force newest version is checked and click Publish. (This could take a few minutes to complete)
Click the Channels tab, then under Microsoft channels, click Microsoft 365 and Teams.
Under Turn on Microsoft 365, make sure Make agent available in Microsoft 365 Copilot is checked.
Click Add channel.
Optionally, change the name shown under the agent in Microsoft 365 Copilot (Created by Your developer name). In the same Microsoft 365 and Teams channel panel, click Edit details, expand More, enter your organization's name in Developer name, and click Save.
Next under Agent preview, you should now be able to click on See agent in Microsoft 365. This launches Microsoft 365 Copilot in the browser.
The agent window in Microsoft 365 Copilot should now appear. Click Add to add your new agent to Microsoft 365 Copilot.
Go back to the copilotstudio.com browser window with your agent and click Publish in the top right corner. In the Publish this agent window, make sure Force newest version is checked and click Publish. (This could take a few minutes to complete)
Switch back to the Microsoft 365 Copilot browser window and click the List my estates suggested prompt. If you didn't add suggested prompts, ask: Which OneIQ estates can I access?
At this point you may see the message "Let's get you connected first, and then I can find that info for you. Open connection manager to verify your credentials. Once the connection is ready, retry your request."
Note: Do not click Retry yet.
Click Open connection manager to go to the Manage your connections window. Click Connect, then click Submit.
Go back to the Microsoft 365 Copilot browser window and now click on Retry (a browser refresh may be required). Microsoft 365 Copilot should now list the OneIQ estates you can access.
Note: If Retry doesn't work, click New chat and run the List my estates suggested prompt again (or ask: Which OneIQ estates can I access?). The connection you made in step 9 carries over to the new chat.
Now that the OneIQ agent has been created you can also pin it within M365 Copilot. To pin the newly created agent, hover on Agents and click on > and enter OneIQ in the search box. The OneIQ agent should now be listed - click on the pin icon to pin the agent in Copilot.
The OneIQ agent should now be pinned to copilot and can be used to start a new chat session
Share the agent with your organization (optional)
Following the steps above makes the agent available only to you. To let others use it, go to the Channels tab, click Microsoft 365 and Teams, then click Availability options under Agent preview. Under Show in the store, choose who can see the agent:
Show to my teammates and shared users: the agent appears under Built with Power Platform for the people and groups you share it with (use Manage sharing to add them). No admin approval is needed.
Show to everyone in my org: the agent is sent to your Microsoft 365 administrator for approval. Once approved, it appears under Built by your org for everyone.
You can also click Copy link under Get a link and send it to the people you've shared the agent with, so they can open it directly in Microsoft Teams.
Each person who uses the agent:
signs in to OneIQ with their own account the first time they use it (as in steps 9–10 above)
only sees the OneIQ estates their own account has access to
needs a Microsoft 365 Copilot licence to use it in Copilot chat
Troubleshooting
The OneIQ tool was added, but Copilot never uses it
Copilot Studio agents only call a tool when the request clearly matches it. Try naming OneIQ explicitly in your prompt, and check that the Server description you entered explains what OneIQ does.
The connection fails or the tool returns an error
MCP servers in Copilot Studio run through Power Platform custom connectors, so your organization's data loss prevention policies apply. Ask your Power Platform administrator to confirm the OneIQ connector isn't in a blocked group in the Power Platform admin center.











