Connectors · Accounting & finance
Hubstaff MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Hubstaff and the rest of your systems. It gives your agent 180 Hubstaff actions (107 reads, 62 writes and 11 that wait for a confirmation) and holds the Hubstaff credential itself, so the agent never does. It paces Hubstaff's limits and records every call. Connecting Hubstaff needs your own Hubstaff 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: "hubstaff.organizations.list", intent: "check which Hubstaff account is connected"}# List organizations · read · 1 upstream call- 180actionsin one signed file
- 107readlook, never change
- 62writecreate and update
- 11wait for a yesdestructive, confirmed first
Set up
Connect Hubstaff 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 Hubstaff.
OAuth 2.0, authorization code. You register your own OAuth app with Hubstaff, 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, Hubstaff needs an OAuth app of your own, registered in its developer portal. actionlake has no Hubstaff app to lend you.
access_tokenOptionalrefresh_tokenRefresh token the OAuth application received (scopes openid hubstaff:read hubstaff:write)client_idClient ID of your Hubstaff OAuth application (developer.hubstaff.com > My apps)client_secretClient secret of the same Hubstaff OAuth application
account { op: "connections.requirements", service: "hubstaff" } # 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: "hubstaff.organizations.list" }# list organizations · read · 1 upstream callcheck { action: "hubstaff.tasks.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Hubstaff at a glance
- Sign-in
- OAuth 2.0, authorization code. You register your own OAuth app with Hubstaff, 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
- 120 calls a minute, per connection
- API covered
- Hubstaff V2 API (Swagger 2.0, api.hubstaff.com/v2/docs)
api.hubstaff.com - Built from
- Hubstaff's documentation, read 23 October 2026api.hubstaff.comdeveloper.hubstaff.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 107 of 107 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 9, so ask can line Hubstaff up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Hubstaff.
180 actions in 63 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 107readlook, never change
- 62writecreate and update
- 11destructivewait for a confirmation
Tasks
84 read · 3 write · 1 destructive
List organization tasks · Create task · Get task · Update task
Teams
82 read · 5 write · 1 destructive
List organization teams · Create team · Get team · Update team
Time off policies
83 read · 4 write · 1 destructive
Create time off policy · List organization time off policies · List organization time off policies per user · Archive time off policy
Job sites
72 read · 5 write · 0 destructive
Create job site · List organization job sites · Add job site rules · Get job site
Projects
73 read · 4 write · 0 destructive
List organization projects · Create project · Get project · Update project
Invites
62 read · 3 write · 1 destructive
Bulk invite users · Create invite · List organization invites · Get invite
Organizations
63 read · 3 write · 0 destructive
List organizations · Create organization · Get organization · Get organization seats
Overtime policies
62 read · 4 write · 0 destructive
Create overtime policy · List organization overtime policies · Archive overtime policy · Get overtime policy
55 more areas · 124 actions
- Smart notification rules 6
- Time off requests 6
- Webhooks 6
- Clients 5
- Invite links 5
- Member limits 5
- Network locations 5
- Activities 4
- Budget histories 4
- Daily activities 4
- Global todos 4
- Members 4
- Screenshots 4
- Attendance schedules 3
- Manual time requests 3
- Notes 3
- App and URL tracking settings 2
- Daily tool usages 2
- Last activities 2
- Limit histories 2
- Locations 2
- Project links 2
- Screenshot settings 2
- Team payments 2
- Time edit logs 2
- Time off balances 2
- Timesheets 2
- Tool classifications 2
- Tool usages 2
- Users 2
- Attendance shifts 1
- Audit log entries 1
- Client invoices 1
- Error codes 1
- Holidays 1
- Ignored user matches 1
- Ignored user patterns 1
- Insights activity 1
- Insights focus time 1
- Insights idle time 1
- Insights meetings 1
- Integrations 1
- Job site visits 1
- Job types 1
- Passive job site visits 1
- Rates 1
- Smart notifications 1
- Team invoices 1
- Time entries 1
- Tool categories 1
- Tracking states 1
- Unusual activities 1
- User links 1
- Work break projects 1
- Work time classification 1
Top actions
The Hubstaff API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 33 of Hubstaff's 33 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
hubstaff.tasks.listList organization tasks | List organization tasks. | read | work.task.list122 connectors |
hubstaff.members.listList organization members | List organization members. | read | identity.user.list474 connectors |
hubstaff.projects.listList organization projects | List organization projects. | read | work.project.list109 connectors |
hubstaff.teams.listList organization teams | List organization teams. | read | identity.group.list262 connectors |
hubstaff.activities.listList organization activities | List organization activities. | read | work.time_entry.list59 connectors |
hubstaff.users.meGet current user | Get current user. | read | identity.current_user.get307 connectors |
hubstaff.tasks.createCreate task | Create task. | write | work.task.create127 connectors |
hubstaff.timesheets.listList organization timesheets | List organization timesheets. | read | work.timesheet.list20 connectors |
hubstaff.projects.createCreate project | Create project. | write | work.project.create102 connectors |
hubstaff.time_entries.createCreate time entry | Create time entry. | write | work.time_entry.create56 connectors |
hubstaff.teams.createCreate team | Create team. | write | identity.group.create205 connectors |
hubstaff.tasks.deleteDelete task | Delete task. | destructive | work.task.delete107 connectors |
Try it
Prompts to paste into Claude.
Each one names the Hubstaff actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Hubstaff invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
hubstaff.client_invoices.list - Writewrite
Create task in Hubstaff. Show me exactly what you will send before you save it.
calls
hubstaff.tasks.create
Governance for Hubstaff
Destructive actions wait for a yes.
11 Hubstaff actions are destructive. These are all of them:
- Delete task
hubstaff.tasks.delete - Delete team
hubstaff.teams.delete - Delete time off request
hubstaff.time_off_requests.delete - Delete invite
hubstaff.invites.delete - Delete webhook
hubstaff.webhooks.delete - Delete global to-do
hubstaff.global_todos.delete - Delete invite link
hubstaff.invite_links.delete - Delete project member limit
hubstaff.member_limits.delete - Delete network location
hubstaff.network_locations.delete - Delete time off policy
hubstaff.time_off_policies.delete - Delete smart notification rule
hubstaff.smart_notification_rules.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 task?
intent: the user asked me to delete task
account { op: "keys.create", name: "hubstaff-agent", allowed_actions: ["hubstaff.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "hubstaff.tasks.delete", approver: "[email protected]" }, { match: "hubstaff.teams.delete", approver: "[email protected]" }, { match: "hubstaff.time_off_requests.delete", approver: "[email protected]" } ]}Cost
What Hubstaff costs on actionlake.
Every Hubstaff action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Hubstaff 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 180 Hubstaff actions
- 180actions pageeach page of a long list is one call
- 107reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Hubstaff action.
180 actions by area: the id your agent calls, what it does, and its effect.
Tasks8
hubstaff.tasks.createCreate taskwritehubstaff.tasks.deleteDelete taskdestructivehubstaff.tasks.getGet taskreadhubstaff.tasks.listList organization tasksreadhubstaff.tasks.list_for_integrationList integration tasksreadhubstaff.tasks.list_for_projectList project tasksreadhubstaff.tasks.updateUpdate taskwritehubstaff.tasks.update_metadataUpdate task metadatawrite
Teams8
hubstaff.teams.createCreate teamwritehubstaff.teams.deleteDelete teamdestructivehubstaff.teams.getGet teamreadhubstaff.teams.listList organization teamsreadhubstaff.teams.updateUpdate teamwritehubstaff.teams.update_membersUpdate team memberswritehubstaff.teams.update_metadataUpdate team metadatawritehubstaff.teams.update_projectsUpdate team projectswrite
Time off policies8
hubstaff.time_off_policies.archiveArchive time off policywritehubstaff.time_off_policies.createCreate time off policywritehubstaff.time_off_policies.deleteDelete time off policydestructivehubstaff.time_off_policies.getGet time off policyreadhubstaff.time_off_policies.listList organization time off policiesreadhubstaff.time_off_policies.list_user_policiesList organization time off policies per userreadhubstaff.time_off_policies.restoreRestore time off policywritehubstaff.time_off_policies.updateUpdate time off policywrite
Job sites7
hubstaff.job_sites.add_rulesAdd job site ruleswritehubstaff.job_sites.createCreate job sitewritehubstaff.job_sites.getGet job sitereadhubstaff.job_sites.listList organization job sitesreadhubstaff.job_sites.remove_rulesRemove job site ruleswritehubstaff.job_sites.updateUpdate job sitewritehubstaff.job_sites.update_rulesUpdate job site ruleswrite
Projects7
hubstaff.projects.createCreate projectwritehubstaff.projects.getGet projectreadhubstaff.projects.listList organization projectsreadhubstaff.projects.list_for_teamList team projectsreadhubstaff.projects.updateUpdate projectwritehubstaff.projects.update_membersUpdate project memberswritehubstaff.projects.update_metadataUpdate project metadatawrite
Invites6
hubstaff.invites.bulk_createBulk invite userswritehubstaff.invites.createCreate invitewritehubstaff.invites.deleteDelete invitedestructivehubstaff.invites.getGet invitereadhubstaff.invites.listList organization invitesreadhubstaff.invites.updateUpdate invitewrite
Organizations6
hubstaff.organizations.createCreate organizationwritehubstaff.organizations.getGet organizationreadhubstaff.organizations.get_seatsGet organization seatsreadhubstaff.organizations.listList organizationsreadhubstaff.organizations.update_membersUpdate organization memberswritehubstaff.organizations.update_metadataUpdate organization metadatawrite
Overtime policies6
hubstaff.overtime_policies.archiveArchive overtime policywritehubstaff.overtime_policies.createCreate overtime policywritehubstaff.overtime_policies.getGet overtime policyreadhubstaff.overtime_policies.listList organization overtime policiesreadhubstaff.overtime_policies.restoreRestore overtime policywritehubstaff.overtime_policies.updateUpdate overtime policywrite
Smart notification rules6
hubstaff.smart_notification_rules.createCreate smart notification rulewritehubstaff.smart_notification_rules.deleteDelete smart notification ruledestructivehubstaff.smart_notification_rules.getGet smart notification rulereadhubstaff.smart_notification_rules.listList smart notification rulesreadhubstaff.smart_notification_rules.toggle_statusToggle smart notification rulewritehubstaff.smart_notification_rules.updateUpdate smart notification rulewrite
Time off requests6
hubstaff.time_off_requests.createCreate time off requestwritehubstaff.time_off_requests.deleteDelete time off requestdestructivehubstaff.time_off_requests.getGet time off requestreadhubstaff.time_off_requests.listList organization time off requestsreadhubstaff.time_off_requests.updateUpdate time off requestwritehubstaff.time_off_requests.update_statusUpdate time off request statuswrite
Webhooks6
hubstaff.webhooks.activateActivate webhookwritehubstaff.webhooks.create_for_meCreate me webhookwritehubstaff.webhooks.create_for_organizationCreate organization webhookwritehubstaff.webhooks.create_for_projectCreate project webhookwritehubstaff.webhooks.deleteDelete webhookdestructivehubstaff.webhooks.getGet webhookread
Clients5
hubstaff.clients.createCreate clientwritehubstaff.clients.getGet clientreadhubstaff.clients.listList organization clientsreadhubstaff.clients.updateUpdate clientwritehubstaff.clients.update_metadataUpdate client metadatawrite
Invite links5
hubstaff.invite_links.createCreate invite linkwritehubstaff.invite_links.deleteDelete invite linkdestructivehubstaff.invite_links.getGet invite linkreadhubstaff.invite_links.listList organization invite linksreadhubstaff.invite_links.updateUpdate invite linkwrite
Member limits5
hubstaff.member_limits.createCreate project member limitwritehubstaff.member_limits.deleteDelete project member limitdestructivehubstaff.member_limits.getGet member limitreadhubstaff.member_limits.list_for_projectList project member limitsreadhubstaff.member_limits.updateUpdate project member limitwrite
Network locations5
hubstaff.network_locations.createCreate network locationwritehubstaff.network_locations.deleteDelete network locationdestructivehubstaff.network_locations.getGet network locationreadhubstaff.network_locations.listList network locationsreadhubstaff.network_locations.updateUpdate network locationwrite
Activities4
hubstaff.activities.listList organization activitiesreadhubstaff.activities.list_for_projectList project activitiesreadhubstaff.activities.list_updatesList organization activities updatesreadhubstaff.activities.list_updates_for_projectList project activities updatesread
Budget histories4
hubstaff.budget_histories.getGet budget historyreadhubstaff.budget_histories.listList organization budget historiesreadhubstaff.budget_histories.list_for_clientList client budget historiesreadhubstaff.budget_histories.list_for_projectList project budget historiesread
Daily activities4
hubstaff.daily_activities.listList organization daily activitiesreadhubstaff.daily_activities.list_for_projectList project daily activitiesreadhubstaff.daily_activities.list_updatesList organization daily activities updatesreadhubstaff.daily_activities.list_updates_for_projectList project daily activities updatesread
Global todos4
hubstaff.global_todos.createCreate global to-dowritehubstaff.global_todos.deleteDelete global to-dodestructivehubstaff.global_todos.listList organization global todosreadhubstaff.global_todos.updateUpdate global to-dowrite
Members4
hubstaff.members.createCreate organization memberwritehubstaff.members.listList organization membersreadhubstaff.members.list_for_projectList project membersreadhubstaff.members.list_for_teamList team membersread
Screenshots4
hubstaff.screenshots.getGet screenshotreadhubstaff.screenshots.get_for_projectGet screenshotreadhubstaff.screenshots.listList organization screenshotsreadhubstaff.screenshots.list_for_projectList project screenshotsread
Attendance schedules3
hubstaff.attendance_schedules.createCreate attendance schedulewritehubstaff.attendance_schedules.listList organization attendance schedulesreadhubstaff.attendance_schedules.updateUpdate attendance schedulewrite
Manual time requests3
hubstaff.manual_time_requests.getGet manual time requestreadhubstaff.manual_time_requests.listList manual time requestsreadhubstaff.manual_time_requests.update_statusUpdate manual time request statuswrite
Notes3
hubstaff.notes.getGet notereadhubstaff.notes.listList organization notesreadhubstaff.notes.list_for_projectList project notesread
App and URL tracking settings2
hubstaff.app_and_url_tracking_settings.listList member Track Apps & URLs settingsreadhubstaff.app_and_url_tracking_settings.updateUpdate member Track Apps & URLs settingswrite
Daily tool usages2
hubstaff.daily_tool_usages.listList organization daily tool usagesreadhubstaff.daily_tool_usages.list_for_projectList project daily tool usagesread
Last activities2
hubstaff.last_activities.listList organization last activitiesreadhubstaff.last_activities.list_for_projectList project last activitiesread
Limit histories2
hubstaff.limit_histories.getGet limit historyreadhubstaff.limit_histories.listList organization limit historiesread
Locations2
hubstaff.locations.listList organization locationsreadhubstaff.locations.list_for_projectList project locationsread
Project links2
hubstaff.project_links.list_for_integrationList integration integration project linksreadhubstaff.project_links.list_for_projectList project integration project linksread
Screenshot settings2
hubstaff.screenshot_settings.listList member screenshot frequency settingsreadhubstaff.screenshot_settings.updateUpdate member screenshot frequency settingswrite
Team payments2
hubstaff.team_payments.getGet team paymentreadhubstaff.team_payments.listList organization team paymentsread
Time edit logs2
hubstaff.time_edit_logs.listList organization time edit logsreadhubstaff.time_edit_logs.list_for_projectList project time edit logsread
Time off balances2
hubstaff.time_off_balances.adjustAdd organization time off balance adjustmentswritehubstaff.time_off_balances.listList organization time off balancesread
Timesheets2
hubstaff.timesheets.listList organization timesheetsreadhubstaff.timesheets.update_statusUpdate timesheet statuswrite
Tool classifications2
hubstaff.tool_classifications.listList tool classificationsreadhubstaff.tool_classifications.updateUpdate tool classificationswrite
Tool usages2
hubstaff.tool_usages.listList organization tool usagesreadhubstaff.tool_usages.list_for_projectList project tool usagesread
Users2
hubstaff.users.getGet userreadhubstaff.users.meGet current userread
Attendance shifts1
hubstaff.attendance_shifts.listList organization attendance shiftsread
Audit log entries1
hubstaff.audit_log_entries.listList organization audit log entriesread
Client invoices1
hubstaff.client_invoices.listList organization client invoicesread
Error codes1
hubstaff.error_codes.listList all error codesread
Holidays1
hubstaff.holidays.listList organization holidaysread
Ignored user matches1
hubstaff.ignored_user_matches.listList ignored user matchesread
Ignored user patterns1
hubstaff.ignored_user_patterns.listList ignored user patternsread
Insights activity1
hubstaff.insights_activity.listList activityread
Insights focus time1
hubstaff.insights_focus_time.listList focus timeread
Insights idle time1
hubstaff.insights_idle_time.listList idle timeread
Insights meetings1
hubstaff.insights_meetings.listList meetingsread
Integrations1
hubstaff.integrations.listList organization integrationsread
Job site visits1
hubstaff.job_site_visits.listList organization job site visitsread
Job types1
hubstaff.job_types.listList job typesread
Passive job site visits1
hubstaff.passive_job_site_visits.listList organization passive job site visitsread
Rates1
hubstaff.rates.listList organization ratesread
Smart notifications1
hubstaff.smart_notifications.listList smart notificationsread
Team invoices1
hubstaff.team_invoices.listList organization team invoicesread
Time entries1
hubstaff.time_entries.createCreate time entrywrite
Tool categories1
hubstaff.tool_categories.listList tool categoriesread
Tracking states1
hubstaff.tracking_states.listList organization tracking statesread
Unusual activities1
hubstaff.unusual_activities.listList unusual activitiesread
User links1
hubstaff.user_links.list_for_integrationList integration integration user linksread
Work break projects1
hubstaff.work_break_projects.listList organization work break projectsread
Work time classification1
hubstaff.work_time_classification.listList work time classificationread
Questions
The Hubstaff MCP server, answered.
Is there a Hubstaff MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 180 Hubstaff actions across tasks, teams, time off policies and job sites, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Hubstaff.
What do I need to connect Hubstaff?
Your own Hubstaff OAuth app, registered with Hubstaff (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no Hubstaff 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: "hubstaff" } lists exactly what to paste.
Can an AI agent delete or change things in Hubstaff?
Only if its key allows it, and only with an explicit confirmation. 11 Hubstaff actions are destructive, including delete task, delete team and delete time off request. 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 Hubstaff API limit?
actionlake paces every call to the limits in the Hubstaff service file: 120 calls a minute per connection. Repeated reads are answered from cache (107 Hubstaff actions can be), which never reaches Hubstaff.
What does a Hubstaff action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (180 Hubstaff actions page). Cache hits, searches, dry runs and calls Hubstaff 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 Hubstaff API does it cover?
The Hubstaff V2 API (Swagger 2.0, api.hubstaff.com/v2/docs) at api.hubstaff.com. It is built from Hubstaff's documentation as read on 23 October 2026. 180 actions in 63 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Hubstaff 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 Hubstaff 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 Hubstaff today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.