JobSheet MCP server Let your AI agent run the JobSheet office.

Your AI agent quotes from calls and voicemails, puts jobs on the schedule, invoices done work with UK VAT and chases what is unpaid. Sign in to JobSheet once in your own Cloud Browser. No API, no Zapier.

  • Free 7-day trial, no card
  • Unofficial, not affiliated with JobSheet
JobSheet logo JobSheet Cloud Browser

9 tools Read and write

Call to paid

What can your AI agent do in JobSheet? The office work between the call and the payment.

  • Quote from calls and voicemails

  • Put jobs on the schedule

  • Set up yearly checks

  • Invoice done jobs with VAT

  • Chase unpaid invoices

  • Add companies from Companies House

No public API

Does JobSheet have an MCP server or an API? No public API, no Zapier, and no MCP server.

JobSheet has no MCP server, no ChatGPT or Claude app, no public API and no Zapier app: it connects only to Xero, as a paid add-on, and Companies House (checked 8 Nov 2026). Cotlet runs 9 JobSheet tools hosted, over MCP for agents and REST for scripts, in your own JobSheet login.

  • JobSheet has no API, developer or webhook page.
  • JobSheet has no Zapier app.
  • JobSheet has no connector in the ChatGPT apps directory or in Claude.
The JobSheet API, other options and Cotlet compared
What you need JobSheet APIBy handCotlet
Job sheets and schedule No API Yes, one by one Yes
Quotes and invoices No API Yes, one by one Yes, email after your OK
Unpaid invoices No API Yes Yes
Ask in ChatGPT or Claude No No Yes
Zapier app None None Not needed

Checked 8 Nov 2026. Sources: JobSheet product facts (llms.txt) · JobSheet pricing · JobSheet how-to: Create a job sheet

Set up once

How does the JobSheet MCP server work? Your agent works in your own JobSheet login.

  1. 1Sign in to JobSheet

    Once, in a browser we host for you.

  2. 2Connect your AI agent

    One address in its settings.

  3. 3Hand it the busywork

    It drafts the work, you OK what customers get.

We never keep your JobSheet password, and no quote or invoice is emailed until you approve it. Who can see your session

Any MCP client

How to connect JobSheet to your AI agent

  1. 1

    Sign in to JobSheet in a Cloud Browser. Create a Cotlet account, open JobSheet in its Cloud Browser, sign in with your JobSheet login and press Enable for agents.

  2. 2

    Add the Cotlet address. Enter https://cotlet.dev/mcp/v1 as the MCP server or connector URL in your agent.

  3. 3

    Let the agent in. Chat apps open a Cotlet sign-in page. Editors, n8n and scripts send an API key made in the console.

JobSheet shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned JobSheet on after connecting? Refresh the connector and the 9 tools appear.

Claude
Settings > Connectors > Add custom connector
URL: https://cotlet.dev/mcp/v1/connect

Claude Code:
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
ChatGPT
Settings > Apps & Connectors > Create
MCP server URL: https://cotlet.dev/mcp/v1/connect
Authentication: OAuth
Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": { "Authorization": "Bearer ${env:COTLET_API_KEY}" }
    }
  }
}
Codex
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
n8n
MCP Client Tool (inside an AI Agent)
Transport: HTTP Streamable
URL: https://cotlet.dev/mcp/v1
Auth: Bearer, <your key>
Tool: jobsheet_read
Make, Zapier
Make: MCP Client > Call a tool
Zapier: MCP Client by Zapier > Run Tool
Server URL: https://cotlet.dev/mcp/v1
Token: <your key>
Tool: jobsheet_write
3 read, 6 write

All 9 JobSheet MCP tools

Job sheets3

