ecommerce-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_URL | No | Where the agent and UI reach the server | http://localhost:8000/mcp |
| MCP_HOST | No | Streamable HTTP bind address | 127.0.0.1 |
| MCP_PORT | No | Streamable HTTP bind port | 8000 |
| LLM_MODEL | No | Chat model | google/gemini-3.8-flash |
| DATABASE_URL | No | PostgreSQL connection | postgresql://shop:shop@localhost:5432/shop |
| DB_POOL_SIZE | No | Tool connection pool size | 5 |
| LANGFUSE_HOST | No | Langfuse instance URL | https://cloud.langfuse.com |
| AGENT_MAX_STEPS | No | Maximum agent steps | 12 |
| EMBEDDING_MODEL | No | FastEmbed model (must output 384-dim vectors) | BAAI/bge-small-en-v1.5 |
| OPENROUTER_API_KEY | Yes | LLM access (OpenRouter, OpenAI-compatible) | |
| LANGFUSE_PUBLIC_KEY | No | Optional tracing public key (both keys required to enable it) | |
| LANGFUSE_SECRET_KEY | No | Optional tracing secret key (both keys required to enable it) | |
| LLM_TIMEOUT_SECONDS | No | Agent LLM timeout in seconds | 60 |
| OPENROUTER_BASE_URL | No | OpenRouter API base URL | https://openrouter.ai/api/v1 |
| LLM_INPUT_USD_PER_MTOK | No | Input cost per million tokens in USD | 0.30 |
| DB_STATEMENT_TIMEOUT_MS | No | Statement timeout in milliseconds | 5000 |
| LLM_OUTPUT_USD_PER_MTOK | No | Output cost per million tokens in USD | 2.50 |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_productsA | Semantic product search: finds products whose meaning matches the query, even without shared keywords. Returns price, stock and a cosine similarity score (1 = identical meaning; above ~0.8 is a strong match). |
| get_customer_ordersA | A customer's most recent orders (newest first), each with status, line items and total. Fails with a clear message if no customer has that email. |
| sales_summaryA | Revenue, number of orders and average order value (AOV) between two dates, in total and per day, week (starting Monday) or month. Cancelled orders are excluded; a range with no orders returns zero totals. |
| top_productsA | Best-selling products between two dates, ranked by revenue or by units sold. Cancelled orders are excluded; a range with no sales returns an empty list. |
| low_stock_alertA | Products running low on stock (lowest first) with their units sold and revenue in the last 30 days, to decide what to restock. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| tables | Tables, columns and business rules of the shop database. |
TDQS
Scored across 5 tools
Most tools have clearly distinct purposes: customer-specific orders, semantic product search, aggregate sales metrics, product ranking, and stock alerts. However, sales_summary and top_products both use date ranges and revenue, so an agent might briefly hesitate between aggregate reporting and per-product ranking.
All names use lowercase snake_case and are descriptive, but they mix verb-led names like get_customer_orders and search_products with noun-phrase names like sales_summary, top_products, and low_stock_alert. The inconsistency is minor and readable rather than chaotic.
Five tools is a well-scoped size for a focused ecommerce server. Each tool covers a meaningful slice of ecommerce needs without redundancy or bloat.
The set covers customer order lookup, product discovery, sales reporting, product ranking, and stock alerts, which forms a useful read-only analytics surface. However, there are notable gaps for a broad 'ecommerce' domain, such as product detail retrieval, order lookup by ID, inventory management, or customer management.