Connectors · MSP & PSA
Syncro MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Syncro and the rest of your systems. It gives your agent 190 Syncro actions (76 reads, 88 writes and 26 that wait for a confirmation) and holds the Syncro credential itself, so the agent never does. It paces Syncro's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "syncro.invoices.list", intent: "check which Syncro account is connected"}# Returns a paginated list of Invoices · read · 1 upstream call- 190actionsin one signed file
- 76readlook, never change
- 88writecreate and update
- 26wait for a yesdestructive, confirmed first
Set up
Connect Syncro in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect Syncro.
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
api_keySyncro API tokensubdomain_hostWhere your Syncro lives: your subdomain host
account { op: "connections.requirements", service: "syncro" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "syncro.invoices.list" }# returns a paginated list of invoices · read · 1 upstream callcheck { action: "syncro.invoices.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Syncro at a glance
- Sign-in
- Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
api_key- Setup fields
subdomain_host- Limits we pace to
- 180 calls a minute, per connection
- API covered
- Syncro API 1, at your own syncromsp.com address, set when you connect
- Built from
- Syncro's documentation, read 15 September 2026api-docs.syncromsp.com
- Service file
- Version 2.0.0, signed (Ed25519)
- Cached reads
- 76 of 76 reads, for up to an hour; a write clears what it affects
- Ready-made plans
- 8 in the store
- Shared entities
- 15, so ask can line Syncro up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Syncro.
190 actions in 20 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 76readlook, never change
- 88writecreate and update
- 26destructivewait for a confirmation
PSA
4315 read · 22 write · 6 destructive
Returns a paginated list of Tickets · Creates a new Ticket for a Ticket Form · Creates tickets from a Blueprint · Creates a Ticket
RMM
2211 read · 9 write · 2 destructive
Returns a paginated list of Assets · Returns a paginated list of RMM Alerts · Returns a list of Assets for a specific contact · Retrieves an Asset by ID
Catalog
176 read · 9 write · 2 destructive
Returns a paginated list of Products · Creates a Product · Returns a Product by Barcode · Retrieves a Product by ID
Invoicing
124 read · 6 write · 2 destructive
Returns a paginated list of Invoices · Creates an Invoice · Retrieves an Invoice by ID or Number · Updates an existing invoice by ID
Quoting
112 read · 7 write · 2 destructive
Returns a paginated list of Estimates · Creates an Estimate · Retrieves an Estimate by ID or number · Updates an existing Estimate by ID
Recurring
102 read · 5 write · 3 destructive
Returns a paginated list of Invoice Schedules · Creates an Invoice Schedule · Adds a Line Item to an Invoice Schedule (deprecated) · Adds a Line Item to an Invoice Schedule
Scheduling
104 read · 4 write · 2 destructive
Returns a paginated list of Appointments · Creates an Appointment · Retrieves an Appointment by ID · Updates an existing Appointment by ID
Contacts
93 read · 4 write · 2 destructive
Returns a paginated list of Contacts · Creates a Contact · Retrieves a Contact by ID · Updates an existing Contact
12 more areas · 56 actions
- Payments 9
- Purchasing 8
- Accounts 7
- Portal 5
- Knowledge 5
- Contracts 5
- Leads 4
- Users 4
- Vendors 4
- Settings 3
- Telephony 1
- Global 1
Top actions
The Syncro API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 159 of Syncro's 160 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
syncro.invoices.listReturns a paginated list of Invoices | Returns a paginated list of Invoices. Paged; each page is one upstream call. | read | finance.invoice.list101 connectors |
syncro.payments.listReturns a paginated list of Payments | Returns a paginated list of Payments. Paged; each page is one upstream call. | read | finance.payment.list75 connectors |
syncro.estimates.listReturns a paginated list of Estimates | Returns a paginated list of Estimates. Paged; each page is one upstream call. | read | finance.quote.list52 connectors |
syncro.purchase_orders.listReturns a paginated list of Purchase Orders | Returns a paginated list of Purchase Orders. Paged; each page is one upstream call. | read | finance.purchase_order.list45 connectors |
syncro.tickets.listReturns a paginated list of Tickets | Returns a paginated list of Tickets. Paged; each page is one upstream call. | read | service.ticket.list56 connectors |
syncro.invoices.createCreates an Invoice | Creates an Invoice. | write | finance.invoice.create74 connectors |
syncro.contacts.listReturns a paginated list of Contacts | Returns a paginated list of Contacts. Paged; each page is one upstream call. | read | crm.contact.list177 connectors |
syncro.payments.createCreates a Payment | Creates a Payment. | write | finance.payment.create67 connectors |
syncro.customers.listReturns a paginated list of customers | Returns a paginated list of customers. Paged; each page is one upstream call. | read | crm.company.list162 connectors |
syncro.users.getRetrieves an existing User by ID | Retrieves an existing User by ID. | read | identity.user.get399 connectors |
syncro.estimates.createCreates an Estimate | Creates an Estimate. | write | finance.quote.create52 connectors |
syncro.invoices.deleteDeletes an invoice by ID | Deletes an invoice by ID. | destructive | finance.invoice.delete56 connectors |
Try it
Prompts to paste into Claude.
Each one names the Syncro actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which Syncro invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
syncro.invoices.list - Planwrite
Bill logged time on a resolved ticket in Syncro. Ask me before anything is sent or changed.
calls
syncro.tickets.getsyncro.ticket_timers.listsyncro.ticket_timers.patchsyncro.tickets.charge_timer_entrysyncro.invoices.create+1 more - Planwrite
Audit patch status across a customer's assets in Syncro.
calls
syncro.customers.getsyncro.assets.listsyncro.assets.patches_getsyncro.assets.installed_applications_listsyncro.wiki_pages.create - Writewrite
Creates an Invoice in Syncro. Show me exactly what you will send before you save it.
calls
syncro.invoices.create - Across systemsread
For each customer, how many invoices are in Syncro and how many tickets in HubSpot CRM?
calls
syncro.invoices.listhubspot_crm.tickets.list
Across your systems
Syncro, joined to the rest of your business.
One ask fetches from Syncro and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
For each customer, how many invoices are in Syncro and how many tickets in HubSpot CRM?
syncro.invoices.list+hubspot_crm.tickets.list, oncrm.company· HubSpot CRMFor each customer, how many invoices are in Syncro and how many tickets in ServiceNow?
syncro.invoices.list+servicenow_table.incidents.list, oncrm.company· ServiceNow
identity.user 517crm.company 227crm.contact 192commerce.product 109finance.invoice 91device.endpoint 69service.ticket 62monitoring.alert 56ask { intent: "for each customer, how many invoices are in Syncro and how many tickets in HubSpot CRM", steps: [ { action: "syncro.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { action: "hubspot_crm.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 }, { join: { left: "inv", right: "tix", on: "crm.company", group_by: "inv.company_name", select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"] } } ]}The plan store
Ready-made plans for Syncro.
8 plans in the store. Install one and your agent runs it by name; the reply says which connections are still missing. A schedule can run a plan on a timetable. There are no triggers or webhooks, by design.
Turn active RMM alerts into tickets
Use it when Monitoring alerts have piled up and each one needs a ticket a technician can pick up.
Find and nudge stale open tickets
Use it when The service desk wants stale tickets surfaced and nudged without anyone reading every queue by hand.
Chase unpaid invoices by email
Use it when Accounts receivable wants to send a reminder to every customer with an open invoice.
A person decides
Email a payment reminder for chase count unpaid Syncro invoices.
Audit patch status across a customer's assets
Use it when Somebody asks how well patched a particular customer's fleet is.
Convert an accepted estimate into an invoice
Use it when A customer has accepted an estimate and it should become a real invoice.
A person decides
Convert estimate number with number of items line items into an invoice and email it.
Onboard a new customer record
Use it when A new client has signed and needs a complete Syncro record rather than a bare customer row.
Receive a purchase order into stock
Use it when A shipment has arrived against a purchase order and stock needs booking in.
A person decides
Receive received quantity units against purchase order number from name.
Bill logged time on a resolved ticket
Use it when A technician has finished a ticket and the tracked time needs turning into an invoice.
A person decides
Bill number of items timer entries on ticket number to customer customer id.
account { op: "plans.install", slug: "syncro-rmm-alert-triage" }
# then ask for it by name; a schedule can run it on a timetableGovernance for Syncro
Destructive actions wait for a yes.
26 Syncro actions are destructive. These are all of them:
- Deletes an invoice by ID
syncro.invoices.delete - Deletes an Estimate by ID
syncro.estimates.delete - Deletes a Portal User by ID
syncro.portal_users.delete - Deletes a Ticket by ID
syncro.tickets.delete - Deletes a Contact
syncro.contacts.delete - Deletes a Customer by ID
syncro.customers.delete - Deletes a Contract by ID
syncro.contracts.delete - Deletes a Payment Profile
syncro.payment_profiles.delete - Deletes a Ticket Line Item
syncro.tickets.line_items_delete - Deletes an a line item of an invoice by ID
syncro.invoices.line_items_delete - Removes a Line Item from an Invoice Schedule
syncro.schedules.line_items_delete - Removes a Line Item from an Invoice Schedule (deprecated)
syncro.schedules.remove_line_item_legacy - Deletes/Clears an RMM Alert by ID
syncro.rmm_alerts.delete - Deletes a Schedule by ID
syncro.schedules.delete - Deletes a Line Item
syncro.estimates.line_items_delete - Deletes a Canned Response
syncro.canned_responses.delete - Deletes a Policy Folder by ID
syncro.policy_folders.delete - Deletes an Appointment by ID
syncro.appointments.delete - Deletes a Ticket Timer
syncro.tickets.delete_timer_entry - Deletes a Ticket Attachment
syncro.tickets.delete_attachment - Deletes a Product SKU by ID
syncro.product_skus.delete - Deletes a Phone by ID
syncro.phones.delete - Deletes a Wiki Page by ID
syncro.wiki_pages.delete - Deletes a Product Image
syncro.products.delete_image - Deletes a Worksheet Result
syncro.worksheet_results.delete - Deletes an Appointment Type by ID
syncro.appointment_types.delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Deletes an invoice by ID?
intent: the user asked me to deletes an invoice by ID
account { op: "keys.create", name: "syncro-agent", allowed_actions: ["syncro.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "syncro.invoices.delete", approver: "[email protected]" }, { match: "syncro.estimates.delete", approver: "[email protected]" }, { match: "syncro.portal_users.delete", approver: "[email protected]" } ]}Cost
What Syncro costs on actionlake.
Every Syncro action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Syncro refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 190 Syncro actions
- 190actions pageeach page of a long list is one call
- 76reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Syncro action.
190 actions by area: the id your agent calls, what it does, and its effect.
PSA43
syncro.canned_responses.createCreates a new Canned Responsewritesyncro.canned_responses.deleteDeletes a Canned Responsedestructivesyncro.canned_responses.listReturns a list of Canned Responses with a queryreadsyncro.canned_responses.patchUpdates a Canned Responsewritesyncro.canned_responses.settings_getReturns the settings for Canned Responsesreadsyncro.new_ticket_forms.getRetrieves a Ticket Formreadsyncro.new_ticket_forms.listReturns a paginated list of Ticket Formsreadsyncro.new_ticket_forms.process_formCreates a new Ticket for a Ticket Formwritesyncro.ticket_blueprints.applyCreates tickets from a Blueprintwritesyncro.ticket_blueprints.listReturns a paginated list of Ticket Blueprintsreadsyncro.ticket_comments.listReturns a paginated flat list of comments across multiple ticketsreadsyncro.ticket_timers.createCreates a Ticket Timer that starts runningwritesyncro.ticket_timers.listReturns a paginated list of Ticket Timersreadsyncro.ticket_timers.patchUpdates an existing Ticket Timer by IDwritesyncro.ticket_timers.pausePauses a running Ticket Timerwritesyncro.ticket_timers.startStarts (or resumes a paused) Ticket Timerwritesyncro.ticket_timers.stopStops a running or paused Ticket Timerwritesyncro.tickets.attach_file_urlAttach a file to a Ticketwritesyncro.tickets.charge_timer_entryCharges a Ticket Timerwritesyncro.tickets.comments_createAdds a Comment to a Ticketwritesyncro.tickets.comments_listReturns Comments for a Ticketreadsyncro.tickets.createCreates a Ticketwritesyncro.tickets.deleteDeletes a Ticket by IDdestructivesyncro.tickets.delete_attachmentDeletes a Ticket Attachmentdestructivesyncro.tickets.delete_timer_entryDeletes a Ticket Timerdestructivesyncro.tickets.getRetrieves a Ticket by IDreadsyncro.tickets.line_items_createCreates a Ticket Line Itemwritesyncro.tickets.line_items_deleteDeletes a Ticket Line Itemdestructivesyncro.tickets.line_items_updateUpdates an existing Ticket Line Itemwritesyncro.tickets.listReturns a paginated list of Ticketsreadsyncro.tickets.printPrints a Ticket by IDwritesyncro.tickets.settings_getReturns Tickets Settingsreadsyncro.tickets.timer_entry_createCreate a Ticket Timer for a Ticketwritesyncro.tickets.timer_entry_updateUpdates an existing Ticket Timerwritesyncro.tickets.updateUpdates an existing Ticket by IDwritesyncro.timelogs.last_getReturns last Timelogreadsyncro.timelogs.listReturns a paginated list of Timelogsreadsyncro.timelogs.updateUpdates a Timelogwritesyncro.worksheet_results.createCreates Worksheet Resultwritesyncro.worksheet_results.deleteDeletes a Worksheet Resultdestructivesyncro.worksheet_results.getRetrieves a Worksheet Result by IDreadsyncro.worksheet_results.listReturns a paginated list of Worksheet Resultsreadsyncro.worksheet_results.updateUpdates a Worksheet Resultwrite
RMM22
syncro.assets.chat_informationRetrieves Assets by IDreadsyncro.assets.createCreates an Assetwritesyncro.assets.getRetrieves an Asset by IDreadsyncro.assets.installed_applications_listRetrieves installed applications for an Assetreadsyncro.assets.listReturns a paginated list of Assetsreadsyncro.assets.list_by_contactReturns a list of Assets for a specific contactreadsyncro.assets.patches_getRetrieves Windows patch data for an Assetreadsyncro.assets.updateUpdates an existing Asset by IDwritesyncro.policy_folders.createCreates a Policy Folderwritesyncro.policy_folders.deleteDeletes a Policy Folder by IDdestructivesyncro.policy_folders.getRetrieves a Policy Folder by IDreadsyncro.policy_folders.listReturns a paginated list of Policy Foldersreadsyncro.policy_folders.updateUpdates an existing Policy Folder by IDwritesyncro.rmm_alerts.createCreates an RMM Alertwritesyncro.rmm_alerts.deleteDeletes/Clears an RMM Alert by IDdestructivesyncro.rmm_alerts.getRetrieves an RMM Alert by IDreadsyncro.rmm_alerts.listReturns a paginated list of RMM Alertsreadsyncro.rmm_alerts.muteMutes an RMM Alert by IDwritesyncro.rmm_scripts.scheduleSchedules a Script on an Assetwritesyncro.user_devices.createCreates a User Devicewritesyncro.user_devices.getRetrieves an existing User Device by UUIDreadsyncro.user_devices.updateUpdates an existing User Device by UUIDwrite
Catalog17
syncro.product_serials.attach_to_line_itemAdds Product Serials to a Line Itemwritesyncro.product_serials.createCreates a Product Serialwritesyncro.product_serials.listReturns a paginated list of Product_serialsreadsyncro.product_serials.updateUpdates an existing Product Serial by IDwritesyncro.product_skus.createCreates a Product SKUwritesyncro.product_skus.deleteDeletes a Product SKU by IDdestructivesyncro.product_skus.listReturns a list of Product SKUsreadsyncro.product_skus.updateUpdates an existing Product SKU by IDwritesyncro.products.add_imagesCreates a Product Imagewritesyncro.products.barcode_getReturns a Product by Barcodereadsyncro.products.categories_listReturns a paginated list of Product Categoriesreadsyncro.products.createCreates a Productwritesyncro.products.delete_imageDeletes a Product Imagedestructivesyncro.products.getRetrieves a Product by IDreadsyncro.products.listReturns a paginated list of Productsreadsyncro.products.location_quantities_updateUpdates a Location Quantitywritesyncro.products.updateUpdates an existing Product by IDwrite
Invoicing12
syncro.invoices.createCreates an Invoicewritesyncro.invoices.deleteDeletes an invoice by IDdestructivesyncro.invoices.emailSends invoice to customerwritesyncro.invoices.getRetrieves an Invoice by ID or Numberreadsyncro.invoices.line_items_createCreates a new line itemwritesyncro.invoices.line_items_deleteDeletes an a line item of an invoice by IDdestructivesyncro.invoices.line_items_updateUpdates an a line item of an invoice by IDwritesyncro.invoices.listReturns a paginated list of Invoicesreadsyncro.invoices.printQueues a print job for an invoicewritesyncro.invoices.ticket_getReturns the associated ticket for an invoicereadsyncro.invoices.updateUpdates an existing invoice by IDwritesyncro.line_items.listReturns a paginated list of Line Itemsread
Quoting11
syncro.estimates.convert_to_invoiceConvert an Estimate to an Invoicewritesyncro.estimates.createCreates an Estimatewritesyncro.estimates.deleteDeletes an Estimate by IDdestructivesyncro.estimates.emailSends an Estimate to a Customerwritesyncro.estimates.getRetrieves an Estimate by ID or numberreadsyncro.estimates.line_items_createAdds a Line Item to an Estimatewritesyncro.estimates.line_items_deleteDeletes a Line Itemdestructivesyncro.estimates.line_items_updateUpdates a Line Itemwritesyncro.estimates.listReturns a paginated list of Estimatesreadsyncro.estimates.printQueues a print job for an Estimatewritesyncro.estimates.updateUpdates an existing Estimate by IDwrite
Recurring10
syncro.schedules.add_line_item_legacyAdds a Line Item to an Invoice Schedule (deprecated)writesyncro.schedules.createCreates an Invoice Schedulewritesyncro.schedules.deleteDeletes a Schedule by IDdestructivesyncro.schedules.getRetrieves a Schedule by IDreadsyncro.schedules.line_items_createAdds a Line Item to an Invoice Schedulewritesyncro.schedules.line_items_deleteRemoves a Line Item from an Invoice Scheduledestructivesyncro.schedules.line_items_updateUpdates a Line Itemwritesyncro.schedules.listReturns a paginated list of Invoice Schedulesreadsyncro.schedules.remove_line_item_legacyRemoves a Line Item from an Invoice Schedule (deprecated)destructivesyncro.schedules.updateUpdates an existing Invoice Schedule by IDwrite
Scheduling10
syncro.appointment_types.createCreates an Appointment Typewritesyncro.appointment_types.deleteDeletes an Appointment Type by IDdestructivesyncro.appointment_types.getRetrieves an Appointment Type by IDreadsyncro.appointment_types.listReturns a paginated list of Appointment Typesreadsyncro.appointment_types.updateUpdates an existing Appointment Type by IDwritesyncro.appointments.createCreates an Appointmentwritesyncro.appointments.deleteDeletes an Appointment by IDdestructivesyncro.appointments.getRetrieves an Appointment by IDreadsyncro.appointments.listReturns a paginated list of Appointmentsreadsyncro.appointments.updateUpdates an existing Appointment by IDwrite
Contacts9
syncro.contacts.createCreates a Contactwritesyncro.contacts.deleteDeletes a Contactdestructivesyncro.contacts.getRetrieves a Contact by IDreadsyncro.contacts.listReturns a paginated list of Contactsreadsyncro.contacts.updateUpdates an existing Contactwritesyncro.phones.createCreates a Phonewritesyncro.phones.deleteDeletes a Phone by IDdestructivesyncro.phones.listReturns a paginated list of Phonesreadsyncro.phones.updateUpdates an existing Phone by IDwrite
Payments9
syncro.payment_methods.listReturns a paginated list of Payment Methodsreadsyncro.payment_profiles.createCreates a Payment Profilewritesyncro.payment_profiles.deleteDeletes a Payment Profiledestructivesyncro.payment_profiles.getRetrieves a Payment Profile by IDreadsyncro.payment_profiles.listReturns a paginated list of Payment Profilesreadsyncro.payment_profiles.updateUpdates a Payment Profilewritesyncro.payments.createCreates a Paymentwritesyncro.payments.getRetrieves a Payment by IDreadsyncro.payments.listReturns a paginated list of Paymentsread
Purchasing8
syncro.items.listReturns a paginated list of Part Ordersreadsyncro.purchase_orders.attachments_createUpload an attachment to a Purchase Orderwritesyncro.purchase_orders.createCreates a Purchase Orderwritesyncro.purchase_orders.getRetrieves a Purchase Order by IDreadsyncro.purchase_orders.line_items_createAdds a Product to a Purchase Orderwritesyncro.purchase_orders.listReturns a paginated list of Purchase Ordersreadsyncro.purchase_orders.receiveReceive purchase_orderwritesyncro.purchase_orders.updateUpdates a Purchase Orderwrite
Accounts7
syncro.customers.autocompleteReturns a paginated list of customers for autocomplete queryreadsyncro.customers.createCreates a Customerwritesyncro.customers.deleteDeletes a Customer by IDdestructivesyncro.customers.getRetrieves a Customer by IDreadsyncro.customers.latest_getReturns latest Customerreadsyncro.customers.listReturns a paginated list of customersreadsyncro.customers.updateUpdates an existing Customer by IDwrite
Portal5
syncro.portal_users.createCreates a Portal Userwritesyncro.portal_users.create_invitationCreates an Invitation for a Portal Userwritesyncro.portal_users.deleteDeletes a Portal User by IDdestructivesyncro.portal_users.listReturns a paginated list of Portal Usersreadsyncro.portal_users.updateUpdates an existing Portal User by IDwrite
Knowledge5
syncro.wiki_pages.createCreates a Wiki Pagewritesyncro.wiki_pages.deleteDeletes a Wiki Page by IDdestructivesyncro.wiki_pages.getRetrieves a Wiki Pagereadsyncro.wiki_pages.listReturns a paginated list of Wiki Pagesreadsyncro.wiki_pages.updateUpdates an existing Wiki Page by IDwrite
Contracts5
syncro.contracts.createCreates a Contractwritesyncro.contracts.deleteDeletes a Contract by IDdestructivesyncro.contracts.getRetrieves a Contract by IDreadsyncro.contracts.listReturns a paginated list of Contractsreadsyncro.contracts.updateUpdates an existing Contract by IDwrite
Leads4
syncro.leads.createCreates a Leadwritesyncro.leads.getRetrieves a Lead by IDreadsyncro.leads.listReturns a paginated list of Leadsreadsyncro.leads.updateUpdates an existing Lead by IDwrite
Users4
syncro.users.getRetrieves an existing User by IDreadsyncro.users.listReturns a paginated list of Usersreadsyncro.users.me_getReturns the current userreadsyncro.users.otp_loginAuthorize a User with One Time Passwordwrite
Vendors4
syncro.vendors.createCreates a Vendorwritesyncro.vendors.getRetrieves a Vendor Pagereadsyncro.vendors.listReturns a paginated list of Vendorsreadsyncro.vendors.updateUpdates an existing Vendor page by IDwrite
Settings3
syncro.settings.getReturns a list of Account Settings with rolloutreadsyncro.settings.printing_getReturns Printing Settingsreadsyncro.settings.tabs_getReturns Tabs Settingsread
Telephony1
syncro.callerid.getGet Caller IDread
Global1
syncro.search.querySearch all the thingsread
Questions
The Syncro MCP server, answered.
Is there a Syncro MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 190 Syncro actions across PSA, RMM, catalog and invoicing, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Syncro.
What do I need to connect Syncro?
Syncro API token. Plus your subdomain host. The free call account { op: "connections.requirements", service: "syncro" } lists exactly what to paste.
Can an AI agent delete or change things in Syncro?
Only if its key allows it, and only with an explicit confirmation. 26 Syncro actions are destructive, including deletes an invoice by ID, deletes an Estimate by ID and deletes a Portal User by ID. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my Syncro API limit?
actionlake paces every call to the limits in the Syncro service file: 180 calls a minute per connection. Repeated reads are answered from cache (76 Syncro actions can be), which never reaches Syncro.
What does a Syncro action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (190 Syncro actions page). Cache hits, searches, dry runs and calls Syncro refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which Syncro API does it cover?
The Syncro API 1 at your own syncromsp.com address, set when you connect. It is built from Syncro's documentation as read on 15 September 2026. 190 actions in 20 areas, each one in the signed service file (version 2.0.0).
Can I combine Syncro with my other systems?
Yes. ask joins Syncro to HubSpot CRM or ServiceNow on the same customer and returns the answer rather than every row. Syncro maps crm.company, which 227 other connectors also map.
Does actionlake keep my Syncro data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to an hour, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Syncro credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent Syncro today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.