Skip to content

Connectors · Accounting & finance

QuickBooks Time MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to QuickBooks Time and the rest of your systems. It gives your agent 85 QuickBooks Time actions (39 reads, 42 writes and 4 that wait for a confirmation) and holds the QuickBooks Time credential itself, so the agent never does. It paces QuickBooks Time's limits and records every call. Connecting QuickBooks Time needs your own QuickBooks Time OAuth app and one admin sign-in.

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

claude mcp add --transport http actionlake https://connect.actionlake.com/mcp
the first call
do {  action: "quickbooks_time.projects.list",  intent: "check which QuickBooks Time account is connected"}# Retrieve Projects · read · 1 upstream call
  • 85actionsin one signed file
  • 39readlook, never change
  • 42writecreate and update
  • 4wait for a yesdestructive, confirmed first

Set up

Connect QuickBooks Time in three steps.

  1. 01

    Add actionlake to Claude.

    Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.

    https://connect.actionlake.com/mcp
  2. 02

    Connect QuickBooks Time.

    OAuth 2.0, authorization code. You register your own OAuth app with QuickBooks Time, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on. actionlake stores what you paste write-only, sealed under your tenant's key.

    Before the first sign-in, QuickBooks Time needs an OAuth app of your own, registered in its developer portal. actionlake has no QuickBooks Time app to lend you.

    • access_tokenAccess token from one sign-in with your own OAuth app
    • refresh_tokenRefresh token from the same sign-in; the access token is renewed from it
    • client_idQuickBooks Time OAuth client id: in QuickBooks Time go to Feature Add-ons > Manage Add-ons > API, add a new…
    • client_secretQuickBooks Time OAuth client secret for the same API application
    account { op: "connections.requirements", service: "quickbooks_time" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates the call and prices it, for free.

    do    { action: "quickbooks_time.projects.list" }# retrieve projects · read · 1 upstream callcheck { action: "quickbooks_time.projects.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

QuickBooks Time at a glance

Sign-in
OAuth 2.0, authorization code. You register your own OAuth app with QuickBooks Time, an admin signs in once, and you paste the app's client id and secret and the tokens from that sign-in; actionlake renews the access token from then on.
You provide
access_tokenrefresh_tokenclient_idclient_secret
Limits we pace to
300 calls per 5 minutes, per connection
API covered
QuickBooks Time (TSheets) REST API v1 (rest.tsheets.com/api/v1)rest.tsheets.com/api/v1
Built from
QuickBooks Time's documentation, read 23 October 2026tsheetsteam.github.io
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
39 of 39 reads, for up to 5 minutes; a write clears what it affects
Shared entities
1, so ask can line QuickBooks Time up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in QuickBooks Time.

85 actions in 35 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 39readlook, never change
  • 42writecreate and update
  • 4destructivewait for a confirmation
  1. Reports

    6

    6 read · 0 write · 0 destructive

    Retrieve Current Totals Report · Retrieve Payroll Report · Retrieve Payroll by Jobcode Report · Retrieve Project Report

  2. Files

    4

    1 read · 2 write · 1 destructive

    Retrieve Files · Delete Files · Update Files · Upload Files

  3. Timesheets

    4

    1 read · 2 write · 1 destructive

    Retrieve Timesheets · Create Timesheets · Update Timesheets · Delete Timesheets

  4. Custom field item filters

    3

    1 read · 2 write · 0 destructive

    Create Item Filters · Retrieve Item Filters · Update Item Filters

  5. Custom field items

    3

    1 read · 2 write · 0 destructive

    Retrieve Custom Field Items · Create Custom Field Items · Update Custom Field Items

  6. Custom fields

    3

    1 read · 2 write · 0 destructive

    Retrieve Custom Fields · Create Custom Fields · Update Custom Fields

  7. Estimate items

    3

    1 read · 2 write · 0 destructive

    Create Estimate Items · Retrieve Estimate Items · Update Estimate Items

  8. Estimates

    3

    1 read · 2 write · 0 destructive

    Create Estimates · Retrieve Estimates · Update Estimates

27 more areas · 56 actions
  • Groups 3
  • Jobcode assignments 3
  • Jobcodes 3
  • Locations 3
  • Notifications 3
  • Project activity read times 3
  • Project activity replies 3
  • Project notes 3
  • Projects 3
  • Reminders 3
  • Schedule events 3
  • Time off request entries 3
  • Time off requests 3
  • Users 3
  • Geolocations 2
  • Current user 1
  • Custom field item jobcode filters 1
  • Custom field item user filters 1
  • Effective settings 1
  • Geofence configs 1
  • Invitations 1
  • Last modified timestamps 1
  • Locations maps 1
  • Managed clients 1
  • Project activities 1
  • Schedule calendars 1
  • Timesheets deleted 1

Top actions

The QuickBooks Time API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 32 of QuickBooks Time's 32 action names are shared with at least one other connector, so an agent learns them once.

ActionWhat it doesEffectSame name in
quickbooks_time.projects.listRetrieve ProjectsRetrieves a list of projects, with optional filters to narrow down the results.readwork.project.list109 connectors
quickbooks_time.projects.createCreate ProjectsCreate one or more TSheets Projects.writework.project.create102 connectors
quickbooks_time.timesheets.listRetrieve TimesheetsRetrieves a list of all timesheets associated with your company, with filters to narrow down the results.readwork.time_entry.list59 connectors
quickbooks_time.timesheets.createCreate TimesheetsAdd one or more timesheets to your company.writework.time_entry.create56 connectors
quickbooks_time.users.listRetrieve UsersRetrieves a list of all users associated with your company, with optional filters to narrow down the results.readidentity.user.list474 connectors
quickbooks_time.groups.listRetrieve GroupsRetrieves a list of all groups associated with your company, with optional filters to narrow down the results.readidentity.group.list262 connectors
quickbooks_time.users.createCreate UsersAdd one or more users to your company.writeidentity.user.create262 connectors
quickbooks_time.groups.createCreate GroupsAdd one or more groups to your company.writeidentity.group.create205 connectors
quickbooks_time.timesheets.deleteDelete TimesheetsDelete one or more timesheets in your company.destructivework.time_entry.delete51 connectors
quickbooks_time.locations.listRetrieve LocationsRetrieves a list of all locations associated with your company, with optional filters to narrow down the results.readhr.location.list32 connectors
quickbooks_time.time_off_requests.createCreate Time Off RequestsAdd one or more time off requests.writehr.leave_request.create32 connectors
quickbooks_time.current_user.getRetrieve the Current UserRetrieves the user object for the currently authenticated user.readidentity.current_user.get307 connectors

Try it

Prompts to paste into Claude.

Each one names the QuickBooks Time actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Give me a one-line status for every active QuickBooks Time project.

    callsquickbooks_time.reports.project_estimate

  2. Writewrite

    Create Projects in QuickBooks Time. Show me exactly what you will send before you save it.

    callsquickbooks_time.projects.create

Governance for QuickBooks Time

Destructive actions wait for a yes.

4 QuickBooks Time actions are destructive. These are all of them:

  • Delete Timesheetsquickbooks_time.timesheets.delete
  • Delete Filesquickbooks_time.files.delete
  • Delete Notificationsquickbooks_time.notifications.delete
  • Delete Jobcode Assignmentsquickbooks_time.jobcode_assignments.delete

A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

doquickbooks_time.timesheets.deleteconfirm_policy: human

Delete Timesheets?

intent: the user asked me to delete Timesheets

run suspended · waiting for a named person · key quickbooks-time-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "quickbooks-time-agent",  allowed_actions: ["quickbooks_time.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "quickbooks_time.timesheets.delete", approver: "[email protected]" },    { match: "quickbooks_time.files.delete", approver: "[email protected]" },    { match: "quickbooks_time.notifications.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to QuickBooks Time only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What QuickBooks Time costs on actionlake.

Every QuickBooks Time action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call QuickBooks Time refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

  • 1upstream call per actionall 85 QuickBooks Time actions
  • 85actions pageeach page of a long list is one call
  • 39reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every QuickBooks Time action.

85 actions by area: the id your agent calls, what it does, and its effect.

Reports6
  • quickbooks_time.reports.current_totalsRetrieve Current Totals Reportread
  • quickbooks_time.reports.payrollRetrieve Payroll Reportread
  • quickbooks_time.reports.payroll_by_jobcodeRetrieve Payroll by Jobcode Reportread
  • quickbooks_time.reports.projectRetrieve Project Reportread
  • quickbooks_time.reports.project_estimateRetrieve Project Estimate Reportsread
  • quickbooks_time.reports.project_estimate_detailRetrieve Project Estimate Detail Reportsread
Files4
  • quickbooks_time.files.deleteDelete Filesdestructive
  • quickbooks_time.files.listRetrieve Filesread
  • quickbooks_time.files.updateUpdate Fileswrite
  • quickbooks_time.files.uploadUpload Fileswrite
Timesheets4
  • quickbooks_time.timesheets.createCreate Timesheetswrite
  • quickbooks_time.timesheets.deleteDelete Timesheetsdestructive
  • quickbooks_time.timesheets.listRetrieve Timesheetsread
  • quickbooks_time.timesheets.updateUpdate Timesheetswrite
Custom field item filters3
  • quickbooks_time.custom_field_item_filters.createCreate Item Filterswrite
  • quickbooks_time.custom_field_item_filters.listRetrieve Item Filtersread
  • quickbooks_time.custom_field_item_filters.updateUpdate Item Filterswrite
Custom field items3
  • quickbooks_time.custom_field_items.createCreate Custom Field Itemswrite
  • quickbooks_time.custom_field_items.listRetrieve Custom Field Itemsread
  • quickbooks_time.custom_field_items.updateUpdate Custom Field Itemswrite
Custom fields3
  • quickbooks_time.custom_fields.createCreate Custom Fieldswrite
  • quickbooks_time.custom_fields.listRetrieve Custom Fieldsread
  • quickbooks_time.custom_fields.updateUpdate Custom Fieldswrite
Estimate items3
  • quickbooks_time.estimate_items.createCreate Estimate Itemswrite
  • quickbooks_time.estimate_items.listRetrieve Estimate Itemsread
  • quickbooks_time.estimate_items.updateUpdate Estimate Itemswrite
Estimates3
  • quickbooks_time.estimates.createCreate Estimateswrite
  • quickbooks_time.estimates.listRetrieve Estimatesread
  • quickbooks_time.estimates.updateUpdate Estimateswrite
Groups3
  • quickbooks_time.groups.createCreate Groupswrite
  • quickbooks_time.groups.listRetrieve Groupsread
  • quickbooks_time.groups.updateUpdate Groupswrite
Jobcode assignments3
  • quickbooks_time.jobcode_assignments.createCreate Jobcode Assignmentswrite
  • quickbooks_time.jobcode_assignments.deleteDelete Jobcode Assignmentsdestructive
  • quickbooks_time.jobcode_assignments.listRetrieve Jobcode Assignmentsread
Jobcodes3
  • quickbooks_time.jobcodes.createCreate Jobcodeswrite
  • quickbooks_time.jobcodes.listRetrieve Jobcodesread
  • quickbooks_time.jobcodes.updateUpdate Jobcodeswrite
Locations3
  • quickbooks_time.locations.createCreate Locationswrite
  • quickbooks_time.locations.listRetrieve Locationsread
  • quickbooks_time.locations.updateUpdate Locationswrite
Notifications3
  • quickbooks_time.notifications.createCreate Notificationswrite
  • quickbooks_time.notifications.deleteDelete Notificationsdestructive
  • quickbooks_time.notifications.listRetrieve Notificationsread
Project activity read times3
  • quickbooks_time.project_activity_read_times.createUpdate Project Activity Read Timewrite
  • quickbooks_time.project_activity_read_times.listRetrieve Project Activity Read Timesread
  • quickbooks_time.project_activity_read_times.updateUpdate Project Activity Read Timewrite
Project activity replies3
  • quickbooks_time.project_activity_replies.createCreate Project Activity Replieswrite
  • quickbooks_time.project_activity_replies.listRetrieve Project Activity Repliesread
  • quickbooks_time.project_activity_replies.updateUpdate Project Activity Replieswrite
Project notes3
  • quickbooks_time.project_notes.createCreate Project Noteswrite
  • quickbooks_time.project_notes.listRetrieve Project Notesread
  • quickbooks_time.project_notes.updateUpdate Project Noteswrite
Projects3
  • quickbooks_time.projects.createCreate Projectswrite
  • quickbooks_time.projects.listRetrieve Projectsread
  • quickbooks_time.projects.updateUpdate Projectswrite
Reminders3
  • quickbooks_time.reminders.createCreate Reminderswrite
  • quickbooks_time.reminders.listRetrieve Remindersread
  • quickbooks_time.reminders.updateUpdate Reminderswrite
Schedule events3
  • quickbooks_time.schedule_events.createCreate Schedule Eventswrite
  • quickbooks_time.schedule_events.listRetrieve Schedule Eventsread
  • quickbooks_time.schedule_events.updateUpdate Schedule Eventswrite
Time off request entries3
  • quickbooks_time.time_off_request_entries.createCreate Time Off Request Entrieswrite
  • quickbooks_time.time_off_request_entries.listRetrieve Time Off Request Entriesread
  • quickbooks_time.time_off_request_entries.updateUpdate Time Off Request Entrieswrite
Time off requests3
  • quickbooks_time.time_off_requests.createCreate Time Off Requestswrite
  • quickbooks_time.time_off_requests.listRetrieve Time Off Requestsread
  • quickbooks_time.time_off_requests.updateUpdate Time Off Requestswrite
Users3
  • quickbooks_time.users.createCreate Userswrite
  • quickbooks_time.users.listRetrieve Usersread
  • quickbooks_time.users.updateUpdate Userswrite
Geolocations2
  • quickbooks_time.geolocations.createCreate Geolocationswrite
  • quickbooks_time.geolocations.listRetrieve Geolocationsread
Current user1
  • quickbooks_time.current_user.getRetrieve the Current Userread
Custom field item jobcode filters1
  • quickbooks_time.custom_field_item_jobcode_filters.listRetrieve Jobcode Filtersread
Custom field item user filters1
  • quickbooks_time.custom_field_item_user_filters.listRetrieve User Filtersread
Effective settings1
  • quickbooks_time.effective_settings.listRetrieve Effective Settingsread
Geofence configs1
  • quickbooks_time.geofence_configs.listRetrieve Geofence Configsread
Invitations1
  • quickbooks_time.invitations.createCreate Invitationswrite
Last modified timestamps1
  • quickbooks_time.last_modified_timestamps.getRetrieve Last Modified Timestampsread
Locations maps1
  • quickbooks_time.locations_maps.listRetrieve Locations Mapsread
Managed clients1
  • quickbooks_time.managed_clients.listRetrieve Managed Clientsread
Project activities1
  • quickbooks_time.project_activities.listRetrieve Project Activity objectsread
Schedule calendars1
  • quickbooks_time.schedule_calendars.listRetrieve Schedule Calendarsread
Timesheets deleted1
  • quickbooks_time.timesheets_deleted.listRetrieve Timesheets Deletedread

Questions

The QuickBooks Time MCP server, answered.

Is there a QuickBooks Time MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 85 QuickBooks Time actions across reports, files, timesheets and custom field item filters, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by QuickBooks Time.

What do I need to connect QuickBooks Time?

Your own QuickBooks Time OAuth app, registered with QuickBooks Time (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no QuickBooks Time app of its own, so this is not a one-step consent. actionlake renews the access token as it expires. The free call account { op: "connections.requirements", service: "quickbooks_time" } lists exactly what to paste.

Can an AI agent delete or change things in QuickBooks Time?

Only if its key allows it, and only with an explicit confirmation. 4 QuickBooks Time actions are destructive, including delete Timesheets, delete Files and delete Notifications. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

Will an AI agent use up my QuickBooks Time API limit?

actionlake paces every call to the limits in the QuickBooks Time service file: 300 calls per 5 minutes per connection. Repeated reads are answered from cache (39 QuickBooks Time actions can be), which never reaches QuickBooks Time.

What does a QuickBooks Time action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (85 QuickBooks Time actions page). Cache hits, searches, dry runs and calls QuickBooks Time refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

Which QuickBooks Time API does it cover?

The QuickBooks Time (TSheets) REST API v1 (rest.tsheets.com/api/v1) at rest.tsheets.com/api/v1. It is built from QuickBooks Time's documentation as read on 23 October 2026. 85 actions in 35 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my QuickBooks Time data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your QuickBooks Time credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

Which AI clients can use it?

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

Give your agent QuickBooks Time today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.