javis-zalo
Provides tools for interacting with a personal Zalo account, including reading and sending messages, searching and listing conversations, viewing media, marking messages as read, and managing groups, notes, reminders, polls, friends, profile, labels, and catalog features.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@javis-zalosend a Zalo message to Mom saying I'm running late"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
javis-zalo
Zalo command-line tool and MCP server maintained for Javis OS. It signs into a personal Zalo account by QR code, then reads and sends messages, manages groups, notes, reminders and polls, either from the terminal or through the Model Context Protocol.
Unofficial API. Personal-account features talk to Zalo through zca-js, a reverse-engineered client. Zalo does not support this and the account may be restricted or locked. Read DISCLAIMER.md.
Install
Needs Node.js 20 or newer. Each release is a git tag, installed straight from GitHub (no npm account, no Git on the machine):
npm install -g https://codeload.github.com/blogminhquy/javis-zalo/tar.gz/refs/tags/v1.2.0Or run once without installing:
npx -y https://codeload.github.com/blogminhquy/javis-zalo/tar.gz/refs/tags/v1.2.0 --helpThe command is javis-zalo. The older name zalo-agent is kept as an alias.
Related MCP server: chatmux
Quick start
javis-zalo login # prints a QR code; scan it in the Zalo app
javis-zalo conv recent # recent conversations
javis-zalo msg send <threadId> "Hello" # 1:1 chat
javis-zalo msg send <threadId> "Hello" -t 1 # group
javis-zalo --json msg history <threadId> -t 1 # machine-readable outputEvery command accepts --json. Run javis-zalo <group> --help for the full list (msg,
friend, group, conv, account, profile, poll, reminder, label, catalog,
listen, oa, mcp).
MCP server
javis-zalo mcp start # stdio, for an MCP client
javis-zalo mcp start --http 3847 --auth <token> # HTTP, bound to 127.0.0.1Tools: zalo_get_messages, zalo_get_history, zalo_search_history, zalo_list_threads,
zalo_search_threads, zalo_view_media, zalo_get_group_joins, zalo_list_join_requests (read),
zalo_mark_read (write), zalo_send_message (sends a message) and zalo_review_join_requests
(approves or rejects people waiting to join a group; needs owner or deputy rights).
Group joins are recorded with their exact time while the server is connected and kept in
~/.zalo-agent-cli/group-joins.jsonl. Zalo's member list has no join date, so members who joined
earlier, or while the server was offline, are not in it.
Where data lives
Sessions and settings stay on your machine under ~/.zalo-agent-cli/ (accounts, credentials,
MCP config, downloaded media). Zalo Official Account credentials live in ~/.zalo-agent/. The
folder names are kept from earlier builds so accounts that are already signed in stay signed in.
Nothing is sent anywhere except Zalo itself, a webhook or proxy you configure, and qr.sepay.vn
when you ask for a bank-transfer QR image.
Development
npm ci
npm test
npm run lint
npm run format:checkSee CONTRIBUTING.md and CHANGELOG.md.
License
MIT, see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Your own WhatsApp as an MCP server: read, search and send from any MCP client.
MCP connector for iMessage & Contacts via a local Mac agent + Vercel relay
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
Chat with your Zihin.ai agents, list them and load platform skills from any MCP client.
Related MCP Servers
- AlicenseAqualityCmaintenanceLocal stdio proxy for Uno MCP Gateway that enables MCP clients without OAuth support to securely connect to authenticated remote servers.821 PyPI1MIT
- AlicenseNot gradedqualityBmaintenanceLocal-first MCP server that puts your own LINE and Telegram chats behind one data layer — a daemon on your machine logs in with your own account, stores messages to JSONL + SQLite/FTS5, and exposes 6 MCP tools over streamable HTTP on 127.0.0.1. Not a hosted service and not an npx one-liner: you clone the repo, run the daemon, and log in yourself.10 npm1MIT
- AlicenseAqualityCmaintenanceMCP server that reads Slack through your own browser session, authenticating as you rather than a bot. Provides tools to search messages, retrieve channel/DM/thread history, resolve users, and post messages (write disabled by default).10MIT
- AlicenseNot gradedqualityBmaintenanceEnables assistants to sign in to and interact with a user's own Hinge account through MCP tools, resources, and prompts, including session lifecycle and account reads. Runs locally over stdio or Streamable HTTP with authentication options.8MIT