Store Assistant MCP Server
The fixed, parameterised store queries can be pointed at a MySQL database to run product, order and sales-report tools against a real store's data.
The fixed, parameterised store queries can be pointed at a PostgreSQL database to serve a real store's products, orders and customers instead of the sample data.
Store queries can be redirected at the Shopify API so the product, order, sales-report and customer tools operate on a live Shopify store.
Backs the tools with a SQLite database (a bundled sample store: 36 products, 80 customers, 460 orders) opened read-only by default, so product searches, order lookups, sales reports, low-stock checks and top-customer queries all run against live store data.
Can be adapted to read from the Stripe API to supply revenue, order and customer data for sales reports and top-customer analysis.
Store queries can be redirected at the WooCommerce API so the product, order, sales-report and customer tools operate on a live WooCommerce store.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Store Assistant MCP ServerWhich products are about to run out of stock, and how many should I reorder?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Store Assistant MCP Server
A secure Model Context Protocol server that connects Claude (or any MCP client, such as Cursor) to an online store's database. Ask questions in plain English and Claude answers from live data:
"How did sales do this month compared with last month?"
"Which products are about to run out, and how many should I reorder?"
"Where is order 1042?"
"Who are our best customers this quarter?"
It ships with a sample database for Cedar & Co., a fictional home goods store with 36 products, 80 customers and 460 orders, so you can try it in two minutes.
Tools
Tool | What it does |
| Find products by name, category, price or stock, with units sold in the last 30 days |
| One order's status, items, total, masked customer name and tracking |
| Revenue, orders, average order value and units for the last N days, compared with the period before, grouped by day, week, category or product |
| Products below a threshold, with days of stock left and a suggested reorder quantity |
| Best customers by spend, with masked names and no emails |
| Set a product's stock. Only exists when writes are enabled (see below) |
It also provides a store://schema resource and a weekly_review prompt that asks Claude for a weekly business review.
Related MCP server: mcp-data-server
Security by design
Read-only by default. The database is opened read-only, and the one write tool is not even registered unless you set
STORE_ALLOW_WRITES=true.No raw SQL from the model. Every tool runs a fixed, parameterised query, so the model cannot inject SQL.
Validated input. Every argument is checked with Zod: types, ranges, string lengths and SKU format.
Privacy. Customer names are masked ("Olivia C.") and emails are never returned.
Capped results. Every list has a maximum size, so one call cannot dump a whole table.
Audit log. Every tool call is written to
logs/audit.logwith its arguments, result and duration.Tool annotations. Read tools are marked
readOnlyHint, and the write tooldestructiveHint, so clients can ask for confirmation.
Quick start
Requires Node.js 22.13 or newer (it uses the built-in node:sqlite).
npm install
npm run build
npm run seed
npm testUse it in Claude Code
claude mcp add store-assistant -- node --disable-warning=ExperimentalWarning /absolute/path/to/mcp-store-demo/dist/index.jsUse it in Claude Desktop
Add this to claude_desktop_config.json, then restart Claude Desktop:
{
"mcpServers": {
"store-assistant": {
"command": "node",
"args": ["--disable-warning=ExperimentalWarning", "/absolute/path/to/mcp-store-demo/dist/index.js"]
}
}
}To allow stock updates, add "env": { "STORE_ALLOW_WRITES": "true" } to that entry.
Configuration
Variable | Default | Purpose |
|
| Path to the SQLite database |
|
| Set to |
Adapting it to your store
The tools live in src/tools.ts. To connect a real store, point the queries at your own database (PostgreSQL, MySQL) or API (Shopify, WooCommerce, Stripe) and keep the same pattern: fixed queries, validated input, masked personal data and an audit log.
Tests
npm teststarts the server over stdio, calls every tool and checks that the write tool is hidden.npm run test:writesenables writes, checks that a malicious SKU is rejected, updates one product, then reseeds the database.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Query your warehouse or a CSV with Claude/ChatGPT over MCP, governed by table-level ACL + audit.
Ask questions in plain language, get answers from your business database. No SQL required.
Connect your ads, shop, analytics, social, CRM and finance platforms once, then let Claude, ChatGPT, Cursor or any MCP client read, join and explain your numbers. Public statistics from the World Bank, IMF, Eurostat, OECD, WHO and SEC filings come as context, searchable and chartable from the same tools. Read-only by design, every number carries its source.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables natural language querying of a customer and orders database through read-only MCP tools for finding customers, listing orders, and generating revenue summaries.-
- AlicenseNot gradedqualityBmaintenanceProvides read-only, guarded access to business databases via MCP. Enables natural language querying with built-in security barriers like table allowlists, PII masking, and audit logging.MIT
- AlicenseAqualityBmaintenanceEnables natural-language querying and analysis of an e-commerce SQLite database via MCP, with read-only SQL execution, table inspection, and AI-generated answers.4MIT
- FlicenseNot gradedqualityCmaintenanceEnables natural-language querying of Postgres and MongoDB databases in read-only mode, with PII masking and row/timeout guardrails, from any MCP client.-