Hosted MCP gateway that turns your own WhatsApp account into an MCP endpoint. Read, search and send from any MCP client.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/wacli-me/wacli-meMCP Servers overview
# wacli.me
Hosted MCP gateway in front of the [wacli](https://wacli.sh) WhatsApp CLI.
The idea: someone links their WhatsApp account once (QR, like WhatsApp Web) and gets a URL plus a
bearer token. Any MCP client can then read, search — and optionally send — without running anything
locally.
Status: **public alpha**. Single host, single process. Live at <https://wacli.me>.
MIT licensed. Self-hosting is a first-class path — see "Running" below.
## Layout
```
server/ Node MCP server (Streamable HTTP) + static file serving
site/ website sources (pages + layout + assets)
web/ generated site, built from site/ by scripts/build.mjs — never edit
config/ tenants.json (gitignored) — token -> store mapping
bin/wacli pinned wacli binary, isolated from any system install
stores/ one wacli store directory per tenant (gitignored)
scripts/ start/stop/tunnel helpers
```
## Endpoints
| Path | Purpose |
|------------|-----------------------------------------------------|
| `/` | landing page |
| `/mcp` | MCP over Streamable HTTP, `Authorization: Bearer …` |
| `/healthz` | liveness + tenant count |
| `/connect` | self-service linking: live QR, issues a token |
| `/.well-known/oauth-*` | OAuth 2.1 discovery — clients fetch their own credentials |
## Tenants
`config/tenants.json`:
```json
{
"tenants": [
{ "id": "demo", "token": "<32 random bytes, hex>", "store": "/Users/<user>/wacli-me/stores/demo", "allowSend": false }
]
}
```
The file is re-read every 5 seconds — adding a tenant needs no restart. A token maps to exactly one
store directory; tools are constructed per request against that store, so two tenants cannot see each
other's data. `allowSend` is what registers the `send_message` tool at all; leave it `false` unless
the account owner explicitly asked for write access.
Generate a token with `openssl rand -hex 32`.
## Running
```bash
npm install --prefix server
node scripts/build.mjs # site/ -> web/
PORT=8787 HOST=127.0.0.1 node server/server.mjs
```
Environment:
| Variable | Default | Meaning |
|---------------------|----------------------|------------------------------|
| `PORT` | `8787` | listen port |
| `HOST` | `127.0.0.1` | bind address — keep loopback, expose via tunnel |
| `WACLI_BIN` | `./bin/wacli` | wacli binary |
| `WACLI_ME_TENANTS` | `./config/tenants.json` | tenant file |
## Linking an account
```bash
bin/wacli --store stores/<tenant> auth # prints a QR, scan it on the phone
bin/wacli --store stores/<tenant> sync # backfill history (long-running; run as a daemon)
```
Without a sync daemon the store only holds what was fetched during the last run.
## Security notes
- Bind to loopback and publish through a tunnel; never expose the port directly.
- Every MCP request needs a valid bearer token; tokens are compared in constant time.
- Reads run wacli with `--read-only`, so a compromised tool call cannot mutate the store.
- The QR link is a *linked device*. Whoever holds the store can read that account's messages —
treat store directories and tenant tokens as credentials.
## License
MIT, see [LICENSE](LICENSE). `site/assets/qrcode.min.js` is Kazuhiko Arase's
[qrcode-generator](https://github.com/kazuhikoarase/qrcode-generator), vendored unchanged (MIT). wacli itself is a separate MIT project — this repository only drives it.
Linking an account uses an unofficial WhatsApp client. That is against WhatsApp's terms of service,
and Meta may block a number for it. Run it on accounts you own, and tell your users the same.
What people ask about wacli-me
What is wacli-me/wacli-me?
+
wacli-me/wacli-me is mcp servers for the Claude AI ecosystem. Hosted MCP gateway that turns your own WhatsApp account into an MCP endpoint. Read, search and send from any MCP client. It has 0 GitHub stars and its last recorded update is dated 2026-09-19.
How do I install wacli-me?
+
You can install wacli-me by cloning the repository (https://github.com/wacli-me/wacli-me) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is wacli-me/wacli-me safe to use?
+
Our security agent has analyzed wacli-me/wacli-me and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains wacli-me/wacli-me?
+
wacli-me/wacli-me is maintained by wacli-me. The last recorded GitHub activity is dated 2026-09-19, with 0 open issues.
Are there alternatives to wacli-me?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy wacli-me to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/wacli-me-wacli-me)<a href="https://claudewave.com/repo/wacli-me-wacli-me"><img src="https://claudewave.com/api/badge/wacli-me-wacli-me" alt="Featured on ClaudeWave: wacli-me/wacli-me" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ
The fastest path to AI-powered full stack observability, even for lean teams.