alexa-mcp
Supports authentication with Amazon accounts to enable secure access and interaction with Alexa-based services.
Provides tools for managing Alexa shopping lists, allowing users to list, add, delete, update, and mark items as completed.
Click on "Install 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-mcpadd milk, eggs, and bread to my shopping list"
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
MCP server for Amazon Alexa -- manage your Alexa shopping list from any MCP client (Claude, etc.).
Built on the Model Context Protocol and the alexa-remote2 library.
Tools
Tool | Description |
| Authenticate with your Amazon account. Uses a saved cookie if available, otherwise starts a browser login proxy and returns a URL to open. |
| Get items from your Alexa shopping list. Optionally include completed items. |
| Add one or more items to your Alexa shopping list. |
| Delete items from your Alexa shopping list by name (case-insensitive match). |
| Update an item on your shopping list -- rename it and/or change its completion status. |
| Mark items as completed on your Alexa shopping list by name (case-insensitive match). |
| Check whether the server is authenticated and show current configuration. |
Related MCP server: alexa-mcp
Environment Variables
Variable | Default | Description |
|
| Path to the persisted Alexa authentication cookie |
|
| Amazon domain to authenticate against |
|
| Port for the browser login proxy (used during initial authentication) |
| -- | Pre-seeded cookie JSON (alternative to |
Setup
npm ciUsage
Stdio mode (direct)
node dist/index.jsHTTP mode (via mcp-proxy)
mcp-proxy --port 8005 -- node dist/index.jsClaude Desktop configuration
Add this to your Claude Desktop MCP config:
{
"mcpServers": {
"alexa": {
"command": "node",
"args": ["/path/to/alexa-mcp/dist/index.js"],
"env": {
"COOKIE_PATH": "/path/to/cookie.json"
}
}
}
}Authentication
On first run, the authenticate tool starts a local proxy server. Open the returned URL in your browser and log in to your Amazon account. The cookie is saved to COOKIE_PATH and reused for subsequent sessions.
If you already have a cookie (e.g., from a previous session or another machine), you can either:
Place the JSON file at
COOKIE_PATHSet the
ALEXA_COOKIEenvironment variable with the JSON content
Patches
This project includes a patch for alexa-cookie2 (applied automatically via patch-package on npm ci) that improves resilience when the Amazon user-data endpoint returns unexpected responses.
License
MIT -- see LICENSE.
Available Tools
7 toolsadd_itemsAdd Shopping ItemsB
Add one or more items to your Alexa shopping list.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | Items to add (e.g. ["milk", "eggs", "bread"]) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true and destructiveHint=false, covering basic safety. The description adds no extra behavioral context (e.g., idempotency, limits) beyond this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundancy. It is front-loaded and efficient, though could be slightly more detailed without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and annotations, the description is adequate but lacks contextual completeness (e.g., no mention of use cases or limitations).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with required 'items' array fully described. The description adds minimal value beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'add' and clearly identifies the resource 'items to your Alexa shopping list'. It effectively distinguishes from sibling tools like 'delete_items' and 'list_items'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'update_item' or 'complete_items'. The description only states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authenticateAuthenticate with Amazon AlexaA
Authenticate with your Amazon account. If a saved cookie exists, uses it automatically. Otherwise starts a browser login proxy and returns a URL to open.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, openWorldHint=true), the description reveals two distinct behaviors: automatic cookie use or browser login proxy with URL return, giving full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Very concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Completeness is high given no output schema; it explains the two possible flows. Could mention that authentication is needed for other tools, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Baseline 4 is appropriate as description adds no parameter info beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: authenticate with an Amazon account. It distinguishes from sibling tools which are item operations, making it clear this is for authentication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the behavior (uses saved cookie or returns URL) but does not explicitly state when to use vs alternatives. However, siblings are all item-related, so context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_statusCheck Alexa Connection StatusBRead-only
Check whether the server is authenticated and show configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds that it checks authentication and shows configuration, providing some behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Exceptionally concise single sentence that conveys the tool's function without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple read-only tool with no parameters, but could elaborate on what 'configuration' includes or how authentication is checked.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema, so description adds value by explaining the tool's purpose (checking auth and configuration). Baseline is high due to complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks authentication and shows configuration, which distinguishes it from sibling tools that manage items. However, it does not explicitly differentiate from similar status tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It simply states what it does without context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_itemsComplete Shopping ItemsA
Mark items as completed on your Alexa shopping list by name (case-insensitive match).
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | Item names to mark as completed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It reveals the case-insensitive matching behavior but omits details about side effects, authorization needs, or what happens if an item is not found. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff. Every word adds value. Appropriate for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the core action but lacks usage guidelines, error handling details, and return value explanation. Adequate for a straightforward tool but missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (parameter 'names' has a description). The description adds valuable context beyond the schema by specifying 'case-insensitive match' and 'by name', which is not in the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Mark items as completed'), the resource ('on your Alexa shopping list'), and a key behavior ('by name (case-insensitive match)'). It effectively differentiates from sibling tools like delete_items or add_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like delete_items or update_item. The description does not mention prerequisites, error conditions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_itemsDelete Shopping ItemsADestructive
Delete items from your Alexa shopping list by name (case-insensitive match).
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes | Item names to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description adds valuable context about case-insensitive matching. However, it does not disclose other behavioral details such as whether the deletion is permanent or requires authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, efficiently conveying the tool's purpose and key detail (case-insensitivity) in a front-loaded manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description covers the core functionality and input details. However, it lacks guidance on edge cases like item not found or empty name array, which could affect completeness for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for the 'names' parameter. The description adds meaning by specifying 'case-insensitive match', which is not in the schema, thereby enhancing parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete', the resource 'items from your Alexa shopping list', and the matching method 'by name (case-insensitive match)'. It distinguishes itself from sibling tools like list_items and add_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting items but provides no explicit guidance on when to use this tool versus alternatives like update_item or complete_items. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_itemsList Shopping ItemsBRead-only
Get items from your Alexa shopping list.
| Name | Required | Description | Default |
|---|---|---|---|
| include_completed | No | Include completed items (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, but description adds no behavioral details like return format, ordering, or pagination; overly minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but too sparse; lacks detail beyond the tool's basic function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and simple parameters, description fails to explain return values or any additional context needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds no extra meaning for the include_completed parameter; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves items from an Alexa shopping list, specific verb+resource, and distinguishes from sibling tools like add_items or delete_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs alternatives like add_items or complete_items; no context about exclusion or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_itemUpdate Shopping ItemA
Update an item on your Alexa shopping list by name (case-insensitive). Can rename and/or change completion status.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Current item name (case-insensitive) | |
| new_name | No | New name for the item | |
| completed | No | Set completion status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations by clarifying case-insensitive name matching and the ability to rename and change status. However, it does not disclose side effects, authorization requirements, or rate limits. Annotations only provide destructiveHint=false, so description carries moderate burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and key details. Every sentence adds value without redundancy. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and full schema coverage, the description is fairly complete. It lacks information about return values (e.g., confirmation or updated item details) but covers core functionality. Sibling list provides external context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions, so baseline is 3. Description adds context by explaining how the 'name' parameter is used for lookup (case-insensitive) and that 'new_name' and 'completed' relate to rename and completion status, respectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Update an item on your Alexa shopping list by name') and provides specifics (case-insensitive, can rename and/or change completion status). It distinguishes from siblings like add_items and delete_items by focusing on modifying existing items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., add_items for new items, complete_items for completion only). The description implies use for updating by name but does not exclude cases or provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v1.0.0- First observed
add_items - First observed
authenticate - First observed
check_status - First observed
complete_items - First observed
delete_items - First observed
list_items - First observed
update_item
TDQS
Each tool targets a distinct action on the shopping list (add, complete, delete, list, update) or authentication/status. No overlap; even complete_items and update_item have clear different purposes (batch complete vs. individual update).
All tool names follow a consistent verb_noun pattern with underscores (e.g., add_items, check_status). The style is uniform across all 7 tools, making them predictable for an agent.
With 7 tools, the server covers essential shopping list operations and authentication without being too sparse or bloated. The count is well-scoped for the domain.
The set covers all basic CRUD actions for shopping list items (create via add_items, read via list_items, update via update_item/complete_items, delete via delete_items) plus authentication. The only minor gap is the lack of a dedicated 'get single item' tool, but listing and name-based operations suffice.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Shopping MCP for AI agents: search, compare, Amazon buy links. Auto-register.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMCP server that gives AI agents full control over grocery lists, todos, and packing lists. Your AI creates lists, adds items, checks them off, and shares with family/friends.3MIT
- AlicenseAqualityCmaintenanceAn MCP server that lets LLMs control Amazon Alexa devices, including announcements, text commands, smart-home group management, routines, and list operations.181MIT
- FlicenseNot gradedqualityAmaintenanceMCP server that integrates with AnyList for managing shopping lists, recipes, and meal planning via natural language.29-
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for accessing Amazon wishlist data via HTML snapshot parsing or optional live browser-backed reads.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GraysonCAdams/alexa-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server