Connecting Trak to Claude
Trak has a native connector for Claude (and any other AI assistant that supports the MCP protocol). Once connected, you can ask Claude questions about your jobs, quotes, invoices, and schedules, or get it to draft quotes, log expenses, close tasks, upload photos to jobs, and more, all in plain English.
This guide covers what you can do with the connector, how to set it up, and how it handles your data.
Using ChatGPT instead of Claude? The setup's a bit different.
Setting it up
- In Trak: Company Settings → Data Management → API Settings. Copy your API v2 Auth Key. No key yet? Generate one there.
- In Claude: Settings → Connectors → Add custom connector.
-
Paste this URL, swapping in your key for
YOUR_KEY:https://mcp.trak.co/u/YOUR_KEY/mcp - Save. Claude will confirm the connection.
That's it. From any Claude conversation you can now ask things like "what's on the calendar this week?" or "draft a quote for the Fitzroy job."
On the API key. It's yours, and everything the connector does happens as you. Revoke or rotate the key in Trak and the connector stops working until you paste in the new URL.
On confirmations. Anything that changes data in Trak (writes, deletes) gets a confirmation prompt in Claude first. Nothing gets created, edited, or deleted without you saying yes in the chat.
What you can do
The connector gives Claude 88 tools across 17 areas of Trak. Below is grouped by what people actually ask for, not by API structure.
Ask questions about your business
You don't need to know which tool does what. Just ask. All of these work today:
- "What jobs am I working on this week?"
- "Show me overdue invoices."
- "What's on the calendar Monday?"
- "Who's booked on the Fitzroy job this week?"
- "What's ACME's phone number?"
- "Find the SWMS for the asbestos work."
- "Show me the photos on job 4471."
- "What happened yesterday?" (activity feed)
- "When did Bob last sign on to the Smith St job?"
-
"Search for clients in Preston."
Financial analysis
Every part of the money side of Trak is readable through the connector, plus Trak's built-in profitability report, in one tool call.
- "What's the P&L on job 4471?" uses
get_job_profitability. One call returns quoted revenue, invoiced revenue, expenses, purchase orders, material orders, labour cost, and profit or loss for that job. - "How many hours has Bob logged on the Fitzroy job this month?"
- "Show me unpaid invoices and what's been paid against them."
- "Total spend on job 12 across POs, materials, expenses, and labour."
- "Recent payments received."
- "Which day dockets are still in Draft?"
Timesheets store hours in minutes, not dollars. For dollar labour cost per job, ask for job profitability instead. Trak applies your rate cards server-side and hands back the computed labour cost as part of the P&L.
Create things
Draft, log, and file things in Trak without leaving the chat.
Jobs. "Create a job called '31 Smith St bathroom' for client ACME, starting next Monday, assign Bob and Sarah." Claude calls create_job , checks the details with you, then creates it.
Clients and contacts. "Add ACME Building Co as a new client in Melbourne with John Doe as the primary contact, phone 0400 000 000." Uses create_client (contacts can be added or updated separately too).
Quotes. "Draft a quote to ACME for the Fitzroy job: 2 hours labour at $110/hr, plus 4 doors at $200 each, GST inclusive." Uses create_quote . Handles line items, sections, m² and m³ items, cut-tally items, and SKU items pulled straight from your product list.
Invoices. "Invoice quote 102." Uses create_invoice . Trak builds the invoice from the quote's line items. One catch: Trak's API doesn't support editing an existing invoice, so to change one you void it and re-invoice.
Material and purchase orders. "Order 20 x 90mm pipe from Reece for job 4471" or "Raise a PO to the electrician for the Fitzroy job." Both handle delivery instructions, SKU lookups, and per-section pricing.
Expenses. "Log a $67.40 receipt from Bunnings on job 4471 in the 'Materials' account." Uses create_expense . Attach the receipt image via a public URL.
Payments. "Record a $2,500 EFT payment against invoice 53." Uses create_payment . Supports Credit Card, EFTPOS, Bank Transfer, Cash, or Cheque.
Day dockets. "Create a day docket for today on job 4471, with 8 hours labour from me and 3 hours equipment from the excavator rate card."
Timesheets. "Log 8 hours on job 4471 today." Uses create_timesheet_item . Hours are stored in minutes internally.
Scheduler bookings. "Book Bob on the Fitzroy job Monday 8 to 4." Uses create_schedule_booking . Recurring bookings work too.
Tasks. "Create a task for Sarah to check the electrical at job 12 by Friday."
Notes. "Add a note on job 4471 that the concrete pour is delayed to Thursday, pinned."
Report templates. "Create a new safety-check report template with three yes/no questions and a photo upload." Uses create_report_template .
Completed reports. "Submit the pre-start safety check for the Fitzroy job." Uses complete_report . Covers every Trak field type: text, number, multiple choice, date/time, signature, photo upload, location, weather, table.
Edit things
Anything you can create, you can edit too. Just ask in plain English.
- "Mark job 4471 as approved."
- "Change the address on client 5 to 123 New St."
- "Update timesheet 609683: change the hours to 6."
- "Add a new attachment to the quote for the Fitzroy job."
- "Change payment 22 from Cash to Credit Card."
- "Reassign task 15 to Sarah, extend the due date to Friday."
- "Close task 15 with note 'finished, cleaned up.'"
- "Update the completed safety report for job 4471, mark it not-draft."
Editable: jobs, clients, contacts, quotes, tasks, material orders, purchase orders, expenses, day dockets, payments, scheduler bookings, timesheets, completed reports, job notes.
Photos and files
Built for a business that runs off a phone on site, not a desk.
Uploading to a job. "Upload this photo to job 4471" (with the photo attached in the chat). Claude uses upload_file_to_job . Takes public URLs (Trak downloads them) or the raw file straight from the conversation. Up to 10 files per call, around 100 MB per file.
Viewing photos on a job. "Show me the photos on job 9219." Claude calls get_job_files and shows the thumbnails right there in the chat. Your Trak file URLs sit on Trak's public S3 bucket, so they load directly, no download needed. PDFs and other documents show up as clickable links.
Opening a specific file at full size. "Open the third photo full size" calls view_job_file , which fetches the actual bytes and shows the image inline.
Attaching a photo to a note or report. - Report photos (file_upload field): upload the photo to the job first with upload_file_to_job , then reference the resulting job_file_id in the report. Or just give it a public URL directly. - Job note photos: Trak's note attachment field only takes public URLs, not raw files. Got a local photo? Upload it to the job first (Claude handles this) and reference it in the note text.
Deleting a file. "Delete file 8814205 from job 9219" calls delete_job_file . This one's destructive: Claude will confirm loudly before doing it, and there's no undo from the API.
Every tool, by module
For anyone who wants the raw catalogue.
Reading (55 tools)
Identity: get_current_user Jobs: search_jobs, get_job, get_job_notes, get_job_files, view_job_file, search_job_calendar Tasks: search_tasks, get_task Scheduler: search_schedule_bookings SWMS: search_swms, get_swms Clients & Contacts: search_clients, get_client, search_contacts Suppliers: search_suppliers, get_supplier Quotes: search_quotes, get_quote Invoices: search_invoices, get_invoice Material Orders: search_material_orders, get_material_order Purchase Orders: search_purchase_orders, get_purchase_order Expenses: search_expenses, get_expense Reports: search_report_templates, get_report_template, search_completed_reports, get_completed_report Activity Feed: search_activity_feed, get_activity_feed_item Users & Sign-Ons: search_users, get_user, list_user_sign_ons, list_job_sign_ons Notes: get_note Financials: search_timesheets, get_timesheet_item, search_day_dockets, get_day_docket, search_payments, get_payment, get_job_profitability Lookups: list_job_statuses, list_job_types, list_quote_statuses, list_material_order_statuses, list_purchase_order_statuses, list_day_docket_statuses, list_report_statuses, list_booking_statuses, list_teams, list_user_roles
Writing (32 tools)
Jobs: create_job, update_job, upload_file_to_job Tasks: create_task, update_task, close_task Clients & Contacts: create_client, update_client, create_client_contact, update_contact Quotes: create_quote, update_quote Invoices: create_invoice (no update endpoint. Trak requires void + re-invoice for changes) Material Orders: create_material_order, update_material_order Purchase Orders: create_purchase_order, update_purchase_order Expenses: create_expense, update_expense Reports: create_report_template, complete_report, update_completed_report Financials: create_timesheet_item, update_timesheet_item, create_day_docket, update_day_docket, create_payment, update_payment, create_schedule_booking, update_schedule_booking Notes: create_job_note, update_job_note
Deleting (1 tool)
Jobs: delete_job_file
That's the only delete exposed through the connector for now. Everything else still gets deleted in the Trak web or mobile app. Tell us if you need more, and we'll look at adding them.
What's not in the connector yet
- OAuth login. Connection is by API key in the URL for now. OAuth is on the roadmap for the public Anthropic connector directory listing.
- Deleting most resources. Only file delete is exposed. Jobs, quotes, invoices, and the rest still get deleted in the Trak app.
- Product catalogue management. You can reference SKUs in quotes and orders, but creating or editing products happens in Trak directly.
- Recurring jobs, task templates, order templates. You can create these in Trak, just not through the connector yet.
- Compliance documents, subcontractors, custom fields administration, cost centres, rate cards. Read-only or app-only for now.
- Supplier-side contact creation. Only client-side contacts can be created through the connector. Add supplier contacts in the Trak app.
- SWMS writes. You can read SWMS through the connector, but creating and signing them stays in the Trak app. That's a safety-audit call, not a technical one.
Hitting one of these limits a lot? Tell us at feedback@trak.co and we'll add it to the queue.
Safety, permissions, and privacy
- Your permissions, not more. The connector uses your API key, so it can do exactly what you can do in Trak. Can't see a job in the app? The connector can't see it either.
- Confirmations before writes. Claude checks with you before any tool call that changes data.
- Sensitive data stays out of the logs. Each tool call is logged with your API key prefix (the first 8 characters only), the tool name, the parameter keys (not their values), and the response status. Client names, note text, invoice amounts: none of that gets written to logs.
- Rate limits. Trak's API allows 4 requests per second per company, and the connector doesn't add its own limit on top. This only bites if you ask Claude to loop over a lot of jobs at once, like "profitability for every one of my 200 jobs". After the first few dozen you'll start seeing rate-limit errors. Ask in smaller batches instead.
- API key in the URL. Your connection URL contains your API key. Treat it like a password. If it ever leaks, rotate the key in Trak's API Settings and paste the new URL into Claude.
- File URLs are public. Trak stores job files on a public S3 bucket, the same way the Trak app displays them. Anyone with the file URL can view it. That's a Trak platform decision, not something the connector adds.
Troubleshooting
"Trak rejected this request (401). The API key may be invalid or missing permissions." The API key in the URL is wrong or has been rotated. Regenerate the key in Trak's API Settings and update the connector URL in Claude.
"Trak API is currently unavailable. Please try again shortly." Trak's API returned a 5xx or timed out. Wait a moment and try again. Still stuck? Check Trak's status page or contact support.
"The requested Trak resource was not found." The ID you referenced doesn't exist, or you don't have permission to see it.
Claude picks the wrong tool. Two things help: name what you want directly ("close the task" beats "mark it done"), and send a screenshot or link to contact@trak.co so we can sharpen the tool description.
Photos won't upload. Files up to around 100 MB, max 10 per call. Bigger than that? Split into smaller batches. For very large libraries (hundreds of files), we'd point you to a bulk-upload script talking to Trak's API directly rather than through Claude.
What's on the roadmap
- OAuth 2.1 and directory listing. The connector will appear in Anthropic's official connectors directory: one-click connect, no key handling.
- Bulk P&L and portfolio reporting. A tool that batches profitability across many jobs server-side, so you don't hit rate limits.
- Reads and writes for Payments, Compliance Documents, Recurring Jobs, and Product management.
- Selective deletes for jobs, quotes, tasks, and notes, with strong confirmation prompts.
Need More Help?
- Email: contact@trak.co
- Use the support bubble in the bottom-right corner of your Trak platform
- Book a Demo