Skip to content

Connectors · Accounting & finance

Brightpearl by Sage MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Brightpearl by Sage and the rest of your systems. It gives your agent 215 Brightpearl by Sage actions (111 reads, 88 writes and 16 that wait for a confirmation) and holds the Brightpearl by Sage credential itself, so the agent never does. It paces Brightpearl by Sage'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: "brightpearl.contact.get",  intent: "check which Brightpearl by Sage account is connected"}# Get Contact · read · 1 upstream call
  • 215actionsin one signed file
  • 111readlook, never change
  • 88writecreate and update
  • 16wait for a yesdestructive, confirmed first

Set up

Connect Brightpearl by Sage 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 Brightpearl by Sage.

    Header credentials. 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.

    • app_refBrightpearl private app reference, e.g. `myaccount_myapp` (Brightpearl > App Store > Private apps)
    • staff_tokenThe staff token generated when the private app was added
    • account_codeYour Brightpearl by Sage account code
    • datacenterYour Brightpearl by Sage datacenter
    account { op: "connections.requirements", service: "brightpearl" }
    # 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: "brightpearl.contact.get" }# get contact · read · 1 upstream callcheck { action: "brightpearl.pick.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Brightpearl by Sage at a glance

Sign-in
Header credentials. 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
app_refstaff_token
Setup fields
account_codedatacenter
Limits we pace to
200 calls a minute, per connection
API covered
Brightpearl public API (api-docs.brightpearl.com, scraped 2026-10-23)euw1.brightpearlconnect.com/public-api
Built from
Brightpearl by Sage's documentation, read 23 October 2026api-docs.brightpearl.comhelp.brightpearl.com
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
111 of 111 reads, for up to 5 minutes; a write clears what it affects
Shared entities
4, so ask can line Brightpearl by Sage up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Brightpearl by Sage.

215 actions in 7 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

  • 111readlook, never change
  • 88writecreate and update
  • 16destructivewait for a confirmation
  1. Warehouse

    55

    25 read · 23 write · 7 destructive

    Get Warehouse · Create Asset Value Correction · Add events to a drop-ship note · Create Drop-Ship Note

  2. Products

    49

    33 read · 15 write · 1 destructive

    Get Product · Create Brand · Search Brand · Create Brightpearl Category

  3. Accounting

    36

    17 read · 17 write · 2 destructive

    Create Accounting Period · Search All transaction statement · Search Currency · Create Customer Payment

  4. Orders

    35

    17 read · 16 write · 2 destructive

    Get Order · Create Order · Search Order · Create Order Note

  5. Contacts

    32

    15 read · 14 write · 3 destructive

    Get Contact · Create Company · Search Company · Create Contact

  6. Integration

    7

    3 read · 3 write · 1 destructive

    Create Webhook · Simulate a webhook · Get Account Configuration · Get Integration Instance

  7. Pricing

    1

    1 read · 0 write · 0 destructive

    Get Customer Product Price

Top actions

The Brightpearl by Sage API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems.

ActionWhat it doesEffectSame name in
brightpearl.order.getGet OrderReturns a description of the requested orders.readthis connector
brightpearl.contact.getGet ContactThis resource allows you to fetch contacts.readthis connector
brightpearl.product.getGet Productid: The unique ID of the product brandId: The ID of the brand the product belongs to.readthis connector
brightpearl.warehouse.getGet WarehouseReturns the ID, name, type, address, weekly operating hours and sla values for one or more warehouses.readthis connector
brightpearl.pick.createCreate PickA pick message updates a single goods-out note at a time though the changes it makes may have a knock-on effect on other goods-out and reservation notes in…writethis connector
brightpearl.zone.createCreate ZoneThis method enables you to create new warehouse zone.writethis connector
brightpearl.zone.searchSearch ZoneSearch Zone.readthis connector
brightpearl.brand.createCreate BrandThis message allows you to create a new brand .writethis connector
brightpearl.brand.searchSearch BrandSearch Brand.readthis connector
brightpearl.order.createCreate OrderThis message enables you to create new sales orders/credits and purchase orders/credits in your Brightpearl system.writethis connector
brightpearl.option.createCreate OptionThis message allows you to create a new option.writethis connector
brightpearl.zone.deleteDelete ZoneThis method enables you to delete a warehouse zone.destructivethis connector

Try it

Prompts to paste into Claude.

Each one names the Brightpearl by Sage actions it will call, so you know what it reads and what it changes before you send it.

  1. Readread

    Which Brightpearl by Sage orders from the last seven days are still unfulfilled?

    callsbrightpearl.order.get

  2. Writewrite

    Create Pick in Brightpearl by Sage. Show me exactly what you will send before you save it.

    callsbrightpearl.pick.create

