Skip to main content
Glama
hktvmall-mcp
by benjamin-di

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLog level.INFO
MCP_BEARER_TOKENNoOne or more tokens (comma-separated, at least 16 characters each), all for the default account. Required for serve.
HKTVMALL_LOGIN_URLNoThe login browser service (http://host:port on a private network).
HKTVMALL_STATE_DIRNoSessions, budgets, pause, order cache.per-user folder (see Privacy); /state in the image
HKTVMALL_PUBLIC_URLNoThe server's public HTTPS address, for connected accounts' OAuth sign-in.
HKTVMALL_LOGIN_TOKENNoBearer token for the login browser service.
HKTVMALL_SESSION_KEYNo32 random bytes, base64: enables connected accounts and encrypts their sessions.
HKTVMALL_DAILY_BUDGETNoThe default account's HKTVmall requests per day (resets 00:00 Hong Kong time).2000
HKTVMALL_EXPECTED_EMAILNoThe account the session snapshot must belong to.
HKTVMALL_SESSION_SNAPSHOTNoRead the default account's session from a published file.
HKTVMALL_KEEPALIVE_SECONDSNoHow often an idle session is refreshed (re-mints its token and reads the basket).21600
HKTVMALL_TOTAL_DAILY_BUDGETNoAll accounts together per day.4000
HKTVMALL_ACCOUNT_DAILY_BUDGETNoEach connected account's requests per day.500

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}
resources
{
  "subscribe": false,
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
hktv_searchA

Search HKTVmall for one or many items in one call: pass the whole shopping list (up to 25 items, English or Chinese). Returns a few lean candidates per item (id, title, pack, price, stock, seller, delivery) for you to choose between; it never picks. Supermarket zone by default, widening to the whole marketplace when the supermarket has nothing; total says how many matched (max_price_cents is applied by HKTVmall, so within that price). Each product's url is its HKTVmall page: link with it. HKTVmall's English search is weaker than its Chinese one: if candidates look off ("firm tofu" finds tofu cat litter), search the Chinese name too (硬豆腐).

hktv_get_productsA

Current price, stock, seller, delivery, a short summary, origin, photo (image) and page (url) for up to 20 product ids. Ids in not_found are not sold right now (HKTVmall hides products for a while and brings them back).

hktv_show_productsA

Show the person products you picked, as cards with photo, price, unit price, rating, delivery, your note and a link to HKTVmall (claude.ai and ChatGPT draw them in the chat; other clients get the same data: then list them with each url). Use it after hktv_search to present picks or alternatives instead of a long text list. Call it whenever you recommend products, without being asked.

hktv_get_cartA

The account's HKTVmall basket as HKTVmall shows it now: lines with quantity, unit price and stock left, delivery groups with fees and the amount still needed for free delivery, totals, and checkout_url where the person pays. In people mode, connection identifies whose basket this is and account_context identifies the current caller, selection, grant and reconnect epoch. It lasts until one of those changes, including switching away and back. Needs the account's sign-in.

hktv_update_cartA

Set exact quantities for basket lines (quantity 0 removes; never adds on top). Up to 25 changes in one call. Each change's outcome (applied, adjusted, rejected with a reason) is read back from HKTVmall: report those, not what you asked for. Lines you do not name are left alone. Over 15 of one item or HK$1,500 added in one call it changes nothing and returns requires_buyer_review. Cannot place or pay for an order. In people mode, account_context must match the current caller, selected account, sharing grant and reconnect epoch; a stale or missing context applies no changes. Needs the account's sign-in.

hktv_delivery_slotsA

HKTVmall's next delivery slots for the account's address, the fee, free_from, and the slot already selected, if any. Merchant and farm-direct items come separately. The person picks the slot at checkout; this cannot set one.

hktv_reviewsA

A product's rating breakdown and recent customer reviews (rating, date, comment, tags, merchant_replied). Comments are often Chinese and about delivery; rating=1 shows complaints.

hktv_recent_ordersA

The account's HKTVmall order history, newest first, for re-ordering: each order's number, date, status, total, deliveries (date and delivered/scheduled/cancelled per batch) and items (id, title, quantity, line_total; free_gift for promotion gifts). total_orders counts the whole history; page back through it with offset = next_offset (null at the end), one call after another: calls for one account run in turn, so parallel ones only wait. Items need each order's page the first time (about 2 s each; a call reads at most 10 new ones and says more_to_read), after that they come back at once. items=false lists up to 50 orders quickly without items. Read-only; never shows the address or payment. To buy items again, use hktv_update_cart with exact quantities. Needs the account's sign-in.

hktv_statusA

Sign-in state (signed_in, generation, last keep-alive, token expiry), today's request budget, any pause after HKTVmall pushed back, and last_error: the newest failure no later success has cleared (with its tool), else null. connection names whose HKTVmall account calls use (owner, shared); connection_health, when present, is the snapshot custodian's sign_in_needed or check_needed. check=true adds the cached canary, including an order-history probe; shared connections need history permission.

hktv_connectA

The person's My connections link, where they connect their own HKTVmall account, reconnect it, share it with their household or stop using one shared with them. Give the person the url and nothing else; asking for it starts, replaces and cancels nothing. Use it when a tool says not_signed_in, session_expired or connection_disconnected, or when the person asks to connect HKTVmall.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
hktvmall-productsProduct cards (photo, price, rating, delivery, link) for hktv_show_products.

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct part of the shopping workflow: cart read/write, account status/connect, delivery slots, product search/details/presentation, reviews, and order history. The product-facing tools could look similar at first glance, but their descriptions clearly separate search-by-query, lookup-by-id, and display-of-picks.

Naming Consistency4/5

All tools share a consistent hktv_ prefix and snake_case formatting, which makes the set easy to scan. Most names use a verb_noun pattern, though several are noun-only or adjective_noun forms such as hktv_status, hktv_delivery_slots, and hktv_recent_orders.

Tool Count5/5

Ten tools is well scoped for an HKTVmall shopping assistant, with each tool covering a meaningful operation. There is no obvious padding or missing high-level capability that would require many more tools.

Completeness4/5

The surface covers discovery, product details, reviews, cart management, delivery slots, connection/sign-in, and order history, with checkout handled via checkout_url. Minor gaps remain around explicit checkout/order-management operations, but the core shopping lifecycle is well represented.

Maintenance

ActivityMaintained
ResponsivenessOutdated data