Skip to main content
Glama
victorshevtsov

Shop MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DB_PATHNoPath to the SQLite database file. By default the server reads ./shop.db in the working directory../shop.db

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
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_customersA

List customers. Optional search matches first_name, last_name, or email (case-insensitive substring). Returns rows with pagination metadata (data, total ignoring limit, limit, offset).

get_productsA

List products. category must be an existing product category (validated against the DB). inStock filters to stock_quantity > 0. minPrice/maxPrice filter by price. Sorted by id by default.

get_ordersA

List orders. Filter by exact status (validated against the DB), customer_id, and/or a date range on order_date (from_date, to_date — ISO date or datetime strings). When include_items is true, attach an items array to each order. Sorted by id by default. Cancelled orders are shown here but excluded from analytic tools.

get_order_itemsA

List order line items. Filter by order_id and/or product_id. Each row includes the product name via a LEFT JOIN to products. Sorted by id by default.

top_customers_by_spendA

Top customers by total spend (sum of orders.total_amount), EXCLUDING cancelled orders. Optionally filter by a date range on order_date. Each row: { customer_id, name, orders, total_spent }. Default limit 10.

top_products_by_quantityA

Top products by units sold (sum of order_items.quantity), EXCLUDING cancelled orders (JOINs orders to filter status and date). Each row: { product_id, name, category, units_sold }. Default limit 10.

top_categories_by_revenueA

Top product categories by revenue (sum of order_items.quantity * unit_price), EXCLUDING cancelled orders. Each row: { category, revenue }. Default limit 10.

revenue_by_periodA

Revenue (sum of orders.total_amount) EXCLUDING cancelled orders, grouped by period. group_by = "year" (default) or "month" (-> YYYY-MM). Returns rows sorted by period ascending; a period with no data simply yields no row. Each row: { period, revenue }.

customers_by_order_countA

Top customers by number of orders placed. NOTE: unlike the other analytic tools, this counts ALL orders (cancelled orders are NOT excluded). Optionally filter by date range on order_date. Each row: { customer_id, name, orders }. Default limit 10.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 9 tools

Disambiguation4/5

Each tool targets a distinct resource or metric, and the descriptions clearly separate raw entity queries from analytics. The only mild ambiguity is between top_customers_by_spend and customers_by_order_count, both returning top customer lists, though their ordering metrics differ.

Naming Consistency4/5

Entity lookups consistently use get_* (get_customers, get_products, get_orders, get_order_items), while analytics mostly follow a noun_by_dimension pattern. customers_by_order_count breaks the top_* prefix used by other analytics tools, but the pattern remains predictable overall.

Tool Count5/5

Nine tools is a well-scoped size for a shop-focused read/analytics server. Each tool covers a meaningful query surface without redundancy or excessive narrowness.

Completeness4/5

The server covers core shop data retrieval and key analytics dimensions: customers, products, orders, line items, revenue, and top lists. Minor gaps exist, such as no single-record detail endpoint or no direct product-to-category drill-down, but the surface is workable for typical reporting workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues