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.
- 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.
- Reads private data5
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write25
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- brightpearl_add_contact_note
- brightpearl_add_order_note
- brightpearl_get_account_configuration
- brightpearl_get_contacts
- brightpearl_get_order_notes
- brightpearl_get_orders
- brightpearl_get_product_availability
- brightpearl_get_product_prices
- brightpearl_get_products
- brightpearl_list_order_statuses
- brightpearl_list_order_types
- brightpearl_list_payment_methods
- and 13 more
- 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/mcpclaude mcp add --transport http brightpearl https://brightpearl.usefulapi.io/mcpRun 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.
{
"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.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/io.usefulapi/brightpearl)Source: MCP Registry · repository. Synced Oct 23, 2026, 10:18 UTC.