Synchroteam MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi
Read Synchroteam jobs, customers, sites, equipment and parts; create, schedule and complete jobs.
33 tools: 8 can delete or cancel things and 25 only read.
Scanned Oct 21, 2026
- Deletes or cancels8Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things0Claude Code: ask
- Only reads25Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http synchroteam https://synchroteam.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
33 tools
Deletes or cancels 8Claude Code: deny
synchroteam_complete_jobWRITE: mark a job as completed, optionally with the real start and end times (give actual_start and actual_end together: Synchroteam may refuse the call with only one of them).No findings
Why it is in this group
- The description's first verb is "write": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: mark a job as completed, optionally with the real start and end times (give actual_start and actual_end together: Synchroteam may refuse the call with only one of them). Completing may trigger the account's 'job completed' notifications (email/SMS/webhook to managers, technicians or the customer), as configured in Synchroteam. Identify the job by exactly one of id, my_id or num. POST /job/complete.
Annotations the server declares
- title: Complete job
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
synchroteam_create_customerWRITE: create a new customer (name and an address are required).No findings
Why it is in this group
- The name "synchroteam_create_customer" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a new customer (name and an address are required). If you pass myId and a customer with that myId already exists, nothing is created and an error is returned (use synchroteam_update_customer). POST /customer/send.
Annotations the server declares
- title: Create customer
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
synchroteam_create_equipmentWRITE: create a new piece of equipment under a site or a customer (give exactly one of site or customer; both is refused).No findings
Why it is in this group
- The name "synchroteam_create_equipment" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a new piece of equipment under a site or a customer (give exactly one of site or customer; both is refused). If myId already exists nothing is created and an error is returned. POST /equipment/send.
Annotations the server declares
- title: Create equipment
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
synchroteam_create_jobWRITE: create a new job for a customer (status created, not yet scheduled; use synchroteam_schedule_job to assign a technician and time).No findings
Why it is in this group
- The name "synchroteam_create_job" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a new job for a customer (status created, not yet scheduled; use synchroteam_schedule_job to assign a technician and time). The customer is required (id, myId or exact name); site, equipment and job type are optional. If myId already exists nothing is created and an error is returned. Synchroteam may send the account's 'job created' notifications (email/SMS/webhook, possibly to the customer), as configured. POST /job/send.
Annotations the server declares
- title: Create job
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
synchroteam_create_siteWRITE: create a new site (a location of a customer).No findings
Why it is in this group
- The name "synchroteam_create_site" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: create a new site (a location of a customer). Needs a name, an address and the customer (id or myId). If myId already exists nothing is created and an error is returned. POST /site/send.
Annotations the server declares
- title: Create site
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
synchroteam_schedule_jobWRITE: schedule a job for a technician between two times (also re-schedules a scheduled or paused job).No findings
Why it is in this group
- The name "synchroteam_schedule_job" says "schedule": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: schedule a job for a technician between two times (also re-schedules a scheduled or paused job). Synchroteam may notify technicians and/or customers (email/SMS/webhook) as configured in the account's notification settings (SMS uses the account's paid credits). Identify the job by exactly one of id, my_id or num. POST /job/schedule.
Annotations the server declares
- title: Schedule job
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
synchroteam_start_jobWRITE: mark a job as started (status started, actual start now).No findings
Why it is in this group
- The name "synchroteam_start_job" says "start": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: mark a job as started (status started, actual start now). If the job's technician already has another started job, Synchroteam pauses that one. Starting may trigger the account's 'job started' notifications (email/SMS/webhook to managers, technicians or the customer). Identify the job by exactly one of id, my_id or num. POST /job/start.
Annotations the server declares
- title: Start job
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
synchroteam_update_customerWRITE: change fields of an existing customer by its numeric id.No findings
Why it is in this group
- The name "synchroteam_update_customer" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: change fields of an existing customer by its numeric id. Only the fields you pass are changed; nothing is cleared. The customer id must exist (an unknown id fails). POST /customer/send.
Annotations the server declares
- title: Update customer
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: true
Only reads 25Claude Code: allow
synchroteam_get_customerOne customer by id, myId, exact name or e-mail, with address, contact, custom fields and tags.No findings
Why it is in this group
- The name "synchroteam_get_customer" says "get": a word for reading.
Description, as the server wrote it One customer by id, myId, exact name or e-mail, with address, contact, custom fields and tags. GET /customer/details.
Annotations the server declares
- title: Get customer
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_get_depotOne stock depot by id, with the quantity of each part it holds.No findings
Why it is in this group
- The name "synchroteam_get_depot" says "get": a word for reading.
Description, as the server wrote it One stock depot by id, with the quantity of each part it holds. GET /depot/details.
Annotations the server declares
- title: Get depot
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_get_equipmentOne piece of equipment by id, myId or exact name, with its customer and site.No findings
Why it is in this group
- The name "synchroteam_get_equipment" says "get": a word for reading.
Description, as the server wrote it One piece of equipment by id, myId or exact name, with its customer and site. GET /equipment/details.
Annotations the server declares
- title: Get equipment
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_get_invoiceOne invoice by id, reference or number, with its lines.No findings
Why it is in this group
- The name "synchroteam_get_invoice" says "get": a word for reading.
Description, as the server wrote it One invoice by id, reference or number, with its lines. GET /invoice/details.
Annotations the server declares
- title: Get invoice
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_get_jobOne job by num (the job number shown in the app), id or myId: status, customer/site/equipment, technician(s), schedule, actual times, time entries, parts used, report and custom fi…No findings
Why it is in this group
- The name "synchroteam_get_job" says "get": a word for reading.
Description, as the server wrote it One job by num (the job number shown in the app), id or myId: status, customer/site/equipment, technician(s), schedule, actual times, time entries, parts used, report and custom fields. GET /job/details.
Annotations the server declares
- title: Get job
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_get_job_photosPhoto links of a job (url, file name, comment, report iteration).No findings
Why it is in this group
- The name "synchroteam_get_job_photos" says "get": a word for reading.
Description, as the server wrote it Photo links of a job (url, file name, comment, report iteration). Image bytes are never returned. GET /job/photos.
Annotations the server declares
- title: Get job photos
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_get_partOne part or service by id or reference.No findings
Why it is in this group
- The name "synchroteam_get_part" says "get": a word for reading.
Description, as the server wrote it One part or service by id or reference. GET /part/details.
Annotations the server declares
- title: Get part
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_get_quotationOne quotation by id, reference or number, with its lines.No findings
Why it is in this group
- The name "synchroteam_get_quotation" says "get": a word for reading.
Description, as the server wrote it One quotation by id, reference or number, with its lines. GET /quotation/details.
Annotations the server declares
- title: Get quotation
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_get_siteOne site by id, myId or exact name: address, contact, customer, custom fields, tags.No findings
Why it is in this group
- The name "synchroteam_get_site" says "get": a word for reading.
Description, as the server wrote it One site by id, myId or exact name: address, contact, customer, custom fields, tags. GET /site/details.
Annotations the server declares
- title: Get site
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_get_userOne user by login or id.No findings
Why it is in this group
- The name "synchroteam_get_user" says "get": a word for reading.
Description, as the server wrote it One user by login or id. GET /user/details.
Annotations the server declares
- title: Get user
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_activitiesList time entries and unavailabilities (travel, at work, clock, unavailable) of technicians.No findings
Why it is in this group
- The name "synchroteam_list_activities" says "list": a word for reading.
Description, as the server wrote it List time entries and unavailabilities (travel, at work, clock, unavailable) of technicians. start_date and end_date go together and return anything overlapping that range. GET /activity/list.
Annotations the server declares
- title: List activities
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_contractsList service contracts by name, customer, site, period or active flag.No findings
Why it is in this group
- The name "synchroteam_list_contracts" says "list": a word for reading.
Description, as the server wrote it List service contracts by name, customer, site, period or active flag. GET /contract/list.
Annotations the server declares
- title: List contracts
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_customersList or search customers (name wildcard, e-mail, active flag, change time).No findings
Why it is in this group
- The name "synchroteam_list_customers" says "list": a word for reading.
Description, as the server wrote it List or search customers (name wildcard, e-mail, active flag, change time). Returns name, address, contact, custom fields, tags. GET /customer/list.
Annotations the server declares
- title: List customers
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_depotsList stock depots (warehouses and technician vans).No findings
Why it is in this group
- The name "synchroteam_list_depots" says "list": a word for reading.
Description, as the server wrote it List stock depots (warehouses and technician vans). The part quantities of one depot come from synchroteam_get_depot. GET /depot/list.
Annotations the server declares
- title: List depots
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_equipmentList or search pieces of equipment (assets) by name, customer, site, active flag, change time.No findings
Why it is in this group
- The name "synchroteam_list_equipment" says "list": a word for reading.
Description, as the server wrote it List or search pieces of equipment (assets) by name, customer, site, active flag, change time. GET /equipment/list.
Annotations the server declares
- title: List equipment
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_invoicesList invoices (read only): number, status, customer, job, lines, totals.No findings
Why it is in this group
- The name "synchroteam_list_invoices" says "list": a word for reading.
Description, as the server wrote it List invoices (read only): number, status, customer, job, lines, totals. Filter by status, customer, site, job or time. GET /invoice/list.
Annotations the server declares
- title: List invoices
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_job_typesList job types (name, default duration, priority, skills, default report).No findings
Why it is in this group
- The name "synchroteam_list_job_types" says "list": a word for reading.
Description, as the server wrote it List job types (name, default duration, priority, skills, default report). Use their id or name when creating a job. GET /jobtype/list.
Annotations the server declares
- title: List job types
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_jobsList jobs (simplified: no report, parts or time entries) filtered by status, schedule window, technician, team, customer, site, equipment, job type or project.No findings
Why it is in this group
- The name "synchroteam_list_jobs" says "list": a word for reading.
Description, as the server wrote it List jobs (simplified: no report, parts or time entries) filtered by status, schedule window, technician, team, customer, site, equipment, job type or project. Use synchroteam_get_job for the full record. GET /job/list.
Annotations the server declares
- title: List jobs
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_part_requestsList technicians' part requests (urgent, sent, completed, deleted flags).No findings
Why it is in this group
- The name "synchroteam_list_part_requests" says "list": a word for reading.
Description, as the server wrote it List technicians' part requests (urgent, sent, completed, deleted flags). GET /partrequest/list.
Annotations the server declares
- title: List part requests
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_partsList the parts and services catalog (reference, name, price, category, tax, tracked/serialized flags, type).No findings
Why it is in this group
- The name "synchroteam_list_parts" says "list": a word for reading.
Description, as the server wrote it List the parts and services catalog (reference, name, price, category, tax, tracked/serialized flags, type). GET /part/list.
Annotations the server declares
- title: List parts
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_projectsList projects (groups of jobs) by customer, site, equipment or project type.No findings
Why it is in this group
- The name "synchroteam_list_projects" says "list": a word for reading.
Description, as the server wrote it List projects (groups of jobs) by customer, site, equipment or project type. GET /project/list.
Annotations the server declares
- title: List projects
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_quotationsList quotations (read only): number, status, customer, job, lines, totals.No findings
Why it is in this group
- The name "synchroteam_list_quotations" says "list": a word for reading.
Description, as the server wrote it List quotations (read only): number, status, customer, job, lines, totals. GET /quotation/list.
Annotations the server declares
- title: List quotations
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_sitesList or search sites (a customer's locations): by name, customer, active flag, change time.No findings
Why it is in this group
- The name "synchroteam_list_sites" says "list": a word for reading.
Description, as the server wrote it List or search sites (a customer's locations): by name, customer, active flag, change time. GET /site/list.
Annotations the server declares
- title: List sites
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_teamsList teams with member counts and tags.No findings
Why it is in this group
- The name "synchroteam_list_teams" says "list": a word for reading.
Description, as the server wrote it List teams with member counts and tags. GET /team/list.
Annotations the server declares
- title: List teams
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
synchroteam_list_usersList users: login, name, profile (technician, manager, administrator), teams, skills, last known location.No findings
Why it is in this group
- The name "synchroteam_list_users" says "list": a word for reading.
Description, as the server wrote it List users: login, name, profile (technician, manager, administrator), teams, skills, last known location. Passwords are never returned. GET /user/list.
Annotations the server declares
- title: List users
- readOnlyHint: true
- destructiveHint: false
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.3.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http synchroteam https://synchroteam.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__synchroteam__synchroteam_list_customers",
"mcp__synchroteam__synchroteam_get_customer",
"mcp__synchroteam__synchroteam_list_sites",
"mcp__synchroteam__synchroteam_get_site",
"mcp__synchroteam__synchroteam_list_equipment",
"mcp__synchroteam__synchroteam_get_equipment",
"mcp__synchroteam__synchroteam_list_jobs",
"mcp__synchroteam__synchroteam_get_job",
"mcp__synchroteam__synchroteam_get_job_photos",
"mcp__synchroteam__synchroteam_list_job_types",
"mcp__synchroteam__synchroteam_list_users",
"mcp__synchroteam__synchroteam_get_user",
"mcp__synchroteam__synchroteam_list_teams",
"mcp__synchroteam__synchroteam_list_parts",
"mcp__synchroteam__synchroteam_get_part",
"mcp__synchroteam__synchroteam_list_depots",
"mcp__synchroteam__synchroteam_get_depot",
"mcp__synchroteam__synchroteam_list_part_requests",
"mcp__synchroteam__synchroteam_list_invoices",
"mcp__synchroteam__synchroteam_get_invoice",
"mcp__synchroteam__synchroteam_list_quotations",
"mcp__synchroteam__synchroteam_get_quotation",
"mcp__synchroteam__synchroteam_list_contracts",
"mcp__synchroteam__synchroteam_list_projects",
"mcp__synchroteam__synchroteam_list_activities"
],
"ask": [],
"deny": [
"mcp__synchroteam__synchroteam_create_customer",
"mcp__synchroteam__synchroteam_update_customer",
"mcp__synchroteam__synchroteam_create_site",
"mcp__synchroteam__synchroteam_create_equipment",
"mcp__synchroteam__synchroteam_create_job",
"mcp__synchroteam__synchroteam_schedule_job",
"mcp__synchroteam__synchroteam_start_job",
"mcp__synchroteam__synchroteam_complete_job"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as synchroteam. Review it before you use it.