MCP Server

storefront

com.mystoq/storefront
Business & Operations Commerce & Retail Public & reachable MCP 2026-07-28

What this MCP does

Supports discovery and management of Algerian cash-on-delivery stores, including products, pricing, publishing, delivery estimates, fraud risk, and COD profitability.

cod_profit
Compute true CAC and net cash-on-delivery profit for an Algerian online store, accounting for the return/refusal rate. Returns base and confirmation-call scenarios.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['selling_price', 'product_cost', 'ad_cost_per_order'], 'properties': {'return_cost': {'type': 'number', 'description': 'DZD lost per refused/returned parcel (default 600).'}, 'product_cost': {'type': 'number', 'description': 'Product cost (DZD).'}, 'selling_price': {'type': 'number', 'description': 'Selling price per order (DZD).'}, 'return_rate_pct': {'type': 'number', 'description': 'Percent of confirmed orders refused/undelivered (e.g. 25 for 25%).'}, 'ad_cost_per_order': {'type': 'number', 'description': 'Ad spend to acquire one confirmed order (DZD).'}}}
create_product
Create a product in the authenticated merchant's store. Requires Bearer token. WRITE.
Input schema
{'type': 'object', 'required': ['name', 'price'], 'properties': {'name': {'type': 'string', 'description': 'Product name.'}, 'price': {'type': 'number', 'description': 'Price in DZD.'}, 'stock': {'type': 'integer', 'description': 'Stock quantity (optional).'}, 'status': {'type': 'string', 'description': 'active | draft | archived (default draft).'}, 'is_demo': {'type': 'boolean', 'description': 'Mark as an ephemeral demo product (server auto-deletes it after auto_delete_at).'}, 'description': {'type': 'string', 'description': 'Description.'}, 'translations': {'type': 'object', 'description': 'Optional {ar|fr|en:{name,description}}.'}, 'compare_price': {'type': 'number', 'description': 'Strikethrough/old price (optional).'}, 'auto_delete_at': {'type': 'string', 'description': 'ISO timestamp after which a demo product is auto-deleted server-side.'}}}
create_store
Register a NEW Mystoq store (tenant). Returns the store id, slug and an access token. No auth needed. WRITE.
Input schema
{'type': 'object', 'required': ['name', 'email', 'password', 'phone'], 'properties': {'name': {'type': 'string', 'description': 'Store name.'}, 'slug': {'type': 'string', 'description': 'Desired store address, the <slug>.mystoq.com part. Optional: derived from the store name when omitted. Latin letters, digits and hyphens, 3-30 chars.'}, 'email': {'type': 'string', 'description': 'Owner email.'}, 'phone': {'type': 'string', 'description': 'Owner phone in Algeria (e.g. 0555123456). Required — a cash-on-delivery store cannot take an order without one.'}, 'password': {'type': 'string', 'description': 'Account password (min 8).'}, 'wilaya_id': {'type': 'integer', 'description': 'Wilaya code 1-69 (optional).'}}}
delete_product
Delete a product from the authenticated store (reversible cleanup — used by the agent's ephemeral live-demo). Requires Bearer token; only the owner's own product. WRITE/DESTRUCTIVE.
Destructive Idempotent
Input schema
{'type': 'object', 'required': ['product_id'], 'properties': {'product_id': {'type': 'integer', 'description': 'Product id to delete.'}}}
get_store
Get a public Mystoq store by its slug: name, wilaya, storefront URL, plan tier and member-since. Public info only.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Store slug, e.g. "islem-uk".'}}}
list_plans
List Mystoq subscription plans with monthly/yearly/lifetime prices (DZD) — useful to answer "how much does Mystoq cost".
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}}
order_risk
Score the fraud/return risk of an Algerian COD order from its signals (phone, history, etc.) — Mystoq FakeShield logic.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'hour': {'type': 'integer', 'description': 'Hour the order was placed, 0-23.'}, 'name': {'type': 'string', 'description': 'Customer full name.'}, 'phone': {'type': 'string', 'description': 'Customer phone (Algerian mobile).'}, 'wilaya': {'type': 'string', 'description': 'Destination wilaya.'}, 'address': {'type': 'string', 'description': 'Delivery address.'}}}
platform_stats
Mystoq network statistics: number of active stores and wilayas covered.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}}
publish
Publish a product (set status=active) so it shows on the storefront. Requires Bearer token. WRITE.
Idempotent
Input schema
{'type': 'object', 'required': ['product_id'], 'properties': {'product_id': {'type': 'integer', 'description': 'Product id to publish.'}}}
search_stores
Search the public Mystoq store directory (Algerian online shops). Filter by keyword (store name), wilaya, or plan. Returns store name, wilaya, storefront URL and plan tier. Public business listings only — no merchant personal data.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'description': 'Max results (1-25, default 12).'}, 'query': {'type': 'string', 'description': 'Keyword in the store name.'}, 'offset': {'type': 'integer', 'description': 'Pagination offset (default 0).'}, 'wilaya': {'type': 'string', 'description': 'Wilaya filter: code (1-69) or name (e.g. "16", "Alger", "الجزائر").'}}}
set_price
Update a product's price (and optional compare_price) in the authenticated store. Requires Bearer token. WRITE.
Idempotent
Input schema
{'type': 'object', 'required': ['product_id', 'price'], 'properties': {'price': {'type': 'number', 'description': 'New price in DZD.'}, 'product_id': {'type': 'integer', 'description': 'Product id.'}, 'compare_price': {'type': 'number', 'description': 'Optional old/compare price.'}}}
yalidine_delivery
Estimate delivery success/return rate and typical delivery time for a destination wilaya in Algeria (region-based network estimate).
Read only Idempotent
Input schema
{'type': 'object', 'required': ['wilaya'], 'properties': {'wilaya': {'type': 'string', 'description': 'Destination wilaya: slug, name or number (e.g. "oran", "Alger", "31").'}}}
Added
delete_product
Sept. 17, 2026, 12:36 p.m.
Added
publish
Sept. 17, 2026, 12:36 p.m.
Added
set_price
Sept. 17, 2026, 12:36 p.m.
Added
create_product
Sept. 17, 2026, 12:36 p.m.
Added
create_store
Sept. 17, 2026, 12:36 p.m.
Added
order_risk
Sept. 17, 2026, 12:36 p.m.
Added
yalidine_delivery
Sept. 17, 2026, 12:36 p.m.
Added
cod_profit
Sept. 17, 2026, 12:36 p.m.
Added
platform_stats
Sept. 17, 2026, 12:36 p.m.
Added
list_plans
Sept. 17, 2026, 12:36 p.m.
Added
get_store
Sept. 17, 2026, 12:36 p.m.
Added
search_stores
Sept. 17, 2026, 12:36 p.m.