Labsco
MCP SERVER

QuickBooks Time

by aallsbury

Ask QuickBooks Time who is on the clock, what was logged against which job code, and how the job code tree is arranged.

HR, Recruiting & Workforce
Summary
Timesheet questions answered without the reporting screen.

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.

What it is

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.

What you get
  • 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
Requirements

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.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary