Servicem8
ServiceM8 helps field service businesses schedule jobs, send quotes, and manage invoices, offering staff mobile apps and real-time job status tracking
Verdict
Common use cases
- Draft quotes and schedule jobs from chat
- Pull client lists for outreach campaigns
- Query asset inventories for maintenance planning
- Retrieve job notes before site visits
- Generate job documents from templates on demand
Integration
- Vendor
- Servicem8
- Category
- other
- Auth
- OAUTH2
- Tools
- 28
- Composio slug
servicem8
Tools
- Create a new Job
Tool to create a new job in servicem8. use when you have gathered all job details and need to push a record. example: "create a quote job for 123 main st with po #1234."
- Delete Job Notedestructive
Tool to delete a specific job note. use when you need to archive a note by its uuid.
- List All Assets
Tool to list all servicem8 assets. use when you need a comprehensive asset registry, including custom fields, for inventory or reporting.
- List All Clients
Tool to list all servicem8 clients. use when you need a complete set of customer records for integrations or reporting.
- List All Document Templates
Tool to list document templates. use when you need to retrieve available template uuids and names before generating job documents.
- List All Forms
Tool to list all servicem8 forms. use when you need to fetch available form templates with optional filters.
- List All Job Notes
Tool to list all job notes in servicem8. use when you need to fetch notes, optionally filtered or paginated.
- List All Job Queues
Tool to list all job queues in servicem8. use when you need to fetch configured queues before dispatching jobs.
- List All Jobs
Tool to list all jobs. use when you need to fetch all job records from your servicem8 account.
- List All Locations
Tool to list all servicem8 locations. use when you need to fetch every configured location for assignments or mapping.
- List All Materials
Tool to list all materials. use when you need a full inventory dump after authenticating with read inventory scope.
- List All Tasks
Tool to list all tasks in a servicem8 account. use when you need to fetch task records, optionally filtered. requires 'read tasks' oauth scope.
- Retrieve Form
Tool to retrieve details of a specific form by its uuid. use when you need up-to-date form metadata given a known form uuid.
- Retrieve Job
Tool to retrieve details of a specific job by its uuid. use when you have the job uuid and need its full record.
- Retrieve Job Activity
Tool to retrieve details of a specific job activity by its uuid. use when you have the job activity uuid and need its full details.
- Retrieve Job Note
Tool to retrieve details of a specific job note by its uuid. use when you have the note uuid (e.g., after listing notes) and need its full record before processing or display.
- Retrieve Job Payment
Tool to retrieve details of a specific job payment by its uuid. use when you have the payment uuid and need its full record and metadata.
- Retrieve Job Queue
Tool to retrieve details of a specific job queue by its uuid. use when you need full queue metadata before dispatching work.
- Retrieve Location
Tool to retrieve details of a specific location by its uuid. use when you already have the location's uuid and need full location details.
- Retrieve ServiceM8 Client
Tool to retrieve details of a specific client by its uuid. use after confirming the client's uuid is valid.
- Retrieve ServiceM8 Material
Tool to retrieve details of a specific material by its uuid. use when you have a material uuid and need current inventory or pricing details.
- Retrieve Staff Member
Tool to retrieve details of a specific staff member by their uuid. use when you need up-to-date staff information given a known staff uuid.
- ServiceM8 Create Job
Tool to create a new job in servicem8. use when you have all job details and need to push a record into servicem8. example: "create a quote job for 123 main st with po #1234."
- ServiceM8 Create Job Note
Tool to create a new job note in servicem8. use when you need to attach additional information to a specific job after obtaining its uuid.
- ServiceM8 Create Job Payment
Tool to create a new job payment in servicem8. use when you have collected payment details and need to record payment against a job. example: "create a 100.00 cash payment for job 123e4567-e89b-12d3-a456-426614174000 at 2023-01-01 13:00:00.
- ServiceM8 Delete Job Paymentdestructive
Tool to delete (archive) a specific job payment by its uuid. use when you need to archive a payment record.
- ServiceM8 Update Job Payment
Tool to update details of an existing job payment. use after confirming the payment uuid and desired changes.
- Update a ServiceM8 Job Note
Tool to update details of an existing job note. use when modifying a note after its creation.
Setup
Setup guide
- 11. Open your Switchy workspace and navigate to Settings > Integrations > Browse MCP Servers. 2. Search for ServiceM8 and click Connect. 3. You'll be redirected to ServiceM8's OAuth consent screen — log in with an admin account that has permission to manage jobs and clients. 4. Grant the requested scopes (typically read/write for jobs, clients, assets, forms, and documents). 5. After authorization, you'll return to Switchy and see a green Connected badge next to ServiceM8. 6. Open any Space, type '@ServiceM8 list all clients' and send — if the MCP replies with client records, the connection is live. 7. To create a job, use a prompt like '@ServiceM8 create a new job for 456 Oak St with PO #5678' and confirm the job appears in your ServiceM8dashboard.
What teammates see: by default, memories from Servicem8 are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Spaces have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Create Quote Job
@ServiceM8 create a new job for 789 Elm Street with PO number Q-2024-03 as a quote. Set the status to pending and add a note that the client requested a site visit next Tuesday.Open in a Space →
List Active Clients
@ServiceM8 list all clients and show me their company names, primary contact emails, and phone numbers. Filter for clients marked as active.Open in a Space →
Pull Asset Registry
@ServiceM8 list all assets including custom fields. Show me asset names, serial numbers, and any warranty expiration dates you find.Open in a Space →
Fetch Job Notes
@ServiceM8 list all job notes from the past 7 days. Include the job UUID, note text, and timestamp for each entry.Open in a Space →
Check Document Templates
@ServiceM8 list all document templates and show me their names and UUIDs. I need to generate an invoice for a completed job.Open in a Space →
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@servicem8 list all active jobs for 123 Main St and show me which technicians are assigned
Found 3 active jobs at 123 Main St: Job #8472 (HVAC maintenance) assigned to Mike Torres, scheduled for tomorrow 9am–11am; Job #8501 (electrical inspection) assigned to Sarah Chen, in progress since 10:15am today; Job #8519 (plumbing quote) unassigned, queued in 'Urgent Requests'. All jobs have the client UUID matching your address search. This is an illustrative example—actual job counts and technician names will reflect your ServiceM8 account data.
This example shows the MCP's ability to filter jobs by property and surface assignment status. Requires OAuth2 scope covering job reads and staff details. Response shape depends on your custom fields and queue configuration; the MCP returns raw ServiceM8 records that the AI then summarizes.
@servicem8 create a quote job for 456 Oak Avenue, PO #2024-Q789, describe it as 'Commercial HVAC system replacement consultation'
Created Job #8534 as a quote for 456 Oak Avenue. Set job description to 'Commercial HVAC system replacement consultation' and attached PO reference #2024-Q789 in the custom PO field. Job is now visible in your ServiceM8 dashboard under the default 'New Quotes' queue, awaiting assignment. UUID: a3f7c8e1-4b29-4d5a-9c12-8f6e2a1b3d4c. This is an illustrative example—actual UUID and queue placement depend on your account setup.
Demonstrates the MCP's write capability to push structured job records. You must have OAuth2 write scope for jobs; the MCP will fail if required fields (like client UUID) are missing. Side-effect: the job immediately appears in your live ServiceM8 queue, so confirm details before running the prompt.
@servicem8 pull all job notes from the last 7 days and summarize recurring customer complaints by category
Retrieved 142 job notes created since January 8. AI analysis identifies three recurring themes: 'Delayed arrival' mentioned in 18 notes (12.7%), primarily tied to traffic issues in the downtown zone; 'Parts unavailable' in 14 notes (9.9%), concentrated around HVAC compressor models; 'Billing questions' in 11 notes (7.7%), mostly about invoice line-item clarity. Remaining notes cover routine status updates. This is an illustrative example—your note volume and complaint patterns will differ based on actual field activity.
Showcases the MCP's ability to fetch time-filtered notes at scale, then leverage the AI's reasoning to surface patterns humans might miss. Requires read scope for job notes. Be aware: large note sets may hit rate limits on the ServiceM8 API; the MCP paginates automatically but processing 1000+ notes can take several seconds.
Use-case deep-dives
When Servicem8 MCP beats manual job creation for dispatch teams
A 3-person HVAC crew runs 8-12 service calls a day, and the office manager spends 20 minutes each morning copying customer details from email or voicemail into Servicem8. The MCP's "Create a new Job" tool lets an AI agent parse inbound requests—"water heater at 456 Oak, PO #7890"—and push the job record in one shot, pulling the client UUID from "List All Clients" if the address matches. This works when your job intake is predictable (address, PO, service type) and you have OAuth2 admin access to grant the MCP write scope. If your crew juggles 40+ jobs a day or needs real-time GPS routing, the 28-tool surface here won't replace a dedicated dispatch system, but it will cut your morning admin block in half. Worth the OAuth setup if you're tired of double-entry between your CRM and Servicem8.
How the Servicem8 MCP surfaces job notes for audit prep
A 6-person electrical contractor bills municipal clients who require line-item documentation for every site visit—photos, timestamps, technician notes. Two weeks before each quarterly audit, the office admin exports job notes from Servicem8, pastes them into a spreadsheet, and cross-references invoice line items. The MCP's "List All Job Notes" tool lets an AI agent pull notes in bulk, filter by date range, and match them to invoice records without the export-paste loop. This scenario assumes your notes follow a consistent tagging convention (job number in the note body, or a custom field the MCP can read). If your notes are freeform prose with no structure, the MCP will fetch them but won't parse them intelligently—you'll still need a human to map notes to invoices. Best fit when you have 50-200 jobs per quarter and a predictable audit cadence.
When to use the Servicem8 MCP for equipment inventory sync
A 4-person property management team oversees 12 commercial buildings, each with 20-30 HVAC units, fire panels, and elevator systems logged in Servicem8 as assets. Every month, the ops lead manually reconciles the Servicem8 asset list against a master spreadsheet to flag missing service dates or expired warranties. The MCP's "List All Assets" tool pulls the full registry—including custom fields like warranty expiration—so an AI agent can compare it to your spreadsheet and surface discrepancies in seconds. This works when your asset records are clean (consistent naming, no duplicate UUIDs) and you have read access to the assets endpoint. If your buildings have 500+ assets or you need real-time IoT sensor data, the MCP won't replace a dedicated CMMS, but it will eliminate the monthly reconciliation grind. Deploy this if your asset count is under 400 and you're already using Servicem8 as your system of record.
Frequently asked
What does the ServiceM8 MCP do in Switchy?
It connects your ServiceM8 field service account so AI can create jobs, manage client records, pull job notes, and list assets or forms. You can ask the AI to draft a quote job for a street address, retrieve all customer records for a report, or check which document templates are available before generating invoices—all without leaving the chat.
Do I need admin access to connect ServiceM8 via OAuth?
Yes. ServiceM8's OAuth flow requires account-owner or admin credentials to authorize Switchy. The integration requests read and write scopes across jobs, clients, assets, and forms, so a standard technician login won't have sufficient permissions. Check your ServiceM8 user role before attempting the connection.
Can the MCP update job statuses or assign technicians?
The current tool set focuses on creating jobs, listing clients and assets, and managing job notes. If you need to change a job's workflow status or reassign it to a different queue, you'll still use ServiceM8's web UI or mobile app. The MCP is best for bulk data pulls and new-job creation from chat.
Why use this instead of ServiceM8's API directly?
The MCP wraps ServiceM8's REST API so you can ask natural-language questions—no curl commands or pagination logic. If your team already has custom scripts that call the API, keep them. If you want to let non-technical staff pull client lists or create jobs by typing a sentence, the MCP is faster.
Who on the team should connect the ServiceM8 integration?
Whoever owns your ServiceM8 account or has admin rights. Once connected, any Switchy workspace member can invoke the tools in chat, but the OAuth token is tied to the connector's ServiceM8 permissions. If that person leaves, you'll need to reconnect under a service account or new admin.