pingwa MCP server
online · 100% uptimeio.github.grzgrzgrz3/pingwa·v0.4.1·1 starsZero-setup WhatsApp notifications + human-in-the-loop for AI agents — text 'join', send in 60s.
1 stars
Reviews
Write oneNobody has reviewed pingwa yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
pingwa tools (5, 1 write)
write = sends, deletes, buys or postsaskFreeAsk the human a question on WhatsApp and BLOCK until they reply (or timeout). `text` is the question. `buttons` (optional, up to 3) render as tappable reply buttons; omit them to invite a free-text answer the human types on their phone — use this to let the human steer you mid-task. `timeout` is seconds to wait (max 90). Returns the human's reply (free text and/or the chosen option). On timeout, returns a note — the question was delivered and the answer is still retrievable via `check_replies`.
check_repliesFreePull inbound WhatsApp messages the human sent to pingwa (out-of-band instructions, or late answers to an `ask`). `since` is a cursor from a previous call (pass it back to get only newer messages); `wait` long-polls up to that many seconds for something to arrive. Returns the messages and a new cursor.
check_statusFreeShow the pingwa account's plan, remaining monthly quota, and whether the free 24h WhatsApp reply window is currently open.
notifywrite actionFreeSend a WhatsApp notification to the account owner's own phone. `text` is the message (1-1024 chars). `image_url` (optional) is a public https image link — a screenshot, chart or diff — delivered as an image with `text` as the caption when the user's 24h window is open (otherwise text only). Returns a confirmation with the queued message id; raises an actionable error on quota/auth.
upgradeFreeGet a link to upgrade the account to Pro (raises the monthly quota). Returns a Stripe Checkout URL for the human to open and pay — no pingwa password needed, the card is handled by Stripe. If the account is already Pro, returns a billing-portal URL to manage or cancel instead.
Public scan report
scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it
- Code scan7 source files scanned25/25
- Live reliabilityremote reachable in 1576ms20/20
- Tool poisoning5 tool descriptions checked15/15
- Auth qualityopen endpoint exposes 1 write-action tools with no auth3/15
- Maintenancelast push 65 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (1)
- highWrite-action tools reachable without authentication
auth.open-write
How pingwa compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 65% of 48,255 servers
- Tools
- 5
- the typical server has 7
- Tools that change things
- 20%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 100%
- of our recent checks; the typical remote server answers 100%
- Response time
- 739 ms
- faster than 18% of 30,031 servers
- GitHub stars
- 1
- more than 65% of 28,688 servers
What its tools let an agent do: 4 read · 1 send or post
Install pingwa in Claude Code, Cursor or VS Code
claude mcp add --transport http pingwa https://pingwa.dev/mcp
What the publisher says
From the pingwa repository's README, as published. We do not edit it. Read it on GitHub
pingwa (client)
WhatsApp notifications for AI agents and scripts with zero setup — no Meta account, no templates, no dashboard: text "join", get an API key, curl → WhatsApp in 60s. Two-way human-in-the-loop: your agent asks, you tap a button to answer. From your terminal or an MCP client.
<!-- mcp-name: io.github.grzgrzgrz3/pingwa -->
This is the open-source (MIT) pingwa client: a CLI, a tiny HTTP client, and an MCP server. It talks to a pingwa backend (the hosted service at https://pingwa.dev, or your own). The backend is separate and private; this client is not.
Install & use
No install needed with uv:
export PINGWA_KEY=pw_your_key # get one: send "join" on WhatsApp to the service number
uvx pingwa send "build finished ✅" # notify your own phone
echo "deploy done" | uvx pingwa send - # from stdin
uvx pingwa ask "Deploy to prod?" --button yes --button no # wait for a reply from your phone
uvx pingwa replies # pull messages your phone sent back (out-of-band steering)
uvx pingwa me # plan / quota / reply-window
uvx pingwa keys # list active API keys (up to 10 named keys per number)
uvx pingwa keys revoke ci # revoke one by name (or reply 'revoke ci' on WhatsApp)
uvx pingwa upgrade # get a Stripe link to go Pro (no password needed)
uvx pingwa send "x" --json # raw JSON responseAI agents: don't ask your human to copy-paste a key — drive the registration yourself (POST /v1/registrations; full recipe in llms.txt). The human only taps one WhatsApp link; the key is claimed by you and never travels through the chat. Works for existing accounts too — it mints an additional named key.
Exit codes: 0 ok · 2 missing key · 3 quota exceeded · 1 other. Override the backend with PINGWABASEURL or --base-url.
Webhooks
Prefer PUSH over polling replies? Register HTTPS endpoints and pingwa POSTs every inbound WhatsApp message to them:
uvx pingwa webhooks # list your webhooks
uvx pingwa webhooks add https://your-host/pingwa-hook # returns a signing SECRET, shown ONCE
uvx pingwa webhooks rm https://your-host/pingwa-hook # by id, or by exact urladd prints a whsec... secret once** — store it now; it never appears again. Each delivery carries an X-Pingwa-Signature: sha256= header (an HMAC-SHA256 of the raw body under that secret) — verify it and reject anything that fails. Full verification recipe and payload shape: llms.txt. Up to 5 active webhooks per account; to rotate a secret, rm then add again.
MCP server
Same tools on stdio and remote: notify(text), ask(text, buttons?, timeout?), checkreplies(since?, wait?), checkstatus(), upgrade().
Local (stdio) — for Claude Desktop / Claude Code:
{
"mcpServers": {
"pingwa": {
"command": "uvx",
"args": ["pingwa", "mcp"],
"env": { "PINGWA_KEY": "pw_your_key" }
}
}
}Remote (Streamable HTTP, no install):
{
"mcpServers": {
"pingwa": {
"url": "https://pingwa.dev/mcp",
"headers": { "Authorization": "Bearer pw_your_key" }
}
}
}Every error carries an action hint, so an agent knows what to do next.
What it sends
Only your message text and your key, to the pingwa backend you point it at — over HTTPS. Nothing else. The recipient is always your own phone (there is no "to" field). See the service's /privacy.
License
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
pingwa: common questions
- Is pingwa MCP server safe?
- Mostly: it is graded B (83/100). Read the pingwa safety report
- How do I install pingwa?
- It runs remotely at pingwa.dev. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does pingwa need an API key?
- Yes. The registry entry asks for
PINGWA_KEY. - Is pingwa maintained?
- The last commit was 105 days ago (2026-07-22). The latest release is v0.4.1.
- Is pingwa up?
- 100% of our last 28 checks got an answer. We check remote servers about four times a day.
- How does pingwa compare with other MCP servers?
- safety score 83/100 (higher than 65% of 48,255 servers); tools 5 (the typical server has 7); tools that change things 20% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.