npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@hlao-mcp/quickbooks

v0.1.0

Published

HLAO MCP server wrapping the QuickBooks Online Accounting REST API (accounts, P&L, balance sheet, vendors, customers, invoices, expenses). Write tools gated through the HLAO passport gate.

Downloads

36

Readme

@hlao-mcp/quickbooks

MCP server that wraps the QuickBooks Online Accounting REST API and exposes it as typed tools for HLAO agents.

This package was informed by Intuit's official quickbooks-online-mcp-server reference but is built natively against HLAO's egress conventions: authority-header gating on every write tool, structured ToolError semantics, Streamable HTTP as primary transport, and Zod input validation.

Tools

Read tools:

| Tool | What it does | | ----------------------------- | ------------------------------------------------------------------------- | | get_account_list | List Chart of Accounts entries, paginated. | | get_profit_and_loss_report | Run the Profit and Loss report over a date range. | | get_balance_sheet | Run the Balance Sheet report as of an end date. | | get_vendor_by_id | Fetch a single vendor. | | list_vendors | List vendors, paginated. | | get_customer_by_id | Fetch a single customer. | | list_customers | List customers, paginated. | | get_invoice_by_id | Fetch a single invoice. | | list_invoices | List invoices, paginated, most recent first. | | get_expense_by_id | Fetch a single expense (Purchase entity). | | list_expenses | List expenses, paginated. |

Write tools (require HLAO authority gate):

| Tool | Required passport scope | What it does | | ---------------- | ------------------------------- | ----------------------------------------- | | create_invoice | quickbooks:create_invoice | Create a new invoice with line items. |

All writes return gate_required or gate_denied errors if the HLAO passport is missing or under-scoped. Production deployments wrap this server with @hlao/mcp-gateway; that gateway injects the verified passport from a human-approved review record before the tool issues the upstream call.

Credentials

| Variable | What it is | | -------------------------- | ----------------------------------------------------------------------- | | QUICKBOOKS_CLIENT_ID | Intuit Developer app OAuth client id. Required. | | QUICKBOOKS_CLIENT_SECRET | Intuit Developer app OAuth client secret. Required. | | QUICKBOOKS_REALM_ID | QuickBooks Online Company id (returned during OAuth). Required. | | QUICKBOOKS_ACCESS_TOKEN | Bearer access token from the OAuth dance. Required. | | QUICKBOOKS_REFRESH_TOKEN | Refresh token (the server uses it to rotate access tokens). Required.| | QUICKBOOKS_ENVIRONMENT | production (default) or sandbox. | | QUICKBOOKS_MINOR_VERSION | Intuit minor-version pin. Defaults to 70. |

How to get credentials

  1. Create a developer account at developer.intuit.com.
  2. Create an app under Dashboard → Apps. Add the com.intuit.quickbooks.accounting scope. Note the Client ID and Client Secret.
  3. Use Intuit's OAuth 2.0 Playground (or your own redirect handler) to complete the authorization-code dance against your QuickBooks Online company. Capture the access token, refresh token, and realm id.
  4. Store all five in your .env.

The server refreshes the access token automatically on 401. The refresh token rotates every 100 days (Intuit's lifecycle): copy any new refresh token back into .env after a rotation to survive process restarts. Persisting rotated tokens to durable storage is the deployment's responsibility.

Local development

cp .env.example .env
pnpm install
pnpm --filter @hlao-mcp/quickbooks build

HLAO_MCP_HTTP_PORT=3006 node dist/server.js
# or
HLAO_MCP_TRANSPORT=stdio node dist/server.js

For sandbox testing, set QUICKBOOKS_ENVIRONMENT=sandbox and use the sandbox company tokens from your Intuit developer dashboard.