Inspiration

I wanted to build something that talks with you intelligently, like a real expert sitting beside you. A finance expert, in this case, who can teach me about things I care about, so that I actually learn while using it.

Many first-time borrowers sign loans they don't fully understand. "24% flat" sounds like 24%, but with a small upfront fee it can really cost about 63% a year. Sahayak ("helper" in Hindi) explains what a loan truly costs, out loud, in plain words.

What it does

Sahayak is a voice-first money coach built as an Alexa+ add-on, an MCP server.

  • Explains a loan's true yearly cost, the cash you actually receive, and what flat vs. reducing interest really means
  • Runs a multi-agent offer review ("should I take this loan?"): true cost, whether it fits your budget, questions to ask the lender, and a relevant lesson
  • Asks follow-up questions when it needs more (is the rate flat or reducing? what is your income?)
  • Remembers your budget, loans and repayments across conversations, and teaches short money lessons with a quiz question

How we built it

  • MCP server in Python (official MCP SDK) over Streamable HTTP, spec 2025-11-25: 8 tools, resources, and elicitation for follow-up questions
  • Every number comes from a deterministic calculator (flat vs. reducing interest, fees, true yearly rate, affordability). No language model touches the figures, and a verifier checks that every number in a spoken answer traces back to the calculator
  • A multi-agent pipeline behind one tool call: a supervisor plans and re-plans a loan analyst, an affordability agent and a coach. The agents are rule-based code, not LLMs, and sit behind interfaces a model could replace
  • The on-screen card is an MCP App: a ui:// resource served by the server and shown in a sandboxed iframe over postMessage, so the screen comes from the server and not from the assistant
  • SQLite memory, and a simulated Alexa+ experience (voice in and out, Echo Show-style screen) that acts as an MCP client and an MCP Apps host, with a "Behind the scenes" panel that shows every real MCP message
  • A warm, soft theme whose colours are tested for readability, and a one-command launcher (python run_demo.py)

Challenges we ran into

  • Speech recognition mishears numbers: "8,000" arrived as "8" or "800". The assistant now asks "did you mean 8,000?" instead of guessing or rejecting.
  • SDK surprises: pip install mcp pulled a new 2.x line that broke existing code, tunnels failed with 421 Invalid Host header, and the MCP Apps spec contradicts itself in places.
  • Amazon Bedrock: I explored it and tested several models in the playground, but I did not use it in the project, so there is no Bedrock code in this submission.

Accomplishments that we're proud of

  • A verifier that catches invented numbers: when I made a test composer state a payment that wasn't in the calculator, it was rejected. With the verifier switched off, the lie went straight through.
  • A real MCP App with a working host handshake, tested end to end, and a sandbox the card cannot escape
  • 118 unit tests and 26 end-to-end checks, including a test that keeps every colour pair readable and chart colours distinguishable for colour-blind users
  • Bugs I found by testing against a live server and fixed (the missing structuredContent, loan numbering, cut-off voice input), each with a test
  • A friction log of 12 entries, written as the problems happened, as feedback for the tools I used
  • It runs from a fresh clone with one command: no accounts, API keys or hardware

What we learned

  • How MCP servers work, and how an AI agent reaches outside its own environment: tools, resources, elicitation and MCP Apps
  • How an assistant's visuals can be served by the server, and how to keep a sandboxed view safe
  • Why you verify what a system says, not just what it computes
  • My first hands-on time with Amazon Bedrock and AWS: trying different models in the playground, and earning my first $20 of AWS credit by completing one of its tasks

What's next for Sahayak

Real Alexa+ account linking (OAuth), a model-backed planner behind the same verifier, and more languages, starting with Hindi.

Try it: git clone https://github.com/shreesh1802/Sahayak.git, then pip install -r requirements.txt and python run_demo.py. Full steps are in the README.

Built With

  • alexa-plus
  • github
  • html5
  • mcp
  • mcp-apps
  • model-context-protocol
  • postmessage
  • python
  • splite
  • uvicorn
  • web-speech-api
Share this project:

Updates

Submission history