Shopfront Chennai Local Commerce

io.github.jeeva-m-21Published by GitHub account jeeva-m-21v2.0.0Updated Oct 27, 2026

Hyperlocal commerce and verified merchant directory MCP server for Chennai, India.

The publisher's own server: ShopFront Locations

VerifiedStreamable HTTPWeb executableLocation & LifestyleBusiness & Commerce

Overview

AI-generated overview

Remote MCP server for a verified Chennai merchant directory that lets an assistant find local shops, read their catalogs and hours, and produce WhatsApp or…

What you can do
  • Find and rank Chennai shops by locality, category, distance, budget and open-now status
  • Read a shop's public profile: address, coordinates, weekly opening hours, upcoming closures and contact numbers
  • Browse a shop's menu or service catalog by category with pagination
  • Search items inside one shop's catalog by text, with price ceiling and item-kind filters
  • Generate a WhatsApp deep link, booking URL or phone dial link with a pre-filled enquiry message
When to use it
Useful when a user asks for a local shop, service or price in Chennai and you want grounded listings instead of guesses, including opening hours and a direct way to contact the merchant.
Requirements
A remote streamable HTTP endpoint; no account, API key or header is declared. The README also documents a local stdio option that needs Node.js 22+, PostgreSQL 16 with PostGIS, and a DATABASE_URL setting.
Before you install
Coverage is limited to Chennai merchants. Contact links open WhatsApp or dial a phone number on the user's behalf, so confirm before sending. The README's local setup asks for a database connection string in DATABASE_URL; keep it out of shared configs.

Installation

In SourceWeft

  1. Open Shopfront Chennai Local Commerce in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.jeeva-m-21%2Fshopfront/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "shopfront-chennai-local-commerce": {
      "type": "http",
      "url": "https://shopfront-rouge.vercel.app/mcp"
    }
  }
}

README

🏪 Shopfront: Local Shops, Found by AI

“Be the answer when people ask AI.”
Shopfront makes local businesses visible to AI assistants through the open Model Context Protocol (MCP).



⚡ Quick Links & Live Demos

ResourceDirect LinkDescription
🌐 Live Web Applicationshopfront-rouge.vercel.appReal-time discovery portal with verified Chennai merchant ledgers.
🤖 AI Agent Connect Portalshopfront-rouge.vercel.app/connect60-second MCP setup for Claude Desktop, Cursor, and custom agent sidecars.
🎨 Brand & Vector Assetsshopfront-rouge.vercel.app/brandOfficial Stitch multi-view SVG logo system, typography, and color tokens.
📖 Technical Architecture Case StudyTECHNICAL_CASE_STUDY.mdExhaustive problem-to-solution system design, PostGIS spatial indexing, and security architecture.
🔌 Streamable HTTP MCP EndpointPOST https://shopfront-rouge.vercel.app/api/mcpRFC-compliant Model Context Protocol streamable transport for agents.

📋 Table of Contents

  1. The Core Novelty & Positioning
  2. The Breakdown of Urban Apps vs. The AI Shift
  3. The Solution: Three Key Differentiators
  4. Deep Customization: You Decide What AI Says
  5. System Architecture & Request Lifecycle
  6. Live Endpoints & Model Context Protocol (MCP) Tools
  7. Connect to AI Assistants (Claude, Cursor, ChatGPT)
  8. Design System: "The Shutter Goes Up"
  9. Scientific Offline Evaluation & Benchmarks
  10. Local Development & Test Gates

1. The Core Novelty & Positioning

One line: Shopfront makes local businesses visible to AI assistants.
Tagline: “Be the answer when people ask AI.”
Short form: “Local shops, found by AI.”

┌────────────────────────────────────────────────────────────────────────┐│  CUSTOMER ASKS AI:                                                     ││  "Where can I get my iPhone battery replaced in Adyar right now under  ││   ₹2,000?"                                                             │├────────────────────────────────────────────────────────────────────────┤│  WITHOUT SHOPFRONT:                                                    ││  ❌ "I don't have real-time access to local shops or current prices.  ││      You may want to check Google Maps or call nearby stores."         │├────────────────────────────────────────────────────────────────────────┤│  WITH SHOPFRONT (MCP):                                                 ││  ✅ "I found A1 Electronics in Adyar (450m away). They are open right  ││      now (verified 9m ago). Their iPhone Battery Replacement is        ││      ₹1,800. Click here to chat with the owner on WhatsApp: wa.me/..." │└────────────────────────────────────────────────────────────────────────┘

Shopfront bridges the gap between physical urban retail and conversational intelligence. By turning neighborhood shops into queryable, authenticated nodes on the Model Context Protocol (MCP), merchants gain direct customer inquiries without building custom mobile apps or forfeiting 30% aggregator commissions.


2. The Breakdown of Urban Apps vs. The AI Shift

Urban commerce is experiencing a structural paradigm shift driven by consumer app fatigue and conversational AI:

mermaid
flowchart TD    subgraph TheAppTrap["The Separate Franchise App & Marketplace Trap"]        A1["Separate App per Franchise<br/>(McDonald's app, Domino's app, Swiggy, Zomato, Urban Company)"]        A2["Severe App Fatigue<br/>(Users delete single-use apps; refuse to install 30 separate apps)"]        A3["20% to 30% Aggregator Commissions<br/>(High take-rates erode independent merchant margins)"]        A4["Walled-Garden Data Silos<br/>(Customer phone numbers masked; zero direct relationship)"]        A1 --> A2 --> A3 --> A4    end
    subgraph TheAIShift["The Conversational AI Revolution"]        B1["Users Ask AI Instead of Opening Apps<br/>('Find me a MacBook technician near Adyar')"]        B2["AI Assistants Get ZERO Data<br/>(LLMs cannot read fragmented closed apps)"]        B3["Result: Hallucinated defunct numbers or dead ends"]        B1 --> B2 --> B3    end
    TheAppTrap -.->|Broken Paradigm| Solution["Shopfront: The Authoritative Live Layer"]    TheAIShift -.->|Needs Ground Truth| Solution

The Three Critical Industry Breakdown Points:

  1. App Fatigue: Customers do not want to download, register, and update 30 different mobile apps for every local bakery, barber, and motorcycle garage.
  2. The Aggregator Tax: Conventional aggregators extract 20% to 30% of gross transaction volume and mask customer identities, preventing merchants from building long-term loyalty.
  3. The AI Search Blind Spot: When consumers ask Claude, Cursor, or ChatGPT for local recommendations, LLMs hallucinate or return generic blog scrapes because brick-and-mortar stores have no standard API or protocol representation.

3. The Solution: Three Key Differentiators

Shopfront replaces the fragmented app nightmare with a unified, protocol-driven architecture:

DifferentiatorTraditional Aggregators & Franchise AppsShopfront (MCP Engine)
1. AI-Native Protocol❌ Walled gardens; closed to AI assistants; invisible to conversational search.✅ Native Model Context Protocol (MCP) server readable by Claude, Cursor, ChatGPT, and custom agent sidecars.
2. One Listing vs. 20 Apps❌ Merchants spend ₹1,50,000+ building custom apps that users immediately uninstall.✅ One low-cost, commission-free listing that automatically syndicates across all AI assistants.
3. Owner-Controlled Direct Contact❌ Masked phone numbers; platform lock-in; delayed weekly payouts.✅ Direct WhatsApp & telephone connection with pre-filled enquiry templates. Merchants keep 100% of revenue.

4. Deep Customization: You Decide What AI Says

Shopfront provides local merchants with absolute sovereignty over their data. Through the mobile-first Owner Portal, owners decide exactly what AI assistants know and recommend:

mermaid
mindmap  root((Owner Customization))    Hours & Shift Breaks      Real-time IST schedule      Afternoon lunch breaks      Temple & festival closures    Exact Rupee Pricing      Fixed menu prices      Transparent price ranges      Warranty terms    Live Availability      1-thumb out-of-stock switches      Capacity limits    Service Area & Coordinates      Millimeter PostGIS location      Locality bounding polygon    Craftsmanship & Story      20+ years experience      Specialist certifications    WhatsApp Opening Template      Pre-filled item context      Direct wa.me deep links    Bilingual Localization      Tamil keywords ஷாப்ஃபிரண்ட்      English terminology

The 8 Signature Customization Levers:

  • 1. Operating Shifts & Lunch Breaks: Configure discrete shift intervals (e.g. 09:00–13:00 and 16:30–21:30) and upcoming holiday dates. AI never sends customers to a closed shutter.
  • 2. Exact Rupee Pricing: List precise prices (e.g. iPhone Battery: ₹1,800) to qualify high-intent customers and eliminate haggling.
  • 3. Instant Availability Toggle: Flip an item unavailable with a single thumb-tap from your phone when parts run out. AI updates immediately.
  • 4. Spatial Service Area: Pinpoint exact physical coordinates and service radiuses in PostGIS (SRID 4326).
  • 5. Authentic Brand Story: Provide background on your techniques, heritage, and quality guarantees for AI to champion.
  • 6. Pre-Formatted WhatsApp Message: Customize the greeting message generated when customers click your action link.
  • 7. Bilingual Tamil & English Support: Enable native Tamil script matching alongside standard English.
  • 8. Persistent "AI Preview": A live dashboard card in the Owner Portal showing the exact conversational response and raw MCP JSON that AI assistants receive.

5. System Architecture & Request Lifecycle

Shopfront combines sub-25ms PostGIS SQL retrieval with an LLM semantic decision reranker and a fail-open circuit breaker.

mermaid
flowchart TB    subgraph Ingress["1. Ingress Layer"]        User["🌐 Customer Browser<br/>Next.js 15 App"]        Agent["🤖 AI Agent (Claude Desktop)<br/>Streamable HTTP / Stdio"]        Merchant["📱 Shop Owner<br/>Mobile Web Portal"]    end
    subgraph SecurityLayer["2. Gateway Security & Auth"]        RateLimit["⏱️ Sliding Window Rate Limiter<br/>(60 req/min)"]        CSRF["🛡️ CSRF & Origin Guard<br/>(Sec-Fetch-Site Check)"]        Argon["🔐 Argon2id (m=64MB, t=3, p=1)<br/>SHA-256 Session Token Hash"]    end
    subgraph SearchPipeline["3. Two-Stage Retrieval Pipeline"]        Stage1["⚡ Stage 1: PostGIS Fast SQL<br/>• Spatial Radius & Bounding Box (H1)<br/>• Live Status & Admin Lock Checks (H2)<br/>• IST Temporal Shift Matching (H6)<br/>• Statement Timeout: 250ms"]                Sanitizer["🧹 Prompt Injection Stripper<br/>• Strip ASCII Control Chars<br/>• Exclude GPS coords, prices, hours"]                Stage2["🧠 Stage 2: Jev Decisions LLM Reranker<br/>• Parallel Candidate Scoring<br/>• Expected Score E[score] Formulation<br/>• Strict Time Budget: min(timeout, rem-30ms)"]                FailOpen["⚡ Fail-Open Circuit Breaker<br/>(On timeout/fault -> Fallback to Stage 1)"]    end
    subgraph Storage["4. Authoritative Database (PostgreSQL 16 + PostGIS 3.4)"]        PGPool["🐘 Dedicated Connection Pool (Zero ORM)"]        Shops[("shops & localities<br/>Spatial GIST Index")]        Catalog[("catalog_items<br/>Available Offerings")]        Shifts[("operating_shifts<br/>IST Intervals")]    end
    User --> RateLimit --> Stage1    Agent --> RateLimit --> Stage1    Merchant --> CSRF --> Argon --> PGPool
    Stage1 --> PGPool    PGPool --> Shops    PGPool --> Catalog    PGPool --> Shifts
    Stage1 -->|Top 10 Candidates| Sanitizer    Sanitizer --> Stage2    Stage2 -.->|Timeout / Error| FailOpen    FailOpen --> Output["📱 Verified WhatsApp Action Link"]    Stage2 -->|Reranked Output| Output

6. Live Endpoints & Model Context Protocol (MCP) Tools

Shopfront implements the Model Context Protocol (MCP 1.32.1) specification over Web Standard Streamable HTTP (POST /api/mcp) and local Stdio (scripts/mcp-stdio.ts).

Official MCP Registry Listing:

io.github.jeeva-m-21/shopfront

The 5 Core MCP Tools:

Tool NameParametersDescription
find_shopscategory?, locality?, latitude?, longitude?, radius_km?, query?, max_price_inr?, open_now?Discovers and ranks Chennai shops matching physical, budget, and operational constraints.
get_shop_infoshop_id or slugRetrieves complete shop profile, physical address, locality coordinates, weekly operating shifts, and upcoming 30-day closures.
get_catalogshop_id, cursor?, limit?Fetches available menu offerings and service rates grouped by section with keyset pagination.
search_catalogshop_id, query, kind?, max_price_inr?, limit?Executes text similarity search within a specific shop's catalog.
get_action_linkshop_id, item_id?, item_name?Generates verified WhatsApp deep-link (wa.me) or telephone link with pre-formatted enquiry message and disclaimer.

7. Connect to AI Assistants (Claude, Cursor, ChatGPT)

You can connect Shopfront to your AI assistant in under 60 seconds.

Option A: Claude Desktop (Local Stdio)

Add Shopfront to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "shopfront": {      "command": "node",      "args": [        "--import",        "tsx",        "/absolute/path/to/shopfront/scripts/mcp-stdio.ts"      ],      "env": {        "DATABASE_URL": "postgresql://postgres:postgres@localhost:5434/shopfront",        "APP_BASE_URL": "https://shopfront-rouge.vercel.app",        "STAGE1_TIMEOUT_MS": "250",        "RERANK_ENABLED": "false"      }    }  }}

Option B: Remote Streamable HTTP (Cursor / Web Agents)

