-
-
Lowtide: power is cheapest at low tide. Ask Alexa when to run the dishwasher, the car or the hot water.
-
A real conversation on a simulated Echo Show: Amazon Nova Micro on Bedrock picks Lowtide's MCP tools; the screen is its MCP App view.
-
Tonight's prices as a tide: low tide is cheapest, the dishwasher's run is lit, and the display says when to start.
-
Tonight, already planned: four loads on delay start, each in the cheapest stretch that still finishes by morning.
-
On AWS: one Lambda function behind CloudFront, Nova Micro on Bedrock, Polly, S3, EventBridge Scheduler and CloudWatch.
-
All 14 British Agile regions ranked live, plus northern Illinois (ComEd) and Germany (EPEX day-ahead), each as its own tide.
-
Add it to any assistant: a guest MCP endpoint with no account, or sign in with OAuth 2.1 for your own household.
-
Made for the phone: the tide reads by touch, the Echo fits one screen, and every page works at 390 px.
-
Measured on the live stack: CloudWatch shows the nightly schedule planning every household, and Bedrock latency per turn.
-
Countertop, our open-source entry: test any MCP server the way a smart display would, by voice, with its views on screen.
For the judges (60 seconds)
Links: Echo Show demo · Website · Code · Alexa+ fit table · Friction log (16) · Countertop · Upstream fix: mcp-handler#200
- Open https://d1soo7510nfzf4.cloudfront.net/echo. No sign-in; a demo household in London is made for you.
- Say or type "When should I run the dishwasher? It needs to be done by seven", then "Yes please", then "How much have I saved?"
- Watch the Conversation panel: every MCP tool call Amazon Nova Micro makes on Bedrock, live, with Amazon Polly speaking the answer.
- Live data, three markets: Octopus Agile in all 14 British regions (any postcode or city), ComEd hourly in Illinois, EPEX day-ahead in Germany, plus the grid's carbon forecast. No mocks.
- Alexa+ ready: an MCP server (2026-07-28 and the 2025 revisions), nine voice-first tools, an MCP App view for the Echo Show screen, elicitation, OAuth 2.1 for Alexa+ account linking.
- Runs on AWS: Lambda behind CloudFront in Sydney, Nova Micro on Bedrock, Polly, S3, EventBridge Scheduler planning tonight for every household, CloudWatch. No access keys: each function signs with its own role.
- Proof: 147 tests and CI, a live smoke test of every tool, 16 friction-log entries.

Inspiration
Millions of homes now pay a different price for electricity every half hour: Octopus Agile in Britain, ComEd Hourly Pricing in Illinois, and dynamic tariffs in Germany, which every supplier has had to offer since 1 January 2025. On 15 October in London a unit cost 19p in the afternoon and 55p at six in the evening. The money is in the big loads: charging a car at the cheapest time that day cost £4.25 instead of £7.30, and heating a hot-water cylinder £1.16 instead of £1.97. On peaky days like that one, two habits are worth about £610 a year. But nobody reads a price table while loading the dishwasher. "When should I run it?" is a question you ask out loud, with your hands full, in the kitchen. That is exactly where Alexa lives.
What it does
- You ask Alexa when to run the dishwasher, the washing, the tumble dryer, the car charger or the immersion heater, with a deadline ("done by seven", "by tomorrow morning"), a start ("not before 10pm") or a goal ("greenest, please"). A deadline it can't make gets a straight "it can't be done by then" and the earliest finish.
- Lowtide prices every start that finishes in time and answers twice: one sentence to say, with the cost and the saving, and an MCP App view for the Echo Show screen, the next 24 hours on a dial with the run marked.
- Say yes and it saves the run for the household, then counts what you've saved. "Is now a good time to put the tumble dryer on?" gets a straight answer.
- Tonight's plan, before anyone asks: after tomorrow's prices are published, Amazon EventBridge Scheduler plans the coming night for every household, and the Echo shows it as a waiting notification.
- Savings are quoted against a typical start, never against the evening peak. The car alone moves 7.3 kW of load out of the evening.
- The same server works in Claude, ChatGPT and VS Code: add the guest endpoint, or sign in with OAuth and pick a household.

