Four separate integrations collapsed into one server, with the filters that matter — date range, user, job code, modification time — available on the call. That is what turns "how many hours went to this client last month" into a single question.
A single MCP server covering the QuickBooks Time API, combining what used to be four separate servers — job codes, reports and core, timesheets, and users — behind one interface.
- Job codes retrieved with real filtering: by name with wildcard matching, by active status, by type (regular, PTO, paid or unpaid break) and by parent
- A single job code fetched by id, and the job code hierarchy as a structure rather than a flat list
- Timesheets pulled over a date range, narrowed by user, group, job code or payroll ids
- Change-based filtering — modified before or since a timestamp — for syncing rather than re-reading everything
- On-the-clock status, for the question that has to be answered right now
- Pagination controls throughout, so a wide date range comes back in pages rather than one dump
Python with the packages in requirements.txt, and a QuickBooks Time access token supplied as QB_TIME_ACCESS_TOKEN in a .env file or in the client config.
Build from source — clone the repository and build it, then point your client at the binary
