Skip to content

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/mcp
the first call
do {  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.

  1. 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
  2. 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 token
    • subdomain_hostWhere your Syncro lives: your subdomain host
    account { op: "connections.requirements", service: "syncro" }
    # free: exactly what to paste, and what is found for you
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates 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
  1. PSA

    43

    15 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

  2. RMM

    22

    11 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

  3. Catalog

    17

    6 read · 9 write · 2 destructive

    Returns a paginated list of Products · Creates a Product · Returns a Product by Barcode · Retrieves a Product by ID

  4. Invoicing

    12

    4 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

  5. Quoting

    11

    2 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

  6. Recurring

    10

    2 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

  7. Scheduling

    10

    4 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

  8. Contacts

    9

    3 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.

ActionWhat it doesEffectSame name in
syncro.invoices.listReturns a paginated list of InvoicesReturns a paginated list of Invoices. Paged; each page is one upstream call.readfinance.invoice.list101 connectors
syncro.payments.listReturns a paginated list of PaymentsReturns a paginated list of Payments. Paged; each page is one upstream call.readfinance.payment.list75 connectors
syncro.estimates.listReturns a paginated list of EstimatesReturns a paginated list of Estimates. Paged; each page is one upstream call.readfinance.quote.list52 connectors
syncro.purchase_orders.listReturns a paginated list of Purchase OrdersReturns a paginated list of Purchase Orders. Paged; each page is one upstream call.readfinance.purchase_order.list45 connectors
syncro.tickets.listReturns a paginated list of TicketsReturns a paginated list of Tickets. Paged; each page is one upstream call.readservice.ticket.list56 connectors
syncro.invoices.createCreates an InvoiceCreates an Invoice.writefinance.invoice.create74 connectors
syncro.contacts.listReturns a paginated list of ContactsReturns a paginated list of Contacts. Paged; each page is one upstream call.readcrm.contact.list177 connectors
syncro.payments.createCreates a PaymentCreates a Payment.writefinance.payment.create67 connectors
syncro.customers.listReturns a paginated list of customersReturns a paginated list of customers. Paged; each page is one upstream call.readcrm.company.list162 connectors
syncro.users.getRetrieves an existing User by IDRetrieves an existing User by ID.readidentity.user.get399 connectors
syncro.estimates.createCreates an EstimateCreates an Estimate.writefinance.quote.create52 connectors
syncro.invoices.deleteDeletes an invoice by IDDeletes an invoice by ID.destructivefinance.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.

  1. Readread

    Which Syncro invoices are more than 30 days overdue? Group them by customer with the total owed.

    callssyncro.invoices.list

  2. Planwrite

    Bill logged time on a resolved ticket in Syncro. Ask me before anything is sent or changed.

    callssyncro.tickets.getsyncro.ticket_timers.listsyncro.ticket_timers.patchsyncro.tickets.charge_timer_entrysyncro.invoices.create+1 more

  3. Planwrite

    Audit patch status across a customer's assets in Syncro.

    callssyncro.customers.getsyncro.assets.listsyncro.assets.patches_getsyncro.assets.installed_applications_listsyncro.wiki_pages.create

  4. Writewrite

    Creates an Invoice in Syncro. Show me exactly what you will send before you save it.

    callssyncro.invoices.create

  5. Across systemsread

    For each customer, how many invoices are in Syncro and how many tickets in HubSpot CRM?

    callssyncro.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, on crm.company · HubSpot CRM

  • For each customer, how many invoices are in Syncro and how many tickets in ServiceNow?

    syncro.invoices.list + servicenow_table.incidents.list, on crm.company · ServiceNow

Also mapped by other connectorsidentity.user 517crm.company 227crm.contact 192commerce.product 109finance.invoice 91device.endpoint 69service.ticket 62monitoring.alert 56
ask
ask {  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"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

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.

  1. 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.

    Effect
    write
    Steps
    3 · loops
    Needs
    since
    Install
    syncro-rmm-alert-triage
  2. 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.

    Effect
    write
    Steps
    4 · loops
    Needs
    status
    Install
    syncro-stale-ticket-report
  3. Chase unpaid invoices by email

    Use it when Accounts receivable wants to send a reminder to every customer with an open invoice.

    A person decidesEmail a payment reminder for chase count unpaid Syncro invoices.

    Effect
    write
    Steps
    4 · loops
    Needs
    max invoices
    Install
    syncro-unpaid-invoice-chase
  4. Audit patch status across a customer's assets

    Use it when Somebody asks how well patched a particular customer's fleet is.

    Effect
    write
    Steps
    5 · loops
    Needs
    customer id
    Install
    syncro-asset-patch-audit
  5. 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 decidesConvert estimate number with number of items line items into an invoice and email it.

    Effect
    write
    Steps
    5
    Needs
    estimate id
    Install
    syncro-estimate-to-invoice
  6. 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.

    Effect
    write
    Steps
    5
    Needs
    business name, contact name, email and phone
    Install
    syncro-new-customer-onboarding
  7. Receive a purchase order into stock

    Use it when A shipment has arrived against a purchase order and stock needs booking in.

    A person decidesReceive received quantity units against purchase order number from name.

    Effect
    write
    Steps
    5
    Needs
    line item id, po id, received quantity and serial numbers
    Install
    syncro-purchase-order-receive
  8. 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 decidesBill number of items timer entries on ticket number to customer customer id.

    Effect
    write
    Steps
    7 · loops
    Needs
    invoice number and ticket id
    Install
    syncro-ticket-time-billing
install a plan
account { op: "plans.install", slug: "syncro-rmm-alert-triage" }
# then ask for it by name; a schedule can run it on a timetable

Governance for Syncro

Destructive actions wait for a yes.

26 Syncro actions are destructive. These are all of them:

  • Deletes an invoice by IDsyncro.invoices.delete
  • Deletes an Estimate by IDsyncro.estimates.delete
  • Deletes a Portal User by IDsyncro.portal_users.delete
  • Deletes a Ticket by IDsyncro.tickets.delete
  • Deletes a Contactsyncro.contacts.delete
  • Deletes a Customer by IDsyncro.customers.delete
  • Deletes a Contract by IDsyncro.contracts.delete
  • Deletes a Payment Profilesyncro.payment_profiles.delete
  • Deletes a Ticket Line Itemsyncro.tickets.line_items_delete
  • Deletes an a line item of an invoice by IDsyncro.invoices.line_items_delete
  • Removes a Line Item from an Invoice Schedulesyncro.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 IDsyncro.rmm_alerts.delete
  • Deletes a Schedule by IDsyncro.schedules.delete
  • Deletes a Line Itemsyncro.estimates.line_items_delete
  • Deletes a Canned Responsesyncro.canned_responses.delete
  • Deletes a Policy Folder by IDsyncro.policy_folders.delete
  • Deletes an Appointment by IDsyncro.appointments.delete
  • Deletes a Ticket Timersyncro.tickets.delete_timer_entry
  • Deletes a Ticket Attachmentsyncro.tickets.delete_attachment
  • Deletes a Product SKU by IDsyncro.product_skus.delete
  • Deletes a Phone by IDsyncro.phones.delete
  • Deletes a Wiki Page by IDsyncro.wiki_pages.delete
  • Deletes a Product Imagesyncro.products.delete_image
  • Deletes a Worksheet Resultsyncro.worksheet_results.delete
  • Deletes an Appointment Type by IDsyncro.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.

dosyncro.invoices.deleteconfirm_policy: human

Deletes an invoice by ID?

intent: the user asked me to deletes an invoice by ID

run suspended · waiting for a named person · key syncro-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
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]" }  ]}
Illustrative. Scoped to Syncro only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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

See pricing

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 Responsewrite
  • syncro.canned_responses.deleteDeletes a Canned Responsedestructive
  • syncro.canned_responses.listReturns a list of Canned Responses with a queryread
  • syncro.canned_responses.patchUpdates a Canned Responsewrite
  • syncro.canned_responses.settings_getReturns the settings for Canned Responsesread
  • syncro.new_ticket_forms.getRetrieves a Ticket Formread
  • syncro.new_ticket_forms.listReturns a paginated list of Ticket Formsread
  • syncro.new_ticket_forms.process_formCreates a new Ticket for a Ticket Formwrite
  • syncro.ticket_blueprints.applyCreates tickets from a Blueprintwrite
  • syncro.ticket_blueprints.listReturns a paginated list of Ticket Blueprintsread
  • syncro.ticket_comments.listReturns a paginated flat list of comments across multiple ticketsread
  • syncro.ticket_timers.createCreates a Ticket Timer that starts runningwrite
  • syncro.ticket_timers.listReturns a paginated list of Ticket Timersread
  • syncro.ticket_timers.patchUpdates an existing Ticket Timer by IDwrite
  • syncro.ticket_timers.pausePauses a running Ticket Timerwrite
  • syncro.ticket_timers.startStarts (or resumes a paused) Ticket Timerwrite
  • syncro.ticket_timers.stopStops a running or paused Ticket Timerwrite
  • syncro.tickets.attach_file_urlAttach a file to a Ticketwrite
  • syncro.tickets.charge_timer_entryCharges a Ticket Timerwrite
  • syncro.tickets.comments_createAdds a Comment to a Ticketwrite
  • syncro.tickets.comments_listReturns Comments for a Ticketread
  • syncro.tickets.createCreates a Ticketwrite
  • syncro.tickets.deleteDeletes a Ticket by IDdestructive
  • syncro.tickets.delete_attachmentDeletes a Ticket Attachmentdestructive
  • syncro.tickets.delete_timer_entryDeletes a Ticket Timerdestructive
  • syncro.tickets.getRetrieves a Ticket by IDread
  • syncro.tickets.line_items_createCreates a Ticket Line Itemwrite
  • syncro.tickets.line_items_deleteDeletes a Ticket Line Itemdestructive
  • syncro.tickets.line_items_updateUpdates an existing Ticket Line Itemwrite
  • syncro.tickets.listReturns a paginated list of Ticketsread
  • syncro.tickets.printPrints a Ticket by IDwrite
  • syncro.tickets.settings_getReturns Tickets Settingsread
  • syncro.tickets.timer_entry_createCreate a Ticket Timer for a Ticketwrite
  • syncro.tickets.timer_entry_updateUpdates an existing Ticket Timerwrite
  • syncro.tickets.updateUpdates an existing Ticket by IDwrite
  • syncro.timelogs.last_getReturns last Timelogread
  • syncro.timelogs.listReturns a paginated list of Timelogsread
  • syncro.timelogs.updateUpdates a Timelogwrite
  • syncro.worksheet_results.createCreates Worksheet Resultwrite
  • syncro.worksheet_results.deleteDeletes a Worksheet Resultdestructive
  • syncro.worksheet_results.getRetrieves a Worksheet Result by IDread
  • syncro.worksheet_results.listReturns a paginated list of Worksheet Resultsread
  • syncro.worksheet_results.updateUpdates a Worksheet Resultwrite
RMM22
  • syncro.assets.chat_informationRetrieves Assets by IDread
  • syncro.assets.createCreates an Assetwrite
  • syncro.assets.getRetrieves an Asset by IDread
  • syncro.assets.installed_applications_listRetrieves installed applications for an Assetread
  • syncro.assets.listReturns a paginated list of Assetsread
  • syncro.assets.list_by_contactReturns a list of Assets for a specific contactread
  • syncro.assets.patches_getRetrieves Windows patch data for an Assetread
  • syncro.assets.updateUpdates an existing Asset by IDwrite
  • syncro.policy_folders.createCreates a Policy Folderwrite
  • syncro.policy_folders.deleteDeletes a Policy Folder by IDdestructive
  • syncro.policy_folders.getRetrieves a Policy Folder by IDread
  • syncro.policy_folders.listReturns a paginated list of Policy Foldersread
  • syncro.policy_folders.updateUpdates an existing Policy Folder by IDwrite
  • syncro.rmm_alerts.createCreates an RMM Alertwrite
  • syncro.rmm_alerts.deleteDeletes/Clears an RMM Alert by IDdestructive
  • syncro.rmm_alerts.getRetrieves an RMM Alert by IDread
  • syncro.rmm_alerts.listReturns a paginated list of RMM Alertsread
  • syncro.rmm_alerts.muteMutes an RMM Alert by IDwrite
  • syncro.rmm_scripts.scheduleSchedules a Script on an Assetwrite
  • syncro.user_devices.createCreates a User Devicewrite
  • syncro.user_devices.getRetrieves an existing User Device by UUIDread
  • syncro.user_devices.updateUpdates an existing User Device by UUIDwrite
Catalog17
  • syncro.product_serials.attach_to_line_itemAdds Product Serials to a Line Itemwrite
  • syncro.product_serials.createCreates a Product Serialwrite
  • syncro.product_serials.listReturns a paginated list of Product_serialsread
  • syncro.product_serials.updateUpdates an existing Product Serial by IDwrite
  • syncro.product_skus.createCreates a Product SKUwrite
  • syncro.product_skus.deleteDeletes a Product SKU by IDdestructive
  • syncro.product_skus.listReturns a list of Product SKUsread
  • syncro.product_skus.updateUpdates an existing Product SKU by IDwrite
  • syncro.products.add_imagesCreates a Product Imagewrite
  • syncro.products.barcode_getReturns a Product by Barcoderead
  • syncro.products.categories_listReturns a paginated list of Product Categoriesread
  • syncro.products.createCreates a Productwrite
  • syncro.products.delete_imageDeletes a Product Imagedestructive
  • syncro.products.getRetrieves a Product by IDread
  • syncro.products.listReturns a paginated list of Productsread
  • syncro.products.location_quantities_updateUpdates a Location Quantitywrite
  • syncro.products.updateUpdates an existing Product by IDwrite
Invoicing12
  • syncro.invoices.createCreates an Invoicewrite
  • syncro.invoices.deleteDeletes an invoice by IDdestructive
  • syncro.invoices.emailSends invoice to customerwrite
  • syncro.invoices.getRetrieves an Invoice by ID or Numberread
  • syncro.invoices.line_items_createCreates a new line itemwrite
  • syncro.invoices.line_items_deleteDeletes an a line item of an invoice by IDdestructive
  • syncro.invoices.line_items_updateUpdates an a line item of an invoice by IDwrite
  • syncro.invoices.listReturns a paginated list of Invoicesread
  • syncro.invoices.printQueues a print job for an invoicewrite
  • syncro.invoices.ticket_getReturns the associated ticket for an invoiceread
  • syncro.invoices.updateUpdates an existing invoice by IDwrite
  • syncro.line_items.listReturns a paginated list of Line Itemsread
Quoting11
  • syncro.estimates.convert_to_invoiceConvert an Estimate to an Invoicewrite
  • syncro.estimates.createCreates an Estimatewrite
  • syncro.estimates.deleteDeletes an Estimate by IDdestructive
  • syncro.estimates.emailSends an Estimate to a Customerwrite
  • syncro.estimates.getRetrieves an Estimate by ID or numberread
  • syncro.estimates.line_items_createAdds a Line Item to an Estimatewrite
  • syncro.estimates.line_items_deleteDeletes a Line Itemdestructive
  • syncro.estimates.line_items_updateUpdates a Line Itemwrite
  • syncro.estimates.listReturns a paginated list of Estimatesread
  • syncro.estimates.printQueues a print job for an Estimatewrite
  • syncro.estimates.updateUpdates an existing Estimate by IDwrite
Recurring10
  • syncro.schedules.add_line_item_legacyAdds a Line Item to an Invoice Schedule (deprecated)write
  • syncro.schedules.createCreates an Invoice Schedulewrite
  • syncro.schedules.deleteDeletes a Schedule by IDdestructive
  • syncro.schedules.getRetrieves a Schedule by IDread
  • syncro.schedules.line_items_createAdds a Line Item to an Invoice Schedulewrite
  • syncro.schedules.line_items_deleteRemoves a Line Item from an Invoice Scheduledestructive
  • syncro.schedules.line_items_updateUpdates a Line Itemwrite
  • syncro.schedules.listReturns a paginated list of Invoice Schedulesread
  • syncro.schedules.remove_line_item_legacyRemoves a Line Item from an Invoice Schedule (deprecated)destructive
  • syncro.schedules.updateUpdates an existing Invoice Schedule by IDwrite
Scheduling10
  • syncro.appointment_types.createCreates an Appointment Typewrite
  • syncro.appointment_types.deleteDeletes an Appointment Type by IDdestructive
  • syncro.appointment_types.getRetrieves an Appointment Type by IDread
  • syncro.appointment_types.listReturns a paginated list of Appointment Typesread
  • syncro.appointment_types.updateUpdates an existing Appointment Type by IDwrite
  • syncro.appointments.createCreates an Appointmentwrite
  • syncro.appointments.deleteDeletes an Appointment by IDdestructive
  • syncro.appointments.getRetrieves an Appointment by IDread
  • syncro.appointments.listReturns a paginated list of Appointmentsread
  • syncro.appointments.updateUpdates an existing Appointment by IDwrite
Contacts9
  • syncro.contacts.createCreates a Contactwrite
  • syncro.contacts.deleteDeletes a Contactdestructive
  • syncro.contacts.getRetrieves a Contact by IDread
  • syncro.contacts.listReturns a paginated list of Contactsread
  • syncro.contacts.updateUpdates an existing Contactwrite
  • syncro.phones.createCreates a Phonewrite
  • syncro.phones.deleteDeletes a Phone by IDdestructive
  • syncro.phones.listReturns a paginated list of Phonesread
  • syncro.phones.updateUpdates an existing Phone by IDwrite
Payments9
  • syncro.payment_methods.listReturns a paginated list of Payment Methodsread
  • syncro.payment_profiles.createCreates a Payment Profilewrite
  • syncro.payment_profiles.deleteDeletes a Payment Profiledestructive
  • syncro.payment_profiles.getRetrieves a Payment Profile by IDread
  • syncro.payment_profiles.listReturns a paginated list of Payment Profilesread
  • syncro.payment_profiles.updateUpdates a Payment Profilewrite
  • syncro.payments.createCreates a Paymentwrite
  • syncro.payments.getRetrieves a Payment by IDread
  • syncro.payments.listReturns a paginated list of Paymentsread
Purchasing8
  • syncro.items.listReturns a paginated list of Part Ordersread
  • syncro.purchase_orders.attachments_createUpload an attachment to a Purchase Orderwrite
  • syncro.purchase_orders.createCreates a Purchase Orderwrite
  • syncro.purchase_orders.getRetrieves a Purchase Order by IDread
  • syncro.purchase_orders.line_items_createAdds a Product to a Purchase Orderwrite
  • syncro.purchase_orders.listReturns a paginated list of Purchase Ordersread
  • syncro.purchase_orders.receiveReceive purchase_orderwrite
  • syncro.purchase_orders.updateUpdates a Purchase Orderwrite
Accounts7
  • syncro.customers.autocompleteReturns a paginated list of customers for autocomplete queryread
  • syncro.customers.createCreates a Customerwrite
  • syncro.customers.deleteDeletes a Customer by IDdestructive
  • syncro.customers.getRetrieves a Customer by IDread
  • syncro.customers.latest_getReturns latest Customerread
  • syncro.customers.listReturns a paginated list of customersread
  • syncro.customers.updateUpdates an existing Customer by IDwrite
Portal5
  • syncro.portal_users.createCreates a Portal Userwrite
  • syncro.portal_users.create_invitationCreates an Invitation for a Portal Userwrite
  • syncro.portal_users.deleteDeletes a Portal User by IDdestructive
  • syncro.portal_users.listReturns a paginated list of Portal Usersread
  • syncro.portal_users.updateUpdates an existing Portal User by IDwrite
Knowledge5
  • syncro.wiki_pages.createCreates a Wiki Pagewrite
  • syncro.wiki_pages.deleteDeletes a Wiki Page by IDdestructive
  • syncro.wiki_pages.getRetrieves a Wiki Pageread
  • syncro.wiki_pages.listReturns a paginated list of Wiki Pagesread
  • syncro.wiki_pages.updateUpdates an existing Wiki Page by IDwrite
Contracts5
  • syncro.contracts.createCreates a Contractwrite
  • syncro.contracts.deleteDeletes a Contract by IDdestructive
  • syncro.contracts.getRetrieves a Contract by IDread
  • syncro.contracts.listReturns a paginated list of Contractsread
  • syncro.contracts.updateUpdates an existing Contract by IDwrite
Leads4
  • syncro.leads.createCreates a Leadwrite
  • syncro.leads.getRetrieves a Lead by IDread
  • syncro.leads.listReturns a paginated list of Leadsread
  • syncro.leads.updateUpdates an existing Lead by IDwrite
Users4
  • syncro.users.getRetrieves an existing User by IDread
  • syncro.users.listReturns a paginated list of Usersread
  • syncro.users.me_getReturns the current userread
  • syncro.users.otp_loginAuthorize a User with One Time Passwordwrite
Vendors4
  • syncro.vendors.createCreates a Vendorwrite
  • syncro.vendors.getRetrieves a Vendor Pageread
  • syncro.vendors.listReturns a paginated list of Vendorsread
  • syncro.vendors.updateUpdates an existing Vendor page by IDwrite
Settings3
  • syncro.settings.getReturns a list of Account Settings with rolloutread
  • syncro.settings.printing_getReturns Printing Settingsread
  • syncro.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.