Skip to main content

Chat Commerce MCP Hub

This repository is the centralised specification for Pick n Pay's chat commerce MCP (Model Context Protocol) tools. It serves as the single source of truth for what the AI shopping assistant can do across all platforms.

Who is this for?

AudienceWhat to read
Product Owners & BAsCapabilities Overview — plain-language summary of every feature
Product Owners & BAsPlatform Matrix — which features are on which platform
DevelopersMCP Tools — full technical specs per tool
DevelopersArchitecture — how the system works end to end
New contributorsAdding a New Tool — step-by-step guide

What is MCP?

MCP (Model Context Protocol) is the way the AI assistant interacts with the Pick n Pay app. When a customer asks the assistant to do something (like "add milk to my cart"), the assistant calls an MCP tool — a function that the app executes locally on the customer's device.

Think of MCP tools as the assistant's "hands" — they let it search products, manage the cart, check orders, and navigate the app on behalf of the customer.

How this repo works

┌─────────────────────────────────────────────┐
│ mcp-docs (this repo) │
│ │
│ specs/tools/*.yaml ─── Source of truth │
│ │ │
│ ▼ │
│ npm run generate ─── Builds docs │
│ │ │
│ ▼ │
│ docs/ pages ─── Docusaurus site │
└─────────────────────────────────────────────┘

│ Feeds into

┌────────────┐ ┌────────────┐ ┌────────────┐
│ iOS App │ │ Android App│ │ LLM Proxy │
└────────────┘ └────────────┘ └────────────┘

Current workflow (pull)

Tool implementations exist in the iOS and Android apps. This repo was initially populated by extracting those definitions into YAML specs.

Target workflow (push)

New tools are specified here first via pull request. Once the spec is approved, developers implement it in the respective apps and update the platform status in the YAML spec.

Quick start

cd mcp-docs

# Install dependencies
npm install

# Generate docs from YAML specs
npm run generate

# Start local dev server
npm start

# Validate YAML specs
npm run validate