Governance for Brightpearl by Sage

Destructive actions wait for a yes.

16 Brightpearl by Sage actions are destructive. These are all of them:

  • Delete Zonebrightpearl.zone.delete
  • Forget (anonymise) a contactbrightpearl.contact.forget
  • Delete Webhookbrightpearl.webhook.delete
  • Delete Locationbrightpearl.location.delete
  • Delete Order Rowbrightpearl.order_row.delete
  • Delete Warehousebrightpearl.warehouse.delete
  • Remove a tag from contactsbrightpearl.contact_tag.delete
  • Delete Reservationbrightpearl.reservation.delete
  • Delete Goods-In Notebrightpearl.goods_in_note.delete
  • Forget (anonymise) a contact's ordersbrightpearl.order.forget_contact
  • Delete Goods-Out Notebrightpearl.goods_out_note.delete
  • Delete Reservation Rowbrightpearl.reservation_row.delete
  • Delete Customer Paymentbrightpearl.customer_payment.delete
  • Delete Product Supplierbrightpearl.product_supplier.delete
  • Delete Supplier Paymentbrightpearl.supplier_payment.delete
  • Delete Contact Group Memberbrightpearl.contact_group_member.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.

dobrightpearl.zone.deleteconfirm_policy: human

Delete Zone?

intent: the user asked me to delete Zone

run suspended · waiting for a named person · key brightpearl-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "brightpearl-agent",  allowed_actions: ["brightpearl.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "brightpearl.zone.delete", approver: "[email protected]" },    { match: "brightpearl.contact.forget", approver: "[email protected]" },    { match: "brightpearl.webhook.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Brightpearl by Sage only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Brightpearl by Sage costs on actionlake.

Every Brightpearl by Sage action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Brightpearl by Sage 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 215 Brightpearl by Sage actions
  • 215actions pageeach page of a long list is one call
  • 111reads 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 Brightpearl by Sage action.

215 actions by area: the id your agent calls, what it does, and its effect.

Warehouse55
  • brightpearl.asset_value_correction.createCreate Asset Value Correctionwrite
  • brightpearl.bundle_availability.getGet Bundle Availabilityread
  • brightpearl.default_location.getGet Default Locationread
  • brightpearl.drop_ship_note.add_eventAdd events to a drop-ship notewrite
  • brightpearl.drop_ship_note.createCreate Drop-Ship Notewrite
  • brightpearl.drop_ship_note.getGet Drop-Ship Noteread
  • brightpearl.external_transfer.createCreate External Transferwrite
  • brightpearl.fulfilment_source.getGet Fulfilment Sourceread
  • brightpearl.goods_in_note.correctCorrect a goods-in notewrite
  • brightpearl.goods_in_note.createCreate Goods-In Notewrite
  • brightpearl.goods_in_note.deleteDelete Goods-In Notedestructive
  • brightpearl.goods_in_note.getGet Goods-In Noteread
  • brightpearl.goods_in_note.searchSearch Goods-In Noteread
  • brightpearl.goods_movement.searchSearch Goods Movementread
  • brightpearl.goods_out_note.add_eventAdd events to a goods-out notewrite
  • brightpearl.goods_out_note.createCreate Goods-Out Notewrite
  • brightpearl.goods_out_note.deleteDelete Goods-Out Notedestructive
  • brightpearl.goods_out_note.getGet Goods-Out Noteread
  • brightpearl.goods_out_note.searchSearch Goods-Out Noteread
  • brightpearl.goods_out_note.updateUpdate Goods-Out Notewrite
  • brightpearl.internal_transfer.createCreate Internal Transferwrite
  • brightpearl.location.createCreate Locationwrite
  • brightpearl.location.deleteDelete Locationdestructive
  • brightpearl.location.getGet Locationread
  • brightpearl.location.searchSearch Locationread
  • brightpearl.order_fulfilment_status.getGet Order fulfilment statusread
  • brightpearl.pick.createCreate Pickwrite
  • brightpearl.product_availability.getGet Product Availabilityread
  • brightpearl.quarantine.releaseRelease stock from quarantinewrite
  • brightpearl.quarantine_location.getGet Quarantine Locationread
  • brightpearl.reservation.createCreate Reservationwrite
  • brightpearl.reservation.deleteDelete Reservationdestructive
  • brightpearl.reservation.getGet Reservationread
  • brightpearl.reservation.updateUpdate Reservationwrite
  • brightpearl.reservation_row.deleteDelete Reservation Rowdestructive
  • brightpearl.reservations.getGet Reservationsread
  • brightpearl.shipping_method.createCreate Shipping Methodwrite
  • brightpearl.shipping_method.getGet Shipping Methodread
  • brightpearl.shipping_method.searchSearch Shipping Methodread
  • brightpearl.stock_correction.createCreate Stock Correctionwrite
  • brightpearl.stock_correction.getGet Stock Correctionread
  • brightpearl.stock_transfer.createCreate Stock Transferwrite
  • brightpearl.stock_transfer.getGet Stock Transferread
  • brightpearl.warehouse.createCreate Warehousewrite
  • brightpearl.warehouse.deleteDelete Warehousedestructive
  • brightpearl.warehouse.getGet Warehouseread
  • brightpearl.warehouse.searchSearch Warehouseread
  • brightpearl.warehouse.updateUpdate Warehousewrite
  • brightpearl.warehouse_defaults.getGet Warehouse Defaultsread
  • brightpearl.warehouse_defaults.updateUpdate Warehouse Defaultswrite
  • brightpearl.zone.createCreate Zonewrite
  • brightpearl.zone.deleteDelete Zonedestructive
  • brightpearl.zone.getGet Zoneread
  • brightpearl.zone.patchPatch Zonewrite
  • brightpearl.zone.searchSearch Zoneread
Products49
  • brightpearl.brand.createCreate Brandwrite
  • brightpearl.brand.getGet Brandread
  • brightpearl.brand.searchSearch Brandread
  • brightpearl.brightpearl_category.createCreate Brightpearl Categorywrite
  • brightpearl.brightpearl_category.getGet Brightpearl Categoryread
  • brightpearl.brightpearl_category.searchSearch Brightpearl Categoryread
  • brightpearl.channel.getGet Channelread
  • brightpearl.channel_brand.getGet Channel brandread
  • brightpearl.collection.searchSearch Collectionread
  • brightpearl.discount_contact_usage.getGet Discount contact usageread
  • brightpearl.discount_total_usage.getGet Discount total usageread
  • brightpearl.option.createCreate Optionwrite
  • brightpearl.option.getGet Optionread
  • brightpearl.option.searchSearch Optionread
  • brightpearl.option_value.createCreate Option Valuewrite
  • brightpearl.option_value.getGet Option Valueread
  • brightpearl.option_value.searchSearch Option Valueread
  • brightpearl.price_list.getGet Price Listread
  • brightpearl.product.createCreate Productwrite
  • brightpearl.product.getGet Productread
  • brightpearl.product.searchSearch Productread
  • brightpearl.product.updateUpdate Productwrite
  • brightpearl.product.urisGet request URIs for Productread
  • brightpearl.product_bundle.getGet Product Bundleread
  • brightpearl.product_custom_field.getGet Custom Fieldread
  • brightpearl.product_custom_field.patchPatch Custom Fieldwrite
  • brightpearl.product_custom_field_metadata.getGet Custom Field Metadataread
  • brightpearl.product_custom_fields.getGet Product Custom Fieldread
  • brightpearl.product_group.getGet Product Groupread
  • brightpearl.product_group.updateUpdate Product Groupwrite
  • brightpearl.product_identity.updateUpdate Product Identitywrite
  • brightpearl.product_option_value.getGet Product option valueread
  • brightpearl.product_option_value.urisGet request URIs for Product option valueread
  • brightpearl.product_price.getGet product prices (every price list)read
  • brightpearl.product_price.get_by_price_listGet product prices for given price listsread
  • brightpearl.product_price.updateUpdate Product Pricewrite
  • brightpearl.product_price.urisGet request URIs for Product Priceread
  • brightpearl.product_price.uris_by_price_listGet request URIs for Product Priceread
  • brightpearl.product_primary_supplier.updateUpdate Product Primary Supplierwrite
  • brightpearl.product_supplier.createCreate Product Supplierwrite
  • brightpearl.product_supplier.deleteDelete Product Supplierdestructive
  • brightpearl.product_supplier.getGet Product Supplierread
  • brightpearl.product_type.createCreate Product Typewrite
  • brightpearl.product_type.getGet Product Typeread
  • brightpearl.product_type.searchSearch Product Typeread
  • brightpearl.product_type_option_association.createAssociate options with product typeswrite
  • brightpearl.season.createCreate Seasonwrite
  • brightpearl.season.getGet Seasonread
  • brightpearl.season.searchSearch Seasonread
Accounting36
  • brightpearl.accounting_period.createCreate Accounting Periodwrite
  • brightpearl.accounting_period.getGet Accounting Periodread
  • brightpearl.accounting_period_lock.getGet Accounting Period Lockread
  • brightpearl.all_transaction_statement.searchSearch All transaction statementread
  • brightpearl.contact_balance.getGet Contact balanceread
  • brightpearl.currency.searchSearch Currencyread
  • brightpearl.customer_payment.createCreate Customer Paymentwrite
  • brightpearl.customer_payment.deleteDelete Customer Paymentdestructive
  • brightpearl.customer_payment.searchSearch Customer Paymentread
  • brightpearl.exchange_rate.createCreate Exchange Ratewrite
  • brightpearl.exchange_rate.getGet Exchange Rateread
  • brightpearl.exchange_rate.updateUpdate Exchange Ratewrite
  • brightpearl.journal.createCreate a journal (deprecated)write
  • brightpearl.journal.getGet Journalread
  • brightpearl.journal.searchSearch Journalread
  • brightpearl.journal_entry.createCreate Journal Entrywrite
  • brightpearl.landed_cost_allocation.createCreate Landed Cost Allocationwrite
  • brightpearl.nominal_code.getGet Nominal Coderead
  • brightpearl.nominal_code.searchSearch Nominal Coderead
  • brightpearl.payment_method.createCreate Payment Methodwrite
  • brightpearl.payment_method.getGet Payment Methodread
  • brightpearl.payment_method.searchSearch Payment Methodread
  • brightpearl.payment_method.updateUpdate Payment Methodwrite
  • brightpearl.purchase_credit_invoice.createCreate Purchase Creditwrite
  • brightpearl.purchase_invoice.createCreate Purchase Invoicewrite
  • brightpearl.purchase_payment.createCreate Purchase Paymentwrite
  • brightpearl.purchase_payment_total.getGet Purchase Payment Totalread
  • brightpearl.sale_payment_total.getGet Sale Payment Totalread
  • brightpearl.sales_credit_invoice.createCreate Sales Creditwrite
  • brightpearl.sales_invoice.createCreate Sales Invoicewrite
  • brightpearl.sales_receipt.createCreate Sales Receiptwrite
  • brightpearl.sales_receipt_legacy.createCreate a sales receipt (deprecated endpoint)write
  • brightpearl.supplier_payment.createCreate Supplier Paymentwrite
  • brightpearl.supplier_payment.deleteDelete Supplier Paymentdestructive
  • brightpearl.supplier_payment.searchSearch Supplier Paymentread
  • brightpearl.tax_code.getGet Tax Coderead
Orders35
  • brightpearl.landed_cost_estimate.getGet Landed Cost Estimateread
  • brightpearl.order.acknowledgeAcknowledge an orderwrite
  • brightpearl.order.createCreate Orderwrite
  • brightpearl.order.forget_contactForget (anonymise) a contact's ordersdestructive
  • brightpearl.order.getGet Orderread
  • brightpearl.order.patchPatch Orderwrite
  • brightpearl.order.searchSearch Orderread
  • brightpearl.order.set_statusUpdate the status of an orderwrite
  • brightpearl.order.urisGet request URIs for Orderread
  • brightpearl.order_custom_field.getGet Custom Fieldread
  • brightpearl.order_custom_field.patchPatch Custom Fieldwrite
  • brightpearl.order_custom_field_metadata.getGet Custom Field Metadataread
  • brightpearl.order_note.createCreate Order Notewrite
  • brightpearl.order_note.getGet Order Noteread
  • brightpearl.order_note.searchSearch Order Noteread
  • brightpearl.order_row.createCreate Order Rowwrite
  • brightpearl.order_row.deleteDelete Order Rowdestructive
  • brightpearl.order_row.patchPatch Order Rowwrite
  • brightpearl.order_shipping_status.getGet Order Shipping Statusread
  • brightpearl.order_status.createCreate Order Statuswrite
  • brightpearl.order_status.getGet Order Statusread
  • brightpearl.order_stock_status.getGet Order Stock Statusread
  • brightpearl.order_type.getGet Order Typeread
  • brightpearl.purchase_credit.closeClose purchase creditswrite
  • brightpearl.purchase_order.closeClose purchase orderswrite
  • brightpearl.sales_credit.closeClose a sales creditwrite
  • brightpearl.sales_credit.createCreate Sales Creditwrite
  • brightpearl.sales_credit.getGet Sales Creditread
  • brightpearl.sales_credit.urisGet request URIs for Sales Creditread
  • brightpearl.sales_order.closeClose a sales orderwrite
  • brightpearl.sales_order.createCreate Sales Orderwrite
  • brightpearl.sales_order.getGet Sales Orderread
  • brightpearl.sales_order.searchSearch Sales Orderread
  • brightpearl.sales_order.urisGet request URIs for Sales Orderread
  • brightpearl.sales_order_row.updateUpdate Sales Order Rowwrite
Contacts32
  • brightpearl.company.createCreate Companywrite
  • brightpearl.company.getGet Companyread
  • brightpearl.company.searchSearch Companyread
  • brightpearl.company.updateUpdate Companywrite
  • brightpearl.contact.createCreate Contactwrite
  • brightpearl.contact.forgetForget (anonymise) a contactdestructive
  • brightpearl.contact.getGet Contactread
  • brightpearl.contact.patchPatch Contactwrite
  • brightpearl.contact.searchSearch Contactread
  • brightpearl.contact.urisGet request URIs for Contactread
  • brightpearl.contact_custom_field.getGet Custom Fieldread
  • brightpearl.contact_custom_field.patchPatch Custom Fieldwrite
  • brightpearl.contact_custom_field_metadata.getGet Custom Field Metadataread
  • brightpearl.contact_group.createCreate Contact Groupwrite
  • brightpearl.contact_group.getGet Contact Groupread
  • brightpearl.contact_group.searchSearch Contact Groupread
  • brightpearl.contact_group.updateUpdate Contact Groupwrite
  • brightpearl.contact_group_member.createCreate Contact Group Memberwrite
  • brightpearl.contact_group_member.deleteDelete Contact Group Memberdestructive
  • brightpearl.contact_group_member.getGet Contact Group Memberread
  • brightpearl.contact_group_member.searchSearch Contact Group Memberread
  • brightpearl.contact_note.createCreate Contact Notewrite
  • brightpearl.contact_postal_address.updateUpdate Contact Postal Addresswrite
  • brightpearl.contact_status.updateUpdate Contact Statuswrite
  • brightpearl.contact_tag.createAdd tags to contactswrite
  • brightpearl.contact_tag.deleteRemove a tag from contactsdestructive
  • brightpearl.lead_source.getGet Lead Sourceread
  • brightpearl.postal_address.createCreate Postal Addresswrite
  • brightpearl.postal_address.getGet Postal Addressread
  • brightpearl.postal_address.updateUpdate Postal Addresswrite
  • brightpearl.project.getGet Projectread
  • brightpearl.tag.getGet Tagread
Integration7
  • brightpearl.account_configuration.getGet Account Configurationread
  • brightpearl.integration_instance.getGet Integration Instanceread
  • brightpearl.integration_instance.updateUpdate Integration Instancewrite
  • brightpearl.webhook.createCreate Webhookwrite
  • brightpearl.webhook.deleteDelete Webhookdestructive
  • brightpearl.webhook.getGet Webhookread
  • brightpearl.webhook.simulateSimulate a webhookwrite
Pricing1
  • brightpearl.customer_product_price.getGet Customer Product Priceread

Questions

The Brightpearl by Sage MCP server, answered.

Is there a Brightpearl by Sage MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 215 Brightpearl by Sage actions across warehouse, products, accounting and orders, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Brightpearl by Sage.

What do I need to connect Brightpearl by Sage?

Brightpearl private app reference, e.g. `myaccount_myapp` (Brightpearl > App Store > Private apps) and The staff token generated when the private app was added. Plus your account code and your datacenter. The free call account { op: "connections.requirements", service: "brightpearl" } lists exactly what to paste.

Can an AI agent delete or change things in Brightpearl by Sage?

Only if its key allows it, and only with an explicit confirmation. 16 Brightpearl by Sage actions are destructive, including delete Zone, forget (anonymise) a contact and delete Webhook. 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 Brightpearl by Sage API limit?

actionlake paces every call to the limits in the Brightpearl by Sage service file: 200 calls a minute per connection. Repeated reads are answered from cache (111 Brightpearl by Sage actions can be), which never reaches Brightpearl by Sage.

What does a Brightpearl by Sage action cost?

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (215 Brightpearl by Sage actions page). Cache hits, searches, dry runs and calls Brightpearl by Sage 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 Brightpearl by Sage API does it cover?

The Brightpearl public API (api-docs.brightpearl.com, scraped 2026-10-23) at euw1.brightpearlconnect.com/public-api by default, or the base URL set when you connect. It is built from Brightpearl by Sage's documentation as read on 23 October 2026. 215 actions in 7 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Brightpearl by Sage data, and where?

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, 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 Brightpearl by Sage 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 Brightpearl by Sage today.

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.