Shopfront Chennai Local Commerce

io.github.jeeva-m-21由 GitHub 账号 jeeva-m-21 发布v2.0.0更新于 Oct 27, 2026

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

发布方自己的服务:ShopFront Locations

已验证Streamable HTTP可网页运行位置与生活商业与电商

概览

AI 生成的概览

面向金奈本地商户目录的远程 MCP 服务器,让助手查找店铺、读取菜单与营业时间,并生成 WhatsApp 或电话联系链接。

可以做什么
  • 按地区、类别、距离、预算和是否营业筛选并排序金奈店铺
  • 读取店铺公开资料:地址、坐标、每周营业时段、近期歇业与联系电话
  • 按分类分页浏览店铺的菜单或服务目录
  • 在单个店铺目录内按文本搜索项目,可限定价格上限与项目类型
  • 生成带预设咨询文案的 WhatsApp 深链、预约链接或电话拨号链接
适用场景
当用户询问金奈的本地店铺、服务或价格,并希望得到有据可查的列表、营业时间以及直接联系商家的方式时适用。
运行要求
需要一个远程 streamable HTTP 端点;未声明账号、API 密钥或请求头。README 另提供本地 stdio 方式,需 Node.js 22+、带 PostGIS 的 PostgreSQL 16 以及 DATABASE_URL 设置。
安装前请注意
覆盖范围仅限金奈商户。联系链接会代用户打开 WhatsApp 或拨打电话,发送前应先确认。README 的本地部署需要 DATABASE_URL 中的数据库连接串,请勿放入共享配置。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Shopfront Chennai Local Commerce,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.jeeva-m-21%2Fshopfront/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "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.

来源:README.md,提交 3dbddb4

工具

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.

输入参数latlnglimitquerycategorylocalityopen_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.

输入参数shop_slug必填

get_catalog

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

输入参数kindcursorshop_slug必填

search_catalog

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

输入参数kindlimitquery必填shop_slug必填max_price_inr

版本历史

1
  1. v2.0.0最新Oct 18, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。

其他 Shopfront 集成