SLAM Commerce MCP
The SLAM Commerce MCP server exposes a Shopify SQLite database (via SLAM Gadget) to AI tools, providing 60 read-only tools for comprehensive analysis of your Shopify store. Access is always read-only (PRAGMA query_only = 1).
Meta & Diagnostics
Check server health, sync status, and store metadata (domain, currency, timezone, plan)
Explore the full database schema, table relationships, and SQL patterns
Query custom metafields across products, variants, customers, orders, and collections
Products
List, search, filter, and count products by status, vendor, type, or tag
Retrieve a single product with variants, collections, and metafields
Browse product images
Variants & Inventory
List and search variants by SKU, barcode, or product; explore product options
View inventory levels per variant per location, summaries, low-stock alerts, oversold (negative stock), and dead stock
Collections
List/retrieve collections with product counts; find which collections a product belongs to; list products in a collection with sales metrics
Orders
List, search, and filter orders; inspect line items; analyze discount code usage
Track fulfillments, refunds, returns, and draft orders
Customers
List, search, and retrieve customers with spend/order history
Analyze customer tags, rank top customers by spend or order count, view addresses
Pricing
View current prices, identify on-sale items, and analyze discount percentages and price distribution
Data Quality Checks
Automated checks for content gaps, pricing anomalies, identifier completeness (SKUs, barcodes), inventory issues, and order/customer data integrity
Reporting & Analytics
Sales dashboard (revenue, AOV, top products), time-series sales by day/week/month
Best-selling products, frequently co-purchased pairs, and vendor performance summaries
Store-Level
Fulfillment locations, B2B companies, content pages, gift card balances, and selling plans
One-call store health snapshot (
slam_store_snapshot) covering sales, inventory, data issues, and sync freshness
Ad-hoc SQL
Execute any custom read-only SELECT query directly against the database (
slam_run_query)
Exposes Shopify store data from a SQLite database, providing tools for managing products, variants, inventory, collections, orders, customers, pricing, conditions, reporting, and store-level operations through AI tools.
Provides read-only access to a SQLite database containing Shopify store data, enabling query execution and data retrieval through specialized tools while maintaining security with query-only mode and SELECT validation.
Click on "Install 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., "@SLAM Commerce MCPshow me our top 5 customers by spend this month"
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.
@slam-commerce/mcp
MCP server for SLAM Gadget — expose your Shopify SQLite database to AI tools.
Requirements
Node.js 20+
A SLAM Gadget
.dbfile (schema version 3, downloaded from the Gadget dashboard)
Installation
Step 1 — Install globally (required for fast startup)
npm install -g @slam-commerce/mcp@2Why global? Native modules like
better-sqlite3must compile once on your machine. Usingnpxcauses a 10–30 second cold start on every session while npm reinstalls and recompiles. Global install runs that cost once.
On Windows, if the install fails with a node-gyp error, first run:
npm install -g node-gyp@latest
npm install -g @slam-commerce/mcp@2Step 2 — Point to your database
The server resolves the database path using the first of these that matches:
Priority | Mechanism | Best for |
1 |
| Project-level |
2 |
| Shared/global client configs |
3 | Auto-discover | Drop-in zero-config if your project follows the standard layout |
Step 3 — Configure your MCP client
Claude Code — project .mcp.json (recommended, portable)
Place a .mcp.json in your project root. The --db path resolves relative to that directory:
{
"mcpServers": {
"slam": {
"command": "slam-mcp",
"args": ["--db", "./slam/data/your-store.db"]
}
}
}Move or rename the project folder and it still works. If your project follows the standard SLAM Gadget layout (./slam/data/*.db), you can omit --db entirely and let auto-discovery find the file.
Claude Desktop — add to config:
{
"mcpServers": {
"slam": {
"command": "slam-mcp",
"args": ["--db", "/absolute/path/to/store.db"]
}
}
}Config file locations:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Cursor — add to ~/.cursor/mcp.json:
{
"mcpServers": {
"slam": {
"command": "slam-mcp",
"args": ["--db", "/absolute/path/to/store.db"]
}
}
}Claude Code / Cursor (env var alternative) — run once:
claude mcp add slam --scope user \
-e "SLAM_DB_PATH=/absolute/path/to/store.db" \
-- slam-mcpTools (60 total)
Meta (5 tools)
Tool | Description |
| Server introspection: version, schema_version, freshness, row counts |
| Sync status and row counts per entity table |
| Store metadata (domain, currency, timezone, plan) |
| Full schema reference with relationships and SQL patterns (call this first before |
| Query metafields by owner type and namespace |
Products (5 tools)
Tool | Description |
| List products with optional filters (status, vendor, product_type, tag) |
| Get a single product by ID with variants, collections, metafields |
| Full-text search products by title or description |
| Count products matching filters |
| List product images from the product_media table |
Variants (4 tools)
Tool | Description |
| List variants with optional product filter |
| Get a single variant by ID |
| Search variants by SKU, title, or barcode |
| Product options and values from the product_options table |
Inventory (6 tools)
Tool | Description |
| Inventory levels per variant per location (includes location_name) |
| Stock summary across all variants |
| Variants at or below a stock threshold |
| Variants with negative available stock |
| Inventory totals per location with location name |
| Zero-sales variants with available stock |
Collections (4 tools)
Tool | Description |
| List collections with product count |
| Get a collection with its products |
| Collections that contain a specific product |
| Products within a specific collection |
Orders (10 tools)
Tool | Description |
| List orders with optional status/date filters |
| Get a single order with line items and discount codes |
| Search orders by name, email, or note |
| Line items for a specific order |
| Summary of discount codes used across orders |
| Active discount campaigns from the discounts table |
| Fulfillment status from the fulfillments table |
| Refunds and refund line items |
| Returns by status and period |
| Draft orders pipeline |
Customers (6 tools)
Tool | Description |
| List customers with optional tag filter |
| Get a single customer by ID |
| Tag frequency analysis from the customer_tags table |
| Search customers by email or name |
| Top customers by spend or order count |
| Customer address records |
Prices (2 tools)
Tool | Description |
| Current prices with compare_at for sale detection |
| Price distribution and discount analysis |
Conditions (6 tools)
Tool | Description |
| Content/tag conditions for product filtering |
| Price-based conditions |
| ID/SKU/barcode lookups |
| Inventory-based conditions |
| Order history conditions |
| Customer conditions |
Reporting (5 tools)
Tool | Description |
| Revenue, order count, AOV summary |
| Sales broken down by day/week/month |
| Best-selling products by revenue or units |
| Frequently co-purchased products |
| Vendor performance summary |
Store-level (5 tools)
Tool | Description |
| All fulfilment locations with stock summary |
| B2B company directory with contact count |
| Pages and articles for content auditing |
| Outstanding gift card balance by currency |
| Subscription/selling plan groups |
Snapshot (1 tool)
Tool | Description |
| One-call store health overview: sales totals, inventory counts, data condition issue counts, and sync freshness |
Ad-hoc (1 tool)
Tool | Description |
| Execute any read-only SELECT query against the database (call |
Response envelope
Every tool response includes a _meta object:
{
"_meta": {
"domain": "products",
"output_type": "list",
"last_sync_at": "2024-01-15T08:30:00.000Z",
"minutes_since_sync": 45,
"freshness_tier": "stale",
"returned": 25,
"offset": 0,
"has_more": true
}
}Freshness tiers
Tier | Condition | Meaning |
| < 15 min | Data is current |
| 15–59 min | Minor lag |
| 1–24 hours | Re-sync recommended |
| ≥ 24 hours | Data is old — re-sync now |
Schema version
This package targets Gadget schema version 3. On startup the server reads _slam_meta.schema_version and writes a warning to stderr if the version does not match. Re-download your .db file from the Gadget dashboard if you see this warning.
Known gaps vs V3
The following tools from @slam-commerce/mcp@1.x were removed because the Gadget database does not have change-tracking tables:
Removed tool | Reason |
| Requires |
| Requires |
| Requires |
| Requires |
Security
All database connections open with PRAGMA query_only = 1. The slam_run_query tool additionally validates that the statement is a SELECT and checks the referenced tables against a known-good allowlist before execution.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/valljo888ai/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server