
Alexa Mcp
io.github.chrischallv0.1.0Updated Oct 8, 2026
Amazon Alexa for Claude — Echo devices, announcements, routines, smart home, lists
Overview
Lets an assistant list and control Amazon Alexa devices, speak or announce, run routines, manage smart-home devices and lists.
- What it does
- Connects to Amazon's private Alexa web API to list Echo speakers, Echo Shows and Fire TVs with online status, and to read media state, volume, routines, smart-home devices and scenes, shopping and to-do lists, alarms, timers and reminders. Write tools set volume, control playback, make a device speak or announce on several, run routines, turn smart-home devices on or off, set brightness, activate scenes, and add or remove list items. Actions are confirmation-gated: the first call returns a preview and a confirmToken, and only a repeat call with that token acts.
- When to use it
- Useful when you want an assistant to read or act on an existing Alexa setup: checking which devices are online, what is playing, what is on the shopping list, or triggering a routine or announcement. It is not a general voice-command bridge; arbitrary spoken commands are deliberately not exposed.
- Requirements
- Runs locally as an npm package over stdio, desktop only. Requires Node.js and a one-time browser sign-in to Amazon, which registers a virtual device named alexa-mcp and saves a registration file (refresh token plus session cookies) under the state directory, default ~/.alexa-mcp. The registration can instead be supplied through the ALEXA_REGISTRATION environment variable. Network access to Amazon is required.
Installation
In SourceWeft
- Open Alexa Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
alexa-mcp
This project was developed and is maintained by AI (Claude Code). Use at your own discretion.
An MCP server for Amazon Alexa: list and control Echo speakers, Echo Shows and Fire TVs, make Alexa speak or announce, run routines, control the smart-home devices and scenes Alexa knows about, read and edit shopping/to-do lists, and see alarms, timers and reminders.
It talks to Amazon's private Alexa web API — the one the Alexa app uses — through alexa-remote2. There is no public API for any of this, so expect occasional breakage when Amazon changes things.
Sign in once
You sign in to Amazon in your own browser; this server never sees your password.
- In a chat: ask Claude to sign in to Alexa. It calls
alexa_begin_loginand gives you an amazon.com link. Sign in there (password, two-step code, whatever Amazon asks), and you land on a blankwww.amazon.com/ap/maplandingpage. Paste that page's address back and Claude callsalexa_finish_login. - Hosted connector: the sign-in page shows a Sign in to Amazon button and a box for that same address.
- Terminal:
npx @chrischall/alexa-mcp loginprints the link and reads the pasted address (--printalso writes the registration as one base64 line forALEXA_REGISTRATION; treat it as a credential).
Under the hood this is the Alexa iOS app's OAuth sign-in with PKCE. The link carries only a challenge, the matching secret stays on the server, and the code in the pasted address is single-use and expires in minutes. Finishing registers a virtual device named alexa-mcp on your account and saves the registration (refresh token plus session cookies) to ~/.alexa-mcp/registration.json (mode 0600). After that no browser is needed: cookies are re-minted from the refresh token every few days. To revoke access, remove the alexa-mcp device from your Amazon account (Manage Your Content and Devices → Devices).
Tools
✋ = confirmation-gated. A client that supports prompts asks you first; elsewhere (claude.ai, Claude Desktop) the first call sends nothing and returns a preview plus a confirmToken, and only a repeat call with that token acts. Arbitrary voice commands ("Alexa, …") are deliberately not exposed: they can buy things and unlock doors.
Configuration
When both ALEXA_REGISTRATION and the state file are present, the state file wins if it is the same virtual device and at least as new (it is the refreshed copy); otherwise the env var wins (a fresh login).
Hosting
mint.yaml describes the server to mcp-host: one child per user (identity.perUserChild), a two-step auth.flow (begin → sign in on amazon.com → paste the address), and the registration persists in each user's data dir.
Development
See docs/ALEXA-API.md for the verified response shapes and hosts.
Source: README.md at commit 065794d
Tools
0Version history
1- v0.1.0LatestOct 8, 2026


