I’ve been spending some time experimenting with the Dataverse MCP Server in Copilot Studio.
I wanted to see how well an agent could retrieve information from Dataverse, and more importantly, how efficiently it could do it.
What I discovered was pretty interesting. A few changes to the agent’s instructions made a significant difference in both response time and estimated Copilot Credit consumption! π€
π Setting the Stage
For this experiment, I’m using an agent I created called Board Game Nerd.
Board Game Nerd sits on top of board game data stored in Dataverse, similar to the type of information you would find on BoardGameGeek. The idea is pretty simple: ask the agent questions about board games and have it retrieve the information from Dataverse.
I have three tables in Dataverse that I wanted the agent to work with:
- Games: Information about the board games.
- Publishers: Information about the publishers.
- Reviews: Reviews of the board games.
Pretty straightforward. βοΈ
I created the agent in Copilot Studio, added the Dataverse MCP Server as a tool, and provided some basic instructions along with a friendly greeting.
That’s it! No additional information about the tables, columns, or relationships.
I figured the agent would be able to work things out using the Dataverse MCP Server.
Time to give it a try! π οΈ
π§ͺ First Test
I opened the test pane in Copilot Studio and asked the agent:
“Tell me about Heroes of Might and Magic”
The agent was able to retrieve the information from Dataverse and respond to my question. π₯³
So far, so good!
Then I looked at the execution details.
- Response time: Approximately 7 seconds
- Estimated Copilot Credits: A little over 21
Seven seconds! π©
Maybe I’m a little impatient, but that seemed like an eternity for a simple question about a board game!
The estimated credit consumption also caught my attention.

The agent was working, but surely there was a way to make it more efficient?
π€ Let’s Ask Copilot!
Instead of trying a bunch of different settings, I decided to ask Copilot how I could make my agent more efficient.
One of the recommendations was to provide more detailed instructions on how the agent should use the Dataverse MCP Server.
Specifically, it suggested including:
- The Dataverse table names.
- The columns available in each table.
- How the tables are related.
- Guidance on retrieving only the information needed.
- Additional rules to help avoid unnecessary queries.
This got me thinking. π€
I had given the agent access to Dataverse, but I hadn’t really told it anything about the data it was working with.
The Dataverse MCP Server provides tools for discovering tables and retrieving data, but the agent still needs to decide which tools to use and what information to retrieve.
Maybe providing a little more direction would help!
I updated the agent’s instructions with the table and column information, along with the additional rules Copilot recommended.

Here are the instructions I added to the agent.
No changes to the tables or the MCP Server configuration.
Time to run the test again! π οΈ
π Second Test
I went back to the test pane and asked the exact same question.
“Tell me about Heroes of Might and Magic”
This time, the results were a little different! π₯³
- Response time: Approximately 3 seconds
- Estimated Copilot Credits: A little over 11
Wait, what?
I went from approximately 7 seconds to 3 seconds, and the estimated credit consumption dropped from a little over 21 to a little over 11!
All I did was update the instructions!

Here’s a comparison of the two tests.
| Metric | Before | After |
|---|---|---|
| Response Time | ~7 seconds | ~3 seconds |
| Estimated Copilot Credits | 21+ | 11+ |
| Dataverse Table Information | β | β |
| Column and Relationship Information | β | β |
| Additional Query Instructions | β | β |
That’s approximately a 57% reduction in response time, and using the rounded credit values, nearly 48% fewer estimated Copilot Credits.
Not bad for a few additional instructions! π
π€ So, What Changed?
The only configuration change I made was to the agent’s instructions.
Originally, the agent had to figure out which tables and columns were relevant to my question.
By providing that information in the instructions, I gave the agent a better starting point.
My suspicion is that this helped the agent make better decisions about which MCP tools to use, and potentially reduced the amount of discovery needed to answer the question.
One interesting thing to keep in mind is that the Dataverse MCP Server has different tools for discovering metadata and retrieving records. Those tools can also have different Copilot Credit rates.
So, which tools the agent decides to use may have an impact on the overall credit consumption.
For more information, check out Microsoft’s documentation on the Dataverse MCP Server.
π‘ Lessons Learned
The biggest takeaway from this experiment?
Instructions matter!
When adding the Dataverse MCP Server to an agent, don’t assume that giving the agent access to the data is all you need to do.
Spend a little time providing some context about the tables and columns, how the data is related, and how you want the agent to retrieve information.
I’m not suggesting you put your entire Dataverse schema into the instructions. That would probably be a little excessive! π
Just provide the information the agent needs to do its job.
One thing worth mentioning, this was a quick experiment using the same question twice. I would need to run additional tests to see how consistent these improvements are.
With that being said, going from 7 seconds to 3 seconds and reducing the estimated credit consumption by nearly half was enough to get my attention!
Before changing models, adding more tools, or making your agent more complicated, take another look at your instructions.
Sometimes a little more direction is all it takes.
Mission accomplished! π₯³
Discover more from Matt Ruma
Subscribe to get the latest posts sent to your email.