---
title: "Jobber MCP server for AI agents - actionlake"
description: "Give Claude 251 Jobber actions through one MCP server: invoices, quotes, expenses, users. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/jobber
updated: 2026-10-22
---

Connectors · Accounting & finance

# Jobber MCP server for AI agents.

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

[Connect Jobber free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

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: "jobber.invoices.list",
  intent: "check which Jobber account is connected"
}
# List Jobber invoices · read · 1 upstream call
```

- 251 actions in one signed file
- 91 read look, never change
- 124 write create and update
- 36 wait for a yes destructive, confirmed first

Set up

## Connect Jobber 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 Jobber.
   OAuth 2.0, authorization code. You register your own OAuth app with Jobber, 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, Jobber needs an OAuth app of your own, registered in its developer portal. actionlake has no Jobber app to lend you.
   - `access_token` Access token from one sign-in with your own OAuth app
   - `refresh_token` Refresh token from the same sign-in; the access token is renewed from it
   - `client_id` Jobber app Client ID (Developer Center > your app > App settings)
   - `client_secret` Jobber app Client Secret
   ```
   account { op: "connections.requirements", service: "jobber" }
   # 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: "jobber.invoices.list" }
   # list jobber invoices · read · 1 upstream call
   check { action: "jobber.invoices.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Jobber at a glance

**Sign-in**

OAuth 2.0, authorization code. You register your own OAuth app with Jobber, 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_token` `refresh_token` `client_id` `client_secret`

**Limits we pace to**

2,500 calls per 5 minutes, per connection

**API covered**

Jobber API 2026-09-25`api.getjobber.com`

**Built from**

Jobber's documentation, read 22 October 2026[developer.getjobber.com](https://developer.getjobber.com/docs/) [api.getjobber.com](https://api.getjobber.com/api/graphql%20(introspection,%20X-JOBBER-GRAPHQL-VERSION%202026-09-25))

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

91 of 91 reads, for up to an hour; a write clears what it affects

**Shared entities**

7, so ask can line Jobber up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Jobber.

251 actions in 1 area. Every one carries its effect, so a key can allow the reads and hold the rest.

- **91** read look, never change
- **124** write create and update
- **36** destructive wait for a confirmation

1. ### Field service
   251
   91 read · 124 write · 36 destructive
   List Jobber invoices · List Jobber quotes · List Jobber expenses · List Jobber users

Top actions

## The Jobber API, shaped for agents.

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

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `jobber.invoices.list` List Jobber invoices | List of 100 recently updated invoices satisfying a filter, belonging to the account of the authenticated in Service Provider | read | `finance.invoice.list` 101 connectors |
| `jobber.quotes.list` List Jobber quotes | List of 100 recently updated quotes satisfying a filter, belonging to the account of the authenticated in Service Provider | read | `finance.quote.list` 52 connectors |
| `jobber.expenses.list` List Jobber expenses | Connection of expenses belonging to the account of the authenticated Service Provider | read | `finance.expense.list` 40 connectors |
| `jobber.users.list` List Jobber users | List of 10,000 users satisfying a filter, belonging to the account of the authenticated Service Provider | read | `identity.user.list` 474 connectors |
| `jobber.jobs.list` List Jobber jobs | 100 recently updated jobs of the logged in account. | read | `work.project.list` 109 connectors |
| `jobber.time_sheet_entries.list` List Jobber time sheet entries | All timesheet entries for users on a given day | read | `work.time_entry.list` 59 connectors |
| `jobber.invoices.create` Jobber invoices: create | Create a new invoice | write | `finance.invoice.create` 74 connectors |
| `jobber.quotes.create` Jobber quotes: create | Create a new Quote | write | `finance.quote.create` 52 connectors |
| `jobber.expenses.create` Jobber expenses: create | Create a new expense | write | `finance.expense.create` 36 connectors |
| `jobber.jobs.create` Jobber jobs: create | Create a job | write | `work.project.create` 102 connectors |
| `jobber.invoices.delete` Jobber invoices: delete | Delete an Invoice | destructive | `finance.invoice.delete` 56 connectors |
| `jobber.time_sheet_entries.create` Jobber time sheet entries: create | Create a Timesheet entry | write | `work.time_entry.create` 56 connectors |

Try it

## Prompts to paste into Claude.

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

1. Read read
   Which Jobber invoices are more than 30 days overdue? Group them by customer with the total owed.
   calls `jobber.invoices.list`
2. Write write
   Jobber invoices: create in Jobber. Show me exactly what you will send before you save it.
   calls `jobber.invoices.create`
3. Across systems read
   For each customer, how many invoices are in Jobber and how many tickets in ConnectWise PSA?
   calls `jobber.invoices.list` `connectwise_manage.tickets.list`

Across your systems

## Jobber, joined to the rest of your business.

One `ask` fetches from Jobber and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.

- For each customer, how many invoices are in Jobber and how many tickets in ConnectWise PSA?
  `jobber.invoices.list` + `connectwise_manage.tickets.list`, on `crm.company` · [ConnectWise PSA](https://actionlake.com/connectors/connectwise-psa)
- For each customer, how many invoices are in Jobber and how many tickets in HubSpot CRM?
  `jobber.invoices.list` + `hubspot_crm.tickets.list`, on `crm.company` · [HubSpot CRM](https://actionlake.com/connectors/hubspot-crm)

Also mapped by other connectors `identity.user` **517** `crm.company` **227** `work.project` **116** `finance.invoice` **91** `finance.quote` **45** `work.time_entry` **40** `finance.expense` **26**

ask

```
ask {
  intent: "for each customer, how many invoices are in Jobber and how many tickets in ConnectWise PSA",
  steps: [
    { action: "jobber.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 },
    { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 },
    { join: {
        left: "inv",
        right: "tix",
        on: "crm.company",
        group_by: "inv.company_name",
        select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"]
    } }
  ]
}
```

Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for Jobber

## Destructive actions wait for a yes.

36 Jobber actions are destructive. The first 10:

- Jobber invoices: delete `jobber.invoices.delete`
- Jobber quotes: delete `jobber.quotes.delete`
- Jobber expenses: delete `jobber.expenses.delete`
- Jobber jobs: delete `jobber.jobs.delete`
- Jobber time sheet entries: delete `jobber.time_sheet_entries.delete`
- Jobber clients: delete `jobber.clients.delete`
- Jobber payment records: delete `jobber.payment_records.delete`
- Jobber tasks: delete `jobber.tasks.delete`
- Jobber invoice line items: delete `jobber.invoice_line_items.delete`
- Jobber quote line items: delete `jobber.quote_line_items.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.

do jobber.invoices.delete confirm_policy: **human**

Jobber invoices: delete?

**intent:** the user asked me to jobber invoices: delete

run suspended · waiting for a named person · key _jobber-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "jobber-agent",
  allowed_actions: ["jobber.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "jobber.invoices.delete", approver: "lead@example.com" },
    { match: "jobber.quotes.delete", approver: "lead@example.com" },
    { match: "jobber.expenses.delete", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Jobber only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Jobber costs on actionlake.

Every Jobber action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Jobber 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.

- 1 upstream call per action all 251 Jobber actions
- 51 actions page each page of a long list is one call
- 91 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Jobber action.

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

**Field service 251**

- `jobber.account.get` Get account read
- `jobber.app.disconnect` Jobber app connection: disconnect destructive
- `jobber.app.set_last_sync_date` Jobber app connection: set last sync date write
- `jobber.app_alerts.list` List Jobber app alerts read
- `jobber.app_alerts.update` Jobber app alerts: update write
- `jobber.apps.list` List Jobber apps read
- `jobber.assessment_form_submissions.get` Get a Jobber assessment form submission read
- `jobber.assessments.complete` Jobber assessments: complete write
- `jobber.assessments.create` Jobber assessments: create write
- `jobber.assessments.delete` Jobber assessments: delete destructive
- `jobber.assessments.get` Get a Jobber assessment read
- `jobber.assessments.uncomplete` Jobber assessments: uncomplete write
- `jobber.assessments.update` Jobber assessments: update write
- `jobber.capital_loans.list` List Jobber capital loans read
- `jobber.client_contacts.get` Get a Jobber client contact read
- `jobber.client_emails.list` List Jobber client emails read
- `jobber.client_notes.create` Jobber client notes: create write
- `jobber.client_notes.delete` Jobber client notes: delete destructive
- `jobber.client_notes.update` Jobber client notes: update write
- `jobber.client_phones.list` List Jobber client phones read
- `jobber.client_tags.list` List Jobber client tags read
- `jobber.clients.archive` Jobber clients: archive write
- `jobber.clients.create` Jobber clients: create write
- `jobber.clients.delete` Jobber clients: delete destructive
- `jobber.clients.edit_tags` Jobber clients: edit tags write
- `jobber.clients.find_similar` Jobber clients: find similar read
- `jobber.clients.get` Get a Jobber client read
- `jobber.clients.list` List Jobber clients read
- `jobber.clients.merge` Jobber clients: merge write
- `jobber.clients.metadata` Get Jobber clients metadata read
- `jobber.clients.unarchive` Jobber clients: unarchive write
- `jobber.clients.update` Jobber clients: update write
- `jobber.conversations.get` Get a Jobber conversation read
- `jobber.conversations.list` List Jobber conversations read
- `jobber.crews.add_members` Jobber crews: add members write
- `jobber.crews.create` Jobber crews: create write
- `jobber.crews.delete` Jobber crews: delete destructive
- `jobber.crews.list` List Jobber crews read
- `jobber.crews.move_members` Jobber crews: move members write
- `jobber.crews.remove_members` Jobber crews: remove members write
- `jobber.crews.rename` Jobber crews: rename write
- `jobber.custom_field_configurations.archive` Jobber custom field configurations: archive write
- `jobber.custom_field_configurations.create_area` Jobber custom field configurations: create area write
- `jobber.custom_field_configurations.create_dropdown` Jobber custom field configurations: create dropdown write
- `jobber.custom_field_configurations.create_link` Jobber custom field configurations: create link write
- `jobber.custom_field_configurations.create_numeric` Jobber custom field configurations: create numeric write
- `jobber.custom_field_configurations.create_text` Jobber custom field configurations: create text write
- `jobber.custom_field_configurations.create_true_false` Jobber custom field configurations: create true false write
- `jobber.custom_field_configurations.list` List Jobber custom field configurations read
- `jobber.custom_field_configurations.unarchive` Jobber custom field configurations: unarchive write
- `jobber.custom_field_configurations.update` Jobber custom field configurations: update write
- `jobber.events.create` Jobber events: create write
- `jobber.events.delete` Jobber events: delete destructive
- `jobber.events.get` Get a Jobber event read
- `jobber.events.update` Jobber events: update write
- `jobber.expenses.create` Jobber expenses: create write
- `jobber.expenses.delete` Jobber expenses: delete destructive
- `jobber.expenses.get` Get a Jobber expense read
- `jobber.expenses.list` List Jobber expenses read
- `jobber.expenses.metadata` Get Jobber expenses metadata read
- `jobber.expenses.update` Jobber expenses: update write
- `jobber.imports.get` Get a Jobber import read
- `jobber.imports.list` List Jobber imports read
- `jobber.invoice_line_items.create` Jobber invoice line items: create write
- `jobber.invoice_line_items.delete` Jobber invoice line items: delete destructive
- `jobber.invoice_line_items.update` Jobber invoice line items: update write
- `jobber.invoice_notes.create` Jobber invoice notes: create write
- `jobber.invoice_notes.delete` Jobber invoice notes: delete destructive
- `jobber.invoice_notes.update` Jobber invoice notes: update write
- `jobber.invoice_reminders.create` Jobber invoice reminders: create write
- `jobber.invoice_reminders.delete` Jobber invoice reminders: delete destructive
- `jobber.invoice_reminders.get` Get a Jobber invoice reminder read
- `jobber.invoice_reminders.update` Jobber invoice reminders: update write
- `jobber.invoices.close` Jobber invoices: close write
- `jobber.invoices.create` Jobber invoices: create write
- `jobber.invoices.create_from_job` Jobber invoices: create from job write
- `jobber.invoices.create_from_quote` Jobber invoices: create from quote write
- `jobber.invoices.create_from_visits` Jobber invoices: create from visits write
- `jobber.invoices.delete` Jobber invoices: delete destructive
- `jobber.invoices.get` Get a Jobber invoice read
- `jobber.invoices.list` List Jobber invoices read
- `jobber.invoices.mark_sent` Jobber invoices: mark sent write
- `jobber.invoices.metadata` Get Jobber invoices metadata read
- `jobber.invoices.remove_tax_rate` Jobber invoices: remove tax rate write
- `jobber.invoices.reopen` Jobber invoices: reopen write
- `jobber.invoices.update` Jobber invoices: update write
- `jobber.invoices.update_totals` Jobber invoices: update totals write
- `jobber.job_forms.create` Jobber job forms: create write
- `jobber.job_forms.delete` Jobber job forms: delete destructive
- `jobber.job_forms.get` Get a Jobber job form read
- `jobber.job_forms.list` List Jobber job forms read
- `jobber.job_forms.update` Jobber job forms: update write
- `jobber.job_line_items.create` Jobber job line items: create write
- `jobber.job_line_items.delete` Jobber job line items: delete destructive
- `jobber.job_line_items.reorder` Jobber job line items: reorder write
- `jobber.job_line_items.update` Jobber job line items: update write
- `jobber.job_notes.create` Jobber job notes: create write
- `jobber.job_notes.delete` Jobber job notes: delete destructive
- `jobber.job_notes.update` Jobber job notes: update write
- `jobber.jobs.close` Jobber jobs: close write
- `jobber.jobs.create` Jobber jobs: create write
- `jobber.jobs.create_from_quote` Jobber jobs: create from quote write
- `jobber.jobs.delete` Jobber jobs: delete destructive
- `jobber.jobs.expiring` Get Jobber jobs expiring read
- `jobber.jobs.get` Get a Jobber job read
- `jobber.jobs.list` List Jobber jobs read
- `jobber.jobs.metadata` Get Jobber jobs metadata read
- `jobber.jobs.remove_tax_rate` Jobber jobs: remove tax rate write
- `jobber.jobs.reopen` Jobber jobs: reopen write
- `jobber.jobs.update` Jobber jobs: update write
- `jobber.lead_sources.create` Jobber lead sources: create write
- `jobber.lead_sources.delete` Jobber lead sources: delete destructive
- `jobber.lead_sources.list` List Jobber lead sources read
- `jobber.lead_sources.update` Jobber lead sources: update write
- `jobber.messages.send_email` Jobber messages: send email write
- `jobber.messages.send_sms` Jobber messages: send sms write
- `jobber.payment_disputes.get` Get a Jobber payment dispute read
- `jobber.payment_disputes.list` List Jobber payment disputes read
- `jobber.payment_methods.list` List Jobber payment methods read
- `jobber.payment_records.create` Jobber payment records: create write
- `jobber.payment_records.delete` Jobber payment records: delete destructive
- `jobber.payment_records.get` Get a Jobber payment record read
- `jobber.payment_records.list` List Jobber payment records read
- `jobber.payment_records.refund` Jobber payment records: refund destructive
- `jobber.payment_records.update` Jobber payment records: update write
- `jobber.payment_terms.create` Jobber payment terms: create write
- `jobber.payment_terms.delete` Jobber payment terms: delete destructive
- `jobber.payment_terms.update` Jobber payment terms: update write
- `jobber.payments.list` List Jobber payments read
- `jobber.payout_records.get` Get a Jobber payout record read
- `jobber.payout_records.list` List Jobber payout records read
- `jobber.payroll_periods.list` List Jobber payroll periods read
- `jobber.pipeline_stages.list` List Jobber pipeline stages read
- `jobber.pipelines.list` List Jobber pipelines read
- `jobber.pricebook_items.list` List Jobber pricebook items read
- `jobber.product_notes.create` Jobber product notes: create write
- `jobber.product_notes.delete` Jobber product notes: delete destructive
- `jobber.product_notes.update` Jobber product notes: update write
- `jobber.products.create` Jobber products: create write
- `jobber.products.delete` Jobber products: delete destructive
- `jobber.products.get` Get a Jobber product read
- `jobber.products.list` List Jobber products read
- `jobber.products.update` Jobber products: update write
- `jobber.properties.create` Jobber properties: create write
- `jobber.properties.delete` Jobber properties: delete destructive
- `jobber.properties.get` Get a Jobber propertie read
- `jobber.properties.list` List Jobber properties read
- `jobber.properties.merge` Jobber properties: merge write
- `jobber.properties.update` Jobber properties: update write
- `jobber.quote_line_items.create` Jobber quote line items: create write
- `jobber.quote_line_items.create_text` Jobber quote line items: create text write
- `jobber.quote_line_items.delete` Jobber quote line items: delete destructive
- `jobber.quote_line_items.update` Jobber quote line items: update write
- `jobber.quote_notes.create` Jobber quote notes: create write
- `jobber.quote_notes.delete` Jobber quote notes: delete destructive
- `jobber.quote_notes.update` Jobber quote notes: update write
- `jobber.quote_reminders.complete` Jobber quote reminders: complete write
- `jobber.quote_reminders.delete` Jobber quote reminders: delete destructive
- `jobber.quote_reminders.get` Get a Jobber quote reminder read
- `jobber.quote_reminders.uncomplete` Jobber quote reminders: uncomplete write
- `jobber.quote_reminders.update` Jobber quote reminders: update write
- `jobber.quote_templates.create` Jobber quote templates: create write
- `jobber.quote_templates.delete` Jobber quote templates: delete destructive
- `jobber.quote_templates.get` Get a Jobber quote template read
- `jobber.quote_templates.list` List Jobber quote templates read
- `jobber.quote_templates.update` Jobber quote templates: update write
- `jobber.quotes.approve` Jobber quotes: approve write
- `jobber.quotes.archive` Jobber quotes: archive write
- `jobber.quotes.archive_many` Jobber quotes: archive many write
- `jobber.quotes.create` Jobber quotes: create write
- `jobber.quotes.delete` Jobber quotes: delete destructive
- `jobber.quotes.delete_many` Jobber quotes: delete many destructive
- `jobber.quotes.get` Get a Jobber quote read
- `jobber.quotes.list` List Jobber quotes read
- `jobber.quotes.mark_awaiting_response` Jobber quotes: mark awaiting response write
- `jobber.quotes.metadata` Get Jobber quotes metadata read
- `jobber.quotes.remove_tax_rate` Jobber quotes: remove tax rate write
- `jobber.quotes.unarchive_many` Jobber quotes: unarchive many write
- `jobber.quotes.update` Jobber quotes: update write
- `jobber.quotes.update_lost_reason` Jobber quotes: update lost reason write
- `jobber.quotes.update_totals` Jobber quotes: update totals write
- `jobber.reports.client_balance_overview` Get Jobber reports client balance overview read
- `jobber.reports.client_balances` Jobber reports: client balances read
- `jobber.reports.invoices` Jobber reports: invoices read
- `jobber.reports.lead_source_summary` Jobber reports: lead source summary read
- `jobber.reports.lead_sources` Jobber reports: lead sources read
- `jobber.reports.one_off_jobs` Jobber reports: one off jobs read
- `jobber.reports.quotes` Jobber reports: quotes read
- `jobber.reports.recurring_jobs` Jobber reports: recurring jobs read
- `jobber.reports.requests` Jobber reports: requests read
- `jobber.reports.salespeople` Jobber reports: salespeople read
- `jobber.reports.team_productivity` Jobber reports: team productivity read
- `jobber.reports.visits` Jobber reports: visits read
- `jobber.request_line_items.create` Jobber request line items: create write
- `jobber.request_line_items.delete` Jobber request line items: delete destructive
- `jobber.request_line_items.update` Jobber request line items: update write
- `jobber.request_notes.create` Jobber request notes: create write
- `jobber.request_notes.delete` Jobber request notes: delete destructive
- `jobber.request_notes.update` Jobber request notes: update write
- `jobber.request_settings.get` Get a Jobber request setting read
- `jobber.request_settings.list` List Jobber request settings read
- `jobber.requests.archive` Jobber requests: archive write
- `jobber.requests.create` Jobber requests: create write
- `jobber.requests.delete` Jobber requests: delete destructive
- `jobber.requests.get` Get a Jobber request read
- `jobber.requests.list` List Jobber requests read
- `jobber.requests.metadata` Get Jobber requests metadata read
- `jobber.requests.unarchive` Jobber requests: unarchive write
- `jobber.requests.update` Jobber requests: update write
- `jobber.requests.update_lost_reason` Jobber requests: update lost reason write
- `jobber.routes.daily` Get Jobber routes daily read
- `jobber.routes.list` List Jobber routes read
- `jobber.scheduled_items.list` List Jobber scheduled items read
- `jobber.search.query` Jobber search: query read
- `jobber.tasks.create` Jobber tasks: create write
- `jobber.tasks.delete` Jobber tasks: delete destructive
- `jobber.tasks.get` Get a Jobber task read
- `jobber.tasks.list` List Jobber tasks read
- `jobber.tasks.set_completed` Jobber tasks: set completed write
- `jobber.tasks.update` Jobber tasks: update write
- `jobber.tax_rates.create` Jobber tax rates: create write
- `jobber.tax_rates.create_group` Jobber tax rates: create group write
- `jobber.tax_rates.list` List Jobber tax rates read
- `jobber.time_sheet_entries.create` Jobber time sheet entries: create write
- `jobber.time_sheet_entries.delete` Jobber time sheet entries: delete destructive
- `jobber.time_sheet_entries.get` Get a Jobber time sheet entrie read
- `jobber.time_sheet_entries.list` List Jobber time sheet entries read
- `jobber.time_sheet_entries.start_timer` Jobber time sheet entries: start timer write
- `jobber.time_sheet_entries.stop_timer` Jobber time sheet entries: stop timer write
- `jobber.time_sheet_entries.update` Jobber time sheet entries: update write
- `jobber.time_sheet_users.list` List Jobber time sheet users read
- `jobber.users.get` Get a Jobber user read
- `jobber.users.list` List Jobber users read
- `jobber.vehicles.create` Jobber vehicles: create write
- `jobber.vehicles.delete` Jobber vehicles: delete destructive
- `jobber.vehicles.get` Get a Jobber vehicle read
- `jobber.vehicles.list` List Jobber vehicles read
- `jobber.vehicles.update_many` Jobber vehicles: update many write
- `jobber.visit_form_submissions.get` Get a Jobber visit form submission read
- `jobber.visit_line_items.create` Jobber visit line items: create write
- `jobber.visit_line_items.delete` Jobber visit line items: delete destructive
- `jobber.visit_line_items.update` Jobber visit line items: update write
- `jobber.visits.assign_users` Jobber visits: assign users write
- `jobber.visits.complete` Jobber visits: complete write
- `jobber.visits.create` Jobber visits: create write
- `jobber.visits.delete` Jobber visits: delete destructive
- `jobber.visits.get` Get a Jobber visit read
- `jobber.visits.list` List Jobber visits read
- `jobber.visits.reschedule` Jobber visits: reschedule write
- `jobber.visits.uncomplete` Jobber visits: uncomplete write
- `jobber.visits.update` Jobber visits: update write

Questions

## The Jobber MCP server, answered.

**Is there a Jobber MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 251 Jobber actions, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Jobber.

**What do I need to connect Jobber?**

Your own Jobber OAuth app, registered with Jobber (its client id and client secret), and the access and refresh tokens from one admin sign-in. actionlake has no Jobber 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: "jobber" } lists exactly what to paste.

**Can an AI agent delete or change things in Jobber?**

Only if its key allows it, and only with an explicit confirmation. 36 Jobber actions are destructive, including jobber invoices: delete, jobber quotes: delete and jobber expenses: delete. 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 Jobber API limit?**

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

**What does a Jobber action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (51 Jobber actions page). Cache hits, searches, dry runs and calls Jobber 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 Jobber API does it cover?**

The Jobber API 2026-09-25 at api.getjobber.com. It is built from Jobber's documentation as read on 22 October 2026. 251 actions in 1 area, each one in the signed service file (version 1.0.0).

**Can I combine Jobber with my other systems?**

Yes. ask joins Jobber to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. Jobber maps crm.company, which 227 other connectors also map.

**Does actionlake keep my Jobber data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, 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 Jobber 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.

## More connectors like Jobber

Shares the most action names with

- [Microsoft Dynamics 365 Business Central 47](https://actionlake.com/connectors/microsoft-dynamics-365-business-central)
- [Zoho Billing 46](https://actionlake.com/connectors/zoho-billing)
- [Harvest 40](https://actionlake.com/connectors/harvest)
- [Moneybird 36](https://actionlake.com/connectors/moneybird)
- [ServiceTitan 36](https://actionlake.com/connectors/servicetitan)
- [FreeAgent 32](https://actionlake.com/connectors/freeagent)

Joins with, on shared entities

- [HaloPSA 6](https://actionlake.com/connectors/halopsa)
- [Teamwork 6](https://actionlake.com/connectors/teamwork)
- [Kaseya BMS 6](https://actionlake.com/connectors/kaseya-bms)
- [Productive.io 5](https://actionlake.com/connectors/productive-io)
- [Zuper 5](https://actionlake.com/connectors/zuper)
- [Kantata 5](https://actionlake.com/connectors/kantata)

Browse

- [All Accounting & finance connectors](https://actionlake.com/connectors/category/accounting-and-finance)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Jobber; the name is the vendor's own. Counts are from the Jobber service file, version 1.0.0.

## Give your agent Jobber today.

[Connect Jobber free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

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

---

Source: https://actionlake.com/connectors/jobber
More: https://actionlake.com/llms.txt
