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

Your AI agent logs calls as leads, follows up open proposals, fills the crews' schedule and chases unpaid invoices. Sign in to SingleOps once in your own Cloud Browser. No API token, no developer.

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

6 tools Read and write

Call to crew

What can your AI agent do in SingleOps? The office work between the call and the paid invoice.

  • Log calls as leads

  • Follow up open proposals

  • Schedule crew visits

  • Chase unpaid invoices

  • Look up a property's history

  • See what is left to schedule

Lead API only

Does SingleOps have an MCP server or an API? A lead-only API, and no MCP server.

SingleOps has no MCP server, no ChatGPT or Claude app and no Zapier app. Its API only enters leads: "It is not a general-purpose job-creation or read/write API" (SingleOps help, checked 9 Nov 2026). Cotlet runs 6 SingleOps tools hosted, over MCP for agents and REST for scripts, in your own SingleOps login.

  • The SingleOps API token comes by email to support, one per account.
  • SingleOps has no native Zapier integration.
  • SingleOps has no connector in the ChatGPT apps directory or in Claude.
The SingleOps API, other options and Cotlet compared
What you need SingleOps APIBy handCotlet
Create leads Yes, with a token Yes Yes
Proposals and jobs No Yes, one by one Yes
Schedule visits No Yes, one by one Yes, after your OK
Ask in ChatGPT or Claude No No Yes
Developer needed Yes No No

Checked 8 Nov 2026. Sources: SingleOps help: Lead Entry API · SingleOps by Granum · SingleOps help: scheduling visits and tasks

Set up once

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

  1. 1Sign in to SingleOps

    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 SingleOps password, and no visit is scheduled until you approve it. Who can see your session

Any MCP client

How to connect SingleOps to your AI agent

  1. 1

    Sign in to SingleOps in a Cloud Browser. Create a Cotlet account, open SingleOps in its Cloud Browser, sign in with your SingleOps 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.

SingleOps shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned SingleOps on after connecting? Refresh the connector and the 6 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: singleops_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: singleops_write
4 read, 2 write

All 6 SingleOps MCP tools

Clients and leads2

Search by name, address and phone. New leads reach no one, so they run at once.

  • list_clients Clients, searchable by name, address or phone. read

    Returns clients with ID, property address, open proposals and unpaid balance.

    MCP callsingleops_read → list_clients

    REST endpointGET https://cotlet.dev/api/v1/singleops/clients

    Parameters

    Parameters: list_clients
    NameTypeDescription
    query string string Name, address or phone.
    page integer integer Page number. Default: 1.

    Example response

    {
      "clients": [
        {
          "client_id": "SO-40921",
          "name": "Tom and Karen Bedford",
          "address": "4410 Glenwood Ave, Raleigh, NC",
          "open_proposals": 1,
          "balance": "0.00"
        }
      ],
      "page": 1
    }
  • create_lead Creates a lead for a new or existing client. write

    Adds the lead with the request and property, ready for an estimator. Reaches no one, so it runs at once.

    MCP callsingleops_write → create_lead

    REST endpointPOST https://cotlet.dev/api/v1/singleops/leads

    Parameters

    Parameters: create_lead
    NameTypeDescription
    name string required string Client name.
    address string required string Property address.
    phone string string Phone.
    request string required string What they asked for.

    Example input

    {
      "name": "Dr. Alan Pierce",
      "address": "88 Lake Boone Trail, Raleigh, NC",
      "request": "Remove dead oak by driveway"
    }

    Example response

    {
      "lead_id": "LD-8812",
      "client": "Dr. Alan Pierce",
      "request": "Remove dead oak by driveway",
      "status": "New"
    }

Proposals and jobs3

Open proposals by age, accepted jobs with work left to schedule. Scheduling a visit waits for your OK.

  • list_proposals Proposals by status, with total and age. read

    Returns proposals and proposal groups with client, total, status and days since sent.

    MCP callsingleops_read → list_proposals

    REST endpointGET https://cotlet.dev/api/v1/singleops/proposals

    Parameters

    Parameters: list_proposals
    NameTypeDescription
    status string string Draft, Sent, Accepted, Rejected.
    min_days integer integer Only proposals sent at least this many days ago.
    page integer integer Page number. Default: 1.

    Example response

    {
      "proposals": [
        {
          "proposal_id": "P-5521",
          "client": "Maple Ridge HOA",
          "total": "6,800.00",
          "status": "Sent",
          "days_since_sent": 12
        }
      ],
      "page": 1
    }
  • list_jobs Accepted jobs with visits scheduled or still to schedule. read

    Returns jobs with client, work, crew, scheduled visits and whether anything is left to schedule.

    MCP callsingleops_read → list_jobs

    REST endpointGET https://cotlet.dev/api/v1/singleops/jobs

    Parameters

    Parameters: list_jobs
    NameTypeDescription
    to_schedule boolean boolean Only jobs with work left to schedule.
    page integer integer Page number. Default: 1.

    Example response

    {
      "jobs": [
        {
          "job_id": "J-2207",
          "client": "Tom and Karen Bedford",
          "work": "Crown reduction, 2 maples",
          "next_visit": null,
          "to_schedule": true
        }
      ],
      "page": 1
    }
  • schedule_visit Schedules a visit for a job with a crew. writeasks first

    Puts the visit on the calendar the way Scheduling does. Your settings decide whether the client hears about it. By default you confirm each call; you can switch that off for this tool.

    MCP callsingleops_write → schedule_visit

    REST endpointPOST https://cotlet.dev/api/v1/singleops/jobs/{job_id}/visit/schedule

    Parameters

    Parameters: schedule_visit
    NameTypeDescription
    job_id string required string Job ID from list_jobs.
    date string required string ISO date.
    crew string string Crew name.

    Example input

    {
      "job_id": "job_8c41d2",
      "date": "date"
    }

    Example response

    {
      "job_id": "J-2207",
      "visit_id": "V-9930",
      "date": "2026-11-13",
      "crew": "Crew 2",
      "status": "Scheduled"
    }

