Syncro MCP Tools Reference
Table of Contents
With the Syncro MCP Server, you can do the following directly from your AI tool of choice:
- Tickets: See, search, and filter every ticket by Organization or status. Create, update, log time.
- Invoicing: Pull invoices by Organization, amount, or status. Create, add line items, email and print.
- Customer Organizations: Look up Organization and End User records in seconds. Keep existing details current.
- Assets: See every device tied to an Organization's account. Add new assets or update what's on file.
- Appointments: Check the schedule for any Organization. Book new appointments and update details.
- Alerts: See active alerts tied to a specific device. Log a new one when something needs tracking.
- Products: Browse the product and service catalog. Add new entries or update pricing.
- Search: Run one search across: tickets, Organizations, assets, invoices, products.
Use this reference to see every tool the Syncro MCP Server currently supports, grouped by category.
Notes:
- Type “list all the tools in syncro mcp” to get the most up-to-date list of tools.
- ⚠ means the tool permanently deletes or irreversibly modifies data in Syncro.
Appointments
get_appointments
Retrieves appointments from Syncro with optional filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | Number | No | Page number for pagination |
| customer_id | Number | No | Filter by customer ID |
| user_id | Number | No | Filter by user ID |
| start_date | String | No | Filter by start date (YYYY-MM-DD) |
| end_date | String | No | Filter by end date (YYYY-MM-DD) |
get_appointment_details
Retrieves details of a specific appointment by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| appointment_id | Number | Yes | The ID of the appointment |
create_appointment
Creates a new appointment in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| summary | String | Yes | Appointment summary/title |
| start_at | String | Yes | Start date and time (ISO format) |
| end_at | String | Yes | End date and time (ISO format) |
| customer_id | Number | No | Customer ID |
| notes | String | No | Appointment notes |
update_appointment
Updates an existing appointment in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| appointment_id | Number | Yes | The ID of the appointment to update |
| summary | String | No | Appointment summary/title |
| start_at | String | No | Start date and time (ISO format) |
| end_at | String | No | End date and time (ISO format) |
| customer_id | Number | No | Customer ID |
| notes | String | No | Appointment notes |
delete_appointment
⚠ Permanently deletes an appointment in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| appointment_id | Number | Yes | The ID of the appointment to delete |
Assets
get_assets
Retrieves assets from Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| customer_id | Number | No | Filter by customer ID |
| snmp_enabled | Boolean | No | Filter by SNMP enabled status |
| asset_type_id | Number | No | Filter by asset type ID |
| query | String | No | Search query |
| page | Number | No | Page number for pagination |
get_asset_details
Retrieves details of a specific asset by ID
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_id | Number | Yes | The ID of the asset |
create_asset
Creates a new asset in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| customer_id | Number | Yes | The ID of the customer this asset belongs to |
| name | String | Yes | Asset name |
| asset_type_name | String | No | Asset type name (e.g., “Computer,” “Server,” “Network Device”') |
| asset_type_id | Number | No | Asset type ID (alternative to asset_type_name) |
| asset_serial | String | No | Asset serial number |
| properties | Object | No | Additional properties for the asset |
update_asset
Updates an existing asset in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| asset_id | Number | Yes | The ID of the asset to update |
| name | String | No | Asset name |
| asset_type_name | String | No | Asset type name (e.g., “Computer,” “Server,” “Network Device”') |
| asset_type_id | Number | No | Asset type ID |
| asset_serial | String | No | Asset serial number |
| properties | Object | No | Additional properties for the asset |
get_alerts
Retrieves RMM alerts from Syncro with optional filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
page |
Number |
No |
Page number for pagination |
customer_id |
Number |
No |
Filter by customer ID |
|
asset_id |
Number | No |
Filter by asset ID |
|
status |
String | No |
Filter by status |
get_alert_details
Retrieves details of a specific RMM alert by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
|
alert_id |
Number | Yes | The ID of the alert |
create_alert
Creates a new RMM alert in Syncro
| Parameter | Type | Required | Description |
|---|---|---|---|
| title | String | Yes | Alert title |
| message | String | Yes | Alert message |
| severity | String | Yes | Alert severity |
| customer_id | Number | Yes | Customer ID |
| asset_id | Number | No | Asset ID |
resolve_alerts
⚠ Marks the specified alerts as resolved.
| Parameter | Type | Required | Description |
|---|---|---|---|
| alert_ids | Array | Yes |
Array of alert IDs to resolve |
Customer Organizations & Contacts/End Users
get_customers
Retrieves customer Organizations from Syncro with various filtering options.
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | Number | No |
Page number for pagination |
| per_page | Number | No | Items per page (max 100, default 100) |
| query | String | No | Search query |
| firstname | String | No | Filter by first name |
| lastname | String | No | Filter by last name |
| business_name | String | No | Filter by business name |
| String | No | Filter by email | |
| id | Number | No | Filter by customer ID |
| id_not | Number | No | Exclude customer ID |
| include_disabled | Boolean | No | Include disabled customers |
| sort | String | No | Sort order for results based on field and direction (e.g., firstname ASC, city DESC). |
get_customer_details
Retrieves details of a specific customer Organization by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| customer_id | Number | Yes |
The ID of the customer |
create_customer
Creates a new customer Organization in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| firstname | String | Yes | First name |
| lastname | String | Yes | Last name |
| String | Yes | ||
| mobile | String | No | Mobile number |
| business_name | String | No | Business name |
| address | String | No | Address |
| city | String | No | City |
| state | String | No | State |
| zip | String | No | Zip code |
| notes | String | No | Notes |
| get_sms | Boolean | No | Allow SMS |
| opt_out | Boolean | No | Opts the customer out of all communications (email, SMS, billing, marketing, and reports). |
| location_id | Number | No | The ID of the customer's office or branch location. |
| properties | Object | No | Custom fields defined in your Syncro account, passed as a key-value object. Keys are your custom field names; values can be any type. Example: { "field_name": "value" } |
update_customer
Updates an existing customer Organization in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| customer_id | Number | Yes |
The ID of the customer to update |
| firstname | String | No | First name |
| lastname | String | No | Last name |
| phone | String | No | Phone number |
| mobile | String | No | Mobile number |
| String | No | ||
| business_name | String | No | Business name |
| address | String | No | Address |
| address_2 | String | No | Address line 2 |
| city | String | No | City |
| state | String | No | State |
| zip | String | No | Zip code |
| notes | String | No | Notes |
| get_sms | Boolean | No | Allow SMS |
| opt_out | Boolean | No | Opts the customer out of all communications (email, SMS, billing, marketing, and reports). |
| location_id | Number | No | The ID of the customer's office or branch location. |
| properties | Object | No | Custom fields defined in your Syncro account, passed as a key-value object. Keys are your custom field names; values can be any type. Example: { "field_name": "value" } |
delete_customer
⚠ Permanently deletes the customer Organization.
| Parameter | Type | Required | Description |
|---|---|---|---|
| customer_id | Number | Yes |
The ID of the customer to delete |
get_contacts
Retrieves contacts/end users from Syncro with optional filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
| customer_id | Number | No | Filter by customer ID |
| page | Number | No | Page number for pagination (default 1) |
get_contact_details
Retrieves details of a specific contact/end user by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | Number | Yes | The ID of the contact |
create_contact
Creates a new contact/end user in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| customer_id | Number | Yes | The ID of the customer this contact belongs to |
| name | String | No | Contact name |
| address1 | String | No | Primary address |
| address2 | String | No | Secondary address |
| city | String | No | City |
| state | String | No | State |
| zip | String | No | ZIP code |
| String | No | Email address | |
| phone | String | No | Phone number |
| mobile | String | No | Mobile number |
| notes | String | No | Notes about the contact |
| title | String | No | Contact title/position |
update_contact
Updates an existing contact/end user in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | Number | Yes | The ID of the contact to update |
| customer_id | Number | No | The ID of the customer this contact belongs to |
| name | String | No | Contact name |
| address1 | String | No | Primary address |
| address2 | String | No | Secondary address |
| city | String | No | City |
| state | String | No | State |
| zip | String | No | ZIP code |
| String | No | Email address | |
| phone | String | No | Phone number |
| mobile | String | No | Mobile number |
| notes | String | No | Notes about the contact |
| title | String | No | Contact title/position |
delete_contact
⚠ Permanently removes the contact/end user from Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| contact_id | Number | Yes | The ID of the contact/end user to delete |
Invoices
get_invoices
Retrieves invoices from Syncro with optional filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | Number | No | Page number for pagination |
| customer_id | Number | No | Filter by customer ID |
| ticket_id | Number | No | Filter by ticket ID |
| unpaid | Boolean | No | Show only unpaid invoices |
| paid | Boolean | No | Show only paid invoices |
| since_updated_at | String | No | Filter by update date |
| date | String | No | Filter by invoice date |
get_invoice_details
Retrieves details of a specific invoice by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| invoice_id | Number | Yes | The ID of the invoice |
create_invoice
Creates a new invoice in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| date | String | Yes | Invoice date (YYYY-MM-DD) |
| customer_id | Number | Yes | The ID of the customer |
| number | String | No | Invoice number (auto-generated if not provided) |
| employee | String | No | Employee name |
| date_received | String | No | Date received (YYYY-MM-DD) |
| note | String | No | Invoice notes |
| took_payment | Boolean | No | Payment taken |
| paid | Boolean | No | Invoice paid |
| location_id | Number | No | Location ID |
| ticket_id | Number | No | Associated ticket ID |
update_invoice
Updates an existing invoice in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| invoice_id | Number | Yes | The ID of the invoice to update |
| date | String | No | Invoice date (YYYY-MM-DD) |
| customer_id | Number | No | The ID of the customer |
| number | String | No | Invoice number |
| employee | String | No | Employee name |
| date_received | String | No | Payment date (YYYY-MM-DD) — required when marking as paid |
| note | String | No | Invoice notes |
| took_payment | Boolean | No | Set to true when payment is received |
| paid | Boolean | No | Set to true to mark the invoice as paid |
| location_id | Number | No | Location ID |
| ticket_id | Number | No | Associated ticket ID |
delete_invoice
⚠ Permanently deletes the invoice.
| Parameter | Type | Required | Description |
|---|---|---|---|
| invoice_id | Number | Yes | The ID of the invoice to delete |
add_line_item
Adds a line item to an existing invoice.
| Parameter | Type | Required | Description |
|---|---|---|---|
| invoice_id | Number | Yes | The ID of the invoice |
| item | String | Yes | Item identifier |
| name | String | Yes | Item name/description |
| quantity | Number | Yes | Quantity |
| price | Number | Yes | Unit price |
| cost | Number | No | Unit cost |
| taxable | Boolean | No | Whether the item is taxable |
| line_discount_percent | Number | No | Discount percentage |
| discount_dollars | Number | No | Discount amount |
print_invoice
Prints an invoice.
| Parameter | Type | Required | Description |
|---|---|---|---|
| invoice_id | Number | Yes | The ID of the invoice to print |
email_invoice
Emails an invoice to the customer.
| Parameter | Type | Required | Description |
|---|---|---|---|
| invoice_id | Number | Yes | The ID of the invoice to email |
get_customer_invoices
Gets all invoices for a specific customer Organization.
| Parameter | Type | Required | Description |
|---|---|---|---|
| customer_id | Number | Yes | The ID of the customer |
get_overdue_invoices
Retrieves all unpaid invoices that are past their due date.
get_paid_invoices
Retrieves all paid invoices.
get_invoices_by_date
Retrieves invoices within a date range.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start_date | String | Yes | Start date (YYYY-MM-DD) |
| end_date | String | Yes | End date (YYYY-MM-DD) |
get_invoices_by_amount
Retrieves invoices within an amount range.
| Parameter | Type | Required | Description |
|---|---|---|---|
| min_amount | Number | Yes | Minimum amount |
| max_amount | Number | Yes | Maximum amount |
get_invoices_by_status
Retrieves invoices filtered by status.
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | String | Yes | Invoice status (e.g., "paid", "unpaid") |
get_invoice_summary
Provides a summary of invoice statistics, optionally filtered by date range or customer.
| Parameter | Type | Required | Description |
|---|---|---|---|
| start_date | String | No | Start date (YYYY-MM-DD) |
| end_date | String | No | End date (YYYY-MM-DD) |
| customer_id | Number | No | Filter by customer ID |
Products
get_products
Retrieves products from Syncro with optional filters.
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | Number | No | Page number for pagination |
| query | String | No | Search query |
| category_id | Number | No | Filter by category ID |
get_product_details
Retrieves details of a specific product by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| product_id | Number | Yes | The ID of the product |
create_product
Creates a new product in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | String | Yes | Product name |
| price_retail | Number | Yes | Retail price |
| description | String | No | Product description |
| price_cost | Number | No | Cost price |
| price_wholesale | Number | No | Wholesale price |
| taxable | Boolean | No | Whether the product is taxable |
| product_category | String | No | Product category |
| upc_code | String | No | UPC code |
| notes | String | No | Product notes |
| physical_location | String | No | Physical location |
| maintain_stock | Boolean | No | Whether to maintain stock levels |
| serialized | Boolean | No | Whether the product is serialized |
update_product
Updates an existing product in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| product_id | Number | Yes | The ID of the product to update |
| name | String | No | Product name |
| description | String | No | Product description |
| price_retail | Number | No | Retail price |
| price_cost | Number | No | Cost price |
| price_wholesale | Number | No | Wholesale price |
| taxable | Boolean | No | Whether the product is taxable |
| product_category | String | No | Product category |
| upc_code | String | No | UPC code |
| notes | String | No | Product notes |
| physical_location | String | No | Physical location |
| maintain_stock | Boolean | No | Whether to maintain stock levels |
| serialized | Boolean | No | Whether the product is serialized |
delete_product
⚠ Disable a product in Syncro. This product is deactivated rather than fully removed.
| Parameter | Type | Required | Description |
|---|---|---|---|
| product_id | Number | Yes | The ID of the product to delete |
Tickets
get_tickets
Retrieves tickets from Syncro with various filtering options.
| Parameter | Type | Required | Description |
|---|---|---|---|
| page | Number | No | Page number for pagination |
| per_page | Number | No | Items per page (max 100, default 50) |
| customer_id | Number | No | Filter by customer ID |
| user_id | Number | No | Filter by assigned user ID |
| status | String | No | Filter by status (e.g., "Open", "Closed", "Not Closed") |
| created_after | String | No | Filter tickets created after this date |
| resolved_after | String | No | Filter tickets resolved after this date |
| since_updated_at | String | No | Filter tickets updated after this date |
| mine | Boolean | No | Show only tickets assigned to the current user |
| term | String | No | Search in ticket subject |
| number | String | No | Filter by ticket number |
get_ticket_details
Retrieves details of a specific ticket by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ticket_id | Number | Yes | The ID of the ticket (not the ticket number) |
create_ticket
Creates a new ticket in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| customer_id | Number | Yes | The ID of the customer |
| subject | String | Yes | The subject of the ticket |
| status | String | No | The status of the ticket |
| priority | String | No | The priority of the ticket |
| problem_type | String | No | The type of problem |
| due_date | String | No | The due date in YYYY-MM-DD format |
| start_at | String | No | Start date and time in ISO format |
| end_at | String | No | End date and time in ISO format |
| location_id | Number | No | The location ID |
| user_id | Number | No | The user ID |
| contact_id | Number | No | The contact ID |
| sla_id | Number | No | The SLA ID |
| asset_ids | Array | No | Array of asset IDs |
| tag_list | Array | No | Array of tags |
| properties | Object | No | Custom properties |
| comment | Object | No | The initial comment for the ticket |
update_ticket
Updates an existing ticket in Syncro.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ticket_id | Number | Yes | The ID of the ticket to update |
| customer_id | Number | No | The ID of the customer |
| subject | String | No | The subject of the ticket |
| status | String | No | The status of the ticket |
| priority | String | No | The priority of the ticket |
| problem_type | String | No | The type of problem |
| due_date | String | No | The due date in YYYY-MM-DD format |
| start_at | String | No | Start date and time in ISO format |
| end_at | String | No | End date and time in ISO format |
| location_id | Number | No | The location ID |
| user_id | Number | No | The user ID |
| contact_id | Number | No | The contact ID |
| sla_id | Number | No | The SLA ID |
| asset_ids | Array | No | Array of asset IDs |
| tag_list | Array | No | Array of tags |
| properties | Object | No | Custom properties |
| comment | Object | No | A new comment to add to the ticket |
delete_ticket
⚠ Permanently deletes the ticket.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ticket_id | Number | Yes | The ID of the ticket to delete |
add_ticket_comment
Adds a comment to an existing ticket.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ticket_id | Number | Yes | The ID of the ticket |
| subject | String | Yes | The subject of the comment |
| body | String | Yes | The body of the comment |
| hidden | Boolean | No | Whether the comment is hidden from the customer |
| sms_body | String | No | SMS message content |
| do_not_email | Boolean | No | Don't send email notification |
| is_rich_text | Boolean | No | Whether the comment body is rich text (HTML) |
add_timer_entry
Adds a time entry to a ticket.
| Parameter | Type | Required | Description |
|---|---|---|---|
| ticket_id | Number | Yes | The ID of the ticket |
| hours | Number | Yes | Hours worked |
| description | String | No | Work description |
| billable | Boolean | No | Whether the time is billable |
| start_at | String | No | Start time in ISO format |
| end_at | String | No | End time in ISO format |
| duration_minutes | Number | No | Duration in minutes (alternative to end_at) |
Other
get_user_info
Retrieves information about the current authenticated user in Syncro.
search
Searches across multiple entities in Syncro (tickets, customers, assets, invoices, products, contacts).
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | String | Yes | Search query to find across all entities |
| type | String | No | Filter results by entity type (e.g., “tickets”, “customers”, “assets”, “invoices”, “products”, "contacts") |