What is Model Context Protocol?
The Model Context Protocol (MCP) is an open-source standard that makes it easier for AI applications like Cursor, Windsurf or ChatGPT to access key information by connecting to data sources, tools and workflows permitting them to perform tasks. With MCP, you can easily build and integrate AI apps, enabling smarter agents to securely access data for end-users. Read more about MCP server and its architecture here.
Quickbooks Online local MCP server
When building integrations with Quickbooks Online API, we noticed developers often need a safe environment to be able to test requests with user prompts and receive responses before eventually deploying their application code and connecting it to a production endpoint. Running a local MCP server gives developers an opportunity to run this exercise in a controlled setup to debug and validate their code quickly.
With this in mind, Intuit is sharing an early look at the local MCP Server to help developers experiment and provide feedback. This local MCP server is built on top of Quickbooks Online Accounting APIs, and app developers registered on the Intuit Developer portal can set it up to run accounting tasks.
Note that this local MCP server can only be run in the Sandbox environment. This early preview focuses on local experimentation and API familiarity. Some capabilities and configurations may evolve before general availability.
Prerequisites
In this blog post, we’ll use the Windsurf AI editor to demo the local MCP server, though the principles can be applied to any client that supports MCP. Before you start running it, make sure you have Node JS 18 or higher installed.
Installation and setup
The server is built on top of external library node-quickbooks. It provides a mechanism to test Create, Delete, Get, Search and Update operations for the following entities via Quickbooks APIs
- Account
- Bill Payment
- Bill
- Customer
- Employee
- Estimate
- Invoice
- Item
- Journal Entry
- Purchase
- Vendor
Step 1: Install MCP setup on your local machine
First, clone the qbo-mcp-server repo and install dependencies via terminal:
Shell
git clone https://github.com/intuit/quickbooks-online-mcp-server
cd qbo-mcp-server
npm install
npm run build
After the build completes, you’ll see a new folder dist/ created inside the project. Inside it, you’ll find the dist/index.js file. Copy the path to this dist/index.js file. You’ll use it to run the local server.
Step 2: Add MCP server config to client tool
Open Windsurf. Navigate to Settings > Cascade > MCP Servers > Click on “View raw config” and add the following configuration to your ~/.windsurf/mcp.json file:
{
"mcpServers": {
"qbo-mcp": {
"command": "/path/to/node",
"args": ["/path/to/qbo-mcp-server/dist/index.js"],
"env": {
"QBO_CLIENT_ID": "<your-client-id>",
"QBO_CLIENT_SECRET": "<your-client-secret>",
"QBO_ENVIRONMENT": "sandbox"
}
}
}
}
Note: Ensure you modify the path to your node package and index.js file under “command” and “args” parameters.

Step 3: Test your connection
After saving the configuration file, hit the refresh button to view tools available on this MCP server.

Usage
Open the Windsurf chat window. Select the QBO MCP via typing @mcp and then a question related to QuickBooks Online.


This will trigger the OAuth2.0 authentication flow. Ensure you approve the authentication to complete the connection.

Next, you will receive a response to your chat query once the connection is established.

The above is just one of many use cases that the server makes possible. We’re excited to see how this tool will accelerate innovation and simplify API integration for our developer community.
We’d love to hear your thoughts! This preview is your opportunity to experiment, learn, and influence what comes next. Share your suggestions or issues through https://github.com/intuit/quickbooks-online-mcp-server/tree/main. Happy developing!
