jewellery-mcp
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., "@jewellery-mcpFind cross-brand opportunities for customers with upcoming anniversaries"
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.
jewellery-mcp
Cross-brand customer/purchase database for three independent jewellery retail
brands — Austen and Blake, Diamonds Factory, and SACET — each with
its own stores and customers across international geographies. No global
customer ID exists across brands in real life, so each brand's customers
are kept independent; a separate customer_identities /
customer_identity_links pair pre-resolves the same real person's records
across brands (matched on full name + phone and/or full name + date of
birth).
Ships the database layer (schema, seed data, db.py connection helper) plus
an MCP server (src/jewellery_mcp/server.py) exposing 10 read-only tools for
working real customer cases:
Tool | Purpose |
| Find a customer across all brands by name/phone/DOB — the entry point |
| Full resolved cross-brand profile for an identity |
| What they bought, where, for what occasion |
| Their recurring personal dates, soonest first |
| Occasions bought at one brand but never another (single customer or portfolio-wide) |
| Who has a birthday/anniversary coming up and hasn't bought for it yet |
| Cross-brand spend normalized to one currency via |
| Rank cross-brand identities by normalized total spend |
| Portfolio view: % of a brand's customers who've ever bought for each occasion |
| Turn an identified opportunity into concrete products to pitch |
Schema
See sql/001_schema.sql:
brands, stores, products, occasions, customers, purchases,
customer_occasion_dates, customer_identities, customer_identity_links.
sql/002_seed_brands_stores_products.sql — hand-written: 3 brands, 9 standard occasions, stores, products.
sql/003_seed_customers.sql, sql/004_seed_purchases_occasion_dates.sql, sql/005_seed_customer_identities.sql — generated by scripts/generate_seed.py (deterministic, seeded RNG). Regenerate with:
python3 scripts/generate_seed.py
Related MCP server: mytime-mcp
Setup
Start local Postgres (runs on
localhost:5434; schema + seed data load automatically on first start):docker compose up -dCreate a virtualenv and install:
python3 -m venv .venv source .venv/bin/activate pip install -e .Copy the env file (defaults already match the docker-compose Postgres):
cp .env.example .env
Connecting a client (Claude Code / Claude Desktop)
Add to your MCP client config (e.g. .mcp.json for Claude Code — already
present in this repo):
{
"mcpServers": {
"jewellery-mcp": {
"command": "/Users/rahuldeshmukh/Claudecode/JewelleryBrandsMCP/.venv/bin/jewellery-mcp",
"env": {
"DATABASE_URL": "postgresql://jewellery_admin:jewellery_admin_pw@localhost:5434/jewellery_db"
}
}
}
}Opportunity / gap analysis
Because occasions is a normalized reference table and customer_identities
pre-resolves people across brands, "which occasion has this customer bought
for elsewhere but never at brand X" is a plain SQL query, exposed as the
find_cross_brand_opportunities tool:
SELECT DISTINCT i.id AS identity_id, o.name AS occasion, b.name AS opportunity_brand
FROM customer_identities i
CROSS JOIN occasions o
JOIN customer_identity_links l ON l.identity_id = i.id
JOIN brands b ON b.id = l.brand_id
WHERE NOT EXISTS ( -- hasn't bought this occasion at a brand where they're a customer
SELECT 1 FROM purchases p WHERE p.customer_id = l.customer_id AND p.occasion_id = o.id
)
AND EXISTS ( -- but has bought it at another brand they also shop at
SELECT 1 FROM purchases p
JOIN customer_identity_links l2 ON l2.customer_id = p.customer_id
WHERE l2.identity_id = i.id AND p.occasion_id = o.id
);Against the seed data this returns 124 distinct (identity, occasion, brand) opportunity rows.
This server cannot be deployed
Maintenance
Related MCP Connectors
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Jepto MCP server that provides access to client knowledgebase & analytics for connected data sources
MCP server for Product Management
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for integrating AI models with Emeritus services, enabling user management, tag operations, order management, and leads import via a standardized interface.MIT
- FlicenseNot gradedqualityBmaintenanceRemote MCP server for MY:TIME's competitive intelligence platform. Enables querying competitor e-commerce data, social metrics, and demand estimates via Claude, Power BI, and other tools.-
- FlicenseNot gradedqualityBmaintenanceA read-only MCP server for securely querying MongoDB and Firestore to access customer and order data.1-
- AlicenseNot gradedqualityBmaintenanceMCP server for securely connecting LLMs to customer data, providing customer profile retrieval, semantic search of interaction history, and exact financial summaries via SQL aggregation, with audit logging and prompt injection protection.MIT