Inspiration

Older adults can be pressured into sending money while a caller tells them to stay on the line and keep it secret. I wanted to give them a calm, trusted voice in that moment, one that explains the warning signs and can involve family with their permission.

What it does

Kavach is a self-hosted MCP server paired with a browser-based Alexa+ simulator. It can assess suspicious calls and messages, monitor a simulated live call, verify a caller claiming to be family, record daily check-ins, summarize activity for family, and offer consent-gated family alerts.

Its rules engine checks for 19 scam families and 13 manipulation tactics, with English, Spanish, and Hindi responses. Amazon Bedrock is an optional second-stage assessor for uncertain cases; the rules engine remains available offline if Bedrock is unavailable. The demo shows the device interaction, family phone, consent prompt, and live MCP messages.

How we built it

I built the server in Node.js using the Model Context Protocol SDK and Streamable HTTP. A real MCP client in the web app simulates the Alexa+ host and connects to the server. I implemented MCP tools, resources, prompts, elicitation for consent, progress notifications, structured outputs, and a live JSON-RPC trace.

Scam assessment starts with an explainable offline rules package. The optional Bedrock integration uses the Converse API, and family notifications can use Amazon SNS when configured. The project also includes a labeled evaluation set and protocol checks.

Challenges we ran into

I couldn’t connect a self-hosted MCP server to a real Alexa+ device, so I built a browser simulator that talks to the actual MCP server. AWS denied Bedrock model access for my account, even after account verification and a support request. I kept Bedrock optional and added an automatic offline fallback, but this meant I could not measure the hybrid model’s accuracy.

Accomplishments that we're proud of

Kavach makes consent part of the interaction: it asks before contacting family. The server also supports caller verification and progress updates while it waits for a family member’s response.

The rules-only engine flagged 69.2% of scams in the unseen holdout set and called 50.0% of them scams, with no genuine messages labeled as scams. In the separate Spanish and Hindi set, it flagged 91.7% of scams and called 66.7% of them scams; it labeled no genuine messages as scams, though one was marked for a second look. These are rules-only results; Bedrock results were not available.

What we learned

I learned how an MCP host and server coordinate tools and consent over a stateful connection, and how structured outputs and progress notifications can make that interaction clearer. I also learned to keep critical behavior available offline when a cloud service is inaccessible, and to report evaluation results with their limitations.

What's next for Kavach - Alexa+ Scam Shield

Next, I’d test the Bedrock path when account access is available, expand the evaluation set with more real-world and multilingual examples, and test the experience with older adults and their families. I’d also like to connect the MCP server to an official Alexa+ test environment when one is available.

Built With

Share this project:

Updates

Submission history