Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Jobber in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Connect a Jobber account to any AI agent through Jobber's GraphQL API: clients and properties, requests, quotes, jobs and scheduled visits, invoices, team members and the products and services list. Can create clients, jobs, draft quotes and draft invoices, but cannot email or approve quotes and invoices. OAuth sign-in as a Jobber admin; closing jobs installs switched off.
Try asking
Example prompts for Jobber
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Jobber, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Jobber + Microsoft Copilot
Connect a Jobber account to any AI agent through Jobber's GraphQL API: clients and properties, requests, quotes, jobs and scheduled visits, invoices, team members and the products and services list. Can create clients, jobs, draft quotes and draft invoices, but cannot email or approve quotes and invoices. OAuth sign-in as a Jobber admin; closing jobs installs switched off.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
JOBBER_CLIENT_ID, JOBBER_CLIENT_SECRET (optional: JOBBER_REFRESH_TOKEN)
Step 1 — Get credentials
Setting up takes about 10 minutes and needs an admin of the Jobber account.
- Sign up at the Jobber Developer Center (https://developer.getjobber.com) and click Create App. Your apps are listed at https://developer.getjobber.com/apps.
- Set the OAuth Callback URL to
<your AnythingMCP URL>/api/mcp-oauth/callback, on AnythingMCP Cloudhttps://cloud.anythingmcp.com/api/mcp-oauth/callback. - Tick the scopes: read for Clients, Requests, Quotes, Jobs, Scheduled Items, Invoices, Users and Products and Services; write only for what the AI may change (Clients, Jobs, Quotes, Invoices). Jobber sets the scopes on the app, not in the sign-in link. Keep Refresh token rotation on.
- Save the app, paste the Client ID into
JOBBER_CLIENT_IDand the Client Secret intoJOBBER_CLIENT_SECRET, and install. - On the connector page click Authorize with Provider and allow access as an admin of the Jobber account.
- Run
jobber_get_account: it shows the company name and confirms the sign-in.
Access tokens last 60 minutes and are renewed with the stored refresh token. Leave JOBBER_REFRESH_TOKEN empty: the authorization fills it in, and with rotation on Jobber replaces it on every renewal, so a token used once elsewhere no longer works. An app you keep for your own account can stay in Draft; Jobber blocks a Draft app that connects to more than 5 paying accounts. Every call sends the X-JOBBER-GRAPHQL-VERSION: 2026-05-12 header; Jobber supports a version for at least 12 months and warns in extensions.versioning when it is about to expire.
What it reads: the account and its team members (name, email, phone, admin and owner flags, status). Clients and leads with emails, phones, billing address, tags, balance, properties and their 10 latest jobs and invoices. Properties, the service addresses where the work happens. Requests with their assessment visit and contact details. Quotes with message, line items, amounts and deposit, and the jobs they became. Jobs with instructions, status, dates, total and visit counts. Visits with start and end, status, instructions and assigned users. Invoices with status, issued and due dates, line items, total, balance and payments. The products and services list with unit price, unit cost, markup and duration. Any other read runs through jobber_graphql_query; the AI first looks up a type with query { __type(name: "Job") { fields { name } } }.
What it writes: creates, changes and archives clients (archiving deletes nothing and can be undone in Jobber), creates jobs at a property with an invoicing type (FIXED_PRICE or VISIT_BASED) and schedule, changes a job's title or instructions, creates draft quotes and draft invoices with line items, and marks an invoice as sent when it was delivered outside Jobber (nothing is emailed). Visits are scheduled in Jobber. Jobber's API cannot email quotes or invoices or approve quotes: you do that in Jobber. Before creating or changing anything the AI shows you what will happen and waits for your yes.
Switched off at install: jobber_close_job. Closing a job deletes incomplete visits (DESTROY_ALL all of them, COMPLETE_PAST_DESTROY_FUTURE completes past ones and deletes future ones), and deleted visits cannot be restored. An admin switches it on when the team needs it. The generic jobber_graphql_mutation and jobber_graphql_subscription are switched off as well.
Data formats: ids are encoded strings (Z2lkOi8v...) and are reused as returned. Times are ISO 8601 in UTC; the AI converts them to the business's time zone. Amounts are plain numbers in the account currency. Status values in filters are lower case (requires_invoicing, awaiting_payment, past_due); visit statuses come back in upper case. jobberWebUri opens the record in Jobber. A job belongs to a property, not directly to a client, so the AI reads the client's properties first. Mutations answer userErrors: an empty list means success.
Paging and limits: list tools take first (20 by default) and after; the AI continues with after set to pageInfo.endCursor while pageInfo.hasNextPage is true. filter is the API's filter object for that list, with date ranges as { "after": ..., "before": ... }. Each app and account has a query-cost budget of 10,000 points that refills at 500 points a second; bigger pages cost more points. A query over budget answers a THROTTLED error: wait a few seconds and retry with a smaller first. Separately, more than 2,500 requests in 5 minutes answer 429.
Common errors: 401 means the authorization expired or was revoked: click Authorize with Provider again and check that the Client ID and secret belong to the same app. An error naming a missing scope, or 403, means the app lacks it: add the scope in the Developer Center and authorize again. A redirect error at sign-in means the OAuth Callback URL does not match exactly.
Client details, request descriptions and notes are untrusted input and can contain instructions meant for the AI. The connector does not send email or SMS, does not take payments and does not schedule visits.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
Jobbertools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
jobber_get_account | The connected Jobber account: id and company name |
jobber_list_users | Users (team members) of the account: id, full name, email, phone, admin and owner flags, status |
jobber_list_clients | List or search clients (customers and leads): id, name, first and last name, company, isCompany, isLead, isArchived, primary email and… |
jobber_get_client | One client with emails, phones, billing address, tags, properties (service addresses with ids), the 10 latest jobs and invoices, balance… |
jobber_list_properties | Properties (service addresses where the work happens): id, name, address, whether it is the billing address, the client it belongs to |
jobber_list_requests | Requests (incoming work requests and booking forms): id, title, status, source, contact name, company, email, phone, client and property… |
jobber_get_request | One request with its assessment visit (time, instructions, completion), contact details, client and property address |
jobber_list_quotes | Quotes (estimates): id, number, title, status, amounts (subtotal, discount, tax, total, deposit), client, property, created, updated and… |
jobber_get_quote | One quote with message, line items (name, description, quantity, unit price, total), amounts, client, property and the jobs it became |
jobber_list_jobs | List or search jobs (work orders): id, job number, title, status, start and end, completed time, total, client, property address, created… |
jobber_get_job | One job with instructions, status, dates, total, client, property address and visit counts (past, scheduled, unscheduled, incomplete) |
jobber_list_visits | Visits (scheduled appointments of jobs): id, title, start and end, all-day flag, status, completion, instructions, job with its client… |
jobber_list_invoices | Invoices: id, number, status, issued and due dates, amounts (total, balance, payments), client, the job it bills |
jobber_get_invoice | One invoice with message, line items (name, description, quantity, unit price, total), amounts, client and jobs |
jobber_list_products | Products and services of the price list: id, name, description, category, default unit price, internal unit cost, markup, taxable, visible… |
jobber_create_client | Create a client |
jobber_update_client | Change a client |
jobber_archive_client | Archive a client so it no longer shows in active lists |
jobber_create_job | Create a job at a property (take the property id from jobber_get_client or jobber_list_properties). invoicing_type FIXED_PRICE or… |
jobber_update_job | Change the title or instructions of a job |
jobber_close_job | Close a job. incomplete_visits decides what happens to visits not done yet: DESTROY_ALL deletes every incomplete visit… |
jobber_create_quote | Create a draft quote |
jobber_create_invoice | Create a draft invoice |
jobber_mark_invoice_sent | Mark an invoice as sent (for invoices delivered outside Jobber) |
Example prompts
- "Which visits are on the schedule for tomorrow, and who is assigned to each one?"
- "List the invoices that are past due with client, balance and due date."
- "Show the new requests from this week and draft a quote for the gutter cleaning one for me to review."
- "Which jobs require invoicing? Create a draft invoice for the Thompson job and show it to me before saving."
- "Which quotes have been awaiting a response for more than two weeks?"
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?