alexa-mcp
This server is designed for auditing and cleanup of an Amazon Alexa account, with read-only operations enabled by default.
Read-only tools (default):
List all Alexa devices: Retrieve all registered Echos, apps, and Fire TVs with their name, type, and serial number.
List all routines: Get all routines with their automation ID, name, status, and trigger types. Supports an optional
limitparameter (up to 5000).Inspect a specific routine: Fetch the full raw JSON of a single routine by its
automationId, including its complete action sequence.List scenes and smart-home entities: View smart-home entities and scenes usable as routine actions.
View activity history: Access customer activity records to see what fired and when, with filtering by start/end time and record type.
List smart-home devices: Get all smart-home devices with source info (skill, Matter, etc.) — useful for identifying orphaned devices no longer exposed by their source.
Audit broken references: Identify routines targeting non-existent devices, scenes, or groups.
Destructive tools (require ALEXA_MCP_ALLOW_WRITE=1 and confirm: true on each call):
Delete an Alexa routine.
Delete a smart-home device (with safeguards against deleting referenced devices).
Trigger an Alexa routine.
Note: This server uses undocumented, reverse-engineered Amazon APIs and may break at any time. Login uses Amazon's real sign-in page; the server only captures the resulting session token.
Provides tools to audit and clean up Amazon Alexa account: list routines, smart-home devices, scenes, activity history, and optionally delete routines and orphaned devices.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@alexa-mcp list all my smart home devices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
alexa-mcp
The cleanup-focused Alexa MCP server. An MCP server that lets an AI assistant (Claude Code, Claude Desktop, …) audit and clean up your Amazon Alexa account: list and inspect routines, list smart-home devices and delete the orphans that pile up over time, plus read scenes and activity history.
It talks to Amazon's internal Alexa cloud API via
alexa-remote2.
⚠️ Disclaimer
This project is not affiliated with, endorsed by, or supported by Amazon. There is no official public API for managing Alexa routines or smart-home devices — this tool uses the same undocumented, reverse-engineered endpoints the Alexa app uses, and may break at any time when Amazon changes them. Using it may violate Amazon's Terms of Service. Use at your own risk, against your own account only. The login happens on Amazon's real sign-in page (including 2FA); your credentials go only to Amazon — the local proxy only captures the resulting session token afterwards.
Why this exists (vs. other Alexa MCP servers)
Other Alexa MCP servers focus on control (announcements/TTS, volume, lists). This one does that and the things nothing else does — full routine CRUD (create/update/enable-disable/ delete) and audit & cleanup that Amazon's own app can no longer do (bulk-deleting smart-home devices was removed from the Alexa web app). All reverse-engineered from the Alexa app and verified end-to-end.
Capability | This server |
List / inspect routines (triggers + action sequence) | ✅ |
Create / update / enable-disable / delete routines | ✅ (write-gated; verified) |
Find routines with broken references (dangling targets) | ✅ |
List smart-home devices (with source + reachability) | ✅ |
Delete a smart-home device (orphan cleanup, reference-safe) | ✅ (write-gated) |
Scenes, groups (list/create/delete), activity history | ✅ |
Announcements / TTS / SSML, media transport, volume, DND | ✅ (write-gated) |
Shopping / to-do lists (read + add) | ✅ |
It is read-only by default. Destructive tools are only registered when you explicitly opt in.
Related MCP server: alexa-mcp
Requirements
Node ≥ 20 (compiles with
tsctodist/, then runs on plain Node — no bundler).An Amazon account with app-based 2FA (SMS/email OTP no longer works with Amazon's login).
Log in from a device/browser without the Alexa app installed (otherwise Amazon deep-links into the app instead of finishing the web login).
Quick start
git clone https://github.com/snordquist/alexa-mcp.git
cd alexa-mcp
npm install
npm run doctor # shows config + the login URL (no network)
npm run auth # ONE-TIME: starts a local proxy, browser login incl. 2FA
npm run smoke # lists devices, routines, scenes (read-only)npm run auth in detail
It starts a local proxy and prints a URL (default
http://127.0.0.1:3456/).Open that URL in a browser on the same machine and log in to your Amazon account (2FA).
On success the token (cookie +
refreshToken) is written to./.auth/alexa.json(git-ignored) and refreshed automatically afterwards (every 4 days).A smoke test (device list) runs. Done.
Logging in from another device? proxyOwnIp must match the URL in your browser exactly:
ALEXA_MCP_PROXY_IP=192.168.x.x npm run auth # then open http://192.168.x.x:3456/Use as an MCP server
Read-only (recommended for auditing):
claude mcp add alexa -- node /ABSOLUTE/PATH/alexa-mcp/dist/index.jsWith destructive tools enabled (delete routines / devices):
claude mcp add alexa --env ALEXA_MCP_ALLOW_WRITE=1 -- node /ABSOLUTE/PATH/alexa-mcp/dist/index.js(Run npm run build first.)
Tools
Tool | Purpose | Writes |
| Registered Echos / apps / Fire TVs | no |
| All routines: id, name, status, triggers | no |
| One routine as raw JSON (incl. action sequence) | no |
| Smart-home entities incl. scenes | no |
| Activity history (customer-history-records) | no |
| Smart-home devices with source (skill/Matter) + entity id — find orphans | no |
| Find routines whose action targets a device/scene/group that no longer exists | no |
| Current speaker volume of every device | no |
| Do-Not-Disturb status per device | no |
| Live state of smart-home devices/groups by applianceId | no |
| Smart-home groups (rooms/spaces) with members | no |
| Shopping / to-do / custom lists | no |
| Items of a list by id | no |
| Now-playing / media player state of a device | no |
| Reminders / alarms / timers (id, time, label, status) | no |
| Create a routine (voice- or time-triggered) with one or more actions | yes |
| Update a routine in place (full re-spec) | yes |
| Enable/disable a routine by id (rebuilds + PUTs with flipped status) | yes |
| Execute a routine now | yes |
| Delete a routine + verify | yes |
| Delete a smart-home device (orphan cleanup) — refuses if referenced by a routine/group unless | yes |
| Make a device speak / announce ( | yes |
| Run a typed command as if spoken to a device | yes |
| Set an Echo's speaker volume (0–100) | yes |
| Enable/disable Do-Not-Disturb on a device | yes |
| Media transport: play/pause/next/previous/forward/rewind/shuffle/repeat | yes |
| Add an item to a list | yes |
| Edit a list item's text / mark complete | yes |
| Remove a list item | yes |
| Create a smart-home group (room/space) | yes |
| Rename a group / set members (read-modify-write) | yes |
| Delete a smart-home group (members untouched) | yes |
| Enable/disable a smart-home device | yes |
| Create a reminder on a device | yes |
| Create an alarm (< 1 year out; it rings) | yes |
| Delete a reminder / alarm / timer by id | yes |
Most write tools also accept dryRun: true to preview the request/plan without executing.
Routine create/update were reverse-engineered from the Alexa app and verified end-to-end; see
ARCHITECTURE.md for the exact write-API (the trigger payload is
double-encoded and the action operationPayload must be /operation/validate-normalized — the
tools handle both). Example create:
{ "name": "Gute Nacht Ansage", "triggerUtterance": "gute nacht",
"actions": [ { "type": "Alexa.TextCommand", "operationPayload": { "text": "schlaf gut" } } ],
"confirm": true }Write tools are only registered when ALEXA_MCP_ALLOW_WRITE=1, and each destructive call also
requires an explicit confirm: true argument.
Configuration (environment variables)
Variable | Default | Purpose |
|
| Login region (e.g. |
|
| Accept-Language header |
|
| Must match the URL you open during login |
|
| Proxy port for the login |
|
| Proxy bind address |
|
| Token refresh interval |
| – |
|
|
| Token file location |
Security & privacy
The session token is stored only in
./.auth/alexa.json(mode0600, git-ignored). It is never logged or committed. Treat that file like a password.The login proxy binds to
0.0.0.0by default so you can log in from another device; setALEXA_MCP_PROXY_BIND=127.0.0.1to keep it local-only.To fully sign out, delete
./.auth/alexa.json(and remove the registered "device" from Amazon → Manage Your Content and Devices).
Known limitations
Unofficial API — can break whenever Amazon changes it.
Routine deletion endpoint is unverified.
alexa_delete_routineattemptsDELETE /api/behaviors/v2/automations/{id}, which is not documented or confirmed. Verify the real request via browser DevTools before relying on it.Device deletion may not be permanent if the underlying source still advertises the device: a skill that is still linked (and whose backend responds) or a Matter bridge will re-add it on the next discovery. Orphans whose backend is gone (unlinked skill, removed integration) stay deleted.
Matter duplicate devices (the same device appearing once per Alexa Echo/hub that acts as a Matter controller) are an Alexa-side artifact, not a bridge misconfiguration. Deleting the redundant copies works, but new ones can reappear if the Matter bridge is re-commissioned.
See ARCHITECTURE.md for the auth flow, endpoint reference, and implementation notes.
License
MIT © Sascha Nordquist
Available Tools
6 toolsalexa_get_activityActivity historyB
Activity history (customer-history-records-v2). Shows what fired when — useful to confirm when a routine or command was triggered.
Inputs: endTimeMs, recordType, startTimeMs.
alexa_get_routineInspect an Alexa routineA
Raw JSON of one routine (incl. action sequence) by automationId.
Inputs: automationId (required).
alexa_list_devicesList Alexa devicesA
All registered Echos / apps / Fire TVs (name, type, serial number).
Inputs: no named parameters.
alexa_list_routinesList Alexa routinesB
All routines: automationId, name, status, trigger types. Use this to identify a routine (e.g. a scheduled one that fires an unexpected scene).
Inputs: limit.
alexa_list_scenesList scenes / smart-home entitiesD
Smart-home entities including scenes usable as routine actions.
Inputs: filter.
alexa_list_smarthome_devicesList smart-home devices (with source)A
All smart-home devices with applianceId, source (manufacturerName + applianceId prefix: SKILL = a smart-home skill, AAA = Matter/Matter bridge) and — for skill devices — the backing entity id. Use this to find orphaned devices (still in Alexa but no longer exposed by their source).
Inputs: manufacturer, onlyManufacturer.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct Alexa entity: activity history, routine details, device list, routine list, scenes, and smart-home devices. Descriptions clearly differentiate between Alexa devices and smart-home devices, preventing confusion.
All tools follow the consistent pattern 'alexa_verb_noun' (e.g., alexa_get_activity, alexa_list_devices). Perfect snake_case uniformity makes the set predictable and easy to navigate.
With 6 tools covering core Alexa entities (activity, routines, devices, scenes, smart-home devices), the count is well-scoped for a diagnostic/inventory assistant. Neither too few nor too many.
The tools provide comprehensive read access to Alexa objects but lack any write or control capabilities (e.g., no create/update routine, no device control). This limits the surface for active management, though it may be intentional for a diagnostic-focused server.
Maintenance
Related MCP Connectors
- DNS-DATA RemoteDeprecatedcom.dns-data
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
Amazon Ads and Seller Central for your AI assistant: reports, campaign management and seller data.
Amazon Seller Central, Ads and Vendor Central in ChatGPT & Claude. 106 tools; writes need approval.
Control your Tesla from your AI assistant - climate, charging, access, and security.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to control Alexa-connected smart home devices, including voice announcements, music control, smart lighting, sensor monitoring, and volume management through the Alexa API.1-
- AlicenseBqualityCmaintenanceEnables MCP-compatible LLMs to control Amazon Alexa devices by sending announcements, text commands, and SSML speech, as well as managing smart-home groups, routines, lists, volume, Do Not Disturb, and sensor queries.19MIT
- AlicenseBqualityCmaintenanceEnables MCP-compatible LLMs to control Amazon Alexa devices, including announcements, voice commands, smart-home group management, routines, media playback, and sensor state queries.32MIT
- AlicenseNot gradedqualityBmaintenanceEnables an AI assistant to control your own Amazon Echo devices and Alexa smart-home devices, including speaking messages, running routines, sending text commands, listing routines and devices, and controlling device power or brightness through an unofficial Alexa app session.55 npmMIT