Invoices1

Unpaid invoices by days past due. Payments stay in SingleOps.

  • list_unpaid_invoices Invoices with a balance, oldest first. read

    Returns invoices with client, balance and days past due from the Invoices page.

    MCP callsingleops_read → list_unpaid_invoices

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

    Parameters

    Parameters: list_unpaid_invoices
    NameTypeDescription
    min_days_past_due integer integer Only invoices at least this many days past due.

    Example response

    {
      "invoices": [
        {
          "invoice_id": "INV-6631",
          "client": "Maple Ridge HOA",
          "balance": "2,400.00",
          "days_past_due": 19
        }
      ]
    }
Encrypted, revocable

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

  • What we store

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

  • What your agent gets

    The 6 SingleOps tools, never the session cookie.

  • What the session sees

    What your login sees: clients, leads, proposals, jobs, invoices.

  • What no tool touches

    Payments, route optimization, timesheets, pricing, deletes.

  • If SingleOps 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 SingleOps 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 SingleOps changes? We repair the tool; your prompts stay the same.

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

When SingleOps moves a button on a job 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 Finds jobs to schedule Accepted, nothing booked yet.
  2. 02 Checks the crew's day On the date you name.
  3. 03 Proposes the visit With crew and date.
  4. 04 Waits, then schedules The visit shows up in your Cotlet console first.
Which SingleOps actions can be undone
ActionUndo
Create a leadYes, reject or edit it in SingleOps
Schedule a visitYes, move or remove it in Scheduling

1 of 6 tools ask first: schedule_visit. New leads 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_lead",
  "arguments": {
    "name": "Dr. Alan Pierce",
    "address": "88 Lake Boone Trail, Raleigh, NC",
    "request": "Remove dead oak by driveway"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/singleops/leads \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Dr. Alan Pierce","address":"88 Lake Boone Trail, Raleigh, NC","request":"Remove dead oak by driveway"}'
Response
{
  "lead_id": "LD-8812",
  "client": "Dr. Alan Pierce",
  "request": "Remove dead oak by driveway",
  "status": "New"
}

A cron job or n8n flow can call the same tools over REST at /api/v1/singleops 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 SingleOps MCP server cost?

About $25 a monthfor a tree care company with 3 crews, 4,380 credits. Your SingleOps plan stays as it is.

A month of SingleOps office work for a 3-crew company, in credits
JobCallsCredits
Lead logged from a call2 × 601,200
Proposals followed up, weekly1 × 440
Visit scheduled2 × 501,000
Unpaid invoices, weekly1 × 440
Property looked up3 × 20600
Cloud Browser, 30 days1,500
Total4,380
  • Free 7-day trial, no card
  • 10 credits per successful call, MCP or REST
  • 50 credits a day for the Cloud Browser
  • Works on any SingleOps plan

SingleOps 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

SingleOps MCP server on GitHub, Zapier or hosted: which to use The API only enters leads.

Other ways to connect SingleOps, checked 8 Nov 2026
OptionWhat it doesWhere it stops
Lead Entry APIWeb form leads straight into SingleOps.Leads only; token from support; a developer wires it up.
Third-party MCP serversCommunity servers on GitHub.Built on the same lead-only API; you run them yourself.
By handEvery screen of SingleOps, one job at a time.Your office's time.

If you only need web form leads in SingleOps, the Lead Entry API does that. To follow up proposals, schedule crews and chase invoices from ChatGPT or Claude this week, Cotlet works in the SingleOps 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 SingleOps tools go to contact@cotlet.dev.

SingleOps MCP server: questions

How do I get access?

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

How do I connect SingleOps to ChatGPT or Claude?

Sign up at cotlet.dev, log in to SingleOps 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 SingleOps account through Cotlet, in their phone apps too.

What can ChatGPT do in SingleOps?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in SingleOps: log calls as leads; follow up proposals; fill next week. 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 SingleOps?

No. SingleOps has no ChatGPT or Claude connector of its own and SingleOps has no official MCP server (checked 9 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 leads in SingleOps?

Yes, with Cotlet. ChatGPT logs calls and emails as SingleOps leads with the property and request, ready for your estimator.

Can ChatGPT follow up proposals in SingleOps?

Yes, with Cotlet. ChatGPT lists proposals sent a while ago that are still open, with their totals, so your office knows whom to call.

Can ChatGPT schedule visits in SingleOps?

Yes, with Cotlet. ChatGPT finds accepted jobs with nothing scheduled and books visits with the crew you name, after your OK.

Is this the same SingleOps now under Granum?

Yes. SingleOps is now SingleOps by Granum, with the same app at app.singleops.com. Cotlet works in that app with your own login.

Is the MCP server different from the REST API?

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

Is Cotlet affiliated with SingleOps?

No. Cotlet is independent and not affiliated with SingleOps or its owner Granum.

Hand the SingleOps office to your agent.

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