Job sheets reach only your team, so new jobs and done marks run at once.

  • list_job_sheets Job sheets on the work schedule, by date, engineer or status. read

    Returns job sheets with customer, site address, assigned team member, date and status.

    MCP calljobsheet_read → list_job_sheets

    REST endpointGET https://cotlet.dev/api/v1/jobsheet/job-sheets

    Parameters

    Parameters: list_job_sheets
    NameTypeDescription
    date_from string string ISO date.
    date_to string string ISO date.
    assignee string string Team member.
    status string string Scheduled, Done, Invoiced.
    page integer integer Page number. Default: 1.

    Example response

    {
      "job_sheets": [
        {
          "job_sheet_id": "JS-1042",
          "customer": "Bramwell Heating Ltd",
          "site": "14 Gloucester Rd, Bristol",
          "assignee": "Dan",
          "date": "2026-11-10",
          "status": "Scheduled"
        }
      ],
      "page": 1
    }
  • create_job_sheet Creates a job sheet on the work schedule, once or recurring. write

    Creates the job with description, site, date and team member. JobSheet sends no customer texts, and the job reaches only your team, so it runs at once.

    MCP calljobsheet_write → create_job_sheet

    REST endpointPOST https://cotlet.dev/api/v1/jobsheet/customers/{customer_id}/job-sheets

    Parameters

    Parameters: create_job_sheet
    NameTypeDescription
    customer_id string required string Customer ID from list_customers.
    description string required string What the job is.
    date string required string ISO date.
    assignee string string Team member.
    repeat string string Weekly, Monthly, Yearly or empty.

    Example input

    {
      "customer_id": "customer_8c41d2",
      "description": "description",
      "date": "date"
    }

    Example response

    {
      "job_sheet_id": "JS-1067",
      "customer": "Priya Shah",
      "assignee": "Dan",
      "date": "2026-11-12",
      "repeat": "None",
      "status": "Scheduled"
    }
  • mark_done Marks a job sheet done with a note. write

    Marks the job complete with what was done, ready to invoice. Reaches no one, so it runs at once.

    MCP calljobsheet_write → mark_done

    REST endpointPOST https://cotlet.dev/api/v1/jobsheet/job-sheets/{job_sheet_id}/done/mark

    Parameters

    Parameters: mark_done
    NameTypeDescription
    job_sheet_id string required string Job sheet ID from list_job_sheets.
    note string string What was done.

    Example input

    {
      "job_sheet_id": "job_sheet_8c41d2"
    }

    Example response

    {
      "job_sheet_id": "JS-1042",
      "status": "Done",
      "note": "Replaced 2 radiator valves"
    }

Customers2

Search matches name and postcode. Companies come in from Companies House by number.

  • list_customers Customers, companies and people, searchable by name or postcode. read

    Returns customers with ID, contact, address and open quotes or invoices.

    MCP calljobsheet_read → list_customers

    REST endpointGET https://cotlet.dev/api/v1/jobsheet/customers

    Parameters

    Parameters: list_customers
    NameTypeDescription
    query string string Name or postcode.
    page integer integer Page number. Default: 1.

    Example response

    {
      "customers": [
        {
          "customer_id": "CU-310",
          "name": "Bramwell Heating Ltd",
          "postcode": "BS7 8AA",
          "open_invoices": 1
        }
      ],
      "page": 1
    }
  • create_customer Adds a customer, or imports a company from Companies House. write

    Creates the customer; with a company number it fills the details from Companies House. Reaches no one, so it runs at once.

    MCP calljobsheet_write → create_customer

    REST endpointPOST https://cotlet.dev/api/v1/jobsheet/customers

    Parameters

    Parameters: create_customer
    NameTypeDescription
    name string string Name, for a person.
    company_number string string Companies House number, for a company.
    email string string Email.
    address string string Address.

    Example response

    {
      "customer_id": "CU-344",
      "name": "Avon Lettings Ltd",
      "source": "Companies House"
    }

Quotes and invoices4

