jewellery-mcp
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., "@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: Emeritus MCP Server
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityCmaintenanceMCP server exposing Shopify commerce backend with ~22 typed tools for orders, inventory, logistics, and fulfillment, including read/write separation and structured errors.Last updated
- Alicense-qualityDmaintenanceMCP server for integrating AI models with Emeritus services, enabling user management, tag operations, order management, and leads import via a standardized interface.Last updatedMIT
- Flicense-qualityBmaintenanceDemo MCP server that exposes order and customer data as read-only tools for AI assistants, simulating a business API or internal data source.Last updated
- Flicense-qualityBmaintenanceRemote 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.Last updated
Related MCP Connectors
Identity resolution MCP server for phone/email lookups across 31+ services. Global + India coverage.
Federated commerce search across independent WooCommerce merchants. Keyless, read-only MCP server.
Remote MCP server to enrich company profiles with structured B2B data and confidence scores.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rahdes/NJ_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server