Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CLOVER_REGIONNoClover region: na, eu, or lana
CLOVER_SANDBOXNoSet to true to use the Clover sandboxfalse
CLOVER_AUTH_MODENoAuthentication mode: token or oauth_refreshtoken
CLOVER_READ_ONLYNoRefuse every write before making a Clover requestfalse
CLOVER_MERCHANT_IDYesYour Clover merchant ID
CLOVER_ACCESS_TOKENYesYour Clover API access token
CLOVER_WRITE_LIMIT_COUNTNoMaximum writes per safety window; 0 disables10
CLOVER_WRITE_LIMIT_WINDOW_SNoPositive write-safety window in seconds300

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
whoamiA

Diagnostic: who is this request authenticated as, and is a Clover tenant mapped to them?

Returns the authenticated identity, the names of available token claims (never their values), scopes, and whether a tenant is provisioned — no Clover data and no secrets. Use it when setting up multi-tenant to discover which identity claim your platform (e.g. FastMCP Cloud / Horizon) actually provides, so you can key CLOVER_TENANTS_JSON correctly.

get_merchant_infoA

Return key information about this Clover merchant.

Includes name, address, currency, timezone, country, and business type. Also primes the internal currency and timezone cache used by all other tools.

get_sales_summaryA

Return an aggregated sales summary for the given date window.

Defaults to today (UTC) when no dates are supplied. Uses 90-day chunking so multi-month or full-year queries work transparently (emits progress logs when more than one window is scanned).

Rules: only result=SUCCESS payments counted; voids/refunds reported separately; tips, taxes broken out; offline payments flagged; currency from merchant record. This tool does NOT support payment capture, refund, or void actions.

list_paymentsA

List payments within an optional date window (default: today, limit 50).

Only result=SUCCESS payments. Card transaction details never included. fields: optional list of field names to keep (narrows the response; cannot widen past the allowlist). This tool does NOT support payment capture, refund, or void actions.

list_refundsA

List refunds within an optional date window (default: today, limit 50).

Clover refunds are separate objects with a positive amount (cents), not negative payments. Card/transaction detail is never included. Requires PAYMENTS_R. This tool does NOT issue refunds.

list_creditsA

Return the merchant's credits (store/account-credit adjustments, up to 1000).

Element shape is unverified (sandbox has none provisioned) — shaped conservatively. Requires PAYMENTS_R.

get_sales_by_employeeA

Return gross sales grouped by employee for a date window (default: today).

Requires PAYMENTS_R; employee name enrichment additionally requires EMPLOYEES_R (degrades to IDs-only with a note if not granted).

get_tips_by_employeeA

Return a tip-out sheet: tips collected grouped by employee (default: today).

Requires PAYMENTS_R; employee name enrichment additionally requires EMPLOYEES_R (degrades to IDs-only with a note if not granted).

get_sales_by_hourA

Return gross sales bucketed by local hour-of-day for a single day (default: today).

Buckets use the merchant's local timezone, falling back to UTC with a note if unavailable. Requires PAYMENTS_R.

list_ordersA

List orders within an optional date window and/or state filter (default: today, limit 50).

state: open | paid | refunded | partially_refunded (omit for all states). Customer card data is never included. This tool is read-only. fields: optional list of field names to keep (narrows the response; cannot widen past the allowlist).

get_orderA

Fetch a single order by ID, including line items and payment summary.

Expands lineItems and payments only. Customer card data never expanded. Returns a 404 error if the order_id does not exist. This tool is read-only.

list_open_ordersA

Return all currently open orders for this merchant (up to 200).

Convenience wrapper — no date filter, state=open only. Customer card data is never included. This tool is read-only.

list_itemsA

Return a page of inventory items. Filter by name (query) or category (category_id).

Requires INVENTORY_R. fields: optional list of field names to keep (narrows the response; cannot widen past the allowlist).

get_itemA

Return a single inventory item by ID, including stock quantity.

Pass include=["modifier_groups"], ["tax_rates"], ["categories"], and/or ["tags"] to opt in to those association details. Requires INVENTORY_R.

list_low_stock_itemsA

Return all items whose stock quantity is at or below threshold.

Items with no stock tracking are excluded. Requires INVENTORY_R.

list_categoriesA

Return all inventory categories. Requires INVENTORY_R.

list_modifiersA