Drafts run at once with UK VAT. Emailing a quote or invoice waits for your OK.

  • create_quote Drafts a quote with line items and VAT. write

    Creates the quote from line items or your price book, with UK VAT. Emailing it is a separate step.

    MCP calljobsheet_write → create_quote

    REST endpointPOST https://cotlet.dev/api/v1/jobsheet/customers/{customer_id}/quotes

    Parameters

    Parameters: create_quote
    NameTypeDescription
    customer_id string required string Customer ID from list_customers.
    items array required array Lines: description or price book item, quantity, price, VAT rate.

    Example input

    {
      "customer_id": "CU-339",
      "items": [
        {
          "description": "Consumer unit replacement",
          "quantity": 1,
          "price": "480.00",
          "vat": 20
        },
        {
          "description": "Extra double socket",
          "quantity": 4,
          "price": "40.00",
          "vat": 20
        }
      ]
    }

    Example response

    {
      "quote_id": "Q-0218",
      "customer": "Priya Shah",
      "net": "640.00",
      "vat": "128.00",
      "total": "768.00",
      "status": "Draft"
    }
  • create_invoice Drafts an invoice from a done job sheet or line items. write

    Creates the invoice with UK VAT. Emailing it is a separate step, so drafting runs at once.

    MCP calljobsheet_write → create_invoice

    REST endpointPOST https://cotlet.dev/api/v1/jobsheet/customers/{customer_id}/invoices

    Parameters

    Parameters: create_invoice
    NameTypeDescription
    customer_id string required string Customer ID from list_customers.
    job_sheet_id string string Done job to invoice.
    items array array Lines when not from a job.

    Example input

    {
      "customer_id": "customer_8c41d2"
    }

    Example response

    {
      "invoice_id": "INV-0391",
      "customer": "Bramwell Heating Ltd",
      "total": "312.00",
      "status": "Draft"
    }
  • email_document Emails a quote or invoice to the customer. writeasks first

    Sends the PDF by email the way JobSheet does from its screen. By default you confirm each call; you can switch that off for this tool.

    MCP calljobsheet_write → email_document

    REST endpointPOST https://cotlet.dev/api/v1/jobsheet/documents/{document_id}/email

    Parameters

    Parameters: email_document
    NameTypeDescription
    document_id string required string Quote or invoice ID.

    Example input

    {
      "document_id": "document_8c41d2"
    }

    Example response

    {
      "document": "INV-0391",
      "status": "Sent",
      "sent_to": "accounts@bramwellheating.co.uk"
    }
  • list_unpaid_invoices Sent invoices not yet marked paid, oldest first. read

    Returns unpaid invoices with customer, total and days since sent.

    MCP calljobsheet_read → list_unpaid_invoices

    REST endpointGET https://cotlet.dev/api/v1/jobsheet/unpaid-invoices

    Parameters

    Parameters: list_unpaid_invoices
    NameTypeDescription
    min_days integer integer Only invoices sent at least this many days ago.

    Example response

    {
      "invoices": [
        {
          "invoice_id": "INV-0377",
          "customer": "Tom Hargreaves",
          "total": "186.00",
          "days": 33
        }
      ]
    }
Encrypted, revocable

Who can see my JobSheet session, and how do I revoke it?

  • What we store

    Your signed-in JobSheet profile, AES-256-GCM encrypted, in Finland. No password.

  • What your agent gets

    The 9 JobSheet tools, never the session cookie.

  • What the session sees

    What your login sees: job sheets, schedule, customers, quotes, invoices.

  • What no tool touches

    Credit notes, team members, subscription, Xero settings, deletes.

  • If JobSheet signs you out

    You sign in again yourself, in the same Cloud Browser.

  • How to cut access

    Disable for agents, reset the browser, or change your JobSheet password.

Cotlet never types your password: you sign in yourself, and the agent only uses the session. Our site scores A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory (live results).

Tested every 12 h

What happens when JobSheet changes? We repair the tool; your prompts stay the same.

between tests of the JobSheet reads
12 h
between tests of sends a customer would notice
24 h
for a call to a JobSheet tool paused for repair
$0

When JobSheet moves a button on a job sheet or renames a page, we fix the tool and your agent calls it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.

1 tool asks first

Approvals, undo and mistakes Customers get nothing until you say so.

  1. 01 Reads today's done jobs With what each engineer noted.
  2. 02 Drafts the invoices With your prices and UK VAT.
  3. 03 Lists them for you With totals per customer.
  4. 04 Waits, then emails The batch shows up in your Cotlet console first.
Which JobSheet actions can be undone
ActionUndo
Create a job sheet or quoteYes, edit or delete it in JobSheet
Draft an invoiceYes, before it is sent
Email a quote or invoiceNo, it is in the customer's inbox; issue a credit note in JobSheet

1 of 9 tools ask first: email_document. Job sheets, customers and draft quotes and invoices reach no customer, so they run at once. You can turn the wait off per tool once you trust a routine.

MCP call
{
  "name": "create_quote",
  "arguments": {
    "customer_id": "CU-339",
    "items": [
      {
        "description": "Consumer unit replacement",
        "quantity": 1,
        "price": "480.00",
        "vat": 20
      },
      {
        "description": "Extra double socket",
        "quantity": 4,
        "price": "40.00",
        "vat": 20
      }
    ]
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/jobsheet/customers/CU-339/quotes \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"description":"Consumer unit replacement","quantity":1,"price":"480.00","vat":20},{"description":"Extra double socket","quantity":4,"price":"40.00","vat":20}]}'
Response
{
  "quote_id": "Q-0218",
  "customer": "Priya Shah",
  "net": "640.00",
  "vat": "128.00",
  "total": "768.00",
  "status": "Draft"
}

A cron job or n8n flow can call the same tools over REST at /api/v1/jobsheet with the same key and price, in JSON. Failed calls are free. Each tool row above shows its REST path.

