Getting Started

How to Connect Microsoft Copilot to QuickBooks Online

Published on August 17, 2026Updated September 4, 2026

Connect QuickBooks Online to a Copilot Studio agent through MCP, verify the company with a read-only report, and then publish the agent to Microsoft 365 Copilot or Teams.

The supported route is to build an agent in Microsoft Copilot Studio, add DeepLedger's hosted MCP server as a tool, and test it against a QuickBooks demo or other non-production company you control. You can then publish that agent to Microsoft 365 Copilot or Teams.

This distinction matters because Microsoft uses the Copilot name for several products:

ProductQuickBooks route in this guide
Copilot StudioAdd the DeepLedger MCP server to an agent
Microsoft 365 CopilotUse the published Copilot Studio agent
Microsoft TeamsUse the same published agent through the Teams channel
GitHub Copilot in VS CodeAdd DeepLedger separately as a remote MCP server

The setup below follows Microsoft's current Copilot Studio MCP wizard. It uses DeepLedger's public Streamable HTTP endpoint, so you do not need to create an Intuit developer app or run a local server.

Before You Connect

You need:

  1. A DeepLedger account with the intended QuickBooks Online company connected.
  2. Access to a Copilot Studio environment where you can create or edit an agent.
  3. A personal DeepLedger API key. DeepLedger firm owners and admins can open Settings > API Access, select Create API Key, choose an expiration, and copy their own key when it appears. The full value is shown once.

The API key is the most important boundary to understand. It acts as the person who created it and can reach every DeepLedger company that person can access. The active company can also be changed by that person's other AI clients. The key is not limited to the company visible in the portal when it was created, and it is not read-only.

Copilot Studio can run a tool with either the end user's connection or the agent maker's connection. Use End user credentials before you share this agent. Each user then supplies their own DeepLedger key and the call runs with that person's company access. This does not mint keys or expand permissions: only a DeepLedger firm owner or admin can create a personal key today. Maker-provided credentials reuse the maker's key for everyone, which can expose the maker's companies and write capabilities to other agent users.

Connect Copilot Studio to QuickBooks

  1. Open your agent in Copilot Studio.

  2. Go to Tools, select Add a tool, then New tool, then Model Context Protocol.

  3. Enter a clear name and description. For example, describe the server as a way to read QuickBooks company details and financial reports through DeepLedger.

  4. For Server URL, enter:

    https://mcp.deepledger.ai/mcp
    
  5. For authentication, choose API key, then Header. Use Authorization as the header name.

  6. Select Create. On the Add tool screen, create a new connection for the server. When the connection asks for the key value, enter Bearer followed by the complete DeepLedger key. Do not paste that value into the agent description, instructions, or a shared document.

  7. Add the MCP server to the agent.

  8. Open the tool's configuration. Under Details > Additional details > Credentials to use, choose End user credentials before sharing the agent. Keep Maker-provided credentials only for a private test where everyone allowed to use the agent is also allowed to use the maker's full DeepLedger access.

Microsoft's tool authentication guide explains the difference: end-user authentication uses each person's connection, while agent-author authentication supplies one set of credentials on the user's behalf. Microsoft also documents OAuth options for MCP servers, but the API key route is the direct Copilot Studio setup described here. GitHub Copilot in VS Code can use DeepLedger's browser-based OAuth flow instead, as shown later.

Verify the Company Before Any Write

Do not make the first test a categorization or journal entry. Start by proving which company the connection can see.

Ask the agent:

Use only the company-profile tool. List the QuickBooks companies available to this connection. Do not change or record anything.

If the intended demo company is not active, ask it to switch by the exact organization ID returned in the list. Then ask:

Read the active company profile. Tell me the QuickBooks company name, home currency, and default report basis. Do not use any write-capable tool.

Finally, run a fixed report that you can compare in QuickBooks:

Run an Accrual Profit and Loss for 2026-08-01 through 2026-08-31. Name the company, dates, and accounting method in the answer. Tell me the number of rows returned and the total rows so I can see whether paging is required. Do not record or change anything.

Open the same report in QuickBooks and compare the company, date range, accounting method, and totals. A fluent answer is not evidence that the agent used the right books.

These prompts reduce the chance of a wrong-company first action, but they do not turn the key into a read-only credential. Agent instructions and tool-selection preferences are behavior controls, not server-side permission scopes.

Publish to Microsoft 365 Copilot and Teams

After the demo checks pass:

  1. Publish the agent in Copilot Studio.
  2. Open Channels and select Teams and Microsoft 365 Copilot.
  3. If you want both destinations, keep Make agent available in Microsoft 365 Copilot selected, then add the channel.
  4. Install the agent for yourself and repeat the company and report checks in the published surface.
  5. Use the availability options to share only with the people who should use the connection.

Microsoft's current Teams and Microsoft 365 publishing guide notes that tenant policies can prevent installation and that broader organizational distribution can require administrator approval. Publish content changes before expecting users to receive them; people already in a conversation might need to start a new conversation to see fresh content.

User-authenticated tools have another Teams requirement. Microsoft's current Teams single sign-on guide says to configure Microsoft Entra ID SSO and republish the agent. That SSO path currently works in a person's one-to-one chat with the agent, not in Teams group chats or channel messages. Test the published agent as a non-maker user before rollout.

