Connect Claude Code to Hello Tracks
Set up in minutes
Choose where it runs
On your computer through your own Claude Code, or hosted in the cloud. The rest of setup adapts to your choice:
Pick what it can do in Hello Tracks
A preset of real Hello Tracks operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.
Connect Hello Tracks
One sign-in. The agent acts through your account, scoped to the operations you picked.
Add your personal MCP link
The last step mints a private MCP URL for this agent and walks you through exactly this, with your real link filled in. The page flips to Connected the moment your Claude Code first calls in. Claude Code connects when a session starts — run claude, or restart a running one.
Run this in your terminal
<your-link> is your personal server URL — setup mints it for you.
Tools Claude Code gets
Hello Tracks
25 toolsReturns the account the API key acts as, its company and the key's id. Any valid key may call it. A wrong, expired, revoked or missing key answers 401.
Returns the key's company: contact details, address, location, settings and teams. Any member of the company may call it.
Lists the company's active members the key may see: admins and company keys see everyone; operators and workers see what the company's visibility settings allow (for example only their own team). The caller is always included. Removed members appear only when asked for by id. No paging: query and max filter the full list.
Returns one member in a list of one. An unknown id, or a member the key may not see, answers 404 (`not_found`, "Member not found"). Removed members of the company are returned, with activeStatus.
Lists the company's jobs. Two modes: - **Day list** (none of limit, skip, createdSince, updatedSince, progress): the jobs of one day, `date` or today in the caller's time zone, ordered by route position, at most 5,000. Archived jobs only with includeArchived=true. - **Paged list** (any of limit, skip, createdSince, updatedSince, progress): all dates unless `date` is given, newest first (by last save, or by creation with createdSince), `limit` default 100, with totalCount and hasMore. Archived jobs are left out unless includeArchived=true. Deleted jobs never come back. Looking up by `id` or `externalId` returns the job whatever its archive status and ignores date and assignee; no match gives an empty list. Workers without the company setting workersViewJobCalendar may only list today (give or take four hours); other dates give 403.
Creates one job (the job object as the body) or several (`{"jobs": [...]}`). A job whose externalId matches an existing job of the company is updated with the fields sent instead of creating a duplicate (upsert), and is set back to normal if it was archived. A job that was deleted in Hellotracks stays deleted: it is not changed, and the answer lists it with `status: "deleted"`. The answer lists one job per job sent, in the same order. Jobs without a location get the location of their place, else their address is geocoded in the background, so the response can still show location 0/0. Jobs that are assigned and dated drop the worker's saved route for that day, workers get the updated jobs, and the company's job webhooks fire. Unknown fields are refused with 400.
Returns the job in `items` (one element), archived ones included. A deleted or unknown job answers 404 (`not_found`, "Job not found").
Updates the job; only the fields sent change. Always notifies the assigned worker and sends route changes; a changed address (without a location) is re-geocoded in the background. An unknown id gives an empty `items` list. Workers may only change today's jobs unless the company allows workersEditJob.
Deletes the job; it no longer appears in any list. Workers are refused; dispatchers only when the company allows dispatchers to delete jobs. Returns the deleted job in `items`; an unknown id gives an empty list.
Archives the job: it leaves the lists unless includeArchived=true and can be restored. Returns the job in `items`. An unknown or deleted id gives an empty list: a deleted job stays deleted, and restore is the way back.
Sets an archived job back to normal. Returns the job in `items`; an unknown id gives an empty list.
Optimizes the order of one member's jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker's route that was optimized in the last 3 hours is returned unchanged.
Lists the places the caller can see. Workers without the company setting workersViewPlaces only see places of their own teams.
Creates a place for the company. Workers only when the company allows workersCreatePlaces. Without teams the place goes to the creator's teams; without a location the address is geocoded in the background. Visits of the last 30 days that match the new place are labeled with it.
Returns the place in `items` (one element). An unknown place, or one the caller cannot see, answers 404 (`not_found`, "Place not found").
Changes the fields sent. extendedData is merged: names sent are set, names sent as null are removed, the others stay. Admins, dispatchers and the company may edit; workers only places they can see when the company allows workersCreatePlaces (403 otherwise).
Deletes one place of the caller's company. Workers are refused. An unknown id, or one that is not a place of the company, gives 403 with the message 'place not found'.
Lists the company's zones (geofences). Workers are refused with 403 (code permission_denied).
Lists clock-in/clock-out entries of the company's members for one day (default today) or a from/until range, with totals. Days are in the caller's time zone; an entry belongs to the day it starts. There is no paging and no limit on the range. Admins, operators and the company key may call it; workers get 403.
Adds a clock-in, and optionally a clock-out, for a member, as the dashboard does. clockIn or clockInAt is required; the clock-out must be after the clock-in. Admins, operators and the company key may call it; workers get 403.
Moves the clock-in and/or clock-out of an entry, or adds the missing clock-out. At least one time field is required. The answer's entry may have a new id. An unknown or foreign entry is answered with 400 invalid_request. Admins, operators and the company key may call it; workers get 403.
Deletes the entry's clock-in and clock-out records for good. An unknown or foreign entry is answered with 400 invalid_request. Admins, operators and the company key may call it; workers get 403.
Lists the company's form templates (active and archived). Workers may call it and see only templates linked to places of their teams.
Lists submitted forms, newest first. limit is applied before the templateId, jobId and placeId filters, so fewer items than limit may come back even when more match. Admins, operators and the company key only; workers get 403 permission_denied.
Returns one submitted form with its answers. An unknown or foreign id is answered with 400 invalid_request. Admins, operators and the company key only; workers get 403 permission_denied.
About Claude Code
Frequently asked questions
More ways to connect
More tools for Claude Code
Use Hello Tracks with other agents
Open your Claude Code agent in one click.
NoClick runs Claude Code for you with Hello Tracks wired in as tools. Connect your account and run.