{"name":"io.github.grzgrzgrz3/pingwa","slug":"grzgrzgrz3-pingwa","title":"pingwa","description":"Zero-setup WhatsApp notifications + human-in-the-loop for AI agents — text 'join', send in 60s.","url":"https://mcp.market/server/grzgrzgrz3-pingwa","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":21,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-07-22T22:23:20.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T05:55:53.061Z","last_ok_at":"2026-11-04T05:55:53.061Z","latency_ms":739},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/grzgrzgrz3/pingwa-client","website":"https://pingwa.dev","version":"0.4.1","remotes":[{"type":"streamable-http","url":"https://pingwa.dev/mcp"}],"packages":[{"registryType":"pypi","identifier":"pingwa","version":"0.4.1","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"pingwa API key (send 'join' on WhatsApp to the service number — see https://pingwa.dev)","isRequired":true,"isSecret":true,"name":"PINGWA_KEY"}]}],"tools":[{"name":"ask","description":"Ask the human a question on WhatsApp and BLOCK until they reply (or timeout).\n\n        `text` is the question. `buttons` (optional, up to 3) render as tappable reply\n        buttons; omit them to invite a free-text answer the human types on their phone —\n        use this to let the human steer you mid-task. `timeout` is seconds to wait\n        (max 90). Returns the human's reply (free text and/or the chosen option). On\n        timeout, returns a note — the question was delivered and the answer is still\n        retrievable via `check_replies`.\n        ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"title":"Text","type":"string"},"buttons":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"title":"Buttons"},"timeout":{"default":60,"title":"Timeout","type":"integer"}},"required":["text"],"title":"askArguments"}},{"name":"check_replies","description":"Pull inbound WhatsApp messages the human sent to pingwa (out-of-band\n        instructions, or late answers to an `ask`). `since` is a cursor from a previous\n        call (pass it back to get only newer messages); `wait` long-polls up to that many\n        seconds for something to arrive. Returns the messages and a new cursor.\n        ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Since"},"wait":{"default":0,"title":"Wait","type":"integer"}},"title":"check_repliesArguments"}},{"name":"check_status","description":"Show the pingwa account's plan, remaining monthly quota, and whether the\n        free 24h WhatsApp reply window is currently open.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"title":"check_statusArguments"}},{"name":"notify","description":"Send a WhatsApp notification to the account owner's own phone.\n\n        `text` is the message (1-1024 chars). `image_url` (optional) is a public https\n        image link — a screenshot, chart or diff — delivered as an image with `text` as\n        the caption when the user's 24h window is open (otherwise text only). Returns a\n        confirmation with the queued message id; raises an actionable error on quota/auth.\n        ","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"title":"Text","type":"string"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Image Url"}},"required":["text"],"title":"notifyArguments"}},{"name":"upgrade","description":"Get a link to upgrade the account to Pro (raises the monthly quota).\n\n        Returns a Stripe Checkout URL for the human to open and pay — no pingwa\n        password needed, the card is handled by Stripe. If the account is already\n        Pro, returns a billing-portal URL to manage or cancel instead.\n        ","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"title":"upgradeArguments"}}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-25T21:43:14.970Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T21:43:14.926Z","components":{"code":{"score":25,"max":25,"notes":["7 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1576ms"]},"poisoning":{"score":15,"max":15,"notes":["5 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":12,"max":15,"notes":["last push 65 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://pingwa.dev/mcp","reachable":true,"authRequired":false,"latencyMs":1576,"serverInfo":{"name":"pingwa","version":"1.28.1"}}],"packages":[{"registryType":"pypi","identifier":"pingwa","version":"0.4.1","found":true,"license":"MIT","dependencyCount":2,"publishedAt":"2026-07-16T21:30:07.938453Z","repositoryUrl":"https://github.com/grzgrzgrz3/pingwa-client"}],"repo":{"found":true,"owner":"grzgrzgrz3","repo":"pingwa-client","archived":false,"pushedAt":"2026-07-22T22:23:20Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/5053641?v=4","ownerCreatedAt":"2013-07-20T13:07:41Z","license":"MIT"},"icon":{"url":"https://pingwa.dev/brand/favicon.svg","source":"site"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-07-22T22:23:20.000Z","score":21}}}},"grade_history":[],"reviews":[]}