Inspiration
We wanted to explore what a next-generation voice assistant could look like when it is designed as an open, extensible platform rather than a collection of isolated features. Alexa+ Multi-Skill Assistant was inspired by the idea of an assistant that can understand context, coordinate multiple capabilities, proactively surface useful information, and provide an ambient experience similar to a smart display.
The project combines the Model Context Protocol (MCP), Streamable HTTP, Server-Sent Events, and interactive dashboard design to demonstrate how assistants can connect tools and workflows through a consistent protocol.
What it does
Alexa+ is a browser-based AI assistant and ambient dashboard that supports:
Natural-language requests for weather, smart-home controls, music, shopping, calendar, news, traffic, and general questions Ten MCP agent skills discovered dynamically through tools/list Multi-skill routines such as: Good Morning Good Night Leaving Home Arriving Home Real-time routine progress with step-by-step status updates Streamable HTTP JSON-RPC communication SSE streaming for tool progress and routine execution Persistent SSE notifications for package updates, reminders, weather alerts, and smart-home events Ambient dashboard mode with weather, news, clock, music, and device widgets Conversational session memory An MCP Inspector for viewing network requests, JSON-RPC payloads, SSE events, memory, and registered tools An interactive DAG visualization of chained skill execution Web Audio API notification chimes and voice activity waveforms Light and dark visual themes The project currently uses simulated data so that the full experience can be run locally without external service credentials.
How we built it
We built the application as two lightweight Node.js services.
Frontend The frontend uses plain HTML, CSS, and JavaScript without a framework:
index.html defines the chat interface, ambient dashboard, inspector, notification center, and routine views. app.js manages application state, intent routing, MCP requests, SSE parsing, UI updates, audio feedback, and interactive features. style.css provides the warm neutral design system, responsive layouts, animations, dashboard cards, and Echo Obsidian theme. serve.js provides a minimal static file server on port 3000. MCP server The backend is an Express application running on port 3001.
It implements:
MCP initialization and session IDs JSON-RPC 2.0 request handling Skill discovery and execution MCP resources for routines and conversation memory Streamable HTTP responses SSE progress events Persistent SSE notification connections Simulated skill executors for weather, smart home, shopping, music, calendar, news, traffic, routines, ambient data, and general AI responses The client first initializes an MCP session, discovers the available skills, loads routines, and opens a persistent SSE connection. User messages are then mapped to skills using a lightweight intent parser and sent to the server as MCP tools/call requests.
Challenges we ran into
One of the biggest challenges was coordinating multiple communication patterns in a browser application. The project uses ordinary JSON responses, streamed SSE tool responses, and a separate long-lived SSE connection for proactive notifications. Each stream needs to be parsed, logged, and reflected in the UI without interrupting the chat experience.
Another challenge was designing routines that feel genuinely multi-step. A routine is not just a single response: it contains several skills, progress states, results, and visual feedback. We created both a server-side routine executor and a client-side pipeline visualization so users can see the workflow evolve from pending to running to completed.
We also had to keep the interface responsive while adding many interactive elements, including audio synthesis, animated particles, waveform rendering, smart-home controls, music transitions, notification toasts, and the protocol inspector.
Finally, we had to make the demo realistic while being transparent about its boundaries. The current skill executors simulate external services rather than pretending to provide live Amazon, weather, calendar, or smart-home data.
Accomplishments that we're proud of
- Built a complete MCP client and server workflow from scratch
- Implemented MCP session initialization with protocol version 2025-11-25
- Created ten discoverable agent skills with input schemas and metadata
- Demonstrated chained multi-skill orchestration through reusable routines
- Added real-time SSE progress events and proactive notification delivery
- Built a DevTools-style MCP Inspector for debugging protocol activity
- Created a visual DAG representation of routine execution
- Designed an ambient dashboard that works alongside the conversational assistant
- Added browser-native audio feedback without external audio files
- Kept the application dependency-light and easy to run locally
- Documented the architecture, endpoints, setup process, limitations, and security considerations
What we learned
Built a complete MCP client and server workflow from scratch Implemented MCP session initialization with protocol version 2025-11-25 Created ten discoverable agent skills with input schemas and metadata Demonstrated chained multi-skill orchestration through reusable routines Added real-time SSE progress events and proactive notification delivery Built a DevTools-style MCP Inspector for debugging protocol activity Created a visual DAG representation of routine execution Designed an ambient dashboard that works alongside the conversational assistant Added browser-native audio feedback without external audio files Kept the application dependency-light and easy to run locally Documented the architecture, endpoints, setup process, limitations, and security considerations
What's next for Alexa+ Multi-Skill Assistant
The next stage would be to turn the prototype into a production-ready assistant platform by:
Replacing simulated skill executors with authenticated service integrations Adding Amazon Bedrock for richer natural-language understanding and response generation Connecting real weather, traffic, calendar, shopping, and music services Adding durable storage for users, sessions, routines, and conversation memory Adding authentication and per-user authorization Supporting user-created custom routines Adding robust schema validation and structured error handling Improving intent recognition with an LLM while preserving tool safety Adding observability, metrics, tracing, and audit logs Deploying the frontend through Amazon S3 and CloudFront Deploying the MCP server through AWS Lambda, API Gateway, or containers Adding automated tests and CI/CD Supporting additional MCP resources, prompts, and third-party skills Our long-term goal is to evolve Alexa+ from a polished protocol demonstration into an open, extensible assistant that can coordinate services, devices, and workflows in a transparent and user-controlled way.
Built With
- ai-assistant
- amazon-alexa+
- amazon-web-services
- ambient-dashboard
- browser-speech-recognition
- css3
- express.js
- html5
- interactive-ui
- javascript
- json-rpc-2.0
- mcp
- mcp-inspector
- multi-skill-orchestration
- node.js
- open
- real-time-notifications
- server-sent-events-(sse)
- serverless-architecture
- smart-home
- streamable-http
- web-audio-api
Log in or sign up for Devpost to join the conversation.