Skip to main content
Glama
dragosh29

Breww MCP server

by dragosh29

List customers

list_customers
Read-onlyIdempotent

Retrieve brewery customers, leads, and suppliers with order history, predicted next order, cadence, and churn/overdue probabilities to find who needs reordering or is at risk.

Instructions

Trade customers, leads and suppliers (Breww keeps them in one list) with last order date, predicted next order, ordering cadence, average order value and Breww's nightly churn and overdue probabilities. Good for 'who is overdue to reorder?' (next_expected_order_before today) and 'who have we lost?' (min_prob_churned). Contact details only with include_contact_details. Uses GET /customers-suppliers/.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagNoOnly customers with this tag: the tag's name (assumed; API parameter `tags`, which the spec does not describe)
pageNoAPI page to start from (use next_page from a previous call, with the same max_results)
orderingNoSort order (API parameter `ordering`): a field name, - in front for descending, several separated by commas. The API's default is ascending id.
entity_typeNoOnly records with this entity type flag set (API parameter `entity_type__bitand`)
max_resultsNoMost records to return in this call; whole API pages only (up to 200 per page), so fewer may come back with a next_page to continue from
name_containsNoPart of the customer name (API parameter `name__contains`)
sales_person_idNoOnly customers of this sales person (API parameter `sales_person`)
min_prob_churnedNoChurn probability at least this, 0 to 1 (API parameter `prob_churned__gte`)
min_prob_overdueNoOverdue probability at least this, 0 to 1 (API parameter `prob_overdue__gte`)
last_ordered_sinceNoLast order on or after this date/time (API parameter `last_order_date__gte`)
last_ordered_beforeNoLast order before this date/time (API parameter `last_order_date__lt`; a date alone means 00:00 UTC)
include_contact_detailsNoInclude each customer's primary email, phone number and delivery address, the sales person's name, and stop redacting emails and phone numbers typed into names. Off by default.
next_expected_order_beforeNoPredicted next order on or before this date (API parameter `next_expected_order__lte`)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the added value is the disclosure that contact details are opt-in via include_contact_details and that emails/phones embedded in names are otherwise redacted. That redaction behavior is non-obvious and materially affects results. Pagination nuance is left to the max_results schema field rather than the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with what the list contains before the use-case mappings and the contact-detail caveat. Dense but each sentence carries distinct information; slightly long, though nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 13 parameters, no output schema and no required fields, the description compensates by naming the returned analytic fields (last order date, predicted next order, cadence, average order value, churn/overdue probabilities) and the key filter intents. It stops short of documenting pagination continuation or the tag/ordering syntax, which remain schema-only.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description earns above baseline by tying named parameters to intent (next_expected_order_before for overdue reorders, min_prob_churned for churn) and by explaining that include_contact_details governs both contact fields and redaction of names — meaning the schema alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('list') and resource (trade customers, leads and suppliers, noting Breww unifies them) and immediately enumerates the derived fields returned. An agent can distinguish it from the singular sibling get_customer and from list_orders/list_products without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames two concrete use cases and binds each to the parameter that serves it ('who is overdue to reorder?' -> next_expected_order_before today; 'who have we lost?' -> min_prob_churned). It does not state when not to use this tool or name an alternative sibling, so it falls short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.