Inspiration

Picture a grandmother in Lucknow, late at night. A video call comes in. A man in a police uniform sits in what looks like a police station. He says he is from the CBI, that a parcel in her name was full of drugs, and that she is now under "digital arrest." She must not hang up. She must not tell anyone, not even her own son. To prove her innocence, she must move her savings into an "RBI safe account."

She is frightened, and she is alone. And the one rule he gave her, don't tell anyone, is exactly the thing that would save her.

This is not rare. In 2024, Indians filed 1,23,672 digital arrest complaints and lost ₹1,935 crore (Ministry of Home Affairs, Rajya Sabha). The cruellest part is that the whole thing is fiction. As the Prime Minister said in Mann Ki Baat: "there is no system like digital arrest in the law."

The people who fall for it are not foolish. They respect authority, they are scared, and in that moment they are cut off from everyone who could help. Voice is the one technology that asks nothing of them: no small text, no menus, just speaking. So I asked a simple question: what if the voice already in the room could calmly say "this is a scam," in her language, and quietly break the secrecy by asking her family?

That became Guardian.

What it does

Dadi tells Alexa what is happening, in Hindi, Hinglish or English:

"Alexa, ek CBI officer video call pe hai, bol raha hai main digital arrest mein hoon, kisi ko batana mat…"

  1. Alexa recognises the pattern. Guardian scores the situation 0–100 and shows every red flag with the exact words that triggered it: "cbi", "digital arrest", "kisi ko batana mat", "rbi safe account", "video call".
  2. Alexa tells her the truth, calmly. She reads one safety fact word for word from a file where every fact links to an official source. No made-up advice.
  3. Her family is asked, not just informed. Her grandson Rahul, in Bengaluru, sees one line on his phone, "CBI caller: does Dadi have a case?", and one big button.
  4. He taps "No case — it's a scam." Seconds later Alexa tells Dadi: "Rahul ne confirm kiya ki sab theek hai, yeh call dhokha hai. Abhi call kaat dijiye." (Rahul confirmed everything is fine, this call is a scam. Hang up now.)

The secrecy breaks, and Dadi is not alone anymore.

If the fake officer is watching her on video, she can switch on Ask silently: Alexa shows the answer on screen instead of saying it out loud.

The same engine also catches fake RBI "safe account" calls, courier/narcotics parcel scams, the US grandparent voice-clone call ("Grandma, I'm in jail, send gift cards, don't tell Mom") and IRS impersonation.

How I built it

  • A self-hosted MCP server. TypeScript SDK v2, Streamable HTTP, protocol 2025-11-25, six tools: assess_scam_risk, get_safety_guidance, notify_family, get_household_context, verify_with_family, check_verification.
  • MCP Apps. The risk score and the family's answer render on the Echo Show screen as ui:// cards.
  • A family dashboard that receives alerts live over Server-Sent Events and answers with one tap.
  • A deterministic risk engine, not an LLM. A frightened grandmother deserves the same answer every time, plus a reason she can understand. 11 red flags with phrase lists in English, romanised Hinglish and Devanagari Hindi, and 5 scam typologies:

$$\text{base} = \sum_{f \in \text{fired}} w_f \qquad (w_f \le 20)$$

$$c = 0.6 + 0.4 \cdot \frac{\text{supporting flags present}}{\text{supporting flags defined}}$$

$$\text{score} = \min\left(100,\ \text{base} + \operatorname{round}(25\,c)\right)$$

No single scary word can raise an alert on its own. "I watched a CBI movie on TV" stays low risk. On 39 labelled cases it catches 24/24 scams and flags 0/15 harmless look-alikes. The project has 65 automated tests in total.

  • An Alexa+ simulator. I couldn't connect a self-hosted MCP server to Alexa+ on a real device, so I built a browser Echo Show (Web Speech API, with an LLM agent playing Alexa as the MCP client). Guardian itself is a standard MCP server that any MCP host can call.
  • Both services are deployed on Render.

Dignity by design

  • No call recording. Guardian only knows what Dadi chooses to tell Alexa.
  • Rahul gets one line, never a transcript. Her privacy matters even while she is being protected.
  • Phone numbers never reach the LLM. It only sees names and relationships.
  • Never shame her. Replies are short, warm and firm: "Ghabraiye mat, aur paise mat bhejiye." (Don't panic, and don't send money.)

Challenges I faced

  • A false alarm has a real cost. If Guardian cries wolf, Dadi learns to ignore it, so I wrote a benign look-alike for every scam pattern and tuned the engine until none of them fired.
  • Real speech is code-mixed. People say "paise chahiye", "पैसे चाहिए" and "send money" in the same breath, so every flag needed phrases in three forms.
  • A bug that showed the stakes. At one point, a US grandmother asking in English got her family's answer in Hindi, telling her to call India's 1930 helpline. I fixed it by storing each request's language with the request, so the answer always comes back in the language the question was asked in.
  • Truth over coverage. I deleted 7 safety facts I couldn't verify against an official source, even though it left some scam types with just one fact. Saying less to a frightened person is better than saying something false. A test now fails if an unverified fact ever comes back.
  • Tooling friction, all logged in the repo: free-tier LLM rate limits that a multi-step agent hits quickly, MCP Apps having no single-file build, a client-side schema cache that broke after a redeploy, and a hosting URL that silently changed.

What I learned

  • Detecting a scam is the easy part. The hard part is what you say to a scared person in the next ten seconds.
  • The real antidote to "don't tell anyone" is telling someone. The verification loop with family matters more than any score.
  • Explainable beats impressive. Showing the exact phrase behind each flag builds trust with users, families and judges alike.
  • I also learned MCP deeply: Streamable HTTP, protocol negotiation, MCP Apps, and how much the wording of a tool description shapes what an agent does.

What's next

Real Alexa+ integration once MCP access opens up, SMS and WhatsApp alerts for families, more Indian languages, a family code word for voice-clone calls, and releasing the risk engine as an open-source package.

Nobody should be arrested by a video call, and nobody should have to face one alone.

Everything in it matches the repo and the sources we checked: the figures, the quotes, the test results, the real bug you fixed and the deleted facts. It invents no personal anecdote. If something real made you build this, such as a family member or someone you know who got one of these calls, adding one sentence about it at the top of Inspiration would make it even stronger.

Built With

Share this project:

Updates

Submission history