In Cursor (Settings $\rightarrow$ Features $\rightarrow$ MCP Servers):

  • Type: command or sse / streamable-http
  • URL: https://shopfront-rouge.vercel.app/api/mcp

8. Design System: "The Shutter Goes Up"

The brand identity avoids generic SaaS gradients in favor of an authentic Chennai visual identity rooted in physical urban commerce: the rolling metal shop shutter.

Master ViewAsset PreviewSpec
01 / Primary Horizontal[Horizontal Light]4:1 Lockup on Light Surface
02 / Brand Hero[Horizontal Dark]High-contrast on Marina Teal (#0E6B66)
03 / Stacked Emblem[Stacked Emblem]1:1 Square Splash Emblem
06 / App Icon Squircles[App Icon]80×80 Squircle ($r = 25%$)
  • Marina Teal (#0E6B66): Inspired by Marina Beach at dusk. Primary buttons, active indicators, and focus rings.
  • Motion Turmeric (#F4B000): Single focal accent per screen. Used for the lifted top slat and live verified badges.
  • Stone Neutrals (#FAF9F6 to #100F0D): Warm paper-and-ink gray tones.
  • Explore All Assets: Visit shopfront-rouge.vercel.app/brand to download standalone SVGs.

9. Scientific Offline Evaluation & Benchmarks

Shopfront incorporates a rigorous offline evaluation framework executing 40 golden benchmark queries (30 Dev, 10 Held-out) across 4 query topologies:

┌────────────────────────────────────────────────────────────────────────┐│  OFFLINE EVALUATION HARNESS RESULTS (eval/results/latest-report.md)     │├────────────────────────────────┬───────────────┬───────────────────────┤│ Metric                         │ Stage 1 SQL   │ Stage 2 LLM Reranked  │├────────────────────────────────┼───────────────┼───────────────────────┤│ Overall NDCG@5                 │ 0.8853        │ 0.8873 (+0.0020)      ││ Direct Service NDCG@5          │ 0.8379        │ 0.8423 (+0.0044)      ││ Specificity NDCG@5             │ 0.9176        │ 0.9210 (+0.0034)      ││ Overall MRR@5                  │ 0.8000        │ 0.8000                ││ Overall Recall@10              │ 1.0000        │ 1.0000                ││ Inter-Annotator Agreement      │ Cohen's κ = 0.864 (90.0% agreement)   ││ Latency P50 / P95              │ 22.4 ms / 147 ms                      ││ 95% Confidence Intervals       │ 10,000-sample Mulberry32 Bootstrap    │└────────────────────────────────┴───────────────┴───────────────────────┘

Read the full engineering deep dive in TECHNICAL_CASE_STUDY.md.


10. Local Development & Test Gates

Prerequisites

  • Node.js 22+ (pinned via .nvmrc)
  • PostgreSQL 16 with PostGIS 3.4 extension
  • Docker & Docker Compose (optional for local DB)

Setup & Run

bash
# 1. Clone the repositorygit clone https://github.com/your-username/shopfront.gitcd shopfront
# 2. Install pinned dependenciesnpm ci
# 3. Environment configurationcp .env.example .env
# 4. Start PostGIS containerdocker-compose up -d db
# 5. Run database migrations & seed fixturesnpm run db:migratenpm run db:seed
# 6. Execute native check gates (40 suites, 234 tests)npm test
# 7. Execute Playwright E2E lifecycle testnpx playwright test
# 8. Run offline evaluation benchmarknpm run eval
# 9. Start development servernpm run dev

Crafted with engineering discipline for the streets of Chennai and the global agentic AI ecosystem.

Source: README.md at commit 3dbddb4

Tools

5

find_shops

Find and rank local shops in Chennai for a customer request. Always provide locality when the customer has told you where they are. If the customer has not said where they are, ask them for a Chennai area before calling this tool. Use category when it is clear. Results already satisfy distance, budget, and open-now constraints.

Parameterslatlnglimitquerycategorylocalityopen_nowradius_kmmax_price_inr

get_shop_info

Retrieve detailed public shop profile including address, locality, coordinates, weekly opening hours, upcoming closures, contact numbers, action mode, and latest menu timestamp.

Parametersshop_slugrequired

get_catalog

Retrieve available menu or service catalog items for a shop grouped by category, with price display and duration, supporting cursor-based pagination.

Parameterskindcursorshop_slugrequired

search_catalog

Search items within a specific shop catalog using text similarity and full-text search with optional price ceiling and item kind filtering.

Parameterskindlimitqueryrequiredshop_slugrequiredmax_price_inr

Version history

1
  1. v2.0.0LatestOct 18, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Shopfront integrations