Built by Metorial, the integration platform for agentic AI.

Learn More

quickbooks

QuickBooks

    Server Summary

    • Manage financial data

    • Automate accounting workflows

    • Generate financial reports

    • Process invoices and payments

QuickBooks MCP Server

The QuickBooks MCP Server provides seamless integration with QuickBooks Online, enabling you to manage your accounting operations directly through the Model Context Protocol. This server offers comprehensive access to customer management, invoicing, payment processing, expense tracking, and financial reporting capabilities. With this integration, you can automate accounting workflows, generate financial reports, and maintain your books without leaving your MCP-enabled environment.

Overview

This MCP server acts as a bridge between your applications and QuickBooks Online, exposing a rich set of accounting and financial management tools through a standardized interface. Whether you're building automated workflows, creating financial dashboards, or simply need programmatic access to your QuickBooks data, this server provides the essential functionality to interact with customers, invoices, payments, expenses, vendors, and financial reports.

The server handles all the complexity of QuickBooks API authentication and data formatting, presenting you with clean, intuitive tools that make accounting operations straightforward and efficient. From creating and sending invoices to generating profit and loss statements, you have complete control over your QuickBooks data.

Features

Customer Management

Maintain complete control over your customer database with tools for listing, retrieving, and creating customer records. Track customer information including contact details, billing addresses, and company information.

Invoice Operations

Create professional invoices with line items, manage due dates, retrieve existing invoices, and send invoices directly to customers via email. Support for filtered queries allows you to easily find invoices by customer or retrieve specific invoice details.

Payment Processing

Record and track customer payments with full support for applying payments to specific invoices. Link payments to multiple invoices, specify payment methods, and maintain accurate records of all transactions.

Expense Management

Track business expenses by creating expense transactions, categorizing spending, and linking expenses to vendors. Filter and retrieve expense records for reporting and analysis purposes.

Financial Reporting

Generate comprehensive financial reports including Profit and Loss statements, Balance Sheets, and Cash Flow statements. Reports support both cash and accrual accounting methods and can be customized by date range.

Vendor and Account Management

Access your vendor directory and chart of accounts to support proper expense categorization and financial organization. List and filter accounts by type to ensure accurate financial tracking.

Items and Services

Retrieve your product and service catalog to support accurate invoice creation and inventory management.

Tools

list_customers

Retrieve a paginated list of customers from your QuickBooks company.

Parameters:

  • maxResults (optional, number): Maximum number of results to return (default: 100)
  • startPosition (optional, number): Starting position for pagination (default: 1)

get_customer

Retrieve detailed information about a specific customer.

Parameters:

  • customerId (required, string): The ID of the customer to retrieve

create_customer

Create a new customer record in QuickBooks.

Parameters:

  • displayName (required, string): Display name for the customer
  • givenName (optional, string): First name
  • familyName (optional, string): Last name
  • companyName (optional, string): Company name
  • primaryPhone (optional, string): Primary phone number
  • primaryEmailAddr (optional, string): Primary email address
  • billingAddress (optional, object): Billing address with properties:
    • line1 (string): Street address
    • city (string): City
    • countrySubDivisionCode (string): State/province code
    • postalCode (string): ZIP or postal code

list_invoices

Retrieve a list of invoices with optional filtering by customer.

Parameters:

  • customerId (optional, string): Filter by customer ID
  • maxResults (optional, number): Maximum number of results to return (default: 100)
  • startPosition (optional, number): Starting position for pagination (default: 1)

get_invoice

Retrieve detailed information about a specific invoice.

Parameters:

  • invoiceId (required, string): The ID of the invoice to retrieve

create_invoice

Create a new invoice for a customer with line items.

Parameters:

  • customerId (required, string): Customer ID
  • lineItems (required, array): Invoice line items, each containing:
    • description (required, string): Line item description
    • amount (required, number): Line item amount
    • quantity (optional, number): Quantity (default: 1)
    • itemId (optional, string): Item/Service ID if applicable
  • txnDate (optional, string): Transaction date in YYYY-MM-DD format
  • dueDate (optional, string): Due date in YYYY-MM-DD format