Return all modifier groups with their modifiers. Requires INVENTORY_R.

list_item_groupsA

Return item groups (sets of item variants, e.g. size/color). Requires INVENTORY_R.

list_taxesA

Return the merchant's tax rates (raw rate + computed percent). Requires INVENTORY_R.

list_discountsA

Return the merchant's discount catalogue (fixed-amount or percentage). Requires INVENTORY_R.

list_devicesA

Return the merchant's Clover devices/terminals. Requires MERCHANT_R.

list_tendersA

Return the merchant's tender types (payment methods: cash, credit, custom). Requires MERCHANT_R.

get_merchant_propertiesA

Return the merchant's POS configuration (currency, tips, stock tracking, closeout, locale, support contacts). Banking/account fields are never returned. Requires MERCHANT_R.

list_order_typesA

Return the merchant's order types (Dine In, Take Out, …). Requires MERCHANT_R.

list_opening_hoursA

Return the merchant's opening-hours sets (per-day time ranges). Requires MERCHANT_R.

list_tip_suggestionsA

Return the merchant's tip-suggestion presets (percentage or flat amount). Requires MERCHANT_R.

get_default_service_chargeA

Return the merchant's default service charge configuration (name, enabled, percentage). Requires MERCHANT_R.

list_cash_eventsA

Return recent cash-drawer events (paid in/out, no-sale, deposits).

Capped at limit (default 50, max 500). Requires MERCHANT_R.

list_attributesA

Return item attributes (variant axes like Size/Color) with options. Requires INVENTORY_R.

list_tagsA

Return the merchant's tags/labels used to group items. Requires INVENTORY_R.

get_top_itemsA

Return the best-selling items in a date window, ranked by units sold.

Defaults to today (UTC); 90-day chunked. Each line item counts as one unit. Requires ORDERS_R.

list_employeesA

Return a page of employees (PINs never returned). Requires EMPLOYEES_R.

get_employeeA

Return a single employee by ID (PINs never returned). Requires EMPLOYEES_R.

list_shiftsA

List shifts, optionally by employee and/or date window. Requires EMPLOYEES_R.

Without employee_id, aggregates shifts across all employees.

list_active_shiftsA

Return currently open shifts (clocked in, not out) across all employees. Requires EMPLOYEES_R.

list_rolesA

Return the merchant's employee roles (name + system role category). Requires EMPLOYEES_R.

search_customersA

Search customers by full name (query), phone, or email.

Cards are never returned. Requires CUSTOMERS_R. fields: optional list of field names to keep (narrows the response; cannot widen past the allowlist).

get_customerA

Return a single customer by ID.

Pass include=["addresses"] or include=["orders"] to opt in to optional fields. Cards are never returned. Requires CUSTOMERS_R.

summarize_salesA

AI: plain-language sales briefing for a date window (default: today).

Gathers the sales summary + top items, then asks your client's model to write a short narrative. Read-only suggestion. Needs a sampling-capable client; if yours can't sample, returns the raw data with a note. Requires ORDERS_R/PAYMENTS_R.

suggest_item_categoriesA

AI: suggest categories for uncategorized items from the merchant's own taxonomy.

Suggestion only — applying a category is a separate, confirmed write. Needs a sampling-capable client (graceful fallback otherwise). Requires INVENTORY_R.

inventory_reorder_suggestionsA

AI: prioritized reorder list — low-stock items crossed with sales velocity.

Read-only suggestion. Needs a sampling-capable client (graceful fallback otherwise). Requires INVENTORY_R and ORDERS_R.

detect_sales_anomaliesA

AI: flag unusual refund / discount / sales patterns in a window (default: today).

Read-only analysis. Needs a sampling-capable client (graceful fallback otherwise). Requires PAYMENTS_R and ORDERS_R.

draft_customer_messageA

AI: draft a customer message (promo / win-back / thank-you) for the given intent.

Returns a DRAFT only — never sends anything. Needs a sampling-capable client (graceful fallback otherwise). Requires CUSTOMERS_R.

create_customerA

Modifies merchant data. Create a new customer record in Clover.

Idempotency guard: searches for an existing customer with the same email or phone before creating. If a match is found and confirm_duplicate is False, the call is refused and the existing match is returned.

dry_run=True returns the would-be POST payload without sending it. Requires CUSTOMERS_R (duplicate check) and CUSTOMERS_W (write).

