AI assistants (MCP)
Connect your assistant to DigiZay to find Myanmar digital products and mobile packages, get a live quote, prepare an MMQR payment and check your order.
What it is
The Shopping Model Context Protocol (MCP) server exposes customer shopping tools to compatible clients. Guests need no account or key. Payments are MMQR only; DigiZay verifies payment.
You must add the server manually in your client. This page, llms.txt, JSON-LD, robots.txt and the server card do not make ChatGPT or Claude automatically discover or install it.
Endpoint
https://digizay.com/api/shop/mcp
Streamable HTTP, POST only, with stateless JSON responses. Supported protocol versions: 2025-11-25, 2025-06-18, 2025-03-26. Select and copy the examples below.
Client setup
At the time of writing (31 October 2026), the clients below support remote MCP connections. Availability and menus depend on your client version, plan and workspace settings; connection or tool use is not guaranteed.
ChatGPT
Use developer mode and the custom connector or app settings to add the endpoint above manually. Choose No authentication and connect as a guest. At the time of writing, ChatGPT supports no authentication or OAuth for remote MCP, but cannot send a custom static Authorization header. Linking a DigiZay account from ChatGPT requires OAuth, which DigiZay does not offer yet.
See OpenAI’s custom MCP setup and authentication documentation.
Claude (claude.ai and Desktop)
Open Settings > Connectors > Add custom connector, paste the endpoint and choose no authentication to connect as a guest. Some versions place Connectors under Customize. Remote connector requests come from Anthropic’s cloud, including when you use Claude Desktop; they do not come from your PC.
See Claude’s custom connector guide.
Claude Code
Guest connection:
claude mcp add --transport http digizay https://digizay.com/api/shop/mcp
For optional account linking, add --header "Authorization: Bearer dzm_..." to that command, replacing the placeholder with your MCP key. Alternatively, use this .mcp.json with DIGIZAY_MCP_KEY set in your environment:
{
"mcpServers": {
"digizay": {
"type": "http",
"url": "https://digizay.com/api/shop/mcp",
"headers": {
"Authorization": "Bearer ${DIGIZAY_MCP_KEY}"
}
}
}
}
Remove headers for guest access. See Claude Code’s MCP guide.
Cursor
Add this to ~/.cursor/mcp.json or your project’s .cursor/mcp.json. Set DIGIZAY_MCP_KEY in Cursor’s environment for account linking, or omit headers for guest access.
{
"mcpServers": {
"digizay": {
"url": "https://digizay.com/api/shop/mcp",
"headers": {
"Authorization": "Bearer ${env:DIGIZAY_MCP_KEY}"
}
}
}
}
See Cursor’s MCP guide.
Generic MCP clients
Configure the Streamable HTTP URL above. Send Accept: application/json, text/event-stream, Content-Type: application/json and the negotiated MCP-Protocol-Version header. Initialize first, then list tools. Do not add query strings. Browser-origin requests from other origins are rejected with HTTP 403.
POST https://digizay.com/api/shop/mcp
Accept: application/json, text/event-stream
Content-Type: application/json
MCP-Protocol-Version: 2025-11-25
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {},
"clientInfo": {
"name": "your-client",
"version": "1.0.0"
}
}
}
Optional account key
Create an MCP key in Dashboard > API. The format is dzm_ followed by 48 hexadecimal characters. Configure it in a client that supports custom headers:
Authorization: Bearer dzm_...
The key links orders to your account, cannot spend your wallet balance, can be revoked and expires in 365 days. Store it in your client’s secret configuration; do not paste it into a chat or URL.
Legacy dz_ reseller keys are still accepted in the MCP Authorization header for compatibility, but are not recommended: those keys can also spend wallet funds through the reseller REST API.
The reseller REST API at /api/v1/... uses X-Api-Key: dz_...; Authorization: Bearer dz_... also works there. See API docs.
Shopping tools
Names, titles, summaries and annotation values below come from the server’s tool definitions. A false destructiveHint does not mean a tool is read-only or that confirmation can be skipped.
-
search_productsFind DigiZay products
Start here when a customer names a product or asks for options.
readOnlyHint: true · destructiveHint: false
-
get_quoteCheck exact price and purchase details
Call after selecting a product from search_products.
readOnlyHint: false · destructiveHint: false
-
create_orderPrepare and show the payment QR
After the customer confirms the quoted product, variant, quantity, phone and exact amount, send confirmed:true with the quoteId from get_quote.
readOnlyHint: false · destructiveHint: false
-
confirm_paymentSubmit the customer’s paid confirmation
Call only after the customer says they have paid the displayed MMQR.
readOnlyHint: false · destructiveHint: false
-
get_order_statusRead payment submission and delivery progress
Read-only recovery/progress check; this never submits payment or purchases.
readOnlyHint: true · destructiveHint: false
Confirmation and MMQR payment
- Use
search_productsto select a product and variant, thenget_quotewith the quantity and destination phone when required. - The assistant must show the product/variant, quantity, exact total in MMK and phone, then obtain explicit customer confirmation of those details.
- Only then call
create_orderwith the samequoteIdandconfirmed:true. Show the returned QR image in chat (useqrUrlas the fallback). - The customer pays the displayed amount once. Only after they say they have paid, call
confirm_paymentwith the samequoteIdandpaid:true. If requested, ask for the last six bank transaction digits, preserving leading zeros. - DigiZay verifies payment. Use
get_order_statusto check progress; report delivery only whenstatus=deliveredand delivery content is returned.
Keep the same quote through retries. After a timeout, check its status before retrying. A pending result is not a request to pay again. If the customer already paid and the quote expires, keep the original reference and contact support.
Troubleshooting
- 406 — Accept header
- Send
Accept: application/json, text/event-stream. - 403 — Origin
- Requests with another browser origin are rejected. Use your MCP client’s server connection.
- 401 — Key rejected
- Remove the Authorization header for guest access, or create a new
dzm_key if yours is invalid, expired or revoked. - 429 — Rate limit
- Wait for the response’s
Retry-Afterinterval before retrying. - Tool result with
isError:true - Read its error code. For example,
QUOTE_EXPIREDbefore payment means get a new quote and confirm the details again. If already paid, contact support with the original reference. - No products
- Try a category such as
mytel,atomoraiand a short keyword. Not every brand is stocked.
For local protocol testing, start MCP Inspector and configure the endpoint above:
npx @modelcontextprotocol/inspector