send_invoice

Send an invoice via email to the customer.

Parameters:

  • invoiceId (required, string): The ID of the invoice to send
  • emailAddress (optional, string): Override email address (uses customer email by default)

list_payments

Retrieve a list of payment records with optional customer filtering.

Parameters:

  • customerId (optional, string): Filter by customer ID
  • maxResults (optional, number): Maximum number of results to return (default: 100)
  • startPosition (optional, number): Starting position for pagination (default: 1)

create_payment

Record a payment received from a customer and optionally apply it to invoices.

Parameters:

  • customerId (required, string): Customer ID
  • totalAmount (required, number): Total payment amount
  • txnDate (optional, string): Transaction date in YYYY-MM-DD format
  • paymentMethodId (optional, string): Payment method ID
  • linkedInvoices (optional, array): Invoices to apply payment to, each containing:
    • invoiceId (required, string): Invoice ID
    • amount (required, number): Amount applied to this invoice

list_expenses

Retrieve a list of expense transactions.

Parameters:

  • maxResults (optional, number): Maximum number of results to return (default: 100)
  • startPosition (optional, number): Starting position for pagination (default: 1)

create_expense

Create a new expense transaction.

Parameters:

  • accountId (required, string): Account ID to expense from
  • amount (required, number): Expense amount
  • txnDate (optional, string): Transaction date in YYYY-MM-DD format
  • vendorId (optional, string): Vendor ID
  • categoryId (optional, string): Expense category/account ID
  • description (optional, string): Expense description

list_vendors

Retrieve a list of vendors from your QuickBooks company.

Parameters:

  • maxResults (optional, number): Maximum number of results to return (default: 100)
  • startPosition (optional, number): Starting position for pagination (default: 1)

list_accounts

Retrieve accounts from your chart of accounts with optional filtering by type.

Parameters:

  • accountType (optional, string): Filter by account type (e.g., Bank, Income, Expense)

get_profit_and_loss

Generate a Profit and Loss (P&L) report for a specified date range.

Parameters:

  • startDate (required, string): Start date in YYYY-MM-DD format
  • endDate (required, string): End date in YYYY-MM-DD format
  • accountingMethod (optional, string): Accounting method - "Cash" or "Accrual" (default: Accrual)

get_balance_sheet

Generate a Balance Sheet report as of a specific date.

Parameters:

  • date (required, string): Report date in YYYY-MM-DD format
  • accountingMethod (optional, string): Accounting method - "Cash" or "Accrual" (default: Accrual)

get_cash_flow

Generate a Cash Flow statement for a specified date range.

Parameters:

  • startDate (required, string): Start date in YYYY-MM-DD format
  • endDate (required, string): End date in YYYY-MM-DD format

list_items

Retrieve a list of items, products, or services from your QuickBooks catalog.

Parameters:

  • type (optional, string): Filter by item type (e.g., Service, Inventory)
  • maxResults (optional, number): Maximum number of results to return (default: 100)

get_company_info

Retrieve information about your QuickBooks company including company name, address, and settings.

Parameters: None required

Use Cases

The QuickBooks MCP Server enables a wide range of accounting automation and integration scenarios:

  • Automated Invoicing: Create and send invoices programmatically based on project completion, subscription renewals, or other business triggers
  • Payment Reconciliation: Record payments as they're received and automatically apply them to outstanding invoices
  • Financial Reporting: Generate regular financial reports for stakeholder review or integration with business intelligence tools
  • Expense Tracking: Automatically create expense records from receipts or other source systems
  • Customer Sync: Keep customer information synchronized between QuickBooks and other business systems
  • Dashboard Creation: Pull QuickBooks data into custom dashboards for real-time financial visibility

Prompts

This server does not currently provide any pre-configured prompts.

Resource Templates

This server does not currently provide any resource templates.