-
-
The server asking a follow-up question (flat or reducing rate?)
-
The offer review card: ₹5,167 a month and a true yearly cost of 63.4% against the quoted 24%
-
Loan and repayment tracking
-
A short lesson
-
The affordability check coming back “tight” for a ₹9,000 payment
-
The MCP handshake and the full agent trace through to the verifier
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 overpostMessage, 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 mcppulled a new 2.x line that broke existing code, tunnels failed with421 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.
Log in or sign up for Devpost to join the conversation.