Alexa Mcp

io.github.chrischallv0.1.0更新於 Oct 8, 2026

Amazon Alexa for Claude — Echo devices, announcements, routines, smart home, lists

概覽

AI 產生的概覽

讓助理列出並控制 Amazon Alexa 裝置、語音播報、執行例行程序,以及管理智慧家庭裝置與清單。

功能
透過 Amazon 私有的 Alexa Web API 運作,可列出 Echo 音箱、Echo Show 和 Fire TV 及其線上狀態,並讀取媒體播放狀態、音量、例行程序、智慧家庭裝置與情境、購物和待辦清單、鬧鐘、計時器與提醒。寫入類工具可設定音量、控制播放、讓單一裝置說話或在多台裝置上播報、執行例行程序、開關智慧家庭裝置、調整亮度、啟用情境,以及新增或移除清單項目。這些操作受確認機制約束:第一次呼叫只回傳預覽和 confirmToken,只有帶著該權杖再次呼叫才會真正執行。
適用情境
適合讓助理讀取或操作既有的 Alexa 環境:查看哪些裝置在線上、正在播放什麼、購物清單內容,或觸發某個例行程序與播報。它不是通用的語音指令通道,任意語音命令被刻意排除在外。
執行需求
以 npm 套件形式透過 stdio 在本機執行,僅支援桌面端。需要 Node.js,並需在瀏覽器中一次性登入 Amazon;登入會註冊一個名為 alexa-mcp 的虛擬裝置,並把註冊資訊(更新權杖與工作階段 cookie)存到狀態目錄,預設為 ~/.alexa-mcp。也可以透過 ALEXA_REGISTRATION 環境變數提供註冊資訊。需要連線到 Amazon 的網路存取。
安裝前請注意
註冊資訊屬於憑證:其中包含更新權杖與工作階段 cookie,login --print 輸出的 base64 行同樣應視為憑證。登入在你自己的瀏覽器中完成,伺服器不會看到你的密碼。寫入類工具會改動真實裝置與清單,確認行為由 MCP_CONFIRM_MODE 和 MCP_CONFIRM_ELICITATION 控制,可被設定為跳過提示。它依賴私有 API,Amazon 變更後可能失效;專案聲明由 AI 開發與維護。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Alexa Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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_login and gives you an amazon.com link. Sign in there (password, two-step code, whatever Amazon asks), and you land on a blank www.amazon.com/ap/maplanding page. Paste that page's address back and Claude calls alexa_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 login prints the link and reads the pasted address (--print also writes the registration as one base64 line for ALEXA_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

ToolWhat it does
alexa_list_devicesEcho/Fire TV/other Alexa devices with online status
alexa_get_now_playingMedia state on one device
alexa_list_volumesVolume and mute (only devices Amazon reports — often just a few)
alexa_list_routinesRoutines with their triggers
alexa_list_smart_homeSmart-home devices, groups and scenes, with the actions this server can send
alexa_list_lists / alexa_get_list_itemsShopping and to-do lists
alexa_list_alarms_remindersAlarms, timers and reminders
alexa_set_volume ✋Set a device's volume
alexa_playback ✋Play / pause / next / previous
alexa_speak ✋Speak on one device, or announce on several
alexa_run_routine ✋Run a routine now
alexa_control_smart_home ✋turnOn / turnOff / setBrightness / sceneActivate (no locks, garage doors or thermostats)
alexa_add_list_item ✋ / alexa_remove_list_item ✋Edit a list
alexa_begin_login / alexa_finish_loginBrowser sign-in (see above)
alexa_session_statusConfiguration, no network
alexa_healthcheckDoes Amazon still accept the session?

✋ = 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

VariableDefaultPurpose
ALEXA_REGISTRATION—Registration JSON, or the base64 line from login --print. Optional when the state file exists.
ALEXA_STATE_DIR~/.alexa-mcpWhere registration.json and pending sign-ins live.
ALEXA_AMAZON_PAGEamazon.comAmazon site of the account (or what the registration recorded).
ALEXA_ACCEPT_LANGUAGEen-USAccept-Language sent to Amazon.
MCP_CONFIRM_MODEask-userask-user / auto / refuse — whether the model must get your approval in chat before using a confirmToken.
MCP_CONFIRM_ELICITATIONonoff skips the confirmation prompt even on clients that declare support.

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

sh
npm installnpm test          # typecheck + vitest (no network)npm run build     # tsc + esbuild bundle (dist/bundle.js is the .mcpb entry)

See docs/ALEXA-API.md for the verified response shapes and hosts.

來源:README.md,提交 065794d

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.0最新Oct 8, 2026