A Model Context Protocol (MCP) server for interacting with Microsoft 365 and Office services through the Graph API
Synchroteam MCP by usefulapi is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Read Synchroteam jobs, customers, sites, equipment and parts; create, schedule and complete jobs.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http synchroteam-mcp-by-usefulapi https://synchroteam.usefulapi.io/mcp
# 2 — ask your agent for something these tools do
# synchroteam_list_customers, synchroteam_get_customer, synchroteam_list_sites and 30 more
Synchroteam MCP by usefulapi costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http synchroteam-mcp-by-usefulapi https://synchroteam.usefulapi.io/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
33 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
List or search customers (name wildcard, e-mail, active flag, change time). Returns name, address, contact, custom fields, tags. GET /customer/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Wildcard name search. |
| string | no | Exact contact e-mail. | |
| active | boolean | no | Active customers (default true); false lists deactivated ones. |
| changed_since | string | no | Only customers modified after this UTC date-time. |
| sort | string | no | — |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
One customer by id, myId, exact name or e-mail, with address, contact, custom fields and tags. GET /customer/details.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which identifier value is. |
| value | string | yes | The identifier. |
List or search sites (a customer's locations): by name, customer, active flag, change time. GET /site/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Wildcard name search. |
| customer_id | integer | no | Only sites of this customer id. |
| customer_my_id | string | no | Only sites of the customer with this myId. |
| active | boolean | no | Active sites (default true). |
| changed_since | string | no | Only sites modified after this UTC date-time. |
| sort | string | no | — |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
One site by id, myId or exact name: address, contact, customer, custom fields, tags. GET /site/details.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which identifier value is. |
| value | string | yes | The identifier. |
List or search pieces of equipment (assets) by name, customer, site, active flag, change time. GET /equipment/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Wildcard name search. |
| customer_id | integer | no | — |
| customer_my_id | string | no | — |
| site_id | integer | no | — |
| site_my_id | string | no | — |
| active | boolean | no | Active equipment (default true). |
| changed_since | string | no | Only equipment modified after this UTC date-time. |
| sort | string | no | — |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
One piece of equipment by id, myId or exact name, with its customer and site. GET /equipment/details.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which identifier value is. |
| value | string | yes | The identifier. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | array | no | One or more job statuses. |
| date_from | string | no | Jobs planned, ongoing or completed on or after this date-time. |
| date_to | string | no | Jobs planned, ongoing or completed on or before this date-time. |
| created_since | string | no | Jobs created on or after this date-time. |
| changed_since | string | no | Jobs modified on or after this date-time. |
| validated_since | string | no | Jobs validated on or after this date-time. |
| my_id | string | no | Exact job myId. |
| user_login | string | no | Technician login. |
| user_id | integer | no | Technician user id. |
| team_id | integer | no | Jobs of technicians in this team id. |
| customer_id | integer | no | — |
| customer_my_id | string | no | — |
| site_id | integer | no | — |
| site_my_id | string | no | — |
| equipment_id | integer | no | — |
| equipment_my_id | string | no | — |
| type_id | integer | no | Job type id. |
| type_name | string | no | Job type name. |
| project_id | string | no | Project id. |
| has_photos | boolean | no | Only jobs that have (true) or lack (false) photos. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which identifier value is. |
| value | string | yes | The identifier. |
Photo links of a job (url, file name, comment, report iteration). Image bytes are never returned. GET /job/photos.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which identifier value is. |
| value | string | yes | The identifier. |
List job types (name, default duration, priority, skills, default report). Use their id or name when creating a job. GET /jobtype/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Types whose name contains this. |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
List users: login, name, profile (technician, manager, administrator), teams, skills, last known location. Passwords are never returned. GET /user/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| team_id | integer | no | Only users of this team id. |
| team_name | string | no | Only users of this team name. |
| skilled_trade | string | no | Only users with this skill. |
| show | string | no | Default active. |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
One user by login or id. GET /user/details.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which identifier value is. |
| value | string | yes | The identifier. |
List teams with member counts and tags. GET /team/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Teams whose name contains this. |
| show | string | no | — |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
List the parts and services catalog (reference, name, price, category, tax, tracked/serialized flags, type). GET /part/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category_id | integer | no | — |
| category_name | string | no | — |
| is_tracked | boolean | no | Only parts tracked (true) or not tracked (false) in inventory. |
| is_serializable | boolean | no | — |
| status | string | no | — |
| type | string | no | — |
| changed_since | string | no | Only parts modified after this UTC date-time. |
| sort | string | no | — |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
One part or service by id or reference. GET /part/details.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which identifier value is. |
| value | string | yes | The identifier. |
List stock depots (warehouses and technician vans). The part quantities of one depot come from synchroteam_get_depot. GET /depot/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Wildcard name search. |
| is_provider | boolean | no | Only depots that are (true) or are not (false) providers. |
| is_default | boolean | no | — |
| sort | string | no | — |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
One stock depot by id, with the quantity of each part it holds. GET /depot/details.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Depot id (a GUID from synchroteam_list_depots). |
List technicians' part requests (urgent, sent, completed, deleted flags). GET /partrequest/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| is_urgent | boolean | no | — |
| is_sent | boolean | no | — |
| is_complete | boolean | no | — |
| is_deleted | boolean | no | — |
| created_since | string | no | Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied. |
| changed_since | string | no | Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied. |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
List invoices (read only): number, status, customer, job, lines, totals. Filter by status, customer, site, job or time. GET /invoice/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | — |
| customer_id | integer | no | — |
| customer_my_id | string | no | — |
| site_id | integer | no | — |
| site_my_id | string | no | — |
| job_id | integer | no | — |
| job_my_id | string | no | — |
| job_num | integer | no | — |
| created_since | string | no | Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied. |
| changed_since | string | no | Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied. |
| paid_since | string | no | Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied. |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
One invoice by id, reference or number, with its lines. GET /invoice/details.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which identifier value is. |
| value | string | yes | The identifier. |
List quotations (read only): number, status, customer, job, lines, totals. GET /quotation/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | — |
| customer_id | integer | no | — |
| customer_my_id | string | no | — |
| site_id | integer | no | — |
| site_my_id | string | no | — |
| job_id | integer | no | — |
| job_my_id | string | no | — |
| job_num | integer | no | — |
| created_since | string | no | Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied. |
| changed_since | string | no | Date-time as yyyy-mm-dd hh:mm:ss (a date alone means midnight). No timezone conversion is applied. |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
One quotation by id, reference or number, with its lines. GET /quotation/details.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| by | string | yes | Which identifier value is. |
| value | string | yes | The identifier. |
List service contracts by name, customer, site, period or active flag. GET /contract/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | — |
| customer_id | integer | no | — |
| customer_my_id | string | no | — |
| site_id | integer | no | — |
| site_my_id | string | no | — |
| start | string | no | Contracts on or after this date (yyyy-mm-dd). |
| end | string | no | Contracts on or before this date (yyyy-mm-dd). |
| active | boolean | no | Active contracts (default true). |
| sort | string | no | — |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
List projects (groups of jobs) by customer, site, equipment or project type. GET /project/list.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customer_id | integer | no | — |
| customer_my_id | string | no | — |
| site_id | integer | no | — |
| site_my_id | string | no | — |
| equipment_id | integer | no | — |
| equipment_my_id | string | no | — |
| type_id | integer | no | — |
| type_name | string | no | — |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| start_date | string | no | Range start (requires end_date). |
| end_date | string | no | Range end (requires start_date). |
| activity_type_name | string | no | Exact activity type name. |
| activity_type_category | string | no | — |
| user_id | integer | no | — |
| user_login | string | no | — |
| team_id | integer | no | — |
| sort | string | no | — |
| sort_order | string | no | Sort order (default ascending; invoices and quotations default to descending). |
| page | integer | no | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| page_size | integer | no | Results per page, 1-100 (default 25). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Customer name. |
| address | string | no | Full address on one line (e.g. '6605 Fisher Avenue, Falls Church, VA 22046, United States'). |
| addressComplement | string | no | Complementary address line (unit, floor...). |
| my_id | string | no | Your own reference for this customer. |
| contact_first_name | string | no | — |
| contact_last_name | string | no | — |
| contact_email | string | no | — |
| contact_phone | string | no | — |
| contact_fax | string | no | — |
| vat_number | string | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | integer | yes | Customer id (synchroteam_list_customers). |
| name | string | no | — |
| address | string | no | Full address on one line (e.g. '6605 Fisher Avenue, Falls Church, VA 22046, United States'). |
| addressComplement | string | no | Complementary address line (unit, floor...). |
| contact_first_name | string | no | — |
| contact_last_name | string | no | — |
| contact_email | string | no | — |
| contact_phone | string | no | — |
| contact_fax | string | no | — |
| vat_number | string | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Site name. |
| address | string | no | Full address on one line (e.g. '6605 Fisher Avenue, Falls Church, VA 22046, United States'). |
| addressComplement | string | no | Complementary address line (unit, floor...). |
| customer | object | yes | The customer: exactly one of id or myId. |
| my_id | string | no | Your own reference for this site. |
| contact_name | string | no | — |
| contact_email | string | no | — |
| contact_phone | string | no | — |
| contact_mobile | string | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Equipment name. |
| site | object | no | The site: exactly one of id or myId. |
| customer | object | no | The customer (when there is no site): exactly one of id or myId. |
| my_id | string | no | Your own reference for this equipment. |
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 c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| customer | object | yes | The customer: exactly one of id, myId or name. |
| site | object | no | The site: exactly one of id or myId. |
| equipment | object | no | The equipment: exactly one of id or myId. |
| type | object | no | Job type: exactly one of id or name (synchroteam_list_job_types). |
| description | string | no | Job description. |
| priority | string | no | Default medium. |
| my_id | string | no | Your own reference for this job. |
| address | string | no | Full address on one line (e.g. '6605 Fisher Avenue, Falls Church, VA 22046, United States'). |
| addressComplement | string | no | Complementary address line (unit, floor...). |
| contact_first_name | string | no | — |
| contact_last_name | string | no | — |
| contact_email | string | no | — |
| contact_phone | string | no | — |
| contact_mobile | string | no | — |
| skills | array | no | Required skills. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | no | Job id. |
| my_id | string | no | Job myId. |
| num | integer | no | Job number. |
| scheduled_start | string | yes | Start, yyyy-mm-dd hh:mm:ss. |
| scheduled_end | string | yes | End, yyyy-mm-dd hh:mm:ss (after the start). |
| technician | object | yes | The technician: exactly one of id or login (synchroteam_list_users). |
| other_technician_logins | array | no | Logins of additional technicians. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | no | Job id. |
| my_id | string | no | Job myId. |
| num | integer | no | Job number. |
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/c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | no | Job id. |
| my_id | string | no | Job myId. |
| num | integer | no | Job number. |
| actual_start | string | no | Real start, yyyy-mm-dd hh:mm:ss. |
| actual_end | string | no | Real end, yyyy-mm-dd hh:mm:ss. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Synchroteam MCP by usefulapi or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Synchroteam MCP by usefulapi can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.