alexa-mcp
Provides control of Amazon Alexa/Echo devices, enabling announcements, text voice commands, smart-home management, routine execution, sensor queries, media playback, alarms, reminders, and device settings.
Allows playing music from Amazon Music on Alexa/Echo devices via search phrase and optional provider selection.
Allows playing music from Apple Music on Alexa/Echo devices via search phrase and optional provider selection.
Allows playing Audible audiobooks on Alexa/Echo devices via search phrase.
Allows playing music from Spotify on Alexa/Echo devices via search phrase and optional provider selection.
Allows playing TuneIn radio content on Alexa/Echo devices via search phrase and optional provider selection.
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-mcpannounce 'dinner is ready' on the kitchen Echo"
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
A robust, TypeScript-based MCP (Model Context Protocol) server that lets Claude, Perplexity, and any other MCP-compatible LLM control Amazon Alexa devices: speak announcements, execute text voice commands, manage smart-home groups, run routines, query sensor states, and more.
Powered by a native TypeScript Alexa Remote engine (src/alexa-remote/) with complete compile-time type safety, automated tests, and dual-transport architecture (Stdio + Streamable HTTP / SSE).
Architecture & Transports
alexa-mcp offers two flexible transport modes:
┌────────────────────────────────────────────────────────────────────────┐
│ Clients │
│ Claude Desktop │ Claude Code │ Antigravity IDE │ Perplexity │ Web UIs │
└────────────────────────────────────┬───────────────────────────────────┘
│
┌────────────────────────┴────────────────────────┐
│ │
[1] Stdio Transport (Local) [2] HTTP / SSE Transport
node dist/index.js (or src/index.js) node dist/server.js
• Standard input/output pipe • Streamable HTTP (POST /mcp)
• Opens no network ports • Legacy SSE (GET /sse)
• Ideal for desktop assistants • CORS-enabled for web/remote
│ │
└────────────────────────┬────────────────────────┘
▼
┌───────────────────────────────┐
│ AlexaClient │
│ • Session token cache │
│ • Atomic 0600/0700 storage │
│ • Amazon Alexa REST & Push │
└───────────────┬───────────────┘
▼
┌───────────────────────────────┐
│ Amazon Alexa API │
│ Echoes • Smart Home • Rooms │
└───────────────────────────────┘Stdio Transport (
src/index.ts/dist/index.js/src/index.js): Standard input/output communication for local LLM clients (Claude Desktop, Claude Code, Antigravity IDE). Opens no network ports.Streamable HTTP & SSE Server (
src/server.ts/dist/server.js): High-performance Express server supporting the modern MCP Streamable HTTP specification (POST /mcporPOST /) as well as Legacy SSE (GET /ssewithPOST /messages). Includes CORS headers and session management, ideal for remote LLMs, Perplexity, Open WebUI, and Cloudflare Tunnels.
Related MCP server: Home Assistant MCP Server
Features (32 Tools)
Every tool is strictly typed with Zod schema validation and comprehensive error handling:
1. Echo Devices, Audio & Voice
Tool Name | Description | Key Arguments |
| List all Amazon Echo devices with serial numbers, model types, and online status | None |
| Set device volume (0–100) |
|
| Read current volume levels across all Echo devices | None |
| Enable or disable Do Not Disturb mode |
|
| Push a spoken announcement with chime to an Echo |
|
| Send any voice command as text (e.g., "turn on kitchen lights") |
|
| Make Alexa speak plain text directly (no chime) |
|
| Speak SSML markup with pauses, rate, pitch, and emphasis |
|
2. Direct Smart Home & Room Management
Tool Name | Description | Key Arguments |
| List paired smart-home entities (lights, plugs, thermostats, locks) | None |
| Query real-time power, brightness, or sensor states |
|
| Direct smart home control: turn on/off, brightness, temperature, locks |
|
| List configured smart-home groups/rooms and assigned appliances | None |
| Create a new room/group and assign appliance IDs |
|
| Update name and appliances in an existing room/group |
|
| Remove a smart-home group/room |
|
3. Media Streaming & Audio Processing
Tool Name | Description | Key Arguments |
| Stream music via Amazon Music, Spotify, Apple Music, TuneIn, Deezer |
|
| Play audiobooks from Audible on a target Echo |
|
| Control playback: stop, pause, play, next, previous (supports "all") |
|
| Adjust bass, midrange, and treble levels (-6 to +6 dB) |
|
4. Reminders, Alarms & Notifications
Tool Name | Description | Key Arguments |
| Schedule spoken reminders with ISO 8601 timestamps or epoch ms |
|
| List active alarms, timers, and reminders across all devices |
|
| Adjust alarm and timer volume independently from music |
|
5. Routine Behaviors, Sounds & Fire TV
Tool Name | Description | Key Arguments |
| Play built-in sound effects (bells, doorbells, boings, applause, buzzers) |
|
| Speak curated phrases (good morning, compliments, birthday, etc.) |
|
| Trigger native routine behaviors (weather, traffic, flash briefing, jokes) |
|
| Remote control for Fire TV / Cube (power, pause, resume, home) |
|
| List all routines, trigger phrases, and sequence actions | None |
| Trigger an existing automation routine |
|
6. Lists & Voice History
Tool Name | Description | Key Arguments |
| List shopping, to-do, and custom lists | None |
| Retrieve all items from a specified list |
|
| Append a new item to a shopping or to-do list |
|
| Retrieve recent voice interaction history, utterances, and devices |
|
Requirements
Node.js ≥ 18.0.0
An Amazon account with at least one registered Alexa/Echo device
An MCP-compatible client (Claude Desktop, Claude Code, Antigravity IDE, Perplexity, etc.)
Installation & Setup
# Clone repository
git clone https://github.com/james----/alexa-mcp.git
cd alexa-mcp
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run automated tests
npm testAuthentication
Amazon's Alexa API is private and requires a browser-based login. The server includes an interactive authentication helper:
npm run authWhat npm run auth does:
Starts a secure local HTTP proxy on
127.0.0.1:3457(automatically opens your default browser on macOS).You log in to your Amazon account securely. Handles 2FA / OTP seamlessly because it proxies Amazon's real authentication pages.
The proxy captures both the session cookies and the device registration (
macDms) Amazon issues.Credentials are automatically saved to
.auth-data/auth.jsonwith owner-only permissions (0600, directory0700).
You only need to run this once. The client refreshes the token automatically during normal operation.
Why manual cookie pasting is unsupported:
The Alexa client gates initialization on macDms (device private key and ADP token) minted during browser registration. A raw session cookie lacks macDms, causing infinite initialization loops. The browser proxy is the only supported, reliable authentication mechanism.
Multi-Account / Multi-Instance Setup
To serve multiple Alexa accounts from a single installation, point ALEXA_MCP_AUTH_DIR to a dedicated directory per instance:
# Authenticate personal account
ALEXA_MCP_AUTH_DIR=~/.alexa-mcp/personal npm run auth
# Authenticate work / second account
ALEXA_MCP_AUTH_DIR=~/.alexa-mcp/work npm run authEach instance maintains its own credentials in isolation.
Client Configurations
1. Claude Desktop (Stdio)
Edit your Claude Desktop configuration:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"alexa": {
"command": "node",
"args": ["/absolute/path/to/alexa-mcp/dist/index.js"]
}
}
}Backward Compatibility: Existing client configurations pointing to
src/index.jscontinue working seamlessly through the built-in forwarder shim.
2. Claude Code (CLI)
claude mcp add alexa -- node "$(pwd)/dist/index.js"Verify connection:
claude mcp list3. Streamable HTTP / SSE Server (Remote Clients & Web UIs)
Run the server:
# Production
npm run serve
# Development (hot reload)
npm run serve:devBy default, the server listens on 0.0.0.0:8000 (configurable via PORT environment variable):
Streamable HTTP Endpoint (Recommended):
http://localhost:8000/mcporhttp://localhost:8000/Legacy SSE Endpoint:
http://localhost:8000/sse(messages atPOST /messages)
Configure in remote MCP clients (e.g., Perplexity, Open WebUI, LibreChat):
{
"mcpServers": {
"alexa": {
"url": "http://localhost:8000/mcp"
}
}
}Running as a Background Service (macOS LaunchAgent)
To run alexa-mcp continuously in the background (auto-starts on login, survives reboots, and auto-recovers on crashes):
# Install and start the LaunchAgent background service
npm run service:install
# Check service status, active PID, network port, and recent logs
npm run service:status
# View live streaming logs
npm run service:logs
# Restart or reload the service
npm run service:restart
# Stop or start the service
npm run service:stop
npm run service:start
# Uninstall the LaunchAgent
npm run service:uninstallShell Shortcuts (~/.zshrc / ~/.bashrc)
You can install convenient shell shortcuts into your ~/.zshrc (or ~/.bashrc) automatically:
# Install shortcuts into your active shell config (~/.zshrc or ~/.bashrc)
npm run service:shortcuts
# Remove shortcuts
npm run service:shortcuts:removeOnce installed and reloaded (source ~/.zshrc), you can use:
astatusoralexa statusalogsoralexa logsarestartoralexa restartastoporalexa stopastartoralexa start
The service runs via macOS launchd (~/Library/LaunchAgents/com.vd0.alexa-mcp.plist) and writes logs to logs/server.launchd.log.
Environment Variables
Variable | Default | Purpose |
|
| Path to store |
|
| Amazon marketplace host (e.g., |
|
| Preferred HTTP Accept-Language header (e.g., |
|
| Proxy language parameter (e.g., |
|
| Local port used exclusively during |
|
| HTTP port used by |
Development & Scripts
Command | Action |
| Compiles TypeScript source to |
| Runs |
| Runs the full automated test suite (builds first) |
| Runs the compiled Stdio server ( |
| Runs the Stdio server directly in TS via |
| Starts the production HTTP/SSE server in foreground ( |
| Starts the HTTP/SSE server in TS via |
| Installs and starts the LaunchAgent background service |
| Shows status, PID, port listener, and recent logs |
| Streams live logs from the background service |
| Restarts the background service |
| Stops the background service |
| Starts the background service |
| Automatically installs shell shortcuts into |
| Removes shell shortcuts from |
| Unloads and removes the background service |
| Starts the interactive browser proxy auth flow |
Testing & Quality Assurance
alexa-mcp ships with a comprehensive test suite built on Node's native test runner (node:test) and @modelcontextprotocol/sdk/inMemory.js:
npm testTest Coverage (24 Tests across 4 Suites):
test/tools.test.ts:In-memory MCP client/server integration.
Verifies registration, schemas, and descriptions for all 32 tools.
Tests mock execution of every smart home, media, audio, reminder, routine, Fire TV, and history tool.
Verifies Zod input validation (e.g. volume out-of-bounds rejection).
Tests error handling when the upstream Alexa API fails.
test/stdio-transport.test.ts:Spawns subprocesses over actual stdin/stdout pipes.
Tests MCP
initializeandtools/listhandshakes onsrc/index.js(backward-compat shim).Tests MCP handshakes on
dist/index.js(compiled binary).Verifies JSON-RPC error codes on unrecognized methods (
-32601).
test/server-transport.test.ts:Express server lifecycle and ephemeral port binding.
Tests CORS headers (
Access-Control-Allow-Origin: *,mcp-session-id).Tests Streamable HTTP
POST /mcpstateful sessions.Tests SSE
GET /ssestreams.Tests automatic
Acceptheader normalization (application/json, text/event-stream).
test/auth-storage.test.ts:Atomic file write verification (temp file -> sync -> atomic rename).
File permission verification (
0600forauth.json,0700for directory).Automatic tightening of insecure directory permissions.
Rejection of corrupt or missing device registrations (
macDms).
See docs/TESTING.md for deep-dive testing documentation.
Security Model
Atomic File Writing: Credentials in
.auth-data/auth.jsonare written to a unique temporary file opened withO_CREAT | O_EXCLat mode0600, flushed to disk viafsync, and atomically replaced viarename. No partial files, race conditions, or unencrypted leaks.Directory Hardening: Auth directories are verified at mode
0700and tightened immediately if found looser.Local Proxy Binding:
npm run authbinds strictly to127.0.0.1, never exposing authentication cookies to external network interfaces.Git Safety:
.auth-data/, cookies, and tokens are permanently ignored in.gitignore.Dependency Pinning: Enforces
alexa-cookie2 >= 5.0.4to avoid Amazon400 InvalidTokenrefresh regressions.
Project Structure
alexa-mcp/
├── src/
│ ├── index.ts # MCP Stdio server entrypoint & factory
│ ├── index.js # Backward-compatibility shim (forwards to dist/)
│ ├── alexa-client.ts # Typed wrapper around the Alexa remote client with atomic auth
│ ├── alexa-remote/ # Native TypeScript Alexa Remote engine & HTTP/2 push listener
│ ├── tools.ts # 32 MCP tool registrations with Zod schemas
│ ├── server.ts # Streamable HTTP & SSE Express server
│ ├── auth.ts # Interactive proxy login flow
│ └── types/
│ └── alexa.ts # Domain interfaces (AuthData, Devices, Groups, etc.)
├── dist/ # Compiled JavaScript, TypeScript declarations & maps
├── test/
│ ├── alexa-remote.test.ts # Native Alexa Remote engine unit tests
│ ├── tools.test.ts # In-memory tests for all 32 tools & schemas
│ ├── stdio-transport.test.ts # Subprocess stdio JSON-RPC handshake tests
│ ├── server-transport.test.ts # Express Streamable HTTP & SSE transport tests
│ └── auth-storage.test.ts # File mode (0600/0700) & atomic write security tests
├── docs/
│ ├── ARCHITECTURE.md # Architectural deep dive & protocol mechanics
│ └── TESTING.md # Comprehensive test strategy & execution guide
├── .auth-data/ # Git-ignored local credentials store (mode 0700)
│ └── auth.json # Session cookies & device registration (mode 0600)
├── CHANGELOG.md # Detailed release and migration history
├── package.json # Package manifest & build scripts
├── tsconfig.json # TypeScript compiler configuration (ES2022/NodeNext)
├── LICENSE # MIT License
└── README.md # Project documentationAcknowledgments
The Model Context Protocol team at Anthropic.
License
MIT © James Tucker
Available Tools
32 toolsalexa_add_list_itemAdd Item to ListB
Add an item to an Alexa list (shopping, to-do, etc).
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | The item text to add | |
| listId | Yes | The list ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior; however, it only states 'add an item' without detailing side effects, error conditions, or limitations such as list existence checks or item limits.
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 concise with no wasted words, but it sacrifices necessary detail; it is one sentence, which is efficient but incomplete.
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 low complexity (2 parameters, no output schema, no annotations), the description is insufficient; it fails to explain success behavior, prerequisites (e.g., list must exist), or how to obtain the listId from sibling tools.
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%, and the description adds no extra meaning beyond the parameter descriptions already present in the 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 verb (add), resource (item to an Alexa list), and provides examples (shopping, to-do, etc.), distinguishing it from sibling tools like alexa_get_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 usage guidance is provided; it does not specify when to use this tool versus alternatives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_announceSend Alexa AnnouncementB
Send a voice announcement to a specific Echo device. The message will be spoken aloud.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The message to announce | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It only states that the message will be spoken aloud, omitting side effects (e.g., do not disturb status), return value, or error handling.
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 extremely concise with two sentences, front-loading the action and outcome without any redundant information. Every word adds value.
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 lack of an output schema and the presence of a similar sibling (alexa_speak_ssml), the description does not address return values, failure modes, or constraints (e.g., message length limits). It is incomplete for a full understanding of the tool's behavior.
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% with both parameters having clear descriptions in the schema. The tool description does not add new semantic information beyond what the schema provides, so a baseline score of 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 clearly states the action ('Send a voice announcement'), the target resource ('specific Echo device'), and the outcome ('message spoken aloud'). It distinguishes from siblings like alexa_speak_ssml and alexa_text_command by specifying 'announcement' and 'spoken aloud'.
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 vs. alternatives (e.g., alexa_speak_ssml). The description does not mention prerequisites like using alexa_list_devices to obtain the serial number, though that is hinted in the parameter description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_create_groupCreate Smart Home GroupA
Create a new Alexa smart home group/room with a name and optional list of appliance IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The group/room name | |
| applianceIds | No | List of appliance IDs to assign to this group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'create' which implies mutation, but lacks details on permissions, idempotency, duplicate handling, or limits. For a mutation tool, more behavioral context is needed.
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 concise sentence that includes the key elements: action, resource, and parameters. No extraneous words, and it is front-loaded with the main purpose.
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 (2 simple parameters, no output schema, no annotations), the description provides the minimal necessary information. However, it lacks details about return values, constraints (e.g., group name uniqueness), and potential side effects, which could be useful for completeness.
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?
With 100% schema coverage, the baseline is 3. The description adds minimal value by summarizing 'name' and 'optional list of appliance IDs', but the schema already provides these details. No additional meaning beyond schema is provided.
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 ('create') and the resource ('Alexa smart home group/room'), and includes details about the optional appliance list. This effectively distinguishes it from sibling tools like alexa_update_group and alexa_delete_group.
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 when to use this tool (to create a group) but does not explicitly mention alternatives or when not to use it. The context from sibling names provides some guidance, but the description itself lacks explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_curated_ttsSpeak Curated PhraseA
Make Alexa speak a randomized built-in phrase from a curated category.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Curated speech category | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It states the randomization behavior ('randomized built-in phrase'), which is a key trait. It does not mention other aspects like asynchronous execution, volume, or error handling, but for a simple speech action this is a moderate level of 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?
The description is a single, front-loaded sentence with no waste. It states the action and the key qualifier ('randomized built-in phrase') immediately, making it easy to parse.
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 two-parameter action with no output schema, the description covers the core behavior (randomized curated phrase) and the schema covers parameter details. It lacks explicit alternatives guidance, but the tool is simple enough that an agent can infer its use from the description and siblings. Overall, it is nearly complete for the given complexity.
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?
The input schema provides 100% coverage with descriptions for both parameters. The category enum values are self-explanatory, and serialNumber's description directs the user to alexa_list_devices. The description adds no additional parameter semantics beyond the schema, so the baseline score of 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 clearly states the verb 'speak' and the resource 'a randomized built-in phrase from a curated category', which distinguishes it from siblings like alexa_speak (arbitrary text) and alexa_speak_ssml (SSML). The category enum further scopes it to specific use cases.
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 does not explicitly state when to use this tool over alternatives, nor does it mention exclusions. However, the phrase 'curated category' implies it is for predefined phrases, and the schema's serialNumber hint to use alexa_list_devices gives indirect guidance. This is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_delete_groupDelete Smart Home GroupB
Delete an Alexa smart home group/room.
| Name | Required | Description | Default |
|---|---|---|---|
| groupId | Yes | The group ID to delete (from alexa_list_groups) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description only states 'Delete' without disclosing behavioral traits such as permanence, permissions required, or side effects. The agent lacks understanding of the tool's impact.
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, concise sentence with no redundant information. Every word is necessary.
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?
While the tool is simple, the description omits important context such as return behavior or success confirmation. Given no output schema, the description should provide more completeness.
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?
The schema already describes the single parameter (groupId) as 'The group ID to delete (from alexa_list_groups)'. The description adds no additional meaning, meeting the baseline for 100% 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 action ('Delete') and the resource ('Alexa smart home group/room'). It distinguishes from sibling tools like alexa_create_group and alexa_update_group.
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 is provided on when to use this tool vs alternatives (e.g., alexa_update_group). The description lacks context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_do_not_disturbSet Do Not DisturbA
Enable or disable Do Not Disturb on a specific Echo device.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | true to enable DND, false to disable | |
| serialNumber | Yes | Serial number of the Echo device |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the core effect (enable/disable DND) but omits details like whether the change is immediate, persists, or requires network connectivity. For a simple toggle, it is minimally adequate.
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 short sentence with no wasted words. It is front-loaded and 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?
For a simple tool with 2 parameters and no output schema, the description is largely complete. It could mention that the serial number must be obtained from alexa_list_devices, but this is a minor gap.
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 clear descriptions for both parameters. The description adds no semantic value beyond the schema; it simply repeats the context of 'specific Echo device'.
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 'Enable or disable' and the resource 'Do Not Disturb on a specific Echo device'. It uniquely identifies the tool among siblings, as no other tool handles DND.
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 does not provide explicit guidance on when to use this tool vs alternatives, nor does it mention prerequisites or when not to use it. However, since it is the only DND tool among siblings, usage is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_execute_routineExecute Alexa RoutineA
Execute an existing Alexa routine by providing its automation definition (from alexa_list_routines).
| Name | Required | Description | Default |
|---|---|---|---|
| routine | Yes | The full routine/automation object as returned by alexa_list_routines |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses the action (execute) but does not describe side effects, required permissions, error handling, or networking behavior. Minimal additional context beyond the action itself.
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, front-loaded with the action, no unnecessary words. Efficient and direct.
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?
Simple tool with one parameter and no output schema. Description covers the essential purpose and input source. Lacks details on return value or execution results, but acceptable for a straightforward action.
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?
The single parameter 'routine' has a schema description and the tool description adds that it must be the full object from alexa_list_routines, providing useful context beyond the 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?
Clear verb 'Execute' and specific resource 'Alexa routine'. Explicitly references the source of the routine object from alexa_list_routines, distinguishing it from sibling 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?
States that the routine definition should come from alexa_list_routines, implying correct usage. While explicit when-not-to-use is absent, among siblings only this tool executes routines, so it is adequately clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_fire_tv_controlControl Fire TV DeviceB
Control a Fire TV or Fire TV Cube (turnOn, turnOff, pause, resume, navigateHome).
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | Command to send to the Fire TV | |
| serialNumber | Yes | Serial number of the Fire TV device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It lists the commands but does not explain side effects, prerequisites, device availability requirements, error behavior, or whether commands are asynchronous. The operational impact beyond 'sending a command' is left unspecified.
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 efficient sentence with clear front-loading of the resource and command scope. It avoids filler, though it somewhat repeats the title and duplicates the schema enum; still, it is appropriately sized 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?
For a two-parameter tool with no output schema, the description is minimally viable: it identifies the resource and commands. However, it leaves gaps around usage context, return/response behavior, and any prerequisites beyond what the schema implicitly indicates.
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 both parameter descriptions already present in the input schema. The description adds little beyond restating the command enum, and it does not clarify serialNumber semantics beyond what the schema already provides.
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 identifies the resource (Fire TV / Fire TV Cube) and lists the concrete commands it supports, distinguishing it from sibling tools like alexa_media_control or alexa_smarthome_action. The verb 'Control' is generic, but the enumerated command set makes the purpose unambiguous.
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 the tool is for Fire TV/Fire TV Cube control, but it does not explicitly state when to prefer it over alternatives such as alexa_media_control or alexa_smarthome_action. There is no when-not-to-use guidance or mention of related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_get_historyGet Alexa Voice HistoryA
Retrieve recent voice interaction history (what users said to Alexa, device used, timestamps).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of history records to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It correctly indicates a read-only operation ('Retrieve') and lists the returned content, but it does not define 'recent', mention ordering, pagination, or describe behavior when no history is available. Some behavioral ambiguity remains.
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 that front-loads the action and resource, with a parenthetical that adds useful detail. There is no redundant phrasing or unnecessary filler.
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?
This is a simple read tool with one optional parameter and no output schema, so the description needs to communicate key return fields, which it does. It is largely complete for the tool's complexity, though it leaves minor gaps around ordering and exact response format.
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?
The only parameter, limit, is fully described in the input schema with a default value. The tool description adds no additional parameter context, so the baseline of 3 applies because the schema already handles the parameter semantics.
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 ('Retrieve') and a distinct resource ('recent voice interaction history'), then clarifies the relevant data fields: what users said, device used, and timestamps. This makes it clearly distinguishable from sibling tools like alexa_get_notifications or alexa_list_devices.
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 phrase 'recent voice interaction history' implies the tool is for fetching past user utterances, but there is no explicit when-to-use guidance or mention of alternatives. Since no sibling tool obviously covers the same history use case, the absence of exclusions is minor, but the usage context remains implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_get_list_itemsGet List ItemsA
Get all items from a specific Alexa list.
| Name | Required | Description | Default |
|---|---|---|---|
| listId | Yes | The list ID (use alexa_list_lists to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states a read operation ('get all items') without disclosing any side effects, authentication needs, or rate limits. The description carries the full burden but adds little beyond the basic action.
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?
A single, front-loaded sentence with no extraneous words. It efficiently conveys the purpose and the required parameter.
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 (one parameter, no output schema), the description is sufficient for the agent to understand its purpose and how to call it. However, lack of return value description slightly reduces completeness.
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?
The schema covers the parameter 'listId' with a description, but the description adds value by instructing to 'use alexa_list_lists to find it', which provides helpful context beyond the schema alone.
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 'Get all items from a specific Alexa list' clearly states the verb (Get) and resource (items from an Alexa list), distinguishing it from siblings like alexa_list_lists (lists) and alexa_add_list_item (adds 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 or when not to use this tool. The parameter description hints at using alexa_list_lists to obtain the list ID, but overall usage context is minimal and implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_get_notificationsGet Alarms, Timers & RemindersA
List active alarms, timers, and reminders across all Echo devices in the account.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter notifications by type ("all", "Alarm", "Timer", "Reminder") | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It states the tool lists active items across all devices, which implies a read-only, account-wide operation. However, it does not disclose whether the list is sorted, whether it includes only currently active items, or whether it returns device-specific details. For a simple read tool, this is adequate but not rich.
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 wasted words. It front-loads the verb and resource, and the scope is stated clearly. Every word earns its place.
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 list tool with one optional parameter and no output schema, the description is nearly complete. It covers the resource, scope, and filter. The only minor gap is that it doesn't describe the return format or whether the output includes device names, but given the tool's simplicity and the full schema coverage, this is a minor omission.
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%, and the single parameter 'type' is fully documented with an enum and default value. The description adds the context that the filter applies to 'alarms, timers, and reminders' but does not add meaning beyond the schema. Baseline 3 is appropriate because the schema does the heavy lifting.
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 ('List') with a clear resource ('active alarms, timers, and reminders') and scope ('across all Echo devices in the account'). It clearly distinguishes from siblings like alexa_set_reminder or alexa_play_sound, and the title reinforces the same meaning without being a tautology.
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 a read-only query use case but does not explicitly state when to use this tool versus alternatives. It doesn't mention exclusions or conditions, such as 'use alexa_set_reminder to create a reminder' or 'use alexa_get_history for past notifications.' The context is clear enough for a simple list tool, but no explicit routing guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_get_volumesGet All Device VolumesA
Get the current volume levels of all Echo devices.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full burden. It only states the tool gets volume levels but does not disclose any behavioral traits such as permissions required, rate limits, or behavior for offline devices.
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 that is concise, front-loaded with the action, and contains no unnecessary words.
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 retrieval tool with no parameters and no output schema, the description is mostly complete. It could be improved by mentioning the format or type of data returned, but it is adequate.
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?
There are zero parameters. The description adds meaning by specifying 'of all Echo devices', which provides context beyond the empty schema. Baseline for 0 params is 4.
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 'Get the current volume levels of all Echo devices' which is a specific verb+resource combination. It distinguishes itself from sibling tools like alexa_set_volume and alexa_list_devices.
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 provides no guidance on when to use this tool versus alternatives like alexa_set_volume or alexa_list_devices. It lacks any when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_list_devicesList Alexa DevicesA
List all Amazon Echo devices in your account with their serial numbers, types, and online status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
As a listing tool with no annotations, the description sufficiently conveys that it is a safe, read-only operation. No side effects or authorization needs are mentioned, but the behavior is straightforward.
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?
A single sentence that is concise and informative, with no wasted words. It effectively front-loads the action and output.
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 no parameters and no output schema, the description provides sufficient context. It could be slightly enhanced by noting it returns a list, but it is already adequate.
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?
The tool has no parameters, and schema coverage is 100% (empty). According to guidelines, 0 parameters yields a baseline of 4, and the description adds no param info unnecessarily.
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 lists all Amazon Echo devices with specific attributes (serial numbers, types, online status), using a specific verb and resource that distinguishes it from sibling tools like alexa_list_smarthome_devices and alexa_list_groups.
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 when a list of Echo devices is needed, but does not explicitly state when to use this tool versus alternatives like alexa_list_smarthome_devices for other device types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_list_groupsList Smart Home GroupsA
List all smart home groups/rooms configured in Alexa. Shows which devices are assigned to each group.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It only states the basic function, omitting details like read-only nature, required permissions, or side effects, which are critical for a list tool.
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 concise sentences, each earning its place. No fluff, no redundancy. The description is optimally brief while conveying essential information.
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 (zero parameters, no output schema), the description covers the main purpose. It could mention the output format or absence of filtering, but overall it is sufficiently complete for its low complexity.
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?
The tool has no parameters, and schema coverage is 100%. The description does not need to add parameter semantics, so a baseline of 4 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 explicitly states the tool lists all smart home groups/rooms and shows device assignments, using a specific verb and resource. It clearly distinguishes from sibling tools like alexa_list_devices and alexa_list_smarthome_devices.
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 when to use (to see groups and device assignments) but provides no explicit guidance on alternatives or when not to use. The context from sibling names helps, but the description itself lacks this clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_list_listsList Alexa ListsA
Get all Alexa lists (shopping lists, to-do lists, custom lists).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose whether the operation is read-only or affects state. For a data retrieval tool, this is a minor gap but still limits 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?
A single, concise sentence that directly conveys the tool's purpose with no extraneous information. Well-structured and front-loaded.
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?
While the description is clear, it omits details about the return format (e.g., list names vs. full objects) and potential limits. For a simple list tool, this may be acceptable, but it could be more complete.
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?
With zero parameters, the description adds value by explaining the output (list types). Schema coverage is 100% but empty, so the description meaningfully compensates.
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 retrieves all Alexa lists, specifying types (shopping, to-do, custom). This distinguishes it from sibling tools like alexa_list_devices or alexa_get_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 is provided on when to use this tool versus alternatives (e.g., alexa_get_list_items for items). The description lacks context on prerequisites 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.
alexa_list_routinesList Alexa RoutinesA
List all Alexa routines configured in the account. Shows routine names, triggers, and actions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a read-only operation but does not explicitly state safety or non-destructive nature. Adequate for a simple list operation but lacks explicit disclosure.
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 efficiently worded sentences convey the core functionality and output details. No extraneous text; front-loaded with the action.
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 zero parameters and no output schema, the description sufficiently explains what the tool does and what it returns. However, it lacks mention of pagination or limits, but for a list-all endpoint this is minor.
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?
Input schema has zero parameters, and description coverage is 100% (no params to describe). Description does not need to add parameter meaning, so baseline score of 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?
Description clearly states the tool lists all Alexa routines and specifies what information is shown (names, triggers, actions). This distinguishes it from sibling tools like alexa_execute_routine or alexa_get_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?
Description provides no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It simply states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_list_smarthome_devicesList Smart Home DevicesB
List all smart home devices registered in Alexa (lights, switches, sensors, etc).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description implies no side effects by using the verb 'list', but it does not explicitly state whether the operation is read-only or if it causes any changes. This is adequate but lacks explicit safety guarantees.
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 concise sentence that covers the core functionality without extraneous words. It could benefit from a slightly more structured format, but it is appropriately front-loaded.
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 (no parameters, no output schema), the description minimally conveys what it does. However, it omits details about the response format or whether the list includes identifiers and statuses, which somewhat reduces 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?
The tool has zero parameters, so baseline 4 applies. The description adds no parameter information, which is acceptable since none exist.
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 'List' and the resource 'smart home devices', with examples of device types. It distinguishes from the sibling 'alexa_list_devices' by specifying 'smart home', though it does not explicitly exclude other device types.
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 is provided on when to use this tool versus alternatives like 'alexa_list_devices' or other listing tools. The description does not mention conditions or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_media_controlControl Media PlaybackC
Control media playback (stop, pause, play, next, previous) on a specific Echo or all devices.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Media action to execute | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it), or "all" to stop all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of disclosing behavior. It says 'control media playback' but doesn't state what side effects occur, whether the device must be powered on, what happens on failure, or any rate limits. It also doesn't describe the return value or error behavior. This is a significant gap for a mutation tool.
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 that lists the supported actions and target scope. It is concise and front-loaded, though it could have added a bit more context without losing brevity.
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 that this is a control tool with no output schema and no annotations, the description lacks important context such as error handling, device prerequisites, or whether the action applies to currently playing media across all devices. It is minimal and doesn't prepare the agent for potential edge cases.
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?
The input schema provides 100% coverage for both parameters, including the 'all' option for serialNumber and the action enum. The description adds no extra meaning beyond what the schema already documents. Baseline of 3 is appropriate since the schema does the heavy lifting.
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: controlling media playback with specific actions (stop, pause, play, next, previous) on a specific Echo or all devices. It is specific enough to distinguish from many siblings like alexa_speak or alexa_set_volume, though it doesn't explicitly differentiate from similar playback tools like alexa_fire_tv_control.
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 provides no guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or which sibling to choose for other media-related tasks. The agent is left to infer usage context from the title alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_play_audiblePlay Audiobook via AudibleB
Play an audiobook from Audible on an Echo device.
| Name | Required | Description | Default |
|---|---|---|---|
| searchPhrase | Yes | Audiobook title or author name | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Play an audiobook from Audible on an Echo device' and does not disclose what happens if the audiobook is not found, whether playback starts immediately, whether it interrupts current audio, or whether it requires an Audible account to be linked. For a media playback tool, these are meaningful behavioral gaps.
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, efficient sentence that front-loads the core action and resource. It is appropriately sized for a simple tool. It loses one point because it could have used the available space to add a brief usage hint (e.g., 'requires linked Audible account') without becoming verbose.
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 has no annotations and no output schema, the description is thin for a media playback action. An agent needs to know what happens on failure (e.g., audiobook not found), whether it requires a linked Audible account, and whether it will interrupt current playback. The sibling list shows many audio-related tools, and the description does not help an agent distinguish when to use this one versus alexa_play_music or alexa_play_sound.
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%, so the schema already documents both parameters. The description adds no additional parameter-level meaning beyond what the schema provides. The serialNumber description in the schema usefully references alexa_list_devices, but the tool description itself does not add value here. 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 states a specific verb ('Play'), a specific resource ('an audiobook from Audible'), and a target device ('an Echo device'). It clearly distinguishes from siblings like alexa_play_music and alexa_play_sound by naming the Audible source. However, it doesn't explicitly contrast with those siblings, so it doesn't earn a 5.
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 the tool is for playing Audible audiobooks on Echo devices, which is clear enough for basic selection. It does not state when to prefer this over alexa_play_music or alexa_play_sound, nor does it mention prerequisites like the audiobook being in the user's Audible library. The schema's serialNumber description does point to alexa_list_devices, which is a useful routing hint, but the main description lacks explicit usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_play_behaviorPlay Native Routine BehaviorB
Trigger native routine behaviors like weather report, traffic update, flash briefing, jokes, fun facts, or stories.
| Name | Required | Description | Default |
|---|---|---|---|
| behavior | Yes | Routine behavior to trigger | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It only says 'Trigger native routine behaviors' without explaining what triggering means in practice, e.g., that audio plays on the Echo device, that the device must be online, or what the response/result contains. 'Trigger' is too vague to be transparent.
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?
One sentence with a clear verb-object structure, followed by a compact list of representative examples. No filler or repetition of schema fields; the description is easy to scan and front-loaded.
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?
The tool is simple, with only two required parameters and a fully described enum, so an agent can likely construct a valid call. However, there is no information about expected outcomes, side effects, or how this differs from sibling tools like alexa_execute_routine, making the overall context incomplete.
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% and serialNumber already points the agent to alexa_list_devices stub. The description adds human-readable meaning to the enum values by mapping them to everyday examples like stories, jokes, and fun facts, which helps disambiguate terse enum strings such as 'tellstory' or 'flashbriefing'.
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 ('Trigger') and a specific resource ('native routine behaviors'), then clarifies with concrete examples like weather report, traffic, and flash briefing. It is clearly distinct from 'speak' or 'play music' tools, though it never explicitly contrasts with alexa_execute_routine, leaving some ambiguity between native and custom routines.
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?
There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. Given the large sibling list, an agent cannot tell from the description whether to pick this tool or alexa_execute_routine for a particular request; the only signal is the word 'native'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_play_musicPlay Music via Streaming ProviderA
Search and stream music on an Echo device from Amazon Music, Spotify, Apple Music, TuneIn, iHeartRadio, or Deezer.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | Music service provider (default: AMAZON_MUSIC) | AMAZON_MUSIC |
| searchPhrase | Yes | Song, artist, album, genre, or playlist to play | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the burden of behavioral disclosure. It states the core behavior (search and stream music) but does not mention side effects like interrupting current audio, requiring a linked account, or device state requirements. This is adequate but lacks depth for a streaming action.
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, well-structured sentence that front-loads the purpose and lists the supported providers. There is no wasted wording or redundant detail.
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 tool with 3 fully documented parameters and a clear purpose, the description is largely sufficient. It does not explain return behavior or prerequisites like linked accounts, but these are not required when no output schema exists and the action is straightforward. Minor gaps remain around device prerequisites.
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%, so the schema fully documents all three parameters. The description repeats the provider list and general action but adds no extra semantic detail beyond the schema, such as format constraints, defaults, or relationships between parameters.
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 states a specific action ('search and stream music'), a clear resource ('on an Echo device'), and a defined set of providers. The mention of 'music' clearly distinguishes it from sibling tools like alexa_play_audible (audiobooks), alexa_play_sound (sound effects), and alexa_play_behavior.
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 the tool is for playing music on an Echo device, but it does not explicitly contrast it with alternatives or state when not to use it. No exclusions or alternative routing is given, so the usage is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_play_soundPlay Built-in Sound EffectA
Play a built-in sound effect or chime on an Echo device (e.g. bells, doorbells, boings, applause, buzzers).
| Name | Required | Description | Default |
|---|---|---|---|
| soundId | Yes | Sound identifier (e.g. "amzn_sfx_doorbell_chime_01", "bell_01", "boing_01", "applause_01", "buzzer_01") | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('play') but adds little beyond the title; it does not mention potential side effects like interrupting current audio, requiring the device to be online, or whether the call blocks until playback completes.
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, front-loaded sentence with no wasted words. It efficiently communicates the tool's purpose and provides useful examples without bloat.
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 two-parameter tool, the schema and description together cover the core invocation. However, with no annotations and no output schema, the absence of usage guidance and behavioral side effects leaves some gaps for an agent deciding between this and similar audio-playing siblings.
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%, so the schema already documents both parameters. The description's examples add a little color to soundId values but do not materially improve parameter understanding beyond the 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 uses a specific verb ('Play') and a clear resource ('built-in sound effect or chime on an Echo device'), with concrete examples ('bells, doorbells, boings, applause, buzzers'). This clearly distinguishes it from sibling tools like alexa_play_music, alexa_speak, or alexa_play_audible.
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 when to use the tool: whenever a built-in sound effect or chime is desired. However, it does not explicitly state when not to use it, nor does it name alternatives such as alexa_play_music or alexa_speak for audio content that is not a built-in sound effect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_query_deviceQuery Smart Home DeviceA
Query the current state of one or more smart home devices (on/off, brightness, temperature, etc).
| Name | Required | Description | Default |
|---|---|---|---|
| entityIds | Yes | Array of smart home entity IDs to query (from alexa_list_smarthome_devices) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It indicates a read-only operation ('query current state') but lacks details on error handling, rate limits, or behavior for offline devices. Adequate but could be more explicit.
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, 12 words, front-loaded with the action and resource. No unnecessary words; every part adds value.
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 one-parameter query tool without output schema, the description sufficiently explains the purpose and scope. It could mention the return format but is otherwise complete.
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 clear description for entityIds. The tool description does not add extra parameter information beyond the schema, so baseline score of 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?
Description clearly states the verb 'Query' and resource 'current state of one or more smart home devices', with examples like on/off, brightness, temperature. It distinguishes from sibling tools like alexa_list_devices which list devices, not states.
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. The description does not mention prerequisites like having obtained entity IDs from alexa_list_smarthome_devices, nor does it specify when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_set_alarm_volumeSet Alarm & Notification VolumeA
Adjust alarm and notification volume level independently from media/music volume.
| Name | Required | Description | Default |
|---|---|---|---|
| volume | Yes | Alarm volume percentage (0 to 100) | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral transparency burden. It explains the tool adjusts both alarm and notification volume and keeps them separate from media volume, which is useful. However, it does not disclose side effects, persistence behavior, return value, or any device-specific caveats.
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, focused sentence with no redundant wording. It front-loads the action and the key distinguishing behavior without unnecessary elaboration.
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 setter with two fully described required parameters, the description is largely sufficient. It could have mentioned what happens after the volume is set or whether the change persists, but these are minor gaps for this tool's simplicity.
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%, so the parameter meanings are already fully documented in the input schema. The description adds no parameter-specific detail beyond the schema, such as edge cases or volume format expectations.
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, 'Adjust,' and identifies the exact resource: alarm and notification volume. It also distinguishes this tool from the sibling alexa_set_volume by clarifying it operates independently from media/music volume.
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 phrase 'independently from media/music volume' gives clear contextual guidance that this tool is for alarm/notification volume, not general media volume. It does not explicitly name a sibling alternative like alexa_set_volume, but the intended usage is still evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_set_equalizerSet Device EqualizerA
Adjust bass, midrange, and treble levels on an Echo speaker (-6 to +6 dB).
| Name | Required | Description | Default |
|---|---|---|---|
| bass | Yes | Bass level (-6 to +6) | |
| treble | Yes | Treble level (-6 to +6) | |
| midrange | Yes | Midrange level (-6 to +6) | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It only mentions the adjustment and dB range, but fails to state whether the change is persistent, whether device availability is required, any permission requirements, or potential side effects on current audio settings.
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, efficient sentence that front-loads the action and object. Every word contributes meaning, with no filler or unnecessary detail.
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 relatively simple setter tool, the description plus schema cover the essential invocation details: what to adjust and the valid value ranges. However, with no annotations and no output schema, it omits information about the operation's effect (e.g., mutability, reversibility, success indication), leaving the overall picture slightly incomplete.
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%, with each parameter already documented including range constraints and the serial number hint to use alexa_list_devices. The description adds no extra parameter-level meaning beyond what the schema already provides, so the baseline 3 applies.
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 states a specific verb ('Adjust') and a specific resource ('bass, midrange, and treble levels on an Echo speaker'), making the tool's function immediately clear. It also naturally distinguishes from sibling tools like alexa_set_volume by focusing on equalizer bands rather than overall volume.
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 context (use for EQ tuning on Echo devices) but provides no explicit guidance on when to prefer this tool over alternatives such as alexa_set_volume or alexa_query_device. No exclusions or conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_set_reminderSet Spoken ReminderA
Schedule a spoken reminder on an Echo device at a specific time.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The reminder message for Alexa to speak | |
| timestamp | Yes | Target time as ISO 8601 string (e.g. "2026-09-12T18:00:00") or epoch milliseconds | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only restates the scheduling intent and does not mention side effects, whether an existing reminder is overwritten, device availability requirements, confirmation behavior, or timezone handling. For an action tool this is a meaningful gap.
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?
One sentence of roughly ten words, no redundancy, and it front-loads the core purpose. It does not waste space repeating details already present in the schema.
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 three-parameter action, the description plus schema covers the basics of what to pass. However, with no output schema and no annotations, the agent is left without guidance on expected confirmation, failure modes, or how this differs from the many sibling speech tools, so completeness is only adequate.
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%, so all three parameters are already documented with types and examples. The tool description adds no new parameter-level context beyond calling the timestamp 'specific time' and the serial number an Echo device, so it stays at baseline.
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 identifies a specific verb ('schedule'), resource ('spoken reminder'), target ('Echo device'), and timing constraint ('specific time'). This clearly distinguishes it from siblings like alexa_announce or alexa_text_command, which target immediate announcements or commands.
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 use case is implied: use this tool when the agent needs a one-time spoken reminder at a set time. However, it never states when not to use it or names alternatives such as alexa_announce for immediate broadcasts or alexa_text_command for commands, so the agent must infer routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_set_volumeSet Device VolumeA
Set the volume of a specific Echo device (0-100).
| Name | Required | Description | Default |
|---|---|---|---|
| volume | Yes | Volume level (0-100) | |
| serialNumber | Yes | Serial number of the Echo device |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Set the volume' without detailing if permissions needed or if changes are instantaneous.
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?
One concise sentence front-loading the purpose with no wasted words.
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 two-parameter tool, but lacks guidance on obtaining serialNumber or any behavioral details beyond mutation.
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 covers 100% of parameters with descriptions; the range 0-100 is already in schema, so description adds no new meaning.
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 'Set the volume of a specific Echo device' with a range, distinguishing it from sibling tools like alexa_get_volumes.
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 when-to-use or alternatives guidance, but the purpose implies usage for volume control.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_smarthome_actionExecute Smart Home Device ActionA
Control Alexa smart home devices directly (turn on/off, set brightness, set temperature, lock/unlock).
| Name | Required | Description | Default |
|---|---|---|---|
| value | No | Value for the action: brightness (0-100), temperature in degrees, lock state ("LOCKED"/"UNLOCKED"), color Kelvin or name | |
| action | Yes | The action to perform | |
| entityId | Yes | The smart home appliance/entity ID or group ID (from alexa_list_smarthome_devices) | |
| entityType | No | Entity type: "APPLIANCE" (individual device) or "GROUP" (smart home group) | APPLIANCE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'Control... directly' without detailing side effects, such as idempotence, error handling if device is offline, or authentication requirements. It does not contradict annotations (none provided), but it adds little beyond what the tool name suggests.
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, front-loaded sentence with no filler. It gets straight to the point, listing the core actions in parentheses. Every word earns its place.
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 control tool with 4 parameters and no output schema, the description provides minimal context. It does not mention expected return values, error conditions, or prerequisites (like device availability). However, the schema covers all parameter details, so the main gap is missing behavioral context for an agent deciding whether to call this tool.
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%, meaning every parameter is already documented in the schema (e.g., value has examples, action lists enums). The description adds no new meaning to the parameters; it merely repeats the action categories. Baseline 3 is appropriate because the schema does the heavy lifting.
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 'Control Alexa smart home devices directly' names a specific verb and resource, and enumerates concrete actions (turn on/off, set brightness, set temperature, lock/unlock). This clearly distinguishes it from sibling tools like alexa_query_device (querying) or alexa_list_smarthome_devices (listing).
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 this tool is for controlling devices, but does not explicitly state when to use it versus alternatives (e.g., no mention of 'use alexa_query_device to check status'). No exclusions or alternative tools are named, so the usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_speakSpeak TextA
Make Alexa speak plain text directly on a specific Echo device using native text-to-speech (no announcement chime).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text for Alexa to speak | |
| serialNumber | Yes | Serial number of the Echo device (use alexa_list_devices to find it) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It usefully reveals that the tool uses native TTS, speaks on a single device, and does not add a chime. However, it does not mention possible side effects such as interrupting current playback, or what happens when the device is unavailable.
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 well-structured sentence that front-loads the action and resource, then appends the key differentiator 'no announcement chime.' Every clause earns its place and there is no filler.
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 two-parameter tool with complete schema descriptions and no output schema, the description is nearly sufficient for correct selection and invocation. It lacks only minor behavioral details like side effects or error handling, which are not essential for parameter 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% and both parameters already have clear descriptions. The description adds meaning beyond the schema by qualifying the text as 'plain text' (versus SSML) and emphasizing that speech targets a specific Echo device via serialNumber, which helps disambiguate from sibling tools.
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 (make Alexa speak), the input kind (plain text), and the target (a specific Echo device). It further distinguishes itself from siblings by noting 'native text-to-speech' and 'no announcement chime,' which separates it from alexa_speak_ssml and alexa_announce.
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 gives clear usage context: use it for plain-text speech on a specific device without an announcement chime. It implicitly excludes SSML and announcement-style tools, though it does not explicitly name those alternatives or provide when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_speak_ssmlSpeak SSMLC
Make Alexa speak using SSML (Speech Synthesis Markup Language) for advanced voice control.
| Name | Required | Description | Default |
|---|---|---|---|
| ssml | Yes | SSML content (e.g., "<speak>Hello <break time=\"1s\"/> World</speak>") | |
| serialNumber | Yes | Serial number of the Echo device |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose whether the call is synchronous, error handling, or requirements like device availability. Only implies speaking action.
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 that concisely state purpose and key detail. No redundant or extraneous information.
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 two required parameters and no output schema or annotations, the description lacks critical context such as SSML syntax requirements, device targeting nuances, and expected behavior.
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 both parameters described. Description does not add additional meaning beyond the schema, so baseline score of 3 applies.
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 the tool makes Alexa speak using SSML for advanced voice control. However, it does not differentiate from siblings like alexa_announce which may handle plain text announcements.
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 such as alexa_announce or alexa_text_command. The description does not provide any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_text_commandSend Text Command to AlexaB
Send a text command to Alexa as if you spoke it. Example: "turn on the kitchen lights"
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | The text command, as if spoken to Alexa | |
| serialNumber | Yes | Serial number of the Echo device |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does not disclose that this is a state-mutating action (e.g., 'turn on the kitchen lights'), whether it requires the target Echo to be online/reachable, whether it blocks for a response, or what happens on unrecognized commands. 'As if you spoke it' hints at side effects but leaves the mutation semantics implicit.
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 short sentences, purpose front-loaded, and the example is the most useful single piece of content in the definition. Nothing is wasted.
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?
No output schema exists, so the description should ideally say something about the result (success/failure, returned state), and it does not. For a simple two-parameter pass-through tool this is survivable, but a mutating tool with no annotations and no response semantics is only minimally complete.
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%, so both parameters are already documented in the schema and the baseline is 3. The example ('turn on the kitchen lights') illustrates the expected command format, which is a modest addition over the schema's 'as if spoken to Alexa', but it adds no syntax, length, or format constraints.
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 states a specific verb and resource ('send a text command to Alexa as if you spoke it') and reinforces it with a concrete example utterance. It is clear on its own, but it does not distinguish itself from close siblings like alexa_speak, alexa_query_device, or alexa_announce, which an agent would have to inspect separately to disambiguate.
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?
There is no statement of when to use this tool versus the many siblings. With alexa_speak, alexa_query_device, and alexa_execute_routine all plausibly applicable, the description gives the agent nothing to route on beyond the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alexa_update_groupUpdate Smart Home GroupA
Update an existing Alexa smart home group/room. Sets the name and full list of appliance IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The group/room name | |
| groupId | Yes | The group ID (from alexa_list_groups) | |
| applianceIds | Yes | Full list of appliance IDs to assign to this group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses that the update sets name and appliance IDs, implying overwrite, but lacks details on reversibility, permissions, or side effects. Adequate but 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, no redundancy, directly states action and what it updates. Efficient and easy to parse.
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 3 parameters, no output schema, and no annotations, the description adequately covers purpose and parameter semantics. Missing behavioral details about return value, but sufficient for a simple update tool.
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 covers 100% of parameters, baseline 3. The description adds value by stating 'full list' of appliance IDs, clarifying that it's a complete replacement. This semantic nuance goes beyond the 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?
Description clearly states 'Update an existing Alexa smart home group/room' and specifies what it sets (name and full list of appliance IDs). This distinguishes it from sibling tools like alexa_create_group and alexa_delete_group.
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 use for modifying an existing group, but does not explicitly state when not to use it or mention alternatives. However, the sibling tool names provide context that create_group is for creation, so it is fairly clear.
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.
32 tool updates
v1.2.0- First observed
alexa_add_list_item - First observed
alexa_announce - First observed
alexa_create_group - First observed
alexa_curated_tts - First observed
alexa_delete_group - First observed
alexa_do_not_disturb - First observed
alexa_execute_routine - First observed
alexa_fire_tv_control - First observed
alexa_get_history - First observed
alexa_get_list_items - First observed
alexa_get_notifications - First observed
alexa_get_volumes - First observed
alexa_list_devices - First observed
alexa_list_groups - First observed
alexa_list_lists - First observed
alexa_list_routines - First observed
alexa_list_smarthome_devices - First observed
alexa_media_control - First observed
alexa_play_audible - First observed
alexa_play_behavior - First observed
alexa_play_music - First observed
alexa_play_sound - First observed
alexa_query_device - First observed
alexa_set_alarm_volume - First observed
alexa_set_equalizer - First observed
alexa_set_reminder - First observed
alexa_set_volume - First observed
alexa_smarthome_action - First observed
alexa_speak - First observed
alexa_speak_ssml - First observed
alexa_text_command - First observed
alexa_update_group
TDQS
Scored across 32 tools
Most tools target distinct resources/actions (devices, groups, routines, media, lists), and descriptions clarify edge cases like speak vs announce vs speak_ssml. However, the number of voice/content-related tools (speak, announce, curated_tts, play_behavior, play_sound, play_music) could still cause occasional misselection.
All tools share the alexa_ prefix and snake_case format, with most following a verb_noun pattern (alexa_set_volume, alexa_list_routines, alexa_delete_group). A few exceptions like alexa_text_command, alexa_curated_tts, and alexa_fire_tv_control break the strict pattern but remain readable and predictable.
With 32 tools, this is a very large surface for an MCP server. While the scope is broad, the count exceeds what most agents need and adds selection friction; several tools could likely be consolidated or omitted.
The server covers a wide range of Alexa capabilities: voice output, smart home control, groups, routines, lists, media, alarms/reminders, device settings, and history. Minor gaps exist (e.g., messaging/calling, skill management, multi-room audio), but core Alexa workflows are well represented.
Maintenance
Related MCP Connectors
Automate 1,000+ services from any MCP-compatible AI agent: build Applets, run actions and queries.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
- mytesla.ioOAuthio.mytesla
Control your Tesla from your AI assistant - climate, charging, access, and security.
Connect Amazon Seller Central to Claude or ChatGPT via MCP. Orders, inventory, pricing, fees, FBA.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables 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.-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control Home Assistant smart home devices via MCP, with zero external dependencies. Supports calling services, getting states, and looking up service parameters.17 npmMIT
- AlicenseAqualityCmaintenanceAn MCP server that lets LLMs control Amazon Alexa devices, including announcements, text commands, smart-home group management, routines, and list operations.182MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to control Apple Home devices, scenes, and automations through MCP.2 npm64MIT