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

Your AI agent schedules visits from calls, moves a rained-out day, finds subscriptions due and chases past-due tickets. Sign in to FieldRoutes once in your own Cloud Browser. No API key, no developer.

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

9 tools Read and write

Call to route

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

  • Schedule visits from calls

  • Move a rained-out day

  • Find subscriptions due

  • Chase past-due tickets

  • Log notes from the caller

  • Find customers and their history

API through support

Does FieldRoutes have an MCP server or an API? An API through support, and no MCP server.

FieldRoutes has no MCP server and no ChatGPT or Claude app. Its API keys come through FieldRoutes support for each office, and the free tier allows "up to 50 API read requests" a day per office (FieldRoutes knowledge base, checked 8 Nov 2026). Cotlet runs 9 FieldRoutes tools hosted, over MCP for agents and REST for scripts, in your own FieldRoutes login.

  • FieldRoutes issues an API key and token per office through support.
  • Webhooks (Trigger Rules) come only with the Premium API tier.
  • FieldRoutes has no connector in the ChatGPT apps directory or in Claude.
The FieldRoutes API, other options and Cotlet compared
What you need FieldRoutes APIBy handCotlet
Customers and subscriptions 50 reads a day free Yes, one by one Yes
Schedule or move a visit With a key Yes, one by one Yes, after your OK
Past-due tickets With a key Report export Yes
Ask in ChatGPT or Claude No No Yes
Developer needed Yes No No

Checked 8 Nov 2026. Sources: FieldRoutes knowledge base: API access · FieldRoutes API overview · FieldRoutes API integrations

Set up once

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

  1. 1Sign in to FieldRoutes

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

Any MCP client

How to connect FieldRoutes to your AI agent

  1. 1

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

FieldRoutes shares the address https://cotlet.dev/mcp/v1 with every other app you enable, so one connector covers them all. Turned FieldRoutes 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: fieldroutes_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: fieldroutes_write
5 read, 4 write

All 9 FieldRoutes MCP tools

Customers4

Search matches name, phone, street and account number. New customers and notes reach no one, so they run at once.

  • list_customers Customers, searchable by name, phone, address or account number. read

    Returns customers with ID, service address, active subscriptions and balance. Pass the customer_id to the other tools.

    MCP callfieldroutes_read → list_customers

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

    Parameters

    Parameters: list_customers
    NameTypeDescription
    query string string Name, phone, street or account number.
    page integer integer Page number. Default: 1.

    Example response

    {
      "customers": [
        {
          "customer_id": "104822",
          "name": "Dale Whitaker",
          "address": "2214 Peachtree Ln, Marietta, GA",
          "subscriptions": [
            "Quarterly pest"
          ],
          "balance": "0.00"
        }
      ],
      "page": 1
    }
  • get_customer One customer with subscriptions, appointments, tickets and notes. read

    Returns the customer record: subscriptions with next service date, past and upcoming appointments, open tickets and notes.

    MCP callfieldroutes_read → get_customer

    REST endpointGET https://cotlet.dev/api/v1/fieldroutes/customers/{customer_id}

    Parameters

    Parameters: get_customer
    NameTypeDescription
    customer_id string required string Customer ID from list_customers.

    Example input

    {
      "customer_id": "customer_8c41d2"
    }

    Example response

    {
      "customer_id": "104822",
      "name": "Dale Whitaker",
      "subscriptions": [
        {
          "type": "Quarterly pest",
          "next_service": "2026-12-03"
        }
      ],
      "open_tickets": 0,
      "notes": [
        "Dog in back yard"
      ]
    }
  • create_customer Adds a new customer with a service address. write

    Creates the customer record. Search list_customers first so a returning customer does not become a duplicate. Reaches no one, so it runs at once.

    MCP callfieldroutes_write → create_customer

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

    Parameters

    Parameters: create_customer
    NameTypeDescription
    first_name string required string First name.
    last_name string required string Last name.
    address string required string Service address.
    phone string string Phone.
    email string string Email.

    Example input

    {
      "first_name": "first name",
      "last_name": "last name",
      "address": "address"
    }

    Example response

    {
      "customer_id": "105031",
      "name": "Tasha Moore",
      "address": "88 Roswell Rd, Atlanta, GA"
    }
  • add_customer_note Adds a note to a customer record. write

    Appends a note, for example gate code or a pet in the yard, for office and technicians. Reaches no customer, so it runs at once.

    MCP callfieldroutes_write → add_customer_note

    REST endpointPOST https://cotlet.dev/api/v1/fieldroutes/customers/{customer_id}/note

    Parameters

    Parameters: add_customer_note
    NameTypeDescription
    customer_id string required string Customer ID from list_customers.
    note string required string Note text.

    Example input

    {
      "customer_id": "customer_8c41d2",
      "note": "note"
    }

    Example response

    {
      "customer_id": "104822",
      "note_added": "Gate code 4417"
    }

Scheduling4

New and moved appointments wait for your OK; your reminder settings decide what the customer hears. Subscriptions due show what still needs a slot.

  • list_appointments Appointments for a day or range, by technician, route or status. read

    Returns appointments with customer, service type, technician, route, time window and status.

    MCP callfieldroutes_read → list_appointments

    REST endpointGET https://cotlet.dev/api/v1/fieldroutes/appointments

    Parameters

    Parameters: list_appointments
    NameTypeDescription
    date_from string required string ISO date.
    date_to string string ISO date. Default: date_from.
    tech string string Technician name.
    status string string Pending, Completed, Cancelled.
    page integer integer Page number. Default: 1.

    Example input

    {
      "date_from": "date from"
    }

    Example response

    {
      "appointments": [
        {
          "appointment_id": "881204",
          "customer": "Monica Reyes",
          "service": "Mosquito treatment",
          "tech": "Brandon P.",
          "date": "2026-11-10",
          "window": "AM",
          "status": "Pending"
        }
      ],
      "page": 1
    }
  • schedule_appointment Schedules a service visit for a customer. writeasks first

    Creates the appointment for the service type on the day and window you choose. Your FieldRoutes reminder settings decide whether the customer hears about it. By default you confirm each call; you can switch that off for this tool.

    MCP callfieldroutes_write → schedule_appointment

    REST endpointPOST https://cotlet.dev/api/v1/fieldroutes/customers/{customer_id}/appointment/schedule

    Parameters

    Parameters: schedule_appointment
    NameTypeDescription
    customer_id string required string Customer ID from list_customers.
    service string required string Service type as in your office settings.
    date string required string ISO date.
    window string string AM, PM or a time.
    tech string string Technician name.

    Example input

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

    Example response

    {
      "appointment_id": "881377",
      "customer": "Dale Whitaker",
      "service": "Re-service",
      "date": "2026-11-11",
      "window": "PM",
      "status": "Pending"
    }
  • reschedule_appointment Moves an appointment to another day, window or technician. writeasks first

    Moves the appointment, for example off a rained-out day. Your reminder settings decide whether the customer hears about it. By default you confirm each call; you can switch that off for this tool.

    MCP callfieldroutes_write → reschedule_appointment

    REST endpointPOST https://cotlet.dev/api/v1/fieldroutes/appointments/{appointment_id}/reschedule

    Parameters

    Parameters: reschedule_appointment
    NameTypeDescription
    appointment_id string required string Appointment ID from list_appointments.
    date string required string New ISO date.
    window string string AM, PM or a time.
    tech string string New technician. Default: unchanged.

    Example input

    {
      "appointment_id": "881204",
      "date": "2026-11-12",
      "window": "AM"
    }

    Example response

    {
      "appointment_id": "881204",
      "date": "2026-11-12",
      "window": "AM",
      "tech": "Brandon P.",
      "status": "Pending"
    }
  • list_subscriptions_due Recurring services due but not yet scheduled. read

    Returns active subscriptions whose next service falls in the range and has no appointment yet, by area.

    MCP callfieldroutes_read → list_subscriptions_due

    REST endpointGET https://cotlet.dev/api/v1/fieldroutes/subscriptions-dues

    Parameters

    Parameters: list_subscriptions_due
    NameTypeDescription
    date_from string required string ISO date.
    date_to string required string ISO date.
    zip string string Only this ZIP code.

    Example input

    {
      "date_from": "date from",
      "date_to": "date to"
    }

    Example response

    {
      "due": [
        {
          "customer_id": "104990",
          "customer": "Ray Gentry",
          "subscription": "Bi-monthly lawn",
          "due": "2026-11-14",
          "zip": "30062"
        }
      ]
    }

Billing1

Unpaid tickets by days past due. Taking payments stays in FieldRoutes.

  • list_unpaid_tickets Open invoices (tickets) with balance and age. read

    Returns tickets with a balance, oldest first, with customer, amount and days past due.

    MCP callfieldroutes_read → list_unpaid_tickets

    REST endpointGET https://cotlet.dev/api/v1/fieldroutes/unpaid-tickets

    Parameters

    Parameters: list_unpaid_tickets
    NameTypeDescription
    min_days_past_due integer integer Only tickets at least this many days past due.

    Example response

    {
      "tickets": [
        {
          "ticket_id": "T-552901",
          "customer": "Monica Reyes",
          "balance": "129.00",
          "days_past_due": 34
        }
      ]
    }
Encrypted, revocable

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

  • What we store

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

  • What your agent gets

    The 9 FieldRoutes tools, never the session cookie.

  • What the session sees

    What your login sees: customers, subscriptions, schedule, tickets.

  • What no tool touches

    Payments, refunds, routes optimization, payroll, deletes.

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

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

When FieldRoutes moves a button on the scheduling screen or renames a customer tab, we fix the tool and your agent calls it the same way. status.cotlet.dev checks the site, console and API every 3 minutes.

2 tools ask first

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

  1. 01 Reads Monday's appointments For the technician you name.
  2. 02 Checks Wednesday Against the same technician's day.
  3. 03 Proposes the moves And lists what does not fit.
  4. 04 Waits, then moves The batch shows up in your Cotlet console first.
Which FieldRoutes actions can be undone
ActionUndo
Schedule an appointmentYes, cancel it in FieldRoutes
Move an appointmentMove it back; a reminder already sent stays sent
Add a customer or noteYes, edit it in FieldRoutes

2 of 9 tools ask first: schedule_appointment, reschedule_appointment. New customers and customer notes reach no customer, so they run at once. You can turn the wait off per tool once you trust a routine.

MCP call
{
  "name": "reschedule_appointment",
  "arguments": {
    "appointment_id": "881204",
    "date": "2026-11-12",
    "window": "AM"
  }
}
REST
curl -X POST https://cotlet.dev/api/v1/fieldroutes/appointments/881204/reschedule \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-11-12","window":"AM"}'
Response
{
  "appointment_id": "881204",
  "date": "2026-11-12",
  "window": "AM",
  "tech": "Brandon P.",
  "status": "Pending"
}

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

About $31 a monthfor a pest and lawn company with 6 technicians, 5,350 credits. Your FieldRoutes plan stays as it is.

A month of FieldRoutes office work for a 6-technician company, in credits
JobCallsCredits
Appointment scheduled from a call2 × 901,800
Rain day moved15 × 3450
Subscriptions due, weekly2 × 480
Past-due tickets, weekly8 × 4320
Customer note logged2 × 601,200
Cloud Browser, 30 days1,500
Total5,350
  • 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 current FieldRoutes package

FieldRoutes publishes no stop 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

FieldRoutes MCP server on GitHub, Zapier or hosted: which to use The API needs support, a key and a developer.

Other ways to connect FieldRoutes, checked 8 Nov 2026
OptionWhat it doesWhere it stops
FieldRoutes APICustomers, appointments, subscriptions and tickets for your own developer.Key per office through support; 50 reads a day on the free tier; you build and host the code.
Third-party MCP serversCommunity servers on GitHub built on the API.Need the same office API key first; you run them yourself.
By handEvery screen of FieldRoutes, one stop at a time.Your office's time.

If you already have a Premium API key and a developer, building on the API is cheaper for syncing data. To schedule, move rain days and chase tickets from ChatGPT or Claude this week, Cotlet works in the FieldRoutes 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 FieldRoutes tools go to contact@cotlet.dev.

FieldRoutes MCP server: questions

How do I get access?

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

How do I connect FieldRoutes to ChatGPT or Claude?

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

What can ChatGPT do in FieldRoutes?

With Cotlet, ChatGPT, Claude and other AI agents handle jobs like these in FieldRoutes: move a rained-out day; book re-services from calls; fill next week's routes. 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 FieldRoutes?

No. FieldRoutes has no ChatGPT or Claude connector of its own and FieldRoutes 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 schedule appointments in FieldRoutes?

Yes, with Cotlet. ChatGPT finds the customer and schedules the service on the day and window you want, for example a re-service after a call. Scheduling waits for your OK by default.

Can ChatGPT reschedule a rained-out day in FieldRoutes?

Yes, with Cotlet. ChatGPT reads the day's appointments for a technician and moves them to the day you name, after your OK, and lists what does not fit.

Can ChatGPT find unpaid invoices in FieldRoutes?

Yes, with Cotlet. ChatGPT lists tickets with a balance by days past due, with the customer's contact details, so your office knows whom to call.

Do I need a FieldRoutes API key to use Cotlet?

No. Cotlet works through your own FieldRoutes login, so you do not need an office key from support or the Premium tier. It can do what your login can do in FieldRoutes.

Does it change my routes?

No. Cotlet schedules and moves appointments; route building and optimization stay in FieldRoutes, the way your office runs them today.

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 FieldRoutes?

No. Cotlet is independent and not affiliated with FieldRoutes or its owner ServiceTitan.

Hand the FieldRoutes office to your agent.

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