Pay per call

How much does the JobSheet MCP server cost?

About $30 a monthfor an electrical contractor with 4 engineers, 5,140 credits. Your JobSheet plan stays as it is.

A month of JobSheet office work for a 4-engineer contractor, in credits
JobCallsCredits
Quote from a call or voicemail3 × 30900
Job sheet scheduled1 × 80800
Invoices for done jobs, daily5 × 221,100
Invoice emailed1 × 80800
Unpaid invoices, weekly1 × 440
Cloud Browser, 30 days1,500
Total5,140
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works on your JobSheet workspace

JobSheet publishes no job counts, so the month is our example. Dollars at the $29 pack rate.

Cotlet credit packs: price, credits and calls at 10 credits each
Credits Price, one time Calls at 10 credits Per 1,000 credits
5,000 $29 500 $5.80
15,000 $79 1,500 $5.27
32,000 $149 3,200 $4.66
60,000 $249 6,000 $4.15

Only successful calls use credits; failed calls and timeouts cost nothing. At a balance of 0 calls pause, never a surprise charge. Authenticate with the Authorization: Bearer header.

Other options

JobSheet MCP server on GitHub, Zapier or hosted: which to use No API and no Zapier.

Other ways to connect JobSheet, checked 8 Nov 2026
OptionWhat it doesWhere it stops
Xero add-onInvoices from JobSheet to Xero.Paid add-on; accounting only, no jobs or quotes.
Calendar feedYour work schedule in Google or Apple Calendar.Read only; nothing changes in JobSheet.
By handEvery screen of JobSheet, one job at a time.Your evenings.

JobSheet has no API or Zapier app, so there is nothing to connect a script to. To quote, schedule and invoice from ChatGPT or Claude this week, Cotlet works in the JobSheet account you already have.

EU company, since 2019

Who runs Cotlet A company you can look up.

Take Group sp. z o.o. runs Cotlet. It is a software company registered in Poland, EU (VAT PL6342984273), in business since 2019, led by its founders Bart Krawczyk (Co-founder, CTO) and Jake Slugocki (Co-founder, SEO, sales and marketing). Questions about the JobSheet tools go to contact@cotlet.dev.

JobSheet MCP server: questions

How do I get access?

Sign up free at https://cotlet.dev, open JobSheet under Integrations in the console and sign in to JobSheet in its Cloud Browser. The trial starts with your first app and asks for no card.

How do I connect JobSheet to ChatGPT or Claude?

Sign up at cotlet.dev, log in to JobSheet once in its Cloud Browser and add Cotlet to ChatGPT or Claude, following the steps in your console. No API key is needed. ChatGPT and Claude then work in your JobSheet account through Cotlet, in their phone apps too.

What can ChatGPT do in JobSheet?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in JobSheet: quote from a voicemail; put jobs on the schedule; invoice the day's jobs. You ask in plain words, and anything that reaches other people waits for your OK first.

Is there an official ChatGPT or Claude app for JobSheet?

No. JobSheet has no ChatGPT or Claude connector of its own and JobSheet has no official MCP server (checked 8 Nov 2026). Cotlet is an independent one that works in ChatGPT, Claude, Cursor and any MCP client, on your signed-in account.

Can ChatGPT create quotes in JobSheet?

Yes, with Cotlet. ChatGPT finds or adds the customer and drafts the quote from your price book with UK VAT. Emailing it waits for your OK by default.

Can ChatGPT schedule jobs in JobSheet?

Yes, with Cotlet. ChatGPT creates job sheets on the work schedule for the team member and date you name, one-off or recurring, such as a yearly gas safety check.

Can ChatGPT send invoices in JobSheet?

Yes, with Cotlet. ChatGPT drafts invoices for done jobs, emails them after your OK and lists what is still unpaid.

Does it work with the JobSheet Xero add-on?

Yes. Invoices your agent creates are normal JobSheet invoices, so the Xero add-on picks them up the same way.

Does it handle UK VAT?

Yes. Quotes and invoices use JobSheet's own VAT rates, 0, 5 or 20 percent, the same as when you fill them in yourself.

Is the MCP server different from the REST API?

Only in how it is called. Both carry the same 9 tools, inputs, answers, API key and price. Agents use MCP; scripts and HTTP steps use REST.

Is Cotlet affiliated with JobSheet?

No. Cotlet is independent and not affiliated with JobSheet.

Hand the JobSheet office to your agent.

Free 7-day trial with 2,000 credits, no card needed.