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/mcpdo { 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.
- 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 - 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 apprefresh_tokenRefresh token from the same sign-in; the access token is renewed from itclient_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 - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates 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
Reports
66 read · 0 write · 0 destructive
Retrieve Current Totals Report · Retrieve Payroll Report · Retrieve Payroll by Jobcode Report · Retrieve Project Report
Files
41 read · 2 write · 1 destructive
Retrieve Files · Delete Files · Update Files · Upload Files
Timesheets
41 read · 2 write · 1 destructive
Retrieve Timesheets · Create Timesheets · Update Timesheets · Delete Timesheets
Custom field item filters
31 read · 2 write · 0 destructive
Create Item Filters · Retrieve Item Filters · Update Item Filters
Custom field items
31 read · 2 write · 0 destructive
Retrieve Custom Field Items · Create Custom Field Items · Update Custom Field Items
Custom fields
31 read · 2 write · 0 destructive
Retrieve Custom Fields · Create Custom Fields · Update Custom Fields
Estimate items
31 read · 2 write · 0 destructive
Create Estimate Items · Retrieve Estimate Items · Update Estimate Items
Estimates
31 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.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
quickbooks_time.projects.listRetrieve Projects | Retrieves a list of projects, with optional filters to narrow down the results. | read | work.project.list109 connectors |
quickbooks_time.projects.createCreate Projects | Create one or more TSheets Projects. | write | work.project.create102 connectors |
quickbooks_time.timesheets.listRetrieve Timesheets | Retrieves a list of all timesheets associated with your company, with filters to narrow down the results. | read | work.time_entry.list59 connectors |
quickbooks_time.timesheets.createCreate Timesheets | Add one or more timesheets to your company. | write | work.time_entry.create56 connectors |
quickbooks_time.users.listRetrieve Users | Retrieves a list of all users associated with your company, with optional filters to narrow down the results. | read | identity.user.list474 connectors |
quickbooks_time.groups.listRetrieve Groups | Retrieves a list of all groups associated with your company, with optional filters to narrow down the results. | read | identity.group.list262 connectors |
quickbooks_time.users.createCreate Users | Add one or more users to your company. | write | identity.user.create262 connectors |
quickbooks_time.groups.createCreate Groups | Add one or more groups to your company. | write | identity.group.create205 connectors |
quickbooks_time.timesheets.deleteDelete Timesheets | Delete one or more timesheets in your company. | destructive | work.time_entry.delete51 connectors |
quickbooks_time.locations.listRetrieve Locations | Retrieves a list of all locations associated with your company, with optional filters to narrow down the results. | read | hr.location.list32 connectors |
quickbooks_time.time_off_requests.createCreate Time Off Requests | Add one or more time off requests. | write | hr.leave_request.create32 connectors |
quickbooks_time.current_user.getRetrieve the Current User | Retrieves the user object for the currently authenticated user. | read | identity.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.
- Readread
Give me a one-line status for every active QuickBooks Time project.
calls
quickbooks_time.reports.project_estimate - Writewrite
Create Projects in QuickBooks Time. Show me exactly what you will send before you save it.
calls
quickbooks_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 Timesheets
quickbooks_time.timesheets.delete - Delete Files
quickbooks_time.files.delete - Delete Notifications
quickbooks_time.notifications.delete - Delete Jobcode Assignments
quickbooks_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.
Delete Timesheets?
intent: the user asked me to delete Timesheets
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]" } ]}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
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 Reportreadquickbooks_time.reports.payrollRetrieve Payroll Reportreadquickbooks_time.reports.payroll_by_jobcodeRetrieve Payroll by Jobcode Reportreadquickbooks_time.reports.projectRetrieve Project Reportreadquickbooks_time.reports.project_estimateRetrieve Project Estimate Reportsreadquickbooks_time.reports.project_estimate_detailRetrieve Project Estimate Detail Reportsread
Files4
quickbooks_time.files.deleteDelete Filesdestructivequickbooks_time.files.listRetrieve Filesreadquickbooks_time.files.updateUpdate Fileswritequickbooks_time.files.uploadUpload Fileswrite
Timesheets4
quickbooks_time.timesheets.createCreate Timesheetswritequickbooks_time.timesheets.deleteDelete Timesheetsdestructivequickbooks_time.timesheets.listRetrieve Timesheetsreadquickbooks_time.timesheets.updateUpdate Timesheetswrite
Custom field item filters3
quickbooks_time.custom_field_item_filters.createCreate Item Filterswritequickbooks_time.custom_field_item_filters.listRetrieve Item Filtersreadquickbooks_time.custom_field_item_filters.updateUpdate Item Filterswrite
Custom field items3
quickbooks_time.custom_field_items.createCreate Custom Field Itemswritequickbooks_time.custom_field_items.listRetrieve Custom Field Itemsreadquickbooks_time.custom_field_items.updateUpdate Custom Field Itemswrite
Custom fields3
quickbooks_time.custom_fields.createCreate Custom Fieldswritequickbooks_time.custom_fields.listRetrieve Custom Fieldsreadquickbooks_time.custom_fields.updateUpdate Custom Fieldswrite
Estimate items3
quickbooks_time.estimate_items.createCreate Estimate Itemswritequickbooks_time.estimate_items.listRetrieve Estimate Itemsreadquickbooks_time.estimate_items.updateUpdate Estimate Itemswrite
Estimates3
quickbooks_time.estimates.createCreate Estimateswritequickbooks_time.estimates.listRetrieve Estimatesreadquickbooks_time.estimates.updateUpdate Estimateswrite
Groups3
quickbooks_time.groups.createCreate Groupswritequickbooks_time.groups.listRetrieve Groupsreadquickbooks_time.groups.updateUpdate Groupswrite
Jobcode assignments3
quickbooks_time.jobcode_assignments.createCreate Jobcode Assignmentswritequickbooks_time.jobcode_assignments.deleteDelete Jobcode Assignmentsdestructivequickbooks_time.jobcode_assignments.listRetrieve Jobcode Assignmentsread
Jobcodes3
quickbooks_time.jobcodes.createCreate Jobcodeswritequickbooks_time.jobcodes.listRetrieve Jobcodesreadquickbooks_time.jobcodes.updateUpdate Jobcodeswrite
Locations3
quickbooks_time.locations.createCreate Locationswritequickbooks_time.locations.listRetrieve Locationsreadquickbooks_time.locations.updateUpdate Locationswrite
Notifications3
quickbooks_time.notifications.createCreate Notificationswritequickbooks_time.notifications.deleteDelete Notificationsdestructivequickbooks_time.notifications.listRetrieve Notificationsread
Project activity read times3
quickbooks_time.project_activity_read_times.createUpdate Project Activity Read Timewritequickbooks_time.project_activity_read_times.listRetrieve Project Activity Read Timesreadquickbooks_time.project_activity_read_times.updateUpdate Project Activity Read Timewrite
Project activity replies3
quickbooks_time.project_activity_replies.createCreate Project Activity Replieswritequickbooks_time.project_activity_replies.listRetrieve Project Activity Repliesreadquickbooks_time.project_activity_replies.updateUpdate Project Activity Replieswrite
Project notes3
quickbooks_time.project_notes.createCreate Project Noteswritequickbooks_time.project_notes.listRetrieve Project Notesreadquickbooks_time.project_notes.updateUpdate Project Noteswrite
Projects3
quickbooks_time.projects.createCreate Projectswritequickbooks_time.projects.listRetrieve Projectsreadquickbooks_time.projects.updateUpdate Projectswrite
Reminders3
quickbooks_time.reminders.createCreate Reminderswritequickbooks_time.reminders.listRetrieve Remindersreadquickbooks_time.reminders.updateUpdate Reminderswrite
Schedule events3
quickbooks_time.schedule_events.createCreate Schedule Eventswritequickbooks_time.schedule_events.listRetrieve Schedule Eventsreadquickbooks_time.schedule_events.updateUpdate Schedule Eventswrite
Time off request entries3
quickbooks_time.time_off_request_entries.createCreate Time Off Request Entrieswritequickbooks_time.time_off_request_entries.listRetrieve Time Off Request Entriesreadquickbooks_time.time_off_request_entries.updateUpdate Time Off Request Entrieswrite
Time off requests3
quickbooks_time.time_off_requests.createCreate Time Off Requestswritequickbooks_time.time_off_requests.listRetrieve Time Off Requestsreadquickbooks_time.time_off_requests.updateUpdate Time Off Requestswrite
Users3
quickbooks_time.users.createCreate Userswritequickbooks_time.users.listRetrieve Usersreadquickbooks_time.users.updateUpdate Userswrite
Geolocations2
quickbooks_time.geolocations.createCreate Geolocationswritequickbooks_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.