End-to-end verification
Prove the whole loop against real Telegram.
Live procedure
- Create a bot. Message @BotFather, send
/newbot, copy the token. - Run setup.
npx ping-a-human setup— paste the token, message your bot, and let the wizard detect yourchat_id. - Wire up a client. Add the printed
mcpServerssnippet to Claude Desktop / Cursor and restart. - Prove
ask_humanwith buttons. Call it withchoices: ["Yes", "No"]; tap a button and confirm the agent receives that exact value. - Prove
notify_human. Confirm the message arrives and the call returns immediately. - Prove the timeout. Call
ask_humanwithtimeoutMs: 10000and don't reply; after ~10s the agent should receive a clear timed-out result.
No MCP client handy?
The credential-gated smoke script exercises the live send → reply path directly:
TELEGRAM_BOT_TOKEN=... TELEGRAM_CHAT_ID=... node scripts/smoke-telegram.mjs
Without credentials it prints a skip notice and exits 0 — safe to run in CI.
Automated checks
npm run build # clean tsc
node --test 'tests/*.test.mjs' # full suite, incl. clean-install launch
The suite covers the channel, both tools, the setup wizard, and a
pack-and-install proof that the npx bin boots and lists the tools.