Skip to main content
Glama
advenimus

SyncroMSP MCP Server

by advenimus

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_AUTHNoEnable or disable OAuth authentication (true or false)true
MCP_PORTNoHTTP listen port (used when MCP_TRANSPORT=http)8080
MCP_BASE_URLNoPublic HTTPS URL for Docker deployment (e.g., https://mcp.yourcompany.com)
MCP_TOOL_MODENoTool mode: 'flat' (all tools) or 'navigation' (lazy domains)flat
MCP_TRANSPORTNoTransport mode: 'stdio' (local) or 'http' (Docker/remote)stdio
SYNCRO_API_KEYYesYour Syncro API token
MCP_AUTH_SECRETNoAccess key for OAuth; minimum 32 characters, required for Docker
SYNCRO_SUBDOMAINYesYour Syncro subdomain (the part before .syncromsp.com)
MCP_I_UNDERSTAND_INSECURENoMust be 'true' to disable auth (foot-gun guard)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
tickets_listA

List tickets with optional filters. Returns paginated results.

tickets_getB

Get a single ticket by ID with full details

tickets_createA

Create a new ticket. Requires customer_id and subject at minimum. Note: line_items cannot be added inline during creation -- use tickets_add_line_item after the ticket is created.

tickets_updateB

Update an existing ticket. Only provided fields will be changed.

tickets_deleteA

DELETE a ticket permanently. This action cannot be undone. The user MUST confirm before executing this.

tickets_get_commentsC

Get all comments on a ticket

tickets_commentA

Add a comment to a ticket. Three comment modes: (1) Email reply: hidden=false, do_not_email=false sends email to customer. (2) Public note: hidden=false, do_not_email=true is visible on portal/invoice but no email sent. (3) Private note: hidden=true, do_not_email=true is tech-only and invisible to customer. Note: subject is REQUIRED or the API returns 422.

tickets_add_line_itemA

Add a line item (product/service charge) to a ticket. Note: name and description are REQUIRED even when using product_id (unlike invoices/estimates which auto-fill from catalog).

tickets_remove_line_itemA

Remove a line item from a ticket. The user MUST confirm before executing this.

tickets_update_line_itemB

Update a line item on a ticket

tickets_add_timerA

Add a timer entry to a ticket for time tracking. Note: start_at is REQUIRED (API returns 422 without it). duration_minutes auto-calculates end_time from start_at.

tickets_update_timerC

Update a timer entry on a ticket

tickets_delete_timerA

Delete a timer entry from a ticket. The user MUST confirm.

tickets_charge_timerB

Charge a timer entry on a ticket (convert to billable line item)

tickets_attach_fileA

Attach a file to a ticket via URL

tickets_delete_attachmentA

Delete an attachment from a ticket. The user MUST confirm.

tickets_printB

Generate a printable PDF for a ticket

tickets_settingsA

Get ticket system settings

tickets_list_commentsA

List ticket comments across multiple tickets as a flat paginated feed (distinct from tickets_get_comments which is scoped to one ticket). Sorted by ticket_id ASC, created_at DESC. Scope via ticket_search_id, ticket_id, customer_id, contact_id, user_id, status, mine, or date filters. comment_created_after/before filter at the comment level; the other date filters operate on the parent ticket.

tickets_blueprints_listA

List Ticket Blueprints available for ticket creation (hidden ones are excluded). Returns id, name, role, and children_count for each blueprint.

tickets_blueprints_applyA

Create tickets from a Blueprint -- spawns the parent ticket and any child tickets defined by the blueprint, all assigned to the given customer. Returns { ticket_id, child_ticket_ids }.

customers_listA

List customers with optional filters. Returns paginated results.

customers_getA

Get a single customer by ID with full details

customers_createA

Create a new customer. Note: phone and mobile fields auto-create entries in the phones sub-resource.

customers_updateB

Update an existing customer. Only provided fields will be changed.

customers_deleteA

DELETE a customer permanently. The user MUST confirm before executing.

customers_latestB

Get the most recently created customers

customers_autocompleteB

Autocomplete search for customers by name or business

customers_list_phonesA

List phone numbers for a customer

customers_create_phoneB

Add a phone number to a customer

customers_update_phoneC

Update a phone number for a customer

customers_delete_phoneA

Delete a phone number from a customer. The user MUST confirm.

assets_listB

List customer assets with optional filters. Returns paginated results.

assets_getA

Get a single asset by ID with full details

assets_list_by_contactA

List the assets linked to one contact, sorted by name. 50 per page.

assets_createA

Create a new customer asset. Note: asset_type_name must match an existing type in the account. Custom properties on create are IGNORED -- set them via assets_update after creation.

assets_updateA

Update an existing asset. Use this to set asset properties (hdd, manufacturer, model, os, cpu_name, ram, last_boot) after creation, as properties on create are ignored. Pass policy_folder_id to move the asset to a same-customer policy folder (see policies_list_folders).

assets_get_patchesB

Get patch information for an asset (available OS/software patches)

assets_get_installed_applicationsA

Get the paginated list of software applications installed on an asset. Returns name, vendor, version, and installed_at (falls back to first-seen date when no explicit install date is recorded).

assets_chat_infoB

Get chat information for assets by IDs

contacts_listC

List contacts with optional filters

contacts_getA

Get a single contact by ID

contacts_createB

Create a new contact for a customer

contacts_updateB

Update an existing contact

contacts_deleteA

DELETE a contact permanently. The user MUST confirm.

invoices_listB

List invoices with optional filters

invoices_getA

Get a single invoice by ID

invoices_createA

Create a new invoice. Note: line_items in the create body are IGNORED by the API -- add line items via invoices_add_line_item after creation.

invoices_updateB

Update an existing invoice

invoices_deleteA

DELETE an invoice permanently. The user MUST confirm.

invoices_get_ticketC

Get the ticket associated with an invoice

invoices_printB

Generate a printable PDF for an invoice

invoices_emailC

Email an invoice to the customer

invoices_publishA

Publish a draft invoice so it becomes a normal invoice. Needs draft invoices turned on for the account (404 otherwise). Refunds cannot be drafts, so Syncro refuses to publish them.

invoices_convert_to_draftA

Turn a published invoice back into a draft so it can be edited before re-publishing. Needs draft invoices turned on for the account (404 otherwise). Syncro refuses (422) if a payment has been applied, the invoice was posted to an accounting provider, or it is a refund.

invoices_add_line_itemA

Add a line item to an invoice. When using product_id, only product_id + quantity are needed -- the API auto-fills name, cost, and price from the product catalog.

invoices_update_line_itemB

Update a line item on an invoice

invoices_delete_line_itemB

Delete a line item from an invoice. The user MUST confirm.

estimates_listB

List estimates with optional filters

estimates_getB

Get a single estimate by ID

estimates_createA

Create a new estimate. Note: line_items array in the create body is IGNORED by the API -- add line items via estimates_add_line_item after creation.

estimates_updateB

Update an existing estimate

estimates_deleteA

DELETE an estimate permanently. The user MUST confirm.

estimates_printB

Generate a printable PDF for an estimate

estimates_emailC

Email an estimate to the customer

estimates_convert_to_invoiceB

Convert an estimate to an invoice

estimates_add_line_itemA

Add a line item to an estimate. When using product_id, only product_id + quantity are needed -- the API auto-fills name, cost, and price from the product catalog.

estimates_update_line_itemC

Update a line item on an estimate

estimates_delete_line_itemB

Delete a line item from an estimate. The user MUST confirm.

appointments_listC

List appointments with optional date range filter

appointments_getB

Get a single appointment by ID

appointments_createA

Create a new appointment. When possible, link to a ticket via ticket_id -- this auto-populates the description with ticket details and the location from the customer address.

appointments_updateC

Update an existing appointment

appointments_deleteA

DELETE an appointment. The user MUST confirm.

appointments_list_typesA

List appointment types

appointments_get_typeB

Get an appointment type by ID

appointments_create_typeB

Create a new appointment type. Note: location_type is REQUIRED (API returns 422 without it). Integer value where 0 = 'customer'.

appointments_update_typeC

Update an appointment type

appointments_delete_typeA

DELETE an appointment type. The user MUST confirm.

products_listC

List products/inventory items

products_getB

Get a product by ID

products_createA

Create a new product. Note: products have no DELETE endpoint -- use products_update with disabled=true instead. Custom properties on create may be ignored -- set via products_update after creation.

products_updateC

Update a product

products_barcodeB

Look up a product by barcode/UPC

products_categoriesB

List product categories

products_add_imagesB

Add images to a product

products_delete_imageC

Delete an image from a product. The user MUST confirm.

products_update_location_qtyC

Update product quantity at a location

products_list_serialsB

List serial numbers for a product

products_create_serialB

Create a serial number for a product

products_update_serialC

Update a product serial

products_attach_serial_to_line_itemC

Attach serial numbers to a line item

products_list_skusC

List SKUs for a product

products_create_skuB

Create a SKU for a product

products_update_skuC

Update a product SKU

products_delete_skuA

DELETE a product SKU. The user MUST confirm.

payments_listC

List payments

payments_getA

Get a single payment by ID

payments_createC

Record a payment. Use apply_payments to distribute a payment across multiple invoices.

payments_list_methodsA

List available payment methods

payments_list_profilesA

List stored payment profiles for a customer

payments_get_profileC

Get a payment profile by ID

payments_create_profileB

Create a stored payment profile for a customer

payments_update_profileC

Update a payment profile

payments_delete_profileA

Delete a payment profile. The user MUST confirm.

leads_listC

List leads/opportunities

leads_getA

Get a lead by ID

leads_createB

Create a new lead. Note: leads have no DELETE endpoint. To soft-delete, use leads_update with disabled=true.

leads_updateC

Update an existing lead

contracts_listD

List contracts

contracts_getA

Get a contract by ID

contracts_createA

Create a new contract. Note: there is no 'notes' field -- 'description' is the only text field. The activity/notes section in the UI is not API-accessible.

contracts_updateB

Update a contract. Note: there is no 'notes' field -- 'description' is the only text field. The activity/notes section in the UI is not API-accessible.

contracts_deleteA

DELETE a contract (soft-delete -- GET returns null after deletion, not 404). The user MUST confirm.

rmm_list_alertsC

List RMM alerts

rmm_get_alertA

Get an RMM alert by ID

rmm_create_alertA

Create an RMM alert. Note: formatted_output (not in swagger) populates the 'Details' field in the UI. description maps to the 'Type' field. Include properties with trigger and description keys to match real alert structure.

rmm_mute_alertB

Mute an RMM alert. Requires mute_for parameter.

rmm_delete_alertA

DELETE (soft-resolve) an RMM alert. Sets resolved=true -- the alert is still readable via GET after deletion. The user MUST confirm.

rmm_schedule_scriptA

Run an RMM script on one asset, now or once at a later time. Recurring schedules are not allowed through the API. No API lists scripts, so get script_id from the script's page in Syncro. This runs code on a customer machine: the user MUST confirm.

scheduling_listC

List recurring invoice schedules

scheduling_getC

Get a schedule by ID

scheduling_createA

Create a recurring invoice schedule. Always create with paused=true to prevent auto-firing during setup. Note: invoice-side fields (invoice name, employee, template, billing terms, memo) are NOT settable via API.

scheduling_updateC

Update a schedule

scheduling_deleteA

DELETE a schedule. The user MUST confirm.

scheduling_add_line_itemA

Add a line item to a recurring invoice schedule. Needs name or product_id. Pricing is in cents (retail_cents, cost_cents) or dollars (price_retail, price_cost). recurring_type_id picks the line type, e.g. 4 bills a customer's assets by type and 9 bills the assets in a policy folder; the type-specific fields only apply to their type.

scheduling_remove_line_itemB

Remove a line item from a schedule. The user MUST confirm.

scheduling_update_line_itemB

Update a line item on a schedule. Takes the same fields as scheduling_add_line_item; only the fields you send change.

time_list_timersA

List ticket timers across tickets. Filter by ticket, technician, timer state, customer, or derived billing status. Use status 'running' or 'paused' to find a timer to pause or stop.

time_create_timerA

Start a live timer on a ticket for the API token's technician (user_id cannot be set). If that technician already has a running or paused timer on the ticket, Syncro resumes and returns it instead of making a second one. Omit billable to use the account default. For logging past work, use tickets_add_timer instead.

time_start_timerA

Start a timer that has never run, or resume a paused one. Syncro returns 422 if the timer is already running or stopped.

time_pause_timerA

Pause a running timer. Syncro returns 422 if the timer is not running.

time_stop_timerA

Stop a running or paused timer. If the account has 'charge timers by default' turned on, this also adds the charge line item to the ticket; otherwise charge it afterwards with tickets_charge_timer (timer_entry_id = this timer's ID). Syncro returns 422 if the timer is already stopped.

time_update_timerA

Change whether a ticket timer is billable. To start, pause, or stop a timer use time_start_timer, time_pause_timer, or time_stop_timer; to change notes or duration use tickets_update_timer.

time_list_timelogsC

List employee time logs (clock in/out records)

time_update_timelogC

Update a time log entry (clock in/out, lunch, notes)

time_get_last_timelogA

Get the most recent time log entry for the current user

admin_searchA

Global search across Syncro (tickets, customers, assets, invoices, etc.)

admin_get_meA

Get the currently authenticated user's profile

admin_list_usersB

List all users/technicians

admin_get_userC

Get a user by ID

admin_get_settingsB

Get system settings

admin_get_tabsA

Get settings tabs configuration

admin_get_printingB

Get printing settings

admin_list_vendorsC

List vendors

admin_get_vendorB

Get a vendor by ID

admin_create_vendorC

Create a new vendor. Note: there is no delete endpoint for vendors.

admin_update_vendorC

Update a vendor

admin_list_wikiC

List wiki pages

admin_get_wikiB

Get a wiki page by ID

admin_create_wikiC

Create a wiki page

admin_update_wikiC

Update a wiki page

admin_delete_wikiA

DELETE a wiki page. The user MUST confirm.

admin_list_portal_usersC

List customer portal users

admin_create_portal_userA

Create a customer portal user. Always provide contact_id to associate a person/name -- without it the portal user shows as an anonymous email.

admin_update_portal_userD

Update a portal user

admin_delete_portal_userB

DELETE a portal user. The user MUST confirm.

admin_create_portal_invitationC

Send a portal invitation to a user

admin_list_canned_responsesC

List canned ticket responses

admin_create_canned_responseB

Create a canned response

admin_update_canned_responseC

Update a canned response

admin_delete_canned_responseA

DELETE a canned response. The user MUST confirm.

admin_get_canned_settingsC

Get canned response settings

admin_caller_idB

Look up caller information by phone number

admin_create_user_deviceB

Register a user device for push notifications

admin_get_user_deviceB

Get a user device by ID

admin_update_user_deviceC

Update a user device

admin_list_ticket_formsC

List new ticket forms

admin_get_ticket_formC

Get a ticket form by ID

admin_process_ticket_formC

Submit/process a new ticket form

admin_list_worksheetsC

List worksheet results for a ticket

admin_get_worksheetC

Get a worksheet result by ID

admin_create_worksheetB

Create a worksheet result for a ticket. Note: worksheet_template_id is required and must reference an existing admin-configured template.

admin_update_worksheetD

Update a worksheet result

admin_delete_worksheetB

DELETE a worksheet result. The user MUST confirm.

admin_list_purchase_ordersC

List purchase orders

admin_get_purchase_orderB

Get a purchase order by ID

admin_create_purchase_orderC

Create a purchase order

admin_update_purchase_orderA

Update a purchase order. Only status, general_notes, shipping_cents, delivery_tracking, and vendor_id can be changed. Syncro rejects the 'Finished' status while any line item is still unreceived.

admin_add_po_attachmentA

Attach a file (vendor quote, invoice, packing slip) to a purchase order. Give exactly one source: file_url (a direct download link; works everywhere), file_path (a file on this computer; local installs only), or file_base64 (only for tiny files you create yourself, like a short CSV, because the whole file must be written out). Allowed: JPEG, PNG, GIF, PDF, CSV, XLS, XLSX. Max 10 MB and 10 files per PO; the extension must match the real file type.

admin_receive_purchase_orderC

Receive a line item on a purchase order

admin_add_po_line_itemA

Add a line item to a purchase order. Note: the product must have maintain_stock=true or the API returns 422.

admin_list_itemsB

List items (global item catalog)

admin_list_line_itemsA

List line items across invoices/tickets

admin_otp_loginB

Login with a one-time password code

policies_list_foldersA

List policy folders for a customer. customer_id is required. Returns paginated results with each folder's parent_id, partial_policy_id (policy attached at this folder), and effective_policy_id (inherited policy).

policies_get_folderA

Get a single policy folder by ID with full details.

policies_create_folderA

Create a new policy folder under an existing parent folder. customer_id, name, and parent_id are all required -- folders cannot be created at the root level (the root folder is auto-created per customer). Use policies_list_folders first to find the root or desired parent folder ID.

policies_update_folderA

Update an existing policy folder. Use this to rename, re-parent, or attach/detach a partial policy. Set partial_policy_id to null to detach the policy at this folder; the effective_policy_id then inherits from the parent.

policies_delete_folderA

DELETE a policy folder permanently. The folder must not have child folders (422 otherwise). This action cannot be undone -- the user MUST confirm before executing this.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.8/5.0

Scored across 190 tools

Disambiguation3/5

Many tools have clearly distinct purposes (e.g., tickets_list vs customers_get), but significant overlaps exist between timer tools (tickets_add_timer vs time_create_timer, time_start_timer, time_stop_timer) and comment tools (tickets_get_comments vs tickets_list_comments), which could lead to misselection despite descriptive hints.

Naming Consistency4/5

Tools mostly follow a consistent domain_prefix_action pattern (e.g., tickets_list, customers_get, invoices_create), but minor deviations like the 'time_' prefix for ticket timers and non-verb names (products_barcode, customers_latest) slightly break the otherwise predictable convention.

Tool Count1/5

With 190 tools, the set is extremely bloated far beyond a well-scoped range. Even for a large platform like SyncroMSP, this volume creates significant noise and makes it difficult for an agent to discover and select the right tool.

Completeness4/5

The surface covers most major domains with CRUD and lifecycle operations, but notable gaps exist such as no assets_delete and no payments_update. Agents can often work around these (e.g., using disabled=true for soft-delete), so the gaps are minor.

Maintenance

ActivityMaintained
ResponsivenessNo issues