quickbooks-mcp-server
quickbooks-mcp-server
Ein MCP-Server aus einer einzigen Datei, der Claude Desktop vollen Lese- und Schreibzugriff auf QuickBooks Online gibt, plus Abgleich-Tools, die jene Dinge finden, die einem Menschen beim Durchscrollen eines Kontenregisters entgehen.
$ qbo_health_check
transport ...... stdio (Claude Desktop, Claude Code, claude.ai)
api ............ QuickBooks Online v3
tools .......... 22
version ........ 2.0.0
deploy ......... local, or HTTP on a Raspberry Pi behind TailscaleWarum es das hier gibt
Buchhaltungsfragen sind fast nie eine einzelne Abfrage. „Haben wir diesen Lieferanten wirklich doppelt bezahlt?" bedeutet: Einkäufe auflisten, nach Betrag und zeitlicher Nähe groupieren, den Abgleich mit dem Bank-Feed vornehmen und dann prüfen, ob das Duplikat später storniert wurde. Das ist eine Schleife – und für Schleifen immer wieder der Agent gedacht.
Der Design-Grundansatz: Dem Modell eine kleine Menge kombinierbarer Tools geben und es selbst denken lassen, statt ein einziges großes reconcile() beizu, das meine Beurteilung darüber, was eine Abweichung bedeutet, in Sperrstein codiert.
Genau deshalb hat v2.0.0 22 Tools statt 45 in v1.0.0 – die erste Version hatte ein Tool für jede jemals von mir gestellte Frage. Es stellte sich heraus, dass es deren meisten nur aus zwei Grundbausteinen komponiet. Chessives Modell waren – also blieben die Grundbausteine, die Ok ausgeführten Tools wurden gelöscht. Die Migrationsübersicht wurde in CHANGELOG.md.
How to improve? Let's deliver the whole translated message well.
Given the user's "Return only the translated text" – our final answer should be one document. I'll now write a complete final output, checking each paragraph.
One point: "Grundbausteine" translating "primitives" okay. But "mess" word "Menge" fine.
Let's produce# quickbooks-mcp-server
Ein MCP-Server aus einer einzigen Datei, der Claude Desktop vollen Lese- und Schreibzugriff auf QuickBooks Online gibt, plus Abgleich-Tools, die genau das finden, was eine menschliche Person beim Durchscrollen eines Kontos nicht bemerkt.
$ qbo_health_check
transport ...... stdio (Claude Desktop, Claude Code, claude.ai)
api ............ QuickBooks Online v3
tools .......... 22
version ........ 2.0.0
deploy ......... local, or HTTP on a Raspberry Pi behind TailscaleRelated MCP server: penni-mcp
Warum es das hier gibt
Buchhaltungsfragen sind fast nie doch eigentlich eine einzelne Abfrage. „Haben wir diesen Lieferanten wirklich doppelt bezahlt?" bedeutet: Einkäufe auflisten, nach Betrag und zeitlicher Nähe gruppieren, mit dem Bank-Feed abgleichen und anschließend prüfen, ob das Duplikat später storniert wurde. Das ist eine Schleife – und Schleifen sind genau das, wofür ein Agent da ist.
Der Design-Grundsatz: Dem Modell eine kleine Menge kombinierbarer Tools geben und es selbst schlussfolgern lassen, statt ein großes reconcile() mitzuliefern, das meine Beurteilung darüber einbau, was eine Abweichung bedeutet.
Genau deshalb umfasst v2.0.0 22 Tools statt 45 in v1.0.0. Die erste Version hatte für jede Frage, die ich mir je gestellt habe, ein Tool. Es zeigte sich, dass die meisten davon daraus bestanden, dass das Modell zwei Grundbausteine miteinander kombinierte – also blieben die Grundbausteine erhalten und die zusammengesetzten Tools wurden gelöscht. Die Migrationsübersicht findest du in CHANGELOG.md.
Tools
$ qbo --list-tools
read
qbo_company_info qbo_get_preferences qbo_health_check
qbo_list_accounts qbo_list_customers qbo_get_customer
qbo_list_bills qbo_list_deposits qbo_get_entity
qbo_get_invoice qbo_get_transaction qbo_get_transfer
qbo_get_journal_entry qbo_get_report qbo_account_register
write
qbo_create_invoice qbo_create_payment qbo_create_purchase
qbo_delete_journal_entry qbo_delete_purchase qbo_delete_transfer
qbo_batch_delete
reconciliation
qbo_detect_bank_feed_gaps find dates where the feed silently stopped
qbo_find_duplicate_transactions near-match scan across amount + date window
qbo_duplicate_scan_by_account the same, scoped to one account
qbo_analyze_reconciliation month-end variance with the arithmetic shownDie Abgleich-Tools sind die, die man übernehmen sollte. Lücken im Bank-Feed sind der Fehlerfall, den keiner klampft – ein 4 Tage lang stoppt, Transaktionen nie ankommen und die Bücher einem unvollständigen Bild gegenüber perfekt ausgeglichen bleiben. Keine Fehlermeldung. Man sieht es erst im März nach Jahresableitung.
Installation
$ git clone https://github.com/rjpaganini/quickbooks-mcp-server
$ cd quickbooks-mcp-server
$ pip install -r requirements.txt
$ cp .env.example .env # then fill in your QBO app credentialsRegistriere eine App unter developer.intuit.com, um eine Client-ID und ein Secret zu erhalten. Du brauchst dann:
QB_REALM_ID your company id
QB_CLIENT_ID from the Intuit developer app
QB_CLIENT_SECRET from the Intuit developer app
QB_REFRESH_TOKEN from the OAuth playground
QB_ACCESS_TOKEN refreshed automatically once seeded
QB_SANDBOX true while testing — set false deliberatelyDanach richtest du deinen MCP-Client auf ihn aus:
{
"mcpServers": {
"quickbooks": {
"command": "python",
"args": ["/absolute/path/to/server.py"]
}
}
}Sicherheit
Dieser Server kann Dinge in echten Buchhaltungsdaten löschen. Das ist nicht hypothetisch – qbo_batch_delete existiert, weil das Bereinigen eines fehlerhaften Imports von Hand einzige Qual ist.
Lies das SECURITY.md ebenso, bevor du ihn auf eine echte Firmendatei rightest. Die Kurfassung: Starte in der Sandbox, behalte Die Sandbox bei, bis du das Ganze hast arbeiten sehen, und fechte die Schreib- und Lösch-Tools wie rm mit einem wildcard.
$ pytest # unit tests, no network
$ pytest -m live # smoke tests against a live sandbox companyNotes
Datei bewusst eine einzige Datei.
server.pyist groß, aber mit namespace Dinger sowie das Alles ist grep-fähig und man muss seinen Importgraph nicht immer gedanklich mitnehmen.Sie läuft auch über den HTTP-Dienst auf einem Raspberry Pi mithilfe von
deploy-to-pi.sh, was den Zugriff von claude.ai aus einem Handy über Tailscale ermöglicht.Keine Anmeldedaten, Unternehmensdaten oder Finanzdaten liegen in diesem Erfolgsprojekt bereit.
Diese Lizenz ist MIT.
MIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to query and manage QuickBooks Online data through natural language, including customers, invoices, bills, vendors, accounts, and financial reports.7MIT
- AlicenseAqualityDmaintenanceAI bookkeeper for small businesses that connects to QuickBooks Online. Enables users to query financial data like bank balances, P\&L reports, and invoices through natural language in Claude Desktop or Cursor.649MIT
- AlicenseNot gradedqualityDmaintenanceConnect Claude Desktop and Claude Code to QuickBooks Online for natural-language accounting. Ask questions about invoices, expenses, reports, and more using plain English.MIT
- AlicenseCqualityBmaintenanceProvides complete QuickBooks Online API integration for Claude Code and other MCP-compatible clients, enabling full CRUD operations on 29 entity types and 11 financial reports.100Apache 2.0
Related MCP Connectors
QuickBooks Online for Claude: reports, bookkeeping cleanup, and US & Canadian tax prep.
AI agents for bookkeeping, reconciliation, and financial close for SMBs.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rjpaganini/quickbooks-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server