set_item_price_centsA

Modifies merchant data. Set an item's price (in cents, absolute value).

Optimistic lock: refuses the write unless the item's current price equals expected_current_price_cents (prevents stale-context overwrites). Bounds: 0 <= new_price_cents <= 100_000_000. dry_run=True previews the PUT body (still performs one read to fetch current price/name) and never writes. Requires INVENTORY_R and INVENTORY_W.

set_item_stock_quantityA

Modifies merchant data. Set an item's stock to an ABSOLUTE quantity (not a delta).

Optimistic lock: refuses unless current stock equals expected_current_quantity. Bounds: 0 <= new_quantity <= 1_000_000. dry_run=True previews the PUT body (still performs one read to fetch current stock) and never writes. Requires INVENTORY_R and INVENTORY_W.

create_categoryA

Modifies merchant data. Create a new inventory category.

Previews on dry_run; confirms via your client's prompt (MCP elicitation) or confirm=True before writing. Requires INVENTORY_W.

create_itemA

Modifies merchant data. Create a new inventory item (name + price in cents).

Bounds 0–100_000_000 cents. Previews on dry_run; confirms via MCP elicitation or confirm=True before writing. Requires INVENTORY_W.

create_orderA

Modifies merchant data. Create a new open order (no line items, no payment).

Previews on dry_run; confirms via MCP elicitation or confirm=True before writing. Add items with add_line_item. Requires ORDERS_W.

add_line_itemA

Modifies merchant data. Add a catalog item as a line item to an order.

Name/price are copied from the catalog item. Previews on dry_run; confirms via MCP elicitation or confirm=True before writing. Requires ORDERS_W. No payment.

update_customerA

Modifies merchant data. Update a customer's name and/or marketing opt-in.

Only the fields you pass change. Previews on dry_run; confirms via MCP elicitation or confirm=True before writing. Requires CUSTOMERS_W.

apply_order_discountA

Modifies merchant data. Apply an order-level discount.

Exactly one of percentage (1-100), amount_cents (1-100_000_000, positive — Clover requires a negative amount on the wire, this tool negates it for you), or catalogue_discount_id must be given. Catalogue discounts are resolved client-side (name + percentage/amount fetched from list_discounts and sent inline). Previews on dry_run (includes current discounts + a client-computed line-item subtotal — Clover has no computed order total); confirms via MCP elicitation or confirm=True before writing. Requires ORDERS_W.

update_item_nameA

Modifies merchant data. Rename an inventory item (price/other fields preserved).

Optimistic lock: refuses unless the item's current name equals expected_current_name. Bounds: non-empty, <= 127 characters. dry_run=True previews the POST body (still performs one read) and never writes. Requires INVENTORY_R and INVENTORY_W.

create_modifier_groupA

Modifies merchant data. Create a new modifier group (e.g. "Milk options").

Duplicate guard: refuses if a group with the same name (case-insensitive) already exists. Previews on dry_run; confirms via MCP elicitation or confirm=True before writing. Requires INVENTORY_W.

create_modifierA

Modifies merchant data. Create a new modifier within a modifier group.

Pre-check: verifies the modifier group exists (404 -> clear error). Bounds: 0 <= price_cents <= 100_000_000. Previews on dry_run; confirms via MCP elicitation or confirm=True before writing. Requires INVENTORY_W.

create_tagA

Modifies merchant data. Create a new tag/label used to group items.

Duplicate guard: refuses if a tag with the same name (case-insensitive) already exists. Previews on dry_run; confirms via MCP elicitation or confirm=True before writing. Requires INVENTORY_W.

Prompts

Interactive templates invoked by user choice

NameDescription
daily_briefingA start-of-day briefing: today's sales, low stock, and open orders.
weekly_sales_reportA 7-day sales report: totals, best sellers, and tender mix.
inventory_health_checkSurface low stock, uncategorized items, and catalog gaps.
end_of_day_closeoutReconcile the day: payments, refunds, and open orders still pending.
customer_lookupFind a customer and summarize who they are and their recent history.
monthly_tax_summaryTax collected for a given month (format YYYY-MM), broken down by rate.

Resources

Contextual data attached and managed by the client

NameDescription
capabilitiesWhat this Clover MCP server can do: tools, prompts, and guardrails.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SBolivarLoL/clover-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server