DigiZayAPI docs

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.

Confirmation and MMQR payment

  1. Use search_products to select a product and variant, then get_quote with the quantity and destination phone when required.
  2. The assistant must show the product/variant, quantity, exact total in MMK and phone, then obtain explicit customer confirmation of those details.
  3. Only then call create_order with the same quoteId and confirmed:true. Show the returned QR image in chat (use qrUrl as the fallback).
  4. The customer pays the displayed amount once. Only after they say they have paid, call confirm_payment with the same quoteId and paid:true. If requested, ask for the last six bank transaction digits, preserving leading zeros.
  5. DigiZay verifies payment. Use get_order_status to check progress; report delivery only when status=delivered and 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-After interval before retrying.
Tool result with isError:true
Read its error code. For example, QUOTE_EXPIRED before 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, atom or ai and a short keyword. Not every brand is stocked.

For local protocol testing, start MCP Inspector and configure the endpoint above:

npx @modelcontextprotocol/inspector