Skip to content

Brightpearl MCP by usefulapi

io.usefulapi/brightpearlusefulapi.iostreamable-httpv1.0.1Scanned

Search Brightpearl orders, products, stock, contacts and payments; add notes, update order status.

25 tools: 3 can delete or cancel things and 22 only read.

Tools: 3 delete, 0 irreversible, 0 write, 22 read.
  • Reads private data · 5
  • Reads text others write · 25
  • Can send data out · 0
  • No findings

Anlyon alternative

3 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

25 tools

Deletes or cancels 3Claude Code: deny
  • brightpearl_add_contact_noteWRITE: add a note to a contact's timeline (for example a record of correspondence).Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_add_contact_note" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: add a note to a contact's timeline (for example a record of correspondence). The note is private (staff only) unless is_public is true, which makes it visible on the customer portal. Returns the new note id. Notes cannot be removed with this server. POST /contact-service/contact/{id}/note.

    Annotations the server declares

    • title: Add contact note
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • brightpearl_add_order_noteWRITE: add a note to an existing order.Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_add_order_note" says "add": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: add a note to an existing order. The note is private (staff only) unless is_public is true, which makes it visible on the customer portal. Returns the new note id. Notes cannot be removed with this server. POST /order-service/order/{id}/note.

    Annotations the server declares

    • title: Add order note
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • brightpearl_update_order_statusWRITE: move an existing order to another status (ids from brightpearl_list_order_statuses; the new status must exist, be visible and belong to this order's type).Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_update_order_status" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: move an existing order to another status (ids from brightpearl_list_order_statuses; the new status must exist, be visible and belong to this order's type). Brightpearl adds an order note on success, and status changes can trigger the account's alerts and automations. Moving a sales order to the account's 'cancelled' status removes its reservations and coupons and is refused while goods-out notes or payments exist. PUT /order-service/order/{id}/status.

    Annotations the server declares

    • title: Update order status
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Only reads 22Show 22 read-only tools
  • brightpearl_get_account_configurationThe Brightpearl account's configuration as key/value pairs: base currency, tax scheme, time zone, default and new-order status ids, nominal codes, weight unit, whether multiple war…Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_get_account_configuration" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The Brightpearl account's configuration as key/value pairs: base currency, tax scheme, time zone, default and new-order status ids, nominal codes, weight unit, whether multiple warehouses are enabled. GET /integration-service/account-configuration.

    Annotations the server declares

    • title: Get account configuration
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_get_contactsFull records of one or more contacts by id: name, emails, phones, status, supplier/staff flags, financial details (price list, tax code, credit limit and terms), assignment, organi…Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_get_contacts" says "get": a word for reading.

    What it can reach

    • private-dataThe name "brightpearl_get_contacts" says "get" and "contact": it reads contacts.
    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    Full records of one or more contacts by id: name, emails, phones, status, supplier/staff flags, financial details (price list, tax code, credit limit and terms), assignment, organisation, tags, dates; optionally custom fields and the full postal addresses. Up to 50 ids. GET /contact-service/contact/{ids}.

    Annotations the server declares

    • title: Get contacts
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_get_order_notesAll notes on one order (text, author contact id, date, whether it is public on the customer portal, the order status at the time).Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_get_order_notes" says "get": a word for reading.

    What it can reach

    • private-dataThe name "brightpearl_get_order_notes" says "get" and "note": it reads notes.
    • private-dataThe description's first sentence says "note": it reads notes.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    All notes on one order (text, author contact id, date, whether it is public on the customer portal, the order status at the time). GET /order-service/order/{id}/note.

    Annotations the server declares

    • title: Get order notes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_get_ordersFull details of one or more orders by id: type, status, payment/stock/shipping status, dates, currency, totals, assignment, customer/supplier, billing and delivery parties, and the…Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_get_orders" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Full details of one or more orders by id: type, status, payment/stock/shipping status, dates, currency, totals, assignment, customer/supplier, billing and delivery parties, and the order rows (product, quantity, price, tax). Up to 50 ids. GET /order-service/order/{ids}.

    Annotations the server declares

    • title: Get orders
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_get_product_availabilityStock availability of stock-tracked products: for each product the totals across all warehouses (inStock, onHand, allocated, inTransit) and the same per warehouse; optionally per l…Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_get_product_availability" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Stock availability of stock-tracked products: for each product the totals across all warehouses (inStock, onHand, allocated, inTransit) and the same per warehouse; optionally per location, with on-order quantities. Up to 50 product ids. GET /warehouse-service/product-availability/{ids}.

    Annotations the server declares

    • title: Get product stock availability
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_get_product_pricesPrices of products per price list: for each product and price list the currency, SKU and the quantity-break price map (e.g.Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_get_product_prices" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Prices of products per price list: for each product and price list the currency, SKU and the quantity-break price map (e.g. {"1":"12","100":"11"}). Up to 50 product ids; optionally only some price lists (ids from brightpearl_list_price_lists). GET /product-service/product-price/{product ids}/price-list/{price list ids}.

    Annotations the server declares

    • title: Get product prices
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_get_productsFull details of one or more products by id: identity (SKU, barcodes), brand, type, stock-tracking, weight and dimensions, tax code, sales-channel names/descriptions/categories, bun…Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_get_products" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Full details of one or more products by id: identity (SKU, barcodes), brand, type, stock-tracking, weight and dimensions, tax code, sales-channel names/descriptions/categories, bundle composition, variations, per-warehouse reorder levels, supplier and status. Up to 50 ids. GET /product-service/product/{ids}.

    Annotations the server declares

    • title: Get products
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_list_order_statusesThe account's order statuses (id, name, order type code SO/PO/SC/PC, sort order, disabled, visible to the customer, state such as draft).Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_list_order_statuses" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The account's order statuses (id, name, order type code SO/PO/SC/PC, sort order, disabled, visible to the customer, state such as draft). Use the ids to filter orders or to change an order's status. GET /order-service/order-status.

    Annotations the server declares

    • title: List order statuses
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_list_order_typesThe four order types with their ids and codes (1 SO sales order, 2 PO purchase order, 3 SC sales credit, 4 PC purchase credit), for the order search.Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_list_order_types" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The four order types with their ids and codes (1 SO sales order, 2 PO purchase order, 3 SC sales credit, 4 PC purchase credit), for the order search. GET /order-service/order-type.

    Annotations the server declares

    • title: List order types
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_list_payment_methodsThe payment methods (name, code, active, bank accounts with currency and nominal code).Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_list_payment_methods" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The payment methods (name, code, active, bank accounts with currency and nominal code). GET /accounting-service/payment-method.

    Annotations the server declares

    • title: List payment methods
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_list_price_listsThe price lists (id, name, code, currency, SELL or BUY, gross or net).Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_list_price_lists" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The price lists (id, name, code, currency, SELL or BUY, gross or net). Id 0 is the cost price list. GET /product-service/price-list.

    Annotations the server declares

    • title: List price lists
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_list_shipping_methodsThe shipping methods (id, name, code, carrier, price breaks, countries).Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_list_shipping_methods" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The shipping methods (id, name, code, carrier, price breaks, countries). GET /warehouse-service/shipping-method.

    Annotations the server declares

    • title: List shipping methods
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_list_tax_codesThe tax codes (id, code, description, rate).Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_list_tax_codes" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The tax codes (id, code, description, rate). GET /accounting-service/tax-code.

    Annotations the server declares

    • title: List tax codes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_list_warehousesThe warehouses (id, name, type, address id, click-and-collect settings, weekly operating hours).Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_list_warehouses" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The warehouses (id, name, type, address id, click-and-collect settings, weekly operating hours). Use the ids for stock and order filters. GET /warehouse-service/warehouse.

    Annotations the server declares

    • title: List warehouses
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_search_brandsSearch product brands by name; each row has brandId, brandName, createdOn, updatedOn.Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_search_brands" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Search product brands by name; each row has brandId, brandName, createdOn, updatedOn. GET /product-service/brand-search.

    Annotations the server declares

    • title: Search brands
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_search_categoriesSearch Brightpearl product categories; each row has id, name, parentId, active, createdOn, updatedOn.Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_search_categories" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Search Brightpearl product categories; each row has id, name, parentId, active, createdOn, updatedOn. GET /product-service/brightpearl-category-search.

    Annotations the server declares

    • title: Search product categories
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_search_contactsSearch contacts (customers, suppliers and staff).Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_search_contacts" says "search": a word for reading.

    What it can reach

    • private-dataThe name "brightpearl_search_contacts" says "search" and "contact": it reads contacts.
    • private-dataThe description's first sentence says "search" and "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Search contacts (customers, suppliers and staff). Every filter is optional and they combine (AND); each result row has contactId, primaryEmail, firstName, lastName, companyName, isSupplier, isStaff, isCustomer, createdOn, updatedOn, lastOrderedOn and more. Use brightpearl_get_contacts for the full record. GET /contact-service/contact-search.

    Annotations the server declares

    • title: Search contacts
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_search_customer_paymentsSearch payments received against sales orders; each row has paymentId, transactionRef, paymentMethodCode, paymentType, orderId, currencyCode, amountAuthorized, amountPaid, paymentD…Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_search_customer_payments" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Search payments received against sales orders; each row has paymentId, transactionRef, paymentMethodCode, paymentType, orderId, currencyCode, amountAuthorized, amountPaid, paymentDate, createdOn, journalId. GET /accounting-service/customer-payment-search.

    Annotations the server declares

    • title: Search customer payments
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_search_goods_in_notesSearch goods-in records (stock received against purchase orders, by batch and location); each row has purchaseOrderId, batchId, productId, locationId, price, currCode, receivedQuan…Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_search_goods_in_notes" says "search": a word for reading.

    What it can reach

    • private-dataThe name "brightpearl_search_goods_in_notes" says "search" and "note": it reads notes.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Search goods-in records (stock received against purchase orders, by batch and location); each row has purchaseOrderId, batchId, productId, locationId, price, currCode, receivedQuantity, onHand, createdDate, receivedDate, warehouseId. GET /warehouse-service/goods-in-search.

    Annotations the server declares

    • title: Search goods-in notes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_search_goods_out_notesSearch goods-out notes, the pick/pack/ship records of sales orders; each row has goodsOutNoteId, printed, picked, packed, shipped, shippedOn, orderId, shippingMethodId, warehouseId…Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_search_goods_out_notes" says "search": a word for reading.

    What it can reach

    • private-dataThe name "brightpearl_search_goods_out_notes" says "search" and "note": it reads notes.
    • private-dataThe description's first sentence says "search" and "note": it reads notes.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Search goods-out notes, the pick/pack/ship records of sales orders; each row has goodsOutNoteId, printed, picked, packed, shipped, shippedOn, orderId, shippingMethodId, warehouseId, createdOn, releaseDate, transfer. GET /warehouse-service/goods-note/goods-out-search.

    Annotations the server declares

    • title: Search goods-out notes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_search_ordersSearch sales orders, sales credits, purchase orders and purchase credits.Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_search_orders" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Search sales orders, sales credits, purchase orders and purchase credits. Every filter is optional and they combine (AND); each result row has orderId, orderTypeId, contactId, orderStatusId, orderStockStatusId, createdOn, updatedOn, customerRef, externalRef, warehouseId and more. Use brightpearl_get_orders for the full order. Order type ids: brightpearl_list_order_types; status ids: brightpearl_list_order_statuses. GET /order-service/order-search.

    Annotations the server declares

    • title: Search orders
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • brightpearl_search_productsSearch the product catalogue.Reads text others writeNo findings

    Why it is in this group

    • The name "brightpearl_search_products" says "search": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Search the product catalogue. Every filter is optional and they combine (AND); each result row has productId, productName, SKU, barcode, EAN, UPC, ISBN, MPN, stockTracked, createdOn, updatedOn, brightpearlCategoryCode, productGroupId, brandId, productTypeId, productStatus, primarySupplierId. Use brightpearl_get_products for full details. GET /product-service/product-search.

    Annotations the server declares

    • title: Search products
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

No check matched anything in these tool definitions. That is not a safety guarantee.

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

Pinned to version 1.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http brightpearl https://brightpearl.usefulapi.io/mcp
claude mcp add --transport http brightpearl https://brightpearl.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__brightpearl__brightpearl_get_account_configuration",
      "mcp__brightpearl__brightpearl_search_orders",
      "mcp__brightpearl__brightpearl_get_orders",
      "mcp__brightpearl__brightpearl_get_order_notes",
      "mcp__brightpearl__brightpearl_list_order_statuses",
      "mcp__brightpearl__brightpearl_list_order_types",
      "mcp__brightpearl__brightpearl_search_products",
      "mcp__brightpearl__brightpearl_get_products",
      "mcp__brightpearl__brightpearl_get_product_prices",
      "mcp__brightpearl__brightpearl_get_product_availability",
      "mcp__brightpearl__brightpearl_list_price_lists",
      "mcp__brightpearl__brightpearl_search_brands",
      "mcp__brightpearl__brightpearl_search_categories",
      "mcp__brightpearl__brightpearl_list_warehouses",
      "mcp__brightpearl__brightpearl_list_shipping_methods",
      "mcp__brightpearl__brightpearl_search_goods_out_notes",
      "mcp__brightpearl__brightpearl_search_goods_in_notes",
      "mcp__brightpearl__brightpearl_search_contacts",
      "mcp__brightpearl__brightpearl_get_contacts",
      "mcp__brightpearl__brightpearl_search_customer_payments",
      "mcp__brightpearl__brightpearl_list_payment_methods",
      "mcp__brightpearl__brightpearl_list_tax_codes"
    ],
    "ask": [],
    "deny": [
      "mcp__brightpearl__brightpearl_add_order_note",
      "mcp__brightpearl__brightpearl_update_order_status",
      "mcp__brightpearl__brightpearl_add_contact_note"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as brightpearl. Review it before you use it.

Capability tags behind 25 rules
  • mcp__brightpearl__brightpearl_get_account_configuration untrusted-input
  • mcp__brightpearl__brightpearl_search_orders untrusted-input
  • mcp__brightpearl__brightpearl_get_orders untrusted-input
  • mcp__brightpearl__brightpearl_get_order_notes private-data, untrusted-input
  • mcp__brightpearl__brightpearl_list_order_statuses untrusted-input
  • mcp__brightpearl__brightpearl_list_order_types untrusted-input
  • mcp__brightpearl__brightpearl_add_order_note untrusted-input
  • mcp__brightpearl__brightpearl_update_order_status untrusted-input
  • mcp__brightpearl__brightpearl_search_products untrusted-input
  • mcp__brightpearl__brightpearl_get_products untrusted-input
  • mcp__brightpearl__brightpearl_get_product_prices untrusted-input
  • mcp__brightpearl__brightpearl_get_product_availability untrusted-input
  • mcp__brightpearl__brightpearl_list_price_lists untrusted-input
  • mcp__brightpearl__brightpearl_search_brands untrusted-input
  • mcp__brightpearl__brightpearl_search_categories untrusted-input
  • mcp__brightpearl__brightpearl_list_warehouses untrusted-input
  • mcp__brightpearl__brightpearl_list_shipping_methods untrusted-input
  • mcp__brightpearl__brightpearl_search_goods_out_notes private-data, untrusted-input
  • mcp__brightpearl__brightpearl_search_goods_in_notes private-data, untrusted-input
  • mcp__brightpearl__brightpearl_search_contacts private-data, untrusted-input
  • mcp__brightpearl__brightpearl_get_contacts private-data, untrusted-input
  • mcp__brightpearl__brightpearl_add_contact_note untrusted-input
  • mcp__brightpearl__brightpearl_search_customer_payments untrusted-input
  • mcp__brightpearl__brightpearl_list_payment_methods untrusted-input
  • mcp__brightpearl__brightpearl_list_tax_codes untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/brightpearl/verify?hash=95b6f80f8800f4027c7ff81f1dd68e4904e8433876ceb7275a847b59cb8a908b" | jq -e '.changed == false'

Pinned hash 95b6f80f8800, from Oct 23, 2026, 10:18 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/io.usefulapi/brightpearl/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.usefulapi/brightpearl
[![anlyon.dev](https://anlyon.dev/badge/io.usefulapi/brightpearl.svg)](https://anlyon.dev/servers/io.usefulapi/brightpearl)

Source: MCP Registry · repository. Synced Oct 23, 2026, 10:18 UTC.