Inspiration

It started with a missed call. One of us forgot to ring our mom on a Sunday, the one evening she always waits for. Alexa was sitting right there on the desk the whole time, and she had no idea. She can tell you the capital of Peru, but not that your sister's birthday is next week or that you promised to pay the electricity bill yesterday.

That felt backwards. The things we actually forget are the small personal ones, and those are exactly what assistants don't keep. So we wanted to build an Alexa that remembers your life, not just the internet. We gave her a name too: Julie.

What it does

You talk to Julie like you'd talk to a friend who has a really good memory.

Tell her "my sister Priya's birthday is November 2" and she keeps it. Ask "what does my day look like?" and she runs through today's tasks, flags anything overdue, mentions the weather, and pulls in anything relevant she knows. Something like: "Your electricity bill is two days overdue, want me to move it to tomorrow? And it's Sunday, your mom likes a call this evening."

She can:

  • remember people, birthdays and little preferences
  • keep your tasks and move them around when plans change
  • set reminders and say them out loud when they're due
  • handle a whole sentence at once, like "remember Priya's birthday and remind me to buy her a gift on Friday"

How we built it

Julie is an MCP server. It runs over Streamable HTTP at /mcp and gives any AI assistant 8 tools (remember, recall, add_task, list_tasks, complete_task, reschedule_task, set_reminder and daily_briefing), plus a resource with her whole memory and a morning-briefing prompt. We wrote it in Node.js with the official MCP SDK, Express and zod.

Alongside the server there's an Agent Skill (SKILL.md). The tools are what Julie can do; the skill is how she should behave: when to check memory first, how to chain tools, and how to keep answers short enough to sound natural when spoken.

We couldn't get access to real Alexa+ MCP (more on that below), so we built a simulated Alexa+ in the browser, which the rules allow. You click the mic, talk, and she talks back. The important part is that the simulator only reaches Julie through MCP, the same way Alexa+ would. A side panel shows every tool call live, so you can watch her think.

The brain behind the simulator is any OpenAI-compatible model. By default it's Qwen2.5 7B running locally in LM Studio, so the whole thing runs free on a regular gaming PC with no API keys. If you'd rather use Claude or OpenAI, you change three lines in .env.

Challenges we ran into

The biggest one hit on day one. We opened the Alexa developer console, went to Alexa+ add-ons, and got a "Coming Soon" screen. The MCP toolkit turned out to be partner-only. Instead of giving up, we built the simulator and kept the MCP server exactly as it would plug into the real thing.

Small local models also turned out to be bad at dates. Ask a 7B model what "next Friday" is and you get creative answers. We moved all the date and time parsing into the tools themselves, so the model just passes along "Friday" or "in 10 minutes" and the server works it out.

A couple of smaller ones cost us real time: the MCP SDK quietly returned 403 inside Docker until we found the allowedHosts setting, and LM Studio kept failing with "HTTP request to an HTTPS server" because another app on the PC was already using its port. We moved it to 1235 and moved on.

Accomplishments that we're proud of

  • Julie is real MCP, not a demo trick. The same endpoint works in MCP Inspector, Claude Code, or any other MCP host.
  • One spoken sentence can set off several tools in a row, and it just works.
  • Reminders actually fire on time, and hearing Julie say them out loud for the first time was a great moment.
  • Everything runs offline and free on our own machine.

What we learned

Keeping the server stateless made it much easier to host than we expected. We also learned to split the work: the tools handle correctness (dates, storage) and the Agent Skill handles behavior (tone, when to ask, what to say). Once we did that, even a small local model became surprisingly reliable.

And building for voice changes how you write. Every reply has to be short, because nobody wants to listen to a paragraph.

What's next for Julie

  • Plug her into real Alexa+ as soon as the MCP toolkit opens up.
  • Support more than one person, with proper sign-in on /mcp.
  • Let her speak up on her own, like reminding you about a birthday without being asked.
  • A shared family memory, so a whole household can keep one list of birthdays and chores.

Built With

Share this project:

Updates

Submission history