How we built it
- MCP server: Next.js route handlers with
mcp-handlerand the MCP TypeScript SDK v2, stateless Streamable HTTP, serving MCP 2026-07-28 natively and 2025-11-25, 2025-06-18 and 2025-03-26 throughinitialize. Nine tools with voice-first results, all four annotations and Alexa+'sinvoking/invokedstrings. - MCP App view: one
ui://resource with an inline layout for chat hosts and a full-screen device layout for the Echo Show. - Alexa+ simulation: the Echo Show simulator is a real MCP host in the browser. Each turn goes to Amazon Nova Micro on Bedrock (Converse API, SigV4 in a few lines of
node:crypto, no SDK); Nova picks the tool, the browser runs it over MCP and Polly speaks the reply. Each model turn takes 1.0 to 1.3 seconds end to end from India to Sydney. - On AWS: the whole Next.js app on Lambda (Node.js 22, arm64) behind a response-streaming Function URL and CloudFront, which adds a secret origin header so nothing reaches the function around it. Households, tonight's plans and OAuth token hashes in S3 with
If-Matchwrites. Two EventBridge Scheduler runs a night; on 18 October the 16:45 run planned about 70 households. CloudWatch turns one log line per tool call into metrics, a dashboard and an alarm. One CloudFormation stack, deployed by one boto3 script. - Planner: every half-hour start that fits is priced across the slots it covers, with cheapest, greenest and balanced goals.
- The website draws tonight's prices as a moonlit tide, server-rendered SVG on screen with the first paint, and shows each answer the way an appliance would: an orange LCD and a delay-start knob for each of tonight's four loads.

Challenges we ran into
- Alexa+ MCP integrations are in preview for brands only, so there was no way to try Lowtide inside a real Alexa+. We built the closest honest substitute: a real MCP host with a real model on Bedrock, rendering the real MCP App view on a device-sized screen.
- Voice changes everything: one sentence, times said the way people say them ("half seven", "by tomorrow morning"), and a screen readable across a kitchen. The exact start the model needs to save a run goes in a line marked for the assistant, never spoken.
- AWS in an organisation: the policy blocked Bedrock API keys, IAM OIDC providers and every region but Sydney, so we signed every request with SigV4 and kept everything in ap-southeast-2.
- Behind a Lambda Function URL, the OAuth challenge header is renamed, and CloudFront Functions don't run on error responses (friction log 15 and 16); clients discover sign-in through the well-known documents instead.
- The nightly schedule's first guard refused the real scheduled call; a per-deploy token fixed it (friction log 14).
Accomplishments that we're proud of
- A full voice conversation (plan, yes, saved, "is now a good time") on Amazon Nova Micro against live prices, 2.6 to 3.3 seconds from question to answer on AWS.
- One MCP App view that works as a chat card and as a full device screen, and OAuth 2.1 for Alexa+ account linking, tested end to end with the MCP SDK's own client.
- Countertop, an open-source bench (17 tests, CI) to test any MCP server the way a smart display would, and a fix sent upstream: vercel-labs/mcp-handler#200, an opt-in CORS option with 11 tests.
- Honest numbers: savings against a typical start, latency measured on the live stack, and 16 friction-log entries for the Amazon teams.
What we learned
- MCP Apps are the natural shape for Alexa+ on screens: the server owns its view, and every host renders it the same way.
- The first line of every tool result should be something you'd be happy to hear spoken.
- The impact is in kilowatts: the car and the hot water are what move real load.
What's next
- Who pays: the household keeps the saving, but the natural buyer is the energy supplier, which needs load moved out of the evening peak. Britain already pays for that: the Demand Flexibility Service had 2.46 million households and businesses signed up by March 2026 and paid £943,983 for 3,917.7 MWh in winter 2024/25. With every British meter moving to half-hourly settlement by 7 May 2027, the route to market is a supplier-branded Lowtide on Alexa+.
- Proactive notifications on a real Echo, once Alexa+ opens them to MCP servers.
- Matter smart plugs and appliance APIs, so a confirmed plan can start the machine itself.
- More tariffs (Octopus Go and Intelligent, PG&E, Tibber) and US carbon data.
Built With
- agent-skills
- alexa-plus
- amazon-bedrock
- amazon-cloudfront
- amazon-cloudwatch
- amazon-eventbridge
- amazon-iam
- amazon-nova
- amazon-polly
- amazon-web-services
- aws-cloudformation
- aws-lambda
- aws-sigv4
- carbon-intensity-api
- mcp
- mcp-apps
- model-context-protocol
- next.js
- octopus-energy-api
- streamable-http
- svg
- typescript
- web-speech-api

Log in or sign up for Devpost to join the conversation.