Designing an MCP server for a 240-operation legacy API (QuickBooks Desktop)
Description and use
<p><em>Disclosure: I built LedgerCrossing, the product this article is about. It's paid software, so I'm biased. The design problems are real either way, and I hope they're useful if you're wrapping a big legacy API in MCP.</em></p> <p>QuickBooks Desktop is the Windows version of QuickBooks that a lot of businesses still run on Pro, Premier or Enterprise. It has no cloud API. The only way in is qbXML, an XML request format, through a COM interface on the machine where QuickBooks runs. That's why most QuickBooks MCP servers are for QuickBooks Online, which has a cloud API to wrap.</p> <p>I buil
Problem
<p><em>Disclosure: I built LedgerCrossing, the product this article is about. It's paid software, so I'm biased. The design problems are real either way, and I hope they're useful if you're wrapping a big legacy API in MCP.</em></p> <p>QuickBooks Desktop is the Windows version of QuickBooks that a lot of businesses still run on Pro, Premier or Enterprise. It has no cloud API. The only way in is qbXML, an XML request format, through a COM interface on the machine where QuickBooks runs. That's why most QuickBooks MCP servers are for QuickBooks Online, which has a cloud API to wrap.</p> <p>I buil
Outcome
<p><em>Disclosure: I built LedgerCrossing, the product this article is about. It's paid software, so I'm biased. The design problems are real either way, and I hope they're useful if you're wrapping a big legacy API in MCP.</em></p> <p>QuickBooks Desktop is the Windows version of QuickBooks that a lot of businesses still run on Pro, Premier or Enterprise. It has no cloud API. The only way in is qbXML, an XML request format, through a COM interface on the machine where QuickBooks runs. That's why most QuickBooks MCP servers are for QuickBooks Online, which has a cloud API to wrap.</p> <p>I buil
Evidence
Designing an MCP server for a 240-operation legacy API (QuickBooks Desktop)
- Record date: 2026-10-27T04:11:32.712Z