With End user credentials, each eligible person creates a connection with their own DeepLedger key. Their key acts as them and reaches only the companies they can access. People who are not DeepLedger firm owners or admins cannot mint a personal key today, so this setup is not a shortcut around DeepLedger roles. With Maker-provided credentials, everyone uses the maker's key instead. Do not share a maker-authenticated QuickBooks agent unless every recipient should have that same company access and ability to call its write-capable tools.

Use GitHub Copilot in VS Code Instead

GitHub Copilot in Visual Studio Code is a separate MCP client. Add this to a workspace .vscode/mcp.json or to your user MCP configuration:

{
  "servers": {
    "deepledger": {
      "type": "http",
      "url": "https://mcp.deepledger.ai/mcp"
    }
  }
}

Start the server from the MCP configuration or run MCP: Add Server from the Command Palette. VS Code supports remote HTTP servers and OAuth authorization, so the first connection can open a browser for DeepLedger sign-in. Microsoft's current VS Code MCP guide also warns against hardcoding API keys in configuration files.

Run the same company-profile and fixed-report checks before asking GitHub Copilot to do anything write-capable.

Troubleshoot the Connection

The connection returns 401 or unauthorized

Check that the connection secret contains the word Bearer, one space, and the full key. Confirm that the key has not expired or been revoked in Settings > API Access. If the key was exposed, revoke it and create a replacement rather than reusing it.

The server was created, but the agent has no QuickBooks tools

Return to the agent's Tools page. Confirm that you completed both parts of Microsoft's flow: create or select a connection, then add the MCP server to the agent. Also confirm the server URL ends in /mcp.

Other users are asked to create a connection

That is expected when the tool uses End user credentials. Each eligible person enters Bearer followed by their own DeepLedger key, so the agent uses that person's company access. A person who cannot create a key needs a DeepLedger firm owner or admin to decide whether their role should change; do not give them somebody else's key. If users are not prompted and the agent is using the maker's connection, check Credentials to use before sharing it further.

Other users cannot authenticate in Teams

Use a one-to-one chat with the agent. Microsoft says user-authenticated tools in Teams require its Microsoft Entra ID SSO configuration; the SSO path does not currently support group chats or channel messages. Configure SSO, republish the agent, and test again as the affected user. This is separate from the DeepLedger API key connection.

The agent names the wrong company

Ask the company-profile tool to list accessible companies, then switch using the exact organization ID. Repeat the profile check before continuing. A personal key's active company is shared across that person's DeepLedger AI connections, so another client can change it.

The company is listed but reports fail

Check the company's QuickBooks status in the list result. If its connection or token is no longer live, reconnect that company from Settings > Clients in DeepLedger, then rerun the profile check.

A report looks incomplete

Ask for count and totalRows. If rowOffset + count is less than totalRows, request the next page with rowOffset advanced by count. The report message gives the exact next rowOffset. Compare the complete result with the same dated report in QuickBooks.

A Safer First Deployment

A useful first Copilot agent does not need to post bookkeeping entries. Give it a narrow job: identify the active company, retrieve a dated report, state its basis and row completeness, and explain the result. Keep write requests out of the shared workflow until you have chosen the credential mode, decided who reviews writes, checked which companies each key may reach, and defined how results will be verified in QuickBooks.

For the underlying connection model, read the QuickBooks MCP server guide. If one person needs to move between several client companies, see how company switching works.

Questions People Ask

Can Microsoft Copilot connect to QuickBooks Online?

Yes. In Copilot Studio, add DeepLedger's hosted MCP server as a tool for an agent. After you test and publish the agent, Microsoft lets you connect it to the Teams and Microsoft 365 Copilot channel. This is an agent connection, not a direct QuickBooks setting in every product named Copilot.

How do I add QuickBooks to a Copilot Studio agent?

Open the agent's Tools page, select Add a tool, New tool, and Model Context Protocol. Enter https://mcp.deepledger.ai/mcp, choose API key authentication with a Header named Authorization, create a connection using Bearer followed by your DeepLedger API key, and add the tool to the agent.

What authentication does Copilot Studio use for the QuickBooks connection?

Use Copilot Studio's API key option with a Header named Authorization. The connection value is Bearer followed by a personal DeepLedger API key from Settings > API Access. Firm owners and admins can create a key for themselves. It acts as its creator and can reach every company that person can access, so it is not a one-company or read-only credential.

Can I use QuickBooks with Copilot in Microsoft Teams?

Yes, in a one-to-one chat with the agent. Publish it, add the Teams and Microsoft 365 Copilot channel, and configure Microsoft Entra ID SSO for user-authenticated tools. Set the tool to End user credentials so each eligible person supplies their own DeepLedger key. Maker-provided credentials let every user act with the maker's DeepLedger access.

Does GitHub Copilot work with QuickBooks?

Yes, as a separate setup in Visual Studio Code. Add the DeepLedger URL as an HTTP server in mcp.json. VS Code supports remote MCP servers and OAuth sign-in, so the first connection can open the DeepLedger authorization flow without putting an API key in the file.

Is connecting Copilot to my books safe?

Treat the connection as financial-system access. Start with company-profile and report prompts, confirm the company and dates in every result, and use End user credentials before sharing the agent. Personal API keys are not read-only. Revoke an exposed or unneeded key in Settings > API Access; a cached personal key normally stops working within about ten seconds.

Ready to get started?

Give your firm the leverage of an AI agent. Try the integration today.

Create an Account