TC

tomi-claycosmos/shopify-store-assistant-mcp

Browser automation

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

0 stars 0 forks Качество 55 Тренд 14

Demo MCP server: Shopify store assistant for ChatGPT Apps & Grok Bot — OAuth 2.1 (DCR+PKCE), safety-bounded tools, MCP Apps widget. Sample data.

Обзор

Portfolio demo by Tomi (https://ziy.one/). from a fictional store ("Kopi & Co. Demo Store"). Not affiliated with Shopify. A TypeScript MCP server (official @modelcontextprotocol/sdk 1.32, Streamable HTTP) that lets a store owner query products, inventory and orders from ChatGPT, Grok Bot or Cursor, and draft discount codes. Every tool has explicit safety bounds. These were captured with headless Chromium (Playwright) against the local server. All tool output is real; all store data is sample data. Regenerate them with npx tsx scripts/screenshots.ts. covers product search with cards, order lookup with masked PII, a 15% discount draft that succeeds, an 80% discount blocked by the cap, and a rejected refund: Walkthrough video: screenshots/walkthrough.mp4 (webm) Safety bounds: - There are no refund, delete, cancel or customer-edit tools. - Discount drafts live in server memory and never change Shopify. - Every call is appended to an audit log (JSONL, no tokens, no raw PII).

README

Показан фрагмент оригинального README. Открыть оригинал.

Shopify Store Assistant — MCP server demo (ChatGPT App · Grok Bot connector · Muse-ready)

Portfolio demo by Tomi (https://ziy.one/). Default data is SAMPLE data from a fictional store (“Kopi & Co. Demo Store”). Not affiliated with Shopify.

A TypeScript MCP server (official @modelcontextprotocol/sdk 1.32, Streamable HTTP) that lets a store owner query products, inventory and orders from ChatGPT, Grok Bot or Cursor, and draft discount codes. Every tool has explicit safety bounds.

Architecture

flowchart LR
  subgraph Clients
    C1[ChatGPT Developer Mode]
    C2[Grok Bot / Cursor]
    C3[Muse connector / MCP Inspector]
  end
  C1 & C2 & C3 -- "OAuth 2.1 (DCR + PKCE S256)" --> AS[Built-in demo Authorization Server/register /authorize /token]
  C1 & C2 & C3 -- "Bearer token · Streamable HTTP POST /mcp" --> MW[Bearer middleware401 + WWW-Authenticate resource_metadata]
  MW --> MCP[McpServer per request6 tools + UI resource]
  MCP --> SAFE[Safety layerscope checks · 20% discount cap · PII masking · no refund/delete]
  SAFE --> AUD[(logs/audit.jsonl)]
  SAFE --> DATA{Store adapter}
  DATA -->|default| MOCK[Mock sample store]
  DATA -->|SHOPIFY_STORE_DOMAIN + SHOPIFY_ADMIN_TOKEN| SHOP[Shopify Admin GraphQLread-only, untested live]
  MCP --> UI[ui://shopify-assistant/product-list-v1.htmltext/html;profile=mcp-app]

Screenshots

These were captured with headless Chromium (Playwright) against the local server. All tool output is real; all store data is sample data. Regenerate them with npx tsx scripts/screenshots.ts.

OAuth consent Widget in a chat host

Demo transcript covers product search with cards, order lookup with masked PII, a 15% discount draft that succeeds, an 80% discount blocked by the cap, and a rejected refund:

Walkthrough video: screenshots/walkthrough.mp4 (webm)

Tools

Tool Purpose readOnly destructive openWorld Scope
search_products keyword/type/SKU search ✅ ❌ ❌ store.read
check_inventory stock for one SKU ✅ ❌ ❌ store.read
lookup_order order details, customer PII masked ✅ ❌ ❌ store.read
get_order_status payment/fulfillment/tracking only ✅ ❌ ❌ store.read
create_discount_draft inactive draft, capped at MAX_DISCOUNT_PERCENT (20) ❌ ❌ ❌ discounts.write
render_product_list renders the widget (decoupled render tool) ✅ ❌ ❌ —

Safety bounds:

  • There are no refund, delete, cancel or customer-edit tools.
  • Discount drafts live in server memory and never change Shopify.
  • Every call is appended to an audit log (JSONL, no tokens, no raw PII).
  • Input is validated with zod.
Открыть полный README на GitHub

Установка

This server does not publish a one-line install command.

Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →