ServiceM8 logoMCP server · Work management

ServiceM8 MCP server

ServiceM8 in any MCP client, through Memtro: ServiceM8 does not publish this server. Memtro's ServiceM8 connector reads ServiceM8 through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.

What the model can do

ServiceM8 field service: jobs by status, client and date with descriptions and invoice totals, clients by name, staff by name and role, job queues and categories, and the schedule of booked visits by day and staff member. Can add a note to a job, create, update or delete jobs, create and update clients, book, move or remove staff visits, allocate jobs to staff, and create tasks.

Reads

  • servicem8_list_jobsServiceM8 jobs: job number, status (Quote, Work Order, Unsuccessful, Completed), client, description, work done, key dates and invoice total.
  • servicem8_list_clientsServiceM8 clients by name, with UUID and whether the client is an individual.
  • servicem8_list_staffServiceM8 staff: name, job title and whether hidden from the schedule.
  • servicem8_scheduleBooked visits (job activities, with the uuid servicem8_update_booking and servicem8_delete_booking take) in the ServiceM8 schedule for a day range…
  • servicem8_list_job_queuesServiceM8 job queues (e.g. parts on order, awaiting approval): name, uuid and whether a job in it needs a staff member assigned.
  • servicem8_list_categoriesServiceM8 job categories: name and uuid, for servicem8_create_job and servicem8_update_job.

Acts, when you ask

These change something in ServiceM8. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.

  • servicem8_add_job_noteAdds a note to a ServiceM8 job's diary, as the API key.
  • servicem8_create_jobCreates a job in ServiceM8 (a Quote or a Work Order, normally) for a client, with its site address and description, optionally in a category or queue.
  • servicem8_update_jobChanges a ServiceM8 job: its status (ServiceM8 requires it on every update, so pass the current one when not changing it), description, work done…
  • servicem8_delete_jobDeletes a ServiceM8 job: ServiceM8 hides it from everyone in the app (sets it inactive); it can be restored by reactivating it…
  • servicem8_create_clientCreates a client (a company, or a person by name) in ServiceM8, with an optional address, billing address, website, or as a site of a parent company.
  • servicem8_update_clientChanges a ServiceM8 client: its name (ServiceM8 requires the name on every update, so pass the current one when not renaming), address…
  • servicem8_book_jobBooks a staff member onto a ServiceM8 job for a time (a scheduled visit), which puts it on their schedule and in their app.
  • servicem8_update_bookingMoves a scheduled ServiceM8 visit to a new time or hands it to another staff member (booking uuid from servicem8_schedule).
  • servicem8_delete_bookingRemoves a scheduled visit from a ServiceM8 staff member's schedule (booking uuid from servicem8_schedule).
  • servicem8_allocate_jobAllocates a ServiceM8 job to a staff member without a set time, optionally from a date and in an allocation window…
  • servicem8_delete_allocationRemoves a job allocation from a ServiceM8 staff member (allocation uuid from servicem8_allocate_job).
  • servicem8_create_taskCreates a task in ServiceM8, optionally on a job or a client and assigned to a staff member, with details and a due date.

Connect it

First connect ServiceM8 on Dashboard → Connections, then add Memtro to your client once. The ServiceM8 tools appear alongside the tools of everything else you have connected; nothing is configured per connector.

Claude Code

The Memtro plugin registers the server and a skill for when to use it; the tools are then available in every session.

claude plugin marketplace add memtro-org/claude-memtro
claude plugin install memtro@memtro --config api_key=sk-memtro-...

Cursor

Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.

{
  "mcpServers": {
    "memtro": {
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Claude Desktop

Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…

OpenCode

A remote server in opencode.json.

{
  "mcp": {
    "memtro": {
      "type": "remote",
      "url": "https://platform.memtro.com/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-memtro-..."
      }
    }
  }
}

Pi

One command: pi mcp add memtro --url https://platform.memtro.com/api/mcp --bearer-token-env-var MEMTRO_API_KEY. Tools arrive as mcp__memtro__*. The pi-memtro extension registers it for you, alongside Memtro as the model.

Any other client

Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.

Who may use it

The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared ServiceM8 connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.

Ask it like this

  • › What is booked for Tom tomorrow?
  • › Which work orders are open for Northwind?
  • › What was the invoice total on jobs completed last week?
  • › Add a note to the Northwind boiler job saying the parts arrive Friday.
  • › Book Tom onto the Globex leak job at 9 tomorrow.

Questions

Is this an official ServiceM8 MCP server?
No. It is Memtro's MCP server with Memtro's ServiceM8 connector behind it: the connector reads ServiceM8 through its API with the credentials you connect on Dashboard → Connections, and ServiceM8 publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
What does it cost?
Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
Can it change anything in ServiceM8?
Only when you ask, and only what it has been granted: add a note to a job's diary; create a job (quote or work order) for a client, which may incur ServiceM8 account charges; change a job's status, description, work done, category, queue or queue assignee; delete a job (hidden, restorable); create a client, or change a client's name, address or website; book a staff member onto a job for a time, move or reassign a booking, or remove it; allocate a job to a staff member, or remove an allocation; create a task, on a job or client if wanted, assigned to a staff member. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
Which clients work?
Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.

Other MCP servers · Work management

Where agents remember your company

Sign in, add a provider key, create an API key and point your tools at Memtro. It takes about five minutes.

7-day free trial · card on file, nothing charged until it ends · cancel any time