Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Zalo Official Account in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Zalo Official Account (Vietnam): OA profile and message quota, followers and users with their details and labels, recent chats and conversations, consultation messages with text or an image, and the OA's articles. Uses a pasted OA access token, valid about 25 hours.
Try asking
Example prompts for Zalo Official Account
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Zalo Official Account, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Zalo Official Account + ChatGPT
Zalo Official Account (Vietnam): OA profile and message quota, followers and users with their details and labels, recent chats and conversations, consultation messages with text or an image, and the OA's articles. Uses a pasted OA access token, valid about 25 hours.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
ZALO_OA_ACCESS_TOKEN
Step 1 — Get credentials
Setting up takes about 5 minutes, and the token has to be renewed every day (see below). You need a Zalo Official Account and an OA admin who approves permissions.
- At https://developers.zalo.me create an app or open yours, link it to your Official Account and, under Official Account > OA permissions, request the permission groups the connector uses: OA information management, user information management, user message management, sending messages and notifications via OA, and article management. An OA admin approves them.
- Open Tools > API Explorer (https://developers.zalo.me/tools/explorer), pick your app, choose the access token type OA Access Token, pick the OA, allow the requested permissions and copy the access token.
- Paste it into
ZALO_OA_ACCESS_TOKEN. It is sent in theaccess_tokenheader that Zalo requires. - Install the connector and run
zalo_oa_get_oa_infoto check it.
The token lasts about 25 hours. Zalo renews OA access tokens only through its own OAuth v4 flow, which AnythingMCP cannot run for this connector, so the token is pasted. When calls answer error -216 or -220, create a new token in API Explorer and save it in the connector settings. If you renew tokens in your own system, you can write each new token into ZALO_OA_ACCESS_TOKEN through the AnythingMCP API.
What it reads: the OA profile (name, id, verification, followers, service package) and its message quota; the users who follow or talked to the OA, 50 per page, with filters by label, last interaction or follower status; one user's name, alias, follower status, last interaction date, labels, notes and shared information; the labels of the OA; the latest messages across all chats and the messages with one user, 10 per call; and the OA's articles and videos with their body.
What it writes: user details (alias, your own customer id and shared information) and labels: the AI puts a label on a user, creating it when it is missing, or takes it off. zalo_oa_send_text sends a consultation text, optionally quoting the user's message, and zalo_oa_send_image a consultation message with one image. Both reach a real person, so the AI shows the text and waits for your yes.
When a consultation message can be sent: only to a user who interacted with the OA in the last 7 days. From 1 January 2026, consultation messages within 48 hours of the user's last interaction are free and unlimited; later ones use the OA package quota or are charged. zalo_oa_get_user_quota tells the AI what can still be sent to a user. Error -230 or -232 means the user has not interacted recently enough, -213 that the user does not follow the OA.
Switched off at install: zalo_oa_delete_tag, which removes a label from the OA and from every user who has it, and cannot be undone.
Formats: every answer has error (0 = success) and message, with the payload in data; errors arrive with HTTP 200 and a negative error. User, OA and message ids are long digit strings. In a message, src is 1 when the user sent it and 0 when the OA did. Message times are Unix milliseconds, and user_last_interaction_date is dd/MM/yyyy.
Limits: 4,000 requests per minute per app, plus a per-OA limit that depends on the OA package; error -32 means waiting for the next minute. The user list reaches the first 10,000 users.
Common errors: -216 or -220 means an invalid or expired token (paste a new one), -223 a permission the OA has not granted to the app, -224 a feature the OA package does not include, -201 an invalid parameter, and -211 a quota that is used up.
The connector does not send transaction, promotion or ZNS template messages, files or stickers, and does not cover group chats, calls, article creation or the OA shop. Webhooks are configured in the Zalo app settings.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in ChatGPT
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
ChatGPT adds MCP servers as plugins on its Plugins page, on the web and on paid plans. Developer mode is no longer needed. In a Business workspace only admins and owners can add one; in Enterprise and Edu an admin can grant the Create plugins with MCPs permission.
- Go to chatgpt.com/plugins, click Add, then Add custom MCP server.
- Enter a name, e.g. Name:
Zalo Official Account. - Under Connection, enter the Server URL
https://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDand keep Authentication on OAuth. - Select I understand and want to continue, then Create as a plugin. When ChatGPT asks, sign in to AnythingMCP and allow access.
- Install the new plugin from your personal plugins, then type @ in a chat and pick it.
Available tools
| Tool | What it does |
|---|---|
zalo_oa_get_oa_info | Profile of the Official Account the token belongs to: OA id (oaid), name, description, alias, verification status, OA type, category… |
zalo_oa_get_quota | Message quota of the OA or the app: one row per quota asset with the product type (cs = consultation, transaction), the quota source… |
zalo_oa_get_user_quota | What the OA can still send to one user: the time of the user's last interaction with the OA (last_interaction, Unix milliseconds) and the… |
zalo_oa_list_users | Page through the users who interacted with the OA (followers and people who messaged it) |
zalo_oa_filter_users | Page through the OA's users with filters: by label (tag), by when they last interacted, or by whether they follow the OA |
zalo_oa_get_user | Details of one user: display name, alias, your own customer id (user_external_id), whether the user follows the OA, last interaction date… |
zalo_oa_update_user | Update what the OA stores about a user: the alias, your own customer id (user_external_id, unique per user) and the shared information… |
zalo_oa_list_tags | All labels (tags) defined in the OA, as a list of label names |
zalo_oa_tag_user | Put a label on a user |
zalo_oa_untag_user | Remove a label from one user |
zalo_oa_delete_tag | Delete a label from the OA, which also takes it off every user who has it |
zalo_oa_list_recent_chats | The latest messages across all of the OA's conversations, newest first: sender and recipient ids and names, direction (src 1 = from the… |
zalo_oa_get_conversation | Messages between the OA and one user, newest first, 10 at most per call: message_id (use it as quote_message_id to reply), direction… |
zalo_oa_send_text | Send a consultation (customer care) text message from the OA to a user, optionally as a reply quoting one of the user's messages |
zalo_oa_send_image | Send a consultation message with one image (JPG or PNG, at most 1 MB, best at 16:9) and an optional caption |
zalo_oa_list_articles | The OA's published content: articles (type normal) or videos (type video), with id, title, status, views, shares, creation and update… |
zalo_oa_get_article | One article with its title, author, cover, description, status, comment setting and body blocks (text, images, videos) |
Example prompts
- "Which users messaged the OA in the last 24 hours, and what did they ask?"
- "Show my conversation with this user and draft a reply to their last question."
- "Put the label delivery-question on everyone who asked about delivery this week."
- "How much consultation message quota does the OA have left?"
- "List the five most viewed articles of the OA."
FAQ
Does the free ChatGPT plan work with custom MCP servers? OpenAI documents custom MCP servers for paid plans only; the Free plan is not on its list.
Next steps
- Connector landing page
- Connect to Claude
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
- Connect to Microsoft Copilot
